




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
仿真工具Gazebo與URDF課程內(nèi)容urdf與xacro宏介紹Gazebo機(jī)器人仿真Gazebo與ROS的通信接口2?NXROBO2022機(jī)器人建模?NXROBO20223要描述什么?有哪些部件部件間如何相對運(yùn)動……如何更好地描述?urdfurdf介紹urdf(unifiedrobotdescriptionformat)是ROS中描述機(jī)器人的一種語言在ROS開發(fā)中占據(jù)了非常重要的地位。urdf定義了一系列XML標(biāo)簽來描述機(jī)器人模型,最核心的兩個標(biāo)簽為<link>——機(jī)器人部件/連桿/剛體<joint>——機(jī)器人關(guān)節(jié)/運(yùn)動副urdf主要用途在于標(biāo)識機(jī)器人物理模型——有哪些部件、每個部件的尺寸、部件間以何種關(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)簽的容器,其作用類似于launch文件中的launch標(biāo)簽有一個屬性name,用來設(shè)置機(jī)器人的名字?NXROBO20225<link>標(biāo)簽用于描述機(jī)器人某個部件(也即剛體部分)的外觀和物理屬性機(jī)器人底座、輪子、激光雷達(dá)、攝像頭...每一個部件都對應(yīng)一個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)動學(xué)和動力學(xué)屬性還可以指定關(guān)節(jié)運(yùn)動的安全極限機(jī)器人的兩個部件(parentlink與childlink)以"關(guān)節(jié)"的形式相連接不同的關(guān)節(jié)有不同的運(yùn)動形式:旋轉(zhuǎn)、滑動、固定、旋轉(zhuǎn)速度、旋轉(zhuǎn)角度限制屬性name,設(shè)置關(guān)節(jié)的名字屬性type,設(shè)置關(guān)節(jié)類型?NXROBO20227子標(biāo)簽Joint類型Revolute:轉(zhuǎn)動關(guān)節(jié),但是有轉(zhuǎn)動范圍,必須要求之后的limit參數(shù)中必須含有上下界才合法。Continuous:連續(xù)轉(zhuǎn)動關(guān)節(jié),沒有轉(zhuǎn)動范圍。Prismatic:平動關(guān)節(jié),也需要上下界的定義Fixed:完全固定,連接的兩個link幷沒有可動關(guān)系,可以理解為純粹為了標(biāo)識固定傳感器相對位置與姿態(tài)而設(shè)立的。Floating:允許link與link之間有完全6個自由度的轉(zhuǎn)換,跟fixed一樣,一般是標(biāo)識一些環(huán)境物體或者無人機(jī)在全局位置姿態(tài)的。Planar:與floating類似,用于標(biāo)識地面機(jī)器人在地面上的位置姿態(tài)。?NXROBO20228Joint類型Gearbox:描述了齒輪傳動的轉(zhuǎn)動關(guān)系。Ball:球關(guān)節(jié),兩個轉(zhuǎn)動自由度的合成。Screw:類似于螺絲的運(yùn)動,單個自由度,但轉(zhuǎn)動與平動位移的合成。取消了floating與planar。?NXROBO20229urdf的自身的一些問題urdf本身設(shè)計(jì)有一些缺陷整個joint與link成樹狀描述,而機(jī)器人存在一些的物理模型例如并聯(lián)機(jī)構(gòu),環(huán)狀機(jī)構(gòu)等就無法表示一些標(biāo)簽設(shè)置也不是非常合理,還有整個xml語法上也不是非常靈活這些問題的存在使urdf在一些情況中顯得非常雞肋,但是對于大部分移動機(jī)器人與機(jī)械臂,urdf已經(jīng)夠用關(guān)鍵是已經(jīng)有大量現(xiàn)成工具,使得urdf在ROS中的地位還是不可撼動。?NXROBO202210XACRO宏介紹復(fù)雜的機(jī)器人常常有多達(dá)十幾個joint和link,許多joint或link非常相似,整個urdf文件顯得非常冗長、復(fù)雜Urdf文件中還經(jīng)常存在一些值計(jì)算依賴XACRO是ROS中簡化大型xml文件的寫法、增加結(jié)構(gòu)性與擴(kuò)展性的XML宏語言提供了屬性定義,數(shù)學(xué)運(yùn)算,條件判斷和宏定義等功能使用宏能極大增加urdf文件的層次感與可讀性,在各個機(jī)器人公開的ROSurdfpackage中,基本都是用XACRO工具進(jìn)行組織。注意:必須在robot標(biāo)簽中加入xmlns:xacro="/wiki/xacro"屬性??!?NXROBO202211XACRO宏介紹屬性:使用<xacro:property>標(biāo)簽定義,用${屬性名稱}來調(diào)用該參數(shù)。數(shù)學(xué)運(yùn)算:在變量的大括號中可以使用基本的數(shù)學(xué)運(yùn)算,可以使用Python數(shù)學(xué)模塊中的函數(shù)和常量?NXROBO202212XACRO宏介紹條件判斷:表達(dá)式中的結(jié)果必須是0、1、true或false,在<expression>中任何結(jié)果為布爾值的Python表達(dá)式都是可以的。?NXROBO202213XACRO宏介紹宏定義:使用xacro:macro來定義一個宏,參數(shù)用空格分割,參數(shù)可以用:=來添加默認(rèn)值?NXROBO20221415?NXROBO2022定義-仿真/模擬(Simulation),泛指基于實(shí)驗(yàn)或訓(xùn)練的目的,將原本的系統(tǒng)、事務(wù)或流程,建立一個模型以表征其關(guān)鍵特性(keycharacteristics)或者行為/功能,予以系統(tǒng)化與公式化,以便進(jìn)行可對關(guān)鍵特征做出模擬。(維基百科)應(yīng)用場景-當(dāng)所研究的系統(tǒng)造價昂貴、實(shí)驗(yàn)的危險(xiǎn)性大或需要很長的時間才能了解系統(tǒng)參數(shù)變化所引起的后果時,仿真是一種特別有效的研究手段。應(yīng)用領(lǐng)域-電氣、機(jī)械、化工、水力、熱力、社會、經(jīng)濟(jì)、生態(tài)、管理等等。重要工具
-計(jì)算機(jī)ROS中的仿真軟件-gazebo、stage、matlab等Why-仿真的定義
16?NXROBO2022gazebo是一款功能強(qiáng)大的三維物理仿真平臺具備強(qiáng)大的物理引擎高質(zhì)量的圖形渲染方便的編程與圖形接口開源免費(fèi)其典型應(yīng)用場景包括測試機(jī)器人算法機(jī)器人的設(shè)計(jì)現(xiàn)實(shí)情景下的回溯測試Why-Whygazebo?17?NXROBO2022Why-Robotsimulationmadeeasy18?NXROBO2022Why-Robotsimulationmadeeasy19?NXROBO2022gazebooverview:https:///watch?v=SK5GuC1jgg8
What-gazebooverview20?NXROBO2022gzserver產(chǎn)生傳感器數(shù)據(jù)更新物理參數(shù)可以運(yùn)行在云端gzclient基于QT的用戶界面控制仿真特性可同時運(yùn)行多個人機(jī)界面What-Architecture21?NXROBO2022Ver2.2Ver5.0Ver7.0What-版本進(jìn)化22?NXROBO20220:3D視圖區(qū)1:工具欄2:模型列表3
:模型屬性項(xiàng)4
:時間顯示區(qū)What-界面布局23?NXROBO2022gazebo_ros-主要用于gazebo接口封裝、gazebo服務(wù)端和客戶端的啟動、URDF模型生成等。gazebo_msgs-是gazebo的Msg和Srv數(shù)據(jù)結(jié)構(gòu)。gazebo_plugins
-用于gazebo的通用傳感器插件。gazebo_ros_api_plugin和gazebo_ros_path_plugin這兩個Gazebo的插件實(shí)現(xiàn)接口封裝。What-與ROS的接口24?NXROBO2022安裝如果你已經(jīng)成功安裝了桌面完整版的ROS,可以直接跳過這一步驟,否則,請使用如下命令進(jìn)行安裝:sudoapt-getinstallros-indigo-gazebo-ros-pkgsros-indigo-gazebo-ros-control命令啟動roscorerosrungazebo_rosgazebolaunch啟動roslaunchgazebo_rosempty_world.launchHow-安裝25?NXROBO2022How-機(jī)器人仿真的步驟開始仿真修改機(jī)器人模型創(chuàng)建仿真環(huán)境26?NXROBO2022How-empty_world.launch27?NXROBO2022paused
-以暫停狀態(tài)啟動Gazebo,默認(rèn)為false。use_sim_time
-ROS的node是否使用Gazebo通過/clocktopic發(fā)布的仿真時間,默認(rèn)為true。gui
-啟用Gazebo的用戶交互接口來控制視圖,默認(rèn)為true。headless-禁用仿真渲染組件的功能,當(dāng)gui:=true時,不能使能此參數(shù),默認(rèn)為false。debug-在gdb中啟動gzserver(GazeboServer)以用于調(diào)試,默認(rèn)為false。How-參數(shù)28?NXROBO2022world_name以相對路徑指定了world模型的定義文件,絕對路徑由GAZEBO_RESOURCE_PATH這個環(huán)境變量決定。默認(rèn)為/usr/share/gazebo-x.x,對indigo版本來說為/usr/share/gazebo-2.2默認(rèn)本地模型數(shù)據(jù)庫路徑為~/.gazebo/modelsHow-worldmodel建議:為保證模型順利加載,請?zhí)崆皩⒛P臀募螺d并放置到本地路徑下。
https:///osrf/gazebo_models/downloads/
29?NXROBO2022Gazebo-
使用SDF(SimulationDescriptionFormat)仿真描述格式定義仿真環(huán)境和模型。ROS-
使用URDF(UniversalRoboticDescriptionFormat)通用機(jī)器人描述格式來定義機(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必須步驟
在每一個<link>內(nèi)添加<inertia>標(biāo)簽。向URDF文件中的joint添加<transmission>標(biāo)簽向URDF文件中添加ros_control插件,并添加相應(yīng)插件的controller配置文件可選步驟
在每一個<link>內(nèi)添加<gazebo>標(biāo)簽。將外觀顏色轉(zhuǎn)換成Gazebo格式;將stl文件轉(zhuǎn)換成dae文件,獲得更好的渲染效果;添加傳感器插件。在每一個<joint>內(nèi)添加<gazebo>標(biāo)簽。設(shè)置適當(dāng)?shù)淖枘釀恿ο禂?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是為用戶提供的應(yīng)用與機(jī)器人之間的中間件,包含一系列控制器接口、傳動裝置接口、硬件接口、控制器工具箱等等,可以幫助機(jī)器人應(yīng)用快速落地,提高開發(fā)效率對不同類型的控制器(底盤、機(jī)械臂等),ros_control可以提供多種類型的控制器但是這些控制器的接口各不相同,為了提高代碼的復(fù)用率,ros_control還提供一個硬件的抽象層38?NXROBO2022How-ros_controlControllerManager:機(jī)器人可能有多個controller,管理器提供一種通用的接口來管理不同的controllerController:完成每個joint的控制,請求下層的硬件資源,提供了PID控制器,讀取硬件資源狀態(tài),在發(fā)布控制命令HardwareRescource:為上下兩層提供硬件資源的接口RobotHW:硬件抽象層和硬件直接打交道,通過write和read方法來完成硬件的操作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腳本,通過封裝接口向Gazebo發(fā)起服務(wù)調(diào)用,請求加載指定的URDF文件。rosrungazebo_rosspawn_model-file`rospackfindbaxter_description`/urdf/baxter.urdf-urdf-z1-modelbaxter43?NXROBO2022How-模型加載對于xacro格式的機(jī)器人模型,需要先進(jìn)行轉(zhuǎn)換成URDF再加載
44?NXROBO2022How-模型加載roslaunchlitebot_descriptiongazebo_room_world.launchroslaunchlitebot_d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制作拍攝合同范本
- 債務(wù)變更合同范本
- 代銷汽車合同范本
- 二手車合同范本商家自己寫
- 分階段付款合同范本
- 華帝櫥柜合同范本
- 農(nóng)村建房主體合同范本
- 單位門合同范本
- 醫(yī)療美容轉(zhuǎn)讓合同范例
- 產(chǎn)品設(shè)計(jì)開發(fā)合同范本
- CJJ2-2008城市橋梁工程施工與質(zhì)量驗(yàn)收規(guī)范
- 病媒生物防治操作規(guī)程
- 2024年社會工作者《社會工作實(shí)務(wù)(中級)》考試真題必考題
- 德育教育研究課題申報(bào)書
- (高清版)JTG 3810-2017 公路工程建設(shè)項(xiàng)目造價文件管理導(dǎo)則
- 《煤礦重大事故隱患判定標(biāo)準(zhǔn)》試題及答案
- 《ISO31000:2024風(fēng)險(xiǎn)管理指南》指導(dǎo)手冊(雷澤佳譯2024-04)
- 學(xué)前兒童表演游戲的組織與指導(dǎo)(學(xué)前兒童游戲課件)
- 建筑用真空陶瓷微珠絕熱系統(tǒng)應(yīng)用技術(shù)規(guī)程
- (高清版)DZT 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬
- 《拒絕校園欺凌 防霸凌主題班會》課件
評論
0/150
提交評論