1.修改模型外观
*当sdf文件修改后然后保存,在gazebo中insert时会自动更新模型文件,所以在模型文件修改后,不需要关闭然后再重新打开gazebo的。
大概的意思就是将某个模型的外观属性(visual)修改成模型库中的相关文件,只是外观的改变,像碰撞模型、实际尺寸等是不变的。
这样修改的目的,其实就是教会大家怎么引用别人的模型文件来为自己所使用。
(1)cd进入自己文件夹
cd ~/.gazebo/models/my_robot
(2)大概sdf文件,预备编辑
gedit ~/.gazebo/models/my_robot/model.sdf
(3)在model的文件中,修改外观属性,首先找到如下的几行
<visual name='visual'>
<geometry>
<box>
<size>.4 .2 .1</size>
</box>
</geometry>
</visual>
(4)然后修改成这样:
<visual name='visual'>
<geometry>
<mesh>
<uri>model://pioneer2dx/meshes/chassis.dae</uri>
</mesh>
</geometry>
</visual>
其实就是把原来的底盘更换成了pioneer2dx中的chassis模型(pioneer2dx在./gazebo/models中);
官网是有整个的模型文件的,更新到现在大概有700M的样子;官网下载网址如下:
https://github.com/osrf/gazebo_models
或者百度网盘地址(gazebo models 模型下载):
链接:https://pan.baidu.com/s/1HKVfmgEok20_JbZ8NxYa6g
提取码:kv6t
打开之后的效果是这样的(偷了一下懒,这是第6步之后的样子,不过整体差不多啦)
(5)修改外观的尺寸
黑框的就是新添加的,相当于是把原来的尺寸缩小了
<visual name='visual'>
<geometry>
<mesh>
<uri>model://pioneer2dx/meshes/chassis.dae</uri>
<scale>0.9 0.5 0.5</scale>
</mesh>
</geometry>
</visual>
(6)修改外观整体高度
<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>
2.添加传感器
本节主要演示怎么将一个激光传感器添加到机器人或者其他任何模型上。
(1)进入my robot文件夹
cd ~/.gazebo/models/my_robot
(2)通过gedit打开sdf文件,并在</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的含义是在给的的位置(pose)插入包含的模型;uri的意思就是告诉去哪里找这个hokuyo模型,相当于是一个路径。
如果对ros以及urdf/xacro比较了解的话,joint也就比较熟悉了。joint是描述的一个连接关系,其中child是子节点,也就是传感器;parent就是底盘;
以上就是gazebo的显示;
(3)添加一个摄像机,在刚才代码后面继续添加
<include>
<uri>model://camera</uri>
<pose>0.2 0 0.4 0 0 0</pose>
</include>
<joint name="camera_joint" type="fixed">
<child>camera::link</child>
<parent>chassis</parent>
</joint>
以上是gazebo的显示
另,由于gazebo的模型文件是sdf格式,这里附一个urdf转sdf格式链接供参考:
https://zhuanlan.zhihu.com/p/129661375
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)