1. 程式人生 > >使用GAZEBO開啟機械臂模型遇到的一些問題的記錄

使用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裡面就不倒了。

在整個修改的過程中其實還遇到了許多其他問題,因為太多了好多都不記得了,為了幫助自己以後能更好的解決問題同時也能給其他小夥伴一些解決問題的思路,決定將這個過程記錄下來。很多不足之處請見諒。_