ROS:URDF集成Gazebo的基本流程

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中看到效果。

猜你喜欢

转载自blog.csdn.net/weixin_45205599/article/details/129628533