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半径足够小时轮子就不下陷了吗
来源:oschina
链接:https://my.oschina.net/u/4294583/blog/4501681