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

VIP免費下載

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

-計算機ROS中的仿真軟件-gazebo、stage、matlab等Why-仿真的定義

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

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

:模型屬性項4

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

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

-以暫停狀態(tài)啟動Gazebo,默認為false。use_sim_time

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

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

https:///osrf/gazebo_models/downloads/

29?NXROBO2022Gazebo-

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

使用URDF(UniversalRoboticDescriptionFormat)通用機器人描述格式來定義機器人模型,且此格式定義的文件不能直接用于Gazebo,使用中需加以轉換,添加用于描述仿真定義的標簽。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必須步驟

在每一個<link>內添加<inertia>標簽。向URDF文件中的joint添加<transmission>標簽向URDF文件中添加ros_control插件,并添加相應插件的controller配置文件可選步驟

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

44?NXROBO2022How-模型加載roslaunchlitebot_descriptiongazebo_room_world.launchroslaunchlitebot_d

溫馨提示

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

評論

0/150

提交評論