《鴻蒙機(jī)器人編程》課件-10-仿真工具Gazebo及URDF_第1頁(yè)
《鴻蒙機(jī)器人編程》課件-10-仿真工具Gazebo及URDF_第2頁(yè)
《鴻蒙機(jī)器人編程》課件-10-仿真工具Gazebo及URDF_第3頁(yè)
《鴻蒙機(jī)器人編程》課件-10-仿真工具Gazebo及URDF_第4頁(yè)
《鴻蒙機(jī)器人編程》課件-10-仿真工具Gazebo及URDF_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

仿真工具Gazebo與URDF課程內(nèi)容urdf與xacro宏介紹Gazebo機(jī)器人仿真Gazebo與ROS的通信接口2?NXROBO2022機(jī)器人建模?NXROBO20223要描述什么?有哪些部件部件間如何相對(duì)運(yùn)動(dòng)……如何更好地描述?urdfurdf介紹urdf(unifiedrobotdescriptionformat)是ROS中描述機(jī)器人的一種語(yǔ)言在ROS開(kāi)發(fā)中占據(jù)了非常重要的地位。urdf定義了一系列XML標(biāo)簽來(lái)描述機(jī)器人模型,最核心的兩個(gè)標(biāo)簽為<link>——機(jī)器人部件/連桿/剛體<joint>——機(jī)器人關(guān)節(jié)/運(yùn)動(dòng)副urdf主要用途在于標(biāo)識(shí)機(jī)器人物理模型——有哪些部件、每個(gè)部件的尺寸、部件間以何種關(guān)節(jié)連接、關(guān)節(jié)限制等可容易實(shí)現(xiàn)關(guān)節(jié)空間坐標(biāo)與笛卡爾坐標(biāo)的轉(zhuǎn)換,如配合robot_state_publisher包使用,可根據(jù)關(guān)節(jié)的值確定出部件的位置和姿態(tài)?NXROBO20224<robot>標(biāo)簽根標(biāo)簽,是其它標(biāo)簽的容器,其作用類(lèi)似于launch文件中的launch標(biāo)簽有一個(gè)屬性name,用來(lái)設(shè)置機(jī)器人的名字?NXROBO20225<link>標(biāo)簽用于描述機(jī)器人某個(gè)部件(也即剛體部分)的外觀和物理屬性機(jī)器人底座、輪子、激光雷達(dá)、攝像頭...每一個(gè)部件都對(duì)應(yīng)一個(gè)link在link標(biāo)簽內(nèi),可以設(shè)計(jì)該部件的形狀、尺寸、顏色、慣性矩陣、碰撞參數(shù)等一系列屬性屬性name,設(shè)置部件名字?NXROBO20226子標(biāo)簽<joint>標(biāo)簽joint標(biāo)簽用于描述機(jī)器人關(guān)節(jié)的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)屬性還可以指定關(guān)節(jié)運(yùn)動(dòng)的安全極限機(jī)器人的兩個(gè)部件(parentlink與childlink)以"關(guān)節(jié)"的形式相連接不同的關(guān)節(jié)有不同的運(yùn)動(dòng)形式:旋轉(zhuǎn)、滑動(dòng)、固定、旋轉(zhuǎn)速度、旋轉(zhuǎn)角度限制屬性name,設(shè)置關(guān)節(jié)的名字屬性type,設(shè)置關(guān)節(jié)類(lèi)型?NXROBO20227子標(biāo)簽Joint類(lèi)型Revolute:轉(zhuǎn)動(dòng)關(guān)節(jié),但是有轉(zhuǎn)動(dòng)范圍,必須要求之后的limit參數(shù)中必須含有上下界才合法。Continuous:連續(xù)轉(zhuǎn)動(dòng)關(guān)節(jié),沒(méi)有轉(zhuǎn)動(dòng)范圍。Prismatic:平動(dòng)關(guān)節(jié),也需要上下界的定義Fixed:完全固定,連接的兩個(gè)link幷沒(méi)有可動(dòng)關(guān)系,可以理解為純粹為了標(biāo)識(shí)固定傳感器相對(duì)位置與姿態(tài)而設(shè)立的。Floating:允許link與link之間有完全6個(gè)自由度的轉(zhuǎn)換,跟fixed一樣,一般是標(biāo)識(shí)一些環(huán)境物體或者無(wú)人機(jī)在全局位置姿態(tài)的。Planar:與floating類(lèi)似,用于標(biāo)識(shí)地面機(jī)器人在地面上的位置姿態(tài)。?NXROBO20228Joint類(lèi)型Gearbox:描述了齒輪傳動(dòng)的轉(zhuǎn)動(dòng)關(guān)系。Ball:球關(guān)節(jié),兩個(gè)轉(zhuǎn)動(dòng)自由度的合成。Screw:類(lèi)似于螺絲的運(yùn)動(dòng),單個(gè)自由度,但轉(zhuǎn)動(dòng)與平動(dòng)位移的合成。取消了floating與planar。?NXROBO20229urdf的自身的一些問(wèn)題urdf本身設(shè)計(jì)有一些缺陷整個(gè)joint與link成樹(shù)狀描述,而機(jī)器人存在一些的物理模型例如并聯(lián)機(jī)構(gòu),環(huán)狀機(jī)構(gòu)等就無(wú)法表示一些標(biāo)簽設(shè)置也不是非常合理,還有整個(gè)xml語(yǔ)法上也不是非常靈活這些問(wèn)題的存在使urdf在一些情況中顯得非常雞肋,但是對(duì)于大部分移動(dòng)機(jī)器人與機(jī)械臂,urdf已經(jīng)夠用關(guān)鍵是已經(jīng)有大量現(xiàn)成工具,使得urdf在ROS中的地位還是不可撼動(dòng)。?NXROBO202210XACRO宏介紹復(fù)雜的機(jī)器人常常有多達(dá)十幾個(gè)joint和link,許多joint或link非常相似,整個(gè)urdf文件顯得非常冗長(zhǎng)、復(fù)雜Urdf文件中還經(jīng)常存在一些值計(jì)算依賴(lài)XACRO是ROS中簡(jiǎn)化大型xml文件的寫(xiě)法、增加結(jié)構(gòu)性與擴(kuò)展性的XML宏語(yǔ)言提供了屬性定義,數(shù)學(xué)運(yùn)算,條件判斷和宏定義等功能使用宏能極大增加urdf文件的層次感與可讀性,在各個(gè)機(jī)器人公開(kāi)的ROSurdfpackage中,基本都是用XACRO工具進(jìn)行組織。注意:必須在robot標(biāo)簽中加入xmlns:xacro="/wiki/xacro"屬性?。?NXROBO202211XACRO宏介紹屬性:使用<xacro:property>標(biāo)簽定義,用${屬性名稱(chēng)}來(lái)調(diào)用該參數(shù)。數(shù)學(xué)運(yùn)算:在變量的大括號(hào)中可以使用基本的數(shù)學(xué)運(yùn)算,可以使用Python數(shù)學(xué)模塊中的函數(shù)和常量?NXROBO202212XACRO宏介紹條件判斷:表達(dá)式中的結(jié)果必須是0、1、true或false,在<expression>中任何結(jié)果為布爾值的Python表達(dá)式都是可以的。?NXROBO202213XACRO宏介紹宏定義:使用xacro:macro來(lái)定義一個(gè)宏,參數(shù)用空格分割,參數(shù)可以用:=來(lái)添加默認(rèn)值?NXROBO20221415?NXROBO2022定義-仿真/模擬(Simulation),泛指基于實(shí)驗(yàn)或訓(xùn)練的目的,將原本的系統(tǒng)、事務(wù)或流程,建立一個(gè)模型以表征其關(guān)鍵特性(keycharacteristics)或者行為/功能,予以系統(tǒng)化與公式化,以便進(jìn)行可對(duì)關(guān)鍵特征做出模擬。(維基百科)應(yīng)用場(chǎng)景-當(dāng)所研究的系統(tǒng)造價(jià)昂貴、實(shí)驗(yàn)的危險(xiǎn)性大或需要很長(zhǎng)的時(shí)間才能了解系統(tǒng)參數(shù)變化所引起的后果時(shí),仿真是一種特別有效的研究手段。應(yīng)用領(lǐng)域-電氣、機(jī)械、化工、水力、熱力、社會(huì)、經(jīng)濟(jì)、生態(tài)、管理等等。重要工具

-計(jì)算機(jī)ROS中的仿真軟件-gazebo、stage、matlab等Why-仿真的定義

16?NXROBO2022gazebo是一款功能強(qiáng)大的三維物理仿真平臺(tái)具備強(qiáng)大的物理引擎高質(zhì)量的圖形渲染方便的編程與圖形接口開(kāi)源免費(fèi)其典型應(yīng)用場(chǎng)景包括測(cè)試機(jī)器人算法機(jī)器人的設(shè)計(jì)現(xiàn)實(shí)情景下的回溯測(cè)試Why-Whygazebo?17?NXROBO2022Why-Robotsimulationmadeeasy18?NXROBO2022Why-Robotsimulationmadeeasy19?NXROBO2022gazebooverview:https:///watch?v=SK5GuC1jgg8

What-gazebooverview20?NXROBO2022gzserver產(chǎn)生傳感器數(shù)據(jù)更新物理參數(shù)可以運(yùn)行在云端gzclient基于QT的用戶(hù)界面控制仿真特性可同時(shí)運(yùn)行多個(gè)人機(jī)界面What-Architecture21?NXROBO2022Ver2.2Ver5.0Ver7.0What-版本進(jìn)化22?NXROBO20220:3D視圖區(qū)1:工具欄2:模型列表3

:模型屬性項(xiàng)4

:時(shí)間顯示區(qū)What-界面布局23?NXROBO2022gazebo_ros-主要用于gazebo接口封裝、gazebo服務(wù)端和客戶(hù)端的啟動(dòng)、URDF模型生成等。gazebo_msgs-是gazebo的Msg和Srv數(shù)據(jù)結(jié)構(gòu)。gazebo_plugins

-用于gazebo的通用傳感器插件。gazebo_ros_api_plugin和gazebo_ros_path_plugin這兩個(gè)Gazebo的插件實(shí)現(xiàn)接口封裝。What-與ROS的接口24?NXROBO2022安裝如果你已經(jīng)成功安裝了桌面完整版的ROS,可以直接跳過(guò)這一步驟,否則,請(qǐng)使用如下命令進(jìn)行安裝:sudoapt-getinstallros-indigo-gazebo-ros-pkgsros-indigo-gazebo-ros-control命令啟動(dòng)roscorerosrungazebo_rosgazebolaunch啟動(dòng)roslaunchgazebo_rosempty_world.launchHow-安裝25?NXROBO2022How-機(jī)器人仿真的步驟開(kāi)始仿真修改機(jī)器人模型創(chuàng)建仿真環(huán)境26?NXROBO2022How-empty_world.launch27?NXROBO2022paused

-以暫停狀態(tài)啟動(dòng)Gazebo,默認(rèn)為false。use_sim_time

-ROS的node是否使用Gazebo通過(guò)/clocktopic發(fā)布的仿真時(shí)間,默認(rèn)為true。gui

-啟用Gazebo的用戶(hù)交互接口來(lái)控制視圖,默認(rèn)為true。headless-禁用仿真渲染組件的功能,當(dāng)gui:=true時(shí),不能使能此參數(shù),默認(rèn)為false。debug-在gdb中啟動(dòng)gzserver(GazeboServer)以用于調(diào)試,默認(rèn)為false。How-參數(shù)28?NXROBO2022world_name以相對(duì)路徑指定了world模型的定義文件,絕對(duì)路徑由GAZEBO_RESOURCE_PATH這個(gè)環(huán)境變量決定。默認(rèn)為/usr/share/gazebo-x.x,對(duì)indigo版本來(lái)說(shuō)為/usr/share/gazebo-2.2默認(rèn)本地模型數(shù)據(jù)庫(kù)路徑為~/.gazebo/modelsHow-worldmodel建議:為保證模型順利加載,請(qǐng)?zhí)崆皩⒛P臀募螺d并放置到本地路徑下。

https:///osrf/gazebo_models/downloads/

29?NXROBO2022Gazebo-

使用SDF(SimulationDescriptionFormat)仿真描述格式定義仿真環(huán)境和模型。ROS-

使用URDF(UniversalRoboticDescriptionFormat)通用機(jī)器人描述格式來(lái)定義機(jī)器人模型,且此格式定義的文件不能直接用于Gazebo,使用中需加以轉(zhuǎn)換,添加用于描述仿真定義的標(biāo)簽。How-worldmodel30?NXROBO2022How-創(chuàng)建仿真環(huán)境直接添加環(huán)境模型31?NXROBO2022How-創(chuàng)建仿真環(huán)境直接添加環(huán)境模型32?NXROBO2022How-創(chuàng)建仿真環(huán)境使用BuildingEditor33?NXROBO2022How-創(chuàng)建仿真環(huán)境使用BuildingEditor34?NXROBO2022必須步驟

在每一個(gè)<link>內(nèi)添加<inertia>標(biāo)簽。向URDF文件中的joint添加<transmission>標(biāo)簽向URDF文件中添加ros_control插件,并添加相應(yīng)插件的controller配置文件可選步驟

在每一個(gè)<link>內(nèi)添加<gazebo>標(biāo)簽。將外觀顏色轉(zhuǎn)換成Gazebo格式;將stl文件轉(zhuǎn)換成dae文件,獲得更好的渲染效果;添加傳感器插件。在每一個(gè)<joint>內(nèi)添加<gazebo>標(biāo)簽。設(shè)置適當(dāng)?shù)淖枘釀?dòng)力系數(shù);添加執(zhí)行器控制插件在<robot>標(biāo)簽內(nèi)添加<gazebo>How-模型修改35?NXROBO2022添加<inertia>標(biāo)簽How-模型修改36?NXROBO2022添加<transmission>標(biāo)簽How-模型修改37?NXROBO2022How-ros_controlros_control是為用戶(hù)提供的應(yīng)用與機(jī)器人之間的中間件,包含一系列控制器接口、傳動(dòng)裝置接口、硬件接口、控制器工具箱等等,可以幫助機(jī)器人應(yīng)用快速落地,提高開(kāi)發(fā)效率對(duì)不同類(lèi)型的控制器(底盤(pán)、機(jī)械臂等),ros_control可以提供多種類(lèi)型的控制器但是這些控制器的接口各不相同,為了提高代碼的復(fù)用率,ros_control還提供一個(gè)硬件的抽象層38?NXROBO2022How-ros_controlControllerManager:機(jī)器人可能有多個(gè)controller,管理器提供一種通用的接口來(lái)管理不同的controllerController:完成每個(gè)joint的控制,請(qǐng)求下層的硬件資源,提供了PID控制器,讀取硬件資源狀態(tài),在發(fā)布控制命令HardwareRescource:為上下兩層提供硬件資源的接口RobotHW:硬件抽象層和硬件直接打交道,通過(guò)write和read方法來(lái)完成硬件的操作RealRobot:要有自己的嵌入式控制器39?NXROBO2022How-ros_control40?NXROBO2022How-進(jìn)行仿真添加ros_control插件URDF文件controller配置文件lanuch文件41?NXROBO2022How-進(jìn)行仿真添加傳感器插件URDF文件42?NXROBO2022How-模型加載加載用gazebo_ros功能包下名為spawn_model的python腳本,通過(guò)封裝接口向Gazebo發(fā)起服務(wù)調(diào)用,請(qǐng)求加載指定的URDF文件。rosrungazebo_rosspawn_model-file`rospackfindbaxter_description`/urdf/baxter.urdf-urdf-z1-modelbaxter43?NXROBO2022How-模型加載對(duì)于xacro格式的機(jī)器人模型,需要先進(jìn)行轉(zhuǎn)換成URDF再加載

44?NXROBO2022How-模型加載roslaunchlitebot_descriptiongazebo_room_world.launchroslaunchlitebot_d

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論