01 前言
當(dāng)我們想在gazebo中仿真一個(gè)比較逼真的機(jī)器人時(shí),光有機(jī)器人的樣子是遠(yuǎn)遠(yuǎn)不夠的,一個(gè)真實(shí)的機(jī)器人往往附帶著各種各樣的傳感器,比如用來(lái)估計(jì)機(jī)器人位置的編碼器、IMU;用來(lái)感知外部環(huán)境的攝像頭、雷達(dá)等等,如果我們想自己在電腦中完全復(fù)現(xiàn)出一個(gè)逼真的傳感器,這是很難得一件事,幸運(yùn)的是gazebo為我們提供了用來(lái)仿真?zhèn)鞲衅鞯牟寮?,最常用的有相機(jī)、kinect、激光雷達(dá)等等,這極大地方便了用戶在仿真環(huán)境中機(jī)器人的構(gòu)建。
本文以三種常見(jiàn)且難度中等的傳感器仿真為例,介紹如何在gazebo中搭建我們自己的傳感器模型。
02RGB相機(jī)
1.urdf建模
相機(jī)的urdf模型還是分為三部分,視覺(jué)模型、碰撞模型、慣性模型,在前面的文章中簡(jiǎn)要介紹了關(guān)于urdf建模的知識(shí),在相機(jī)的建模中,我們簡(jiǎn)單的將它建模為一個(gè)盒子(box),然后賦予它一些真實(shí)的特性。
然后我們使用xacro格式的建模方法,將傳感器單獨(dú)列為一個(gè)文件,然后在主文件中調(diào)用它。
2.gazebo物理特性
在gazebo中的顏色顯示和在rviz中的顏色顯示有所不同,在上述視覺(jué)模型中設(shè)定的"black"顏色顯示,只能顯示在rviz中,因此我們先通過(guò)以下代碼,設(shè)置模型在gazebo中的顏色。
< gazebo reference="${prefix}_link" >
< material >Gazebo/Black< /material >
< /gazebo >
下面這一部分給出相機(jī)的參數(shù),這些參數(shù)可以根據(jù)現(xiàn)實(shí)生活中我們購(gòu)買的相機(jī)參數(shù)填入
下面將我們的相機(jī)鏈接到插件庫(kù),實(shí)現(xiàn)真正的相機(jī)仿真
相關(guān)的仿真教程可以在gazebo官網(wǎng)教程找到
03 深度相機(jī)
1.urdf建模
kinect是ROS中常用的深度相機(jī),在gazebo建模中我們將它建模為一個(gè)盒子,但是由于kinect模型的通用性,作為微軟的一個(gè)品牌,人們?yōu)槠渑渲昧四P弯秩疚募?/p>
仍然使用了xacro文件格式,然后在主文件中調(diào)用它
2.gazebo物理特性
第一部分仍然是根據(jù)我們購(gòu)買的相機(jī)參數(shù)填入它們,其實(shí)現(xiàn)在比較流行的一種建模方法是使用.sdf文件,比如kinect的官方教程中就是根據(jù)提供的sdf再進(jìn)行建模
然后再鏈接到插件庫(kù),進(jìn)行更詳細(xì)的設(shè)置
最后附上了gazebo中使用kinect的教程和如何制作自己sdf模型的教程
04 激光雷達(dá)
1.urdf建模
在激光雷達(dá)建模部分,我們將其建模為一個(gè)圓柱體,通過(guò)固定關(guān)節(jié)(fixed)連接在機(jī)器人上方,描述了它的視覺(jué)模型、慣性模型以及碰撞模型
2.gazebo物理特性
在官方教程中,說(shuō)以下參數(shù)都是不說(shuō)自明的,其實(shí)根據(jù)我們真實(shí)的雷達(dá)參數(shù)進(jìn)行修改即可,我對(duì)它們進(jìn)行簡(jiǎn)單解釋。
其中,這一條如果為真,則在 gpu 激光器的掃描區(qū)域內(nèi)可以看到半透明的激光射線
< visualize >false< /visualize >
然后我們將雷達(dá)鏈接到插件庫(kù)
最后,我們?cè)谥魑募校{(diào)用我們寫好的傳感器文件,然后建立關(guān)節(jié)將他們與我們的主體連接起來(lái)即可。
05 差速驅(qū)動(dòng)
在我們的移動(dòng)機(jī)器人中電機(jī)關(guān)節(jié)往往需要搭配減速器使用,而且通常需要對(duì)其進(jìn)行PID控制,ROS為我們提供了差速驅(qū)動(dòng)插件,以及傳動(dòng)機(jī)構(gòu)的配置。
1.傳動(dòng)機(jī)構(gòu)
ROS中的傳動(dòng)機(jī)構(gòu)主要是在urdf文件中,通過(guò)transmission標(biāo)簽體現(xiàn),這一部分其實(shí)是屬于ros提供的通用硬件接口ros_control,有幾種類型的transmission可以使用,如:TransmissionInfo、TransmissionLoader、SimpleTransmission等,我們常用的就是SimpleTransmission,transmission標(biāo)簽分為兩部分-joint和actuator。
joint部分主要是針對(duì)要設(shè)置的關(guān)節(jié),hardwareInterface標(biāo)簽指定的是關(guān)節(jié)空間的接口類型。
actuator部分主要是針對(duì)驅(qū)動(dòng)器部分進(jìn)行設(shè)置,mechanicalReduction標(biāo)簽指定關(guān)節(jié)/執(zhí)行器傳動(dòng)裝置處的機(jī)械減速;hardwareInterface標(biāo)簽指定的是關(guān)節(jié)空間的接口類型。
關(guān)于接口類型的更多說(shuō)明參考ros的官方解釋。
2.差速驅(qū)動(dòng)插件
差速驅(qū)動(dòng)插件也是通過(guò)plugin標(biāo)簽鏈接到相應(yīng)的差速驅(qū)動(dòng)庫(kù),下面對(duì)它的一些參數(shù)進(jìn)行了解釋。
06 總結(jié)
本文介紹了ROS仿真中常用的三種傳感器-RGB相機(jī)、Kinect深度相機(jī)、激光雷達(dá)的仿真建模方式以及其中參數(shù)的含義,最后介紹了SLAM中常見(jiàn)的載體-移動(dòng)機(jī)器人的差速驅(qū)動(dòng)器建模方式,并簡(jiǎn)單介紹了ros_control硬件接口中關(guān)節(jié)的傳動(dòng)機(jī)構(gòu)的配置。
-
傳感器
+關(guān)注
關(guān)注
2553文章
51467瀏覽量
756961 -
機(jī)器人
+關(guān)注
關(guān)注
211文章
28704瀏覽量
208682 -
編碼器
+關(guān)注
關(guān)注
45文章
3673瀏覽量
135318 -
仿真
+關(guān)注
關(guān)注
50文章
4129瀏覽量
134069 -
ROS
+關(guān)注
關(guān)注
1文章
281瀏覽量
17126
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
觸覺(jué)反饋設(shè)計(jì)中常用的執(zhí)行器
常用傳感器原理
求畢業(yè)設(shè)計(jì)時(shí),入侵系統(tǒng)中常用的紅外傳感器的型號(hào)及其.....
DAQmx仿真中的力傳感器和位移傳感器的仿真
非標(biāo)機(jī)械設(shè)計(jì)常用傳感器
熱線式空氣流量傳感器的三種形式介紹
傳感器應(yīng)用實(shí)例--三種數(shù)字扭矩測(cè)量?jī)x電路實(shí)例
三種溫度傳感器的原理及優(yōu)勢(shì)介紹
三種常見(jiàn)的非接觸式液位傳感器的特點(diǎn)
壓力傳感器常見(jiàn)的三種測(cè)量方式
FPGA應(yīng)用之vivado三種常用IP核的調(diào)用
ROS移動(dòng)機(jī)器人中常用的編碼器
![<b class='flag-5'>ROS</b>移動(dòng)機(jī)器人<b class='flag-5'>中常用</b>的編碼<b class='flag-5'>器</b>](https://file1.elecfans.com/web2/M00/81/D8/wKgaomQT0ruAXOMaAAFYZkg18dE322.jpg)
評(píng)論