URDF集成Gazebo的基本流程
(1)创建功能包
功能包:urdf_gazebo
依赖:urdf xacro gazebo_ros gazebo_ros_control gazebo_plugins
(2)文件夹准备
新建文件夹:urdf——新建文件
urdf文件写好之后,可以用check_urdf工具检查是否有语法错误,人工检查难以发现,可能会导致后续gazebo环境中无法正确显示。
检查命令:在终端进入urdf文件所在文件夹
check_urdf xxx.urdf(urdf文件名)
urdf代码示例:
<robot name="myrobot">
<link name="base_link">
<!-- 可视化部分 -->
<visual>
<geometry>
<box size="0.5 0.3 0.1"/>
</geometry>
<origin xyz="0 0 0" rpy="0 0 0"/>
<!-- 由于仿真中刚体不会透明,于是颜色在gazebo中不再生效,gazebo有特定的颜色设置 -->
<material name="yellow">
<color rgba="0.5 0.5 0 0.8"/>
</material>
</visual>
<!-- gezebo与rviz不同的部分:collision碰撞属性和inertial惯性矩阵 -->
<!-- 1.碰撞参数collision:如果是标准几何体,直接复制isual中的geometry和origin即可 -->
<collision>
<geometry>
<box size="0.5 0.3 0.1"/>
</geometry>
<origin xyz="0 0 0" rpy="0 0 0"/>
</collision>
<!-- 2.惯性矩阵inertial:需要公式计算,与重心和质量有关 -->
<inertial>
<!-- 设置重心偏移:质量密度均匀时就是000 -->
<origin xyz="0 0 0"/>
<!-- 标签mass设置质量 -->
<mass value="2"/>
<!-- 不同维度上的惯性参数:需要通过公式计算,否则仿真可能会出问题 -->
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
</inertial>
</link>
<!-- gazebo颜色设置(注意位置,设置在连杆标签外的) -->
<gazebo reference="base_link">
<material>Gazebo/Red</material>
</gazebo>
</robot>
将urdf文件和gazebo启动集成到launch文件中
<launch>
<!-- 在参数服务器中载入urdf -->
<param name="robot_description" textfile="$(find urdf_gazebo)/urdf/helloworld.urdf"/>
<!-- 启动gazebo仿真环境 -->
<include file="$(find gazebo_ros)/launch/empty_world.launch"/>
<!-- 在gazebo中添加机器人模型 -->
<node pkg="gazebo_ros" type="spawn_model" name="spawn_model" args="-urdf -model car -param robot_description"/>
</launch>
终端中source,并roslaunch打开launch文件即可在gazebo中看到效果。