天天看點

六 Gazebo學習總結之附加網格

 對于模型的視覺和傳感器方面,網格可以增加實時性,下面将展示怎麼使用自定義的網格來設定出現在仿真器中的模型。

附加的網格作為視覺:網格最常用的例子是做一個逼真的視覺效果。

1.引導到my_robot目錄

cd ~/.gazebo/models/my_robot      

2.打開model.sdf檔案

gedit ~/.gazebo/models/my_robot/model.sdf      

3.添加一個網格到底盤的視覺效果,找到name=visual,如下所示:

<visual name='visual'>
  <geometry>
    <box>
      <size>.4 .2 .1</size>
    </box>
  </geometry>
</visual>
           

4.網格能來自于磁盤上的檔案,或者另一個模型,本例中使用來自pioneer2dx模型的網格,如下所示改變visual元素(但其他部分保持不變)。

<visual name='visual'>
  <geometry>
    <mesh>
      <uri>model://pioneer2dx/meshes/chassis.dae</uri>
    </mesh>
  </geometry>
</visual>
           

5.檢視本地緩存模型資料庫,看是否有pioneer2dx模型。

ls -l ~/.gazebo/models/pioneer2dx/meshes/chassis.dae      

如果網格檔案不存在,通過點選Gazebo上的Pioneer 2DX至少一次,從模型資料庫中下載下傳該模型(Insert->http://gazebosim.org/models)。

或者手動下載下傳模型檔案夾到本地緩存檔案夾。

cd ~/.gazebo/models
wget -R *index.html*,*.tar.gz --cut-dirs=1 --no-parent -r -x -nH http://gazebosim.org/models/pioneer2dx/      

6.在Gazebo的GUI界面,拖My Robot模型到world中,底盤添加網格後的視覺效果如圖所示。

六 Gazebo學習總結之附加網格

7.對于該模型,底盤明顯太大,是以我們需要規範視覺,按一定的比例因子修改視覺。

<visual name='visual'>
  <geometry>
    <mesh>
      <uri>model://pioneer2dx/meshes/chassis.dae</uri>
      <scale>0.9 0.5 0.5</scale>
     </mesh>
  </geometry>
</visual>
           

修改後的結果如下所示:

六 Gazebo學習總結之附加網格

8.沿着Z-軸的萬向輪視覺感覺也有點太高,那麼可通過指定坐标來改變box的視覺元素。

<visual name='visual'>
  <pose>0 0 0.05 0 0 0</pose>
   <geometry>
    <mesh>
      <uri>model://pioneer2dx/meshes/chassis.dae</uri>
      <scale>0.9 0.5 0.5</scale>
    </mesh>
  </geometry>
</visual>
           

結果如下:

六 Gazebo學習總結之附加網格

注意:本例中,我們僅僅為機器人簡單的修改了<visual>元素,是以通過GUI和對于基于GPU的傳感器如照相機,深度錄影機,雷射器來說,這個模型看上去像Pioneer 2DX的縮小版本。由于沒有修改模型中的<collision>元素,模型box的幾何結構将會被實體引擎(碰撞動力學)和基于CPU的雷射傳感器繼續使用。

本文靠自己了解,翻譯而來,錯誤之處望不吝指教!!!

繼續閱讀