ROS导出的urdf模型在gazebo中搭建模型轮子凹陷在地面里解决方法

左心房为你撑大大i 提交于 2020-08-17 17:47:32

ROS导出的urdf模型在gazebo中搭建模型轮子凹陷在地面里解决方法
问题描述
在gazebo仿真时,一侧的轮子直接凹陷下去了,在我把主动轮删除之后四个轮子都会凹陷下去。
#如图所示


问题解决

开始以为是坐标系设置出现问题,于是修改wheel的参数,当我把wheel半径设置的足够小时(0.01),解决了如上情况,但是在通过键盘操控机器人模型时,完全不会发生运动,此方法不可取。后来发现是wheel的rpy设置上出现了问题,在wheel_link的rpy设置的是rpy=" M P I / 2 00 " ; 而 在 碰 撞 属 性 设 置 的 r p y = " 000 " ; 设 置 应 保 持 一 样 , 都 选 取 为 r p y = " {M_PI/2} 0 0";而在碰撞属性设置的rpy="0 0 0";设置应保持一样,都选取为rpy=" MPI/200"rpy="000"rpy="{M_PI/2} 0 0"。

代码如下所示(仅wheel)

<xacro:macro name="wheel" params="prefix reflect reflect1">
    <joint name="${prefix}_wheel_joint" type="continuous">
        <origin xyz="${reflect*wheel_joint_x}  ${reflect1*wheel_joint_y}  ${-wheel_joint_z}" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="${prefix}_wheel_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="${prefix}_wheel_link">
        <visual>
            <origin xyz="0 0 0" **rpy="${M_PI/2} 0 0" />**
            <geometry>
                <cylinder radius="${wheel_radius}" length = "${wheel_length}"/>
            </geometry>
            <material name="gray" />
        </visual>
        <collision>
            <origin xyz="0 0 0" **rpy="${M_PI/2} 0 0" />**
            <geometry>
                <cylinder radius="${wheel_radius}" length = "${wheel_length}"/>
            </geometry>
        </collision>
        <cylinder_inertial_matrix  m="${wheel_mass}" r="${wheel_radius}" h="${wheel_length}" />
    </link>
    <gazebo reference="${prefix}_wheel_link">
        <material>Gazebo/Gray</material>
    </gazebo>
    <!-- Transmission is important to link the joints and the controller -->
    <transmission name="${prefix}_wheel_joint_trans">
        <type>transmission_interface/SimpleTransmission</type>
        <joint name="${prefix}_wheel_joint" >
            <hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
        </joint>
        <actuator name="${prefix}_wheel_joint_motor">
            <hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
            <mechanicalReduction>1</mechanicalReduction>
        </actuator>
    </transmission>
</xacro:macro>

图像显示

在这里插入图片描述

#提出问题
有大神知道为什么当wheel半径足够小时轮子就不下陷了吗

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!