對于模型的視覺和傳感器方面,網格可以增加實時性,下面将展示怎麼使用自定義的網格來設定出現在仿真器中的模型。
附加的網格作為視覺:網格最常用的例子是做一個逼真的視覺效果。
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中,底盤添加網格後的視覺效果如圖所示。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9cmaOFzZU9kZsREZmR3RlZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DM5MDOyMjMyETNxMDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
7.對于該模型,底盤明顯太大,是以我們需要規範視覺,按一定的比例因子修改視覺。
<visual name='visual'>
<geometry>
<mesh>
<uri>model://pioneer2dx/meshes/chassis.dae</uri>
<scale>0.9 0.5 0.5</scale>
</mesh>
</geometry>
</visual>
修改後的結果如下所示:
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>
結果如下:
注意:本例中,我們僅僅為機器人簡單的修改了<visual>元素,是以通過GUI和對于基于GPU的傳感器如照相機,深度錄影機,雷射器來說,這個模型看上去像Pioneer 2DX的縮小版本。由于沒有修改模型中的<collision>元素,模型box的幾何結構将會被實體引擎(碰撞動力學)和基于CPU的雷射傳感器繼續使用。
本文靠自己了解,翻譯而來,錯誤之處望不吝指教!!!