教程四:附上meshes
Meshes能够给模型添加真实感.这个教程描述了用户如何用自定义的meshes来定义他们的模型在仿真时的显示.
一.添加视觉效果
1.回到my_robot文件夹下
cd ~/.gazebo/models/my_robot
2.用你最喜欢的编辑器打开model.sdf
gedit ~/.gazebo/models/my_robot/model.sdf
3.接下来我们给车体添加一个mesh.找到name=visual的部分,如下所示.
<visual name='visual'>
<geometry>
<box>
<size>.4 .2 .1</size>
</box>
</geometry>
</visual>
4.mesh能够来自磁盘中的文件或者其他模型.本例中我们将会使用来自 pioneer2dx 模型中的mesh.改变程序如下:
<visual name='visual'>
<geometry>
<mesh>
<uri>model://pioneer2dx/meshes/chassis.dae</uri>
</mesh>
</geometry>
</visual>
5.查看本地缓存的模型数据库,查看是否具有上述<mesh>块引用的pioneer2dx模型.
ls -l ~/.gazebo/models/pioneer2dx/meshes/chassis.dae
如果不存在,通过在Gazebo中至少运行一次Pioneer 2DX模型或者下载这个模型到本地:
cd ~/.gazebo/models
wget -q -R *index.html*,*.tar.gz --no-parent -r -x -nH http://models.gazebosim.org/pioneer2dx/
6.在Gazebo中,拖动My Robot模型到世界中.它看起来和pioneer2dx很像.
7.这个车身看起来太大了,所以我们要调整
8.在visual中添加一个<scale>
9.这看起来又太低了.我们把他抬高一点.
需要注意的是,我们只修改了<visual>元素,没有修改<collision>元素,,所以我们只是改变了模型的显示情况,但是在物理碰撞上使用的还是<collision>中所定义的尺寸.
教程五:向机器人中添加传感器
这个教程介绍了用户如何使用<include>和<joint>连接不同模型来构成的复杂模型.
一.添加一个雷达
向模型中添加雷达的问题相当于是将它包含在模型中.
1.回到你之前的model文件夹
cd ~/.gazebo/models/my_robot
2.用你最喜欢的编辑器打开model.sdf.
3.在末尾</model>前添加如下代码
<include>
<uri>model://hokuyo</uri>
<pose>0.2 0 0.2 0 0 0</pose>
</include>
<joint name="hokuyo_joint" type="fixed">
<child>hokuyo::link</child>
<parent>chassis</parent>
</joint>
<include>部分命令Gazebo去找指定的模型,并将它以一定的位姿插入.这里我们将hokuyo雷达放在了机器人的前端.<uri>部分告诉Gazebo所要找的模型在它的模型库中的位置.(你可以通过这里和这里2查看模型库中的模型).
<joint>用来连接雷达和车身.设置为fixed是为了防止它移动.
<child>中的内容来自hokuyo model's SDF,它的开头是这样的
当hokuyo被插入以后,它的link被放在了以它的模型名字为名的命名空间中.这样,因为它的模型名为hokuyo,所以每一个hokuyo模型中的link的表示都要加上hokuyo::.
4.现在启动Gazebo,并将机器人插入.如果当前hokuyo模型不存在,那么Gazebo会从Model Database中添加又或者直接下载:
cd ~/.gazebo/models
wget -q -R *index.html*,*.tar.gz --no-parent -r -x -nH http://models.gazebosim.org/hokuyo/
启动效果如下
5.(练习)尝试添加一个照相机.相机模型的URI是model://camera.
网友评论