使用GAZEBO打开机械臂模型遇到的一些问题的记录

使用GAZEBO打开机械臂模型遇到的一些问题的记录
1:首先需要修改urdf文件,改为xacro文件。
需要添加新的属性,具体为以下几点:
a.collision属性;inertial属性;

 <link name = "wpm2_joint_1">
        <visual>
            <geometry>
                <mesh filename="package://wpm2_bringup/meshes/wpm2_joint_1.stl" scale="1 1 1"/>
            </geometry>
            <origin rpy = "1.57 0 1.57" xyz = "-0.1 -0.1 0"/>
		<material name="grey" />
        </visual>
 	<collision>
            <geometry>
                <mesh filename="package://wpm2_bringup/meshes/wpm2_joint_1.stl" scale="1 1 1"/>
            </geometry>
 		<origin rpy = "1.57 0 1.57" xyz = "-0.1 -0.1 0"/>
        </collision>
	 <inertial>
            <mass value = "26.9213342129"/>
            <inertia ixx="0.10687694632" ixy="0.0" ixz="0.0" iyy="0.1086228932" iyz="0.0" izz = "9.6094290127E-002"/>
        </inertial>
   </link>

b.gazebo属性

   <gazebo reference="base_link">
        <material>Gazebo/grey</material>
    </gazebo>
    <gazebo reference="wpm2_joint_1">
        <material>Gazebo/grey</material>
    </gazebo>

c.Transmissions 模块

 <!-- Transmissions for ROS Control -->
    <xacro:macro name="transmission_block" params="joint_name">
        <transmission name="tran1">
            <type>transmission_interface/SimpleTransmission</type>
            <joint name="${joint_name}">
                <hardwareInterface>PositionJointInterface</hardwareInterface>
            </joint>
            <actuator name="motor1">
                <hardwareInterface>PositionJointInterface</hardwareInterface>
                <mechanicalReduction>1</mechanicalReduction>
            </actuator>
        </transmission>
    </xacro:macro>

d.

 <!-- ros_control plugin -->
  <gazebo>
    <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
      <robotNamespace>/arm</robotNamespace>
    </plugin>
</gazebo>

ps 不要忘记要在xacro文件的开始加上下面代码

 <?xml version = "1.0"?>
<robot name="WPM-2" xmlns:xacro="http://www.ros.org/wiki/xacro">

2.在最初打开模型文件时我的模型会马上就倒了,无法直立。摸索以后发现可能是以下两个原因:
a.xacro文件中的inertial属性当中应该添加正确的参数,我们最初只有一个urdf文件,把这个文件导入到一个计算软件中计算出对应各个link的值,教研室另外一个同学这样做就解决了模型坍塌的问题,但是我的并没有得到解决,继续摸索之后发现可能是下面一个原因
b.还记得之前添加的transmissions模块吗

<joint name="joint${joint_prefix}">
                                <hardwareInterface>PositionJointInterface</hardwareInterface>
                                <!--<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>-->
                        </joint>

请看上面代码,被注释掉的那行代码里面多了hardware_interface/;只需要将这一句删掉,变成注释行上面那一句后模型在gazebo里面就不倒了。

在整个修改的过程中其实还遇到了许多其他问题,因为太多了好多都不记得了,为了帮助自己以后能更好的解决问题同时也能给其他小伙伴一些解决问题的思路,决定将这个过程记录下来。很多不足之处请见谅。_

猜你喜欢

转载自blog.csdn.net/weixin_42449333/article/details/86232786