1.打开ardupilot_gazebo文件夹,在models文件中创立文件夹 放入sdf文件:
2.打开worlds文件夹,打开某一world
在文档末尾加入模型代码
<!--add模型: -->
<model name='target'> <!--模型名字-->
<pose frame=''>0 0 0 0 0 0</pose> <!--模型相对于世界坐标系所放位置-->
<include>
<scale>1 1 1</scale> <!--尺寸比例-->
<uri>model://target</uri><!--注意写法:models文件夹中放入sdf文件的文件夹名-->
</include>
</model>
</world>
</sdf>
gazebo启动world :
# 启动gazebo仿真器 //killall gzserver
cd ~/ardupilot_gazebo
gazebo --verbose worlds/iris_arducopter_runway——copy.world
详细见:
见: 在gazebo的world文件中插入sdf模型_sdf加入world文件-CSDN博客
<?xml version ?> xml的版本
<sdf version> sdf的版本,和config里<sdf>的版本要一样呀
<model name> 模型的名字
<pose> 在世界中的位置 x y z pitch yaw roll
<static> 选择模型是否固定
<link>链接 包含模型的一个主体的物理属性,尽量减少模型中链接数量以提高性能和稳定
<collision>: 用于碰撞检查,一个link可以有多个碰撞元素
<geometry> 物体
<box> | <sphere> | <cylinder>形状名字
<size> x y z长度 | <radius>半径 | <radius> & <length>
<surface> 平面
<friction>设置地面摩擦力
<ode> <mu> <slip>
<visual>: 可视化
<geometry> 几何形状
<box>形状名字
<size> x y z长度
<inertial>: 惯性元素,描述了link的动态特性,例如质量和转动惯量矩阵
<mass> 质量
<inertia> !!!注意这两单词不一样呀
<sensor>: 从world收集数据用于plugin
<light>: 光源
<joint>关节 关节连接两个link,用于旋转轴和关节限制等
<plugin>插件 用于控制模型