Gazebo系列教程 <构建一个机器人 2.2> 修改模型的外观与添加传感器

10 篇文章 0 订阅
8 篇文章 0 订阅

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值