学习笔记20--世界文件(.world)加载其他模型或者模型文件(.sdf)里面引用其他模型的方法总结

环境:ubuntu16.04 ros-kinetic gazebo7.16

利用gazebo仿真时候,需要用到的是sdf文件的,虽然机器人模型使用的是urdf,但在gazebo运行时候,其内部也会把机器人文件urdf转为sdf加载到gazebo里面的.但是,这不是本次总结的重点.

这里总结的是gazebo仿真时候,常用到的两种文件,a.world,model.sdf文件,前者用于launch文件中加载的是自己搭建的世界环境;后者是可以在gazebo-insert选项里面选择插入的.

那么,对于model.sdf类型的,需要引用某一现成的模型,可以使用标签,如在引用gazebo/model里面的一个imu模型到该新建模型里面:

<model>
.......
    <include>
      <uri>model://imu</uri>//指定引用模型的路径文件
      <pose>0 -0.50 0.050 0 0 0</pose>//定义位置
      <name>a</name>//重新给个新名字
    </include>
    <joint type="fixed" name="ium_joint">
      <child>a::link</child>//该引入的模型作为子link的名称在joint中编写样式
      <parent>base_link</parent>//父link指定
    </joint>
  </model>//注意,引用模型是在现有的model标签内部的

对于.world类型的sdf,可以允许多个model在文件中,引用时候做好命名以及位置给定就ok了.如在.world文件中加载同一类型,但是各个位置准确的suv:

<world>
<model name="a">
.......
</model>
.....
<model name="b">//重新命名
<pose>8.14 -1.8 0 0 0 0</pose>//给定位置
    <include>
      <static>false</static>//false表示模型b可以在gazebo里面活动
      <uri>model://suv</uri>//引用 .gazebo/models 模型的样式
    </include>
</model>
<model name="c">
<pose>12 -1.8 0 0 0 0</pose>
    <include>
      <static>false</static>
      <uri>model://suv</uri>
    </include>
</model>

</world>

这里总结一下,方便下次搭建模型时候可以一下子查到,并会想起来.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值