对于模型的视觉和传感器方面,网格可以增加实时性,下面将展示怎么使用自定义的网格来设定出现在仿真器中的模型。
附加的网格作为视觉:网格最常用的例子是做一个逼真的视觉效果。
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中,底盘添加网格后的视觉效果如图所示。
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的激光传感器继续使用。
本文靠自己理解,翻译而来,错误之处望不吝指教!!!