Using Prismatic Joint in Gazebo

asked 2023-07-10 04:51:47 -0600

hasanatici gravatar image

Although I have defined the joint in the xacro file, the robot does not move in the z-axis. What is the reason?

<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="anil_robot">

<xacro:include filename="$(find five_bar_robot)/urdf/right.xacro"/>
<xacro:include filename="$(find five_bar_robot)/urdf/left.xacro"/>

<link name="world"/>

<joint name="world2dummy" type="fixed">
    <parent link="world"/>
    <child link="dummy_link"/>
</joint>

<link name="dummy_link">
    <mu1>0.2</mu1>
    <mu2>0.1</mu2>
    <inertial>
        <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
        <mass value="1" />
        <inertia ixx="20.0" ixy="0.0" ixz="0.0" iyy="20.0" iyz="0.0" izz="20.0" />
    </inertial>
</link>

<joint name="dummy2dummy" type="prismatic">
    <parent link="dummy_link"/>
    <child link="dummy_link_2"/>
    <axis xyz="0 0 1"/>
    <limit lower="0" upper="0.1" velocity="0.8" effort="1000"/>
    <origin xyz="0 0 0" rpy="0 0 0"/>
</joint>

<link name="dummy_link_2">
    <mu1>0.2</mu1>
    <mu2>0.1</mu2>
    <inertial>
        <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
        <mass value="1" />
        <inertia ixx="20.0" ixy="0.0" ixz="0.0" iyy="20.0" iyz="0.0" izz="20.0" />
    </inertial>
</link>

<xacro:right name="right"/>

<joint name="dummy_joint_1" type="fixed">
    <parent link="dummy_link_2" />
    <child link="base_link_right" />
    <axis xyz="0 0 1"/>
</joint>

<xacro:left name="left"/>

<joint name="dummy_joint_2" type="fixed">
    <parent link="dummy_link_2" />
    <child link="base_link_left" />
    <axis xyz="0 0 1"/>
</joint>

<link name="end_link">
    <mu1>0.2</mu1>
    <mu2>0.1</mu2>
    <visual>
        <geometry>
            <cylinder radius="0.0025" length="0.005" />
        </geometry>
        <origin rpy="0 0 0" xyz="0 0 0" />
        <material name="blue">
            <color rgba="0 0 1 1" />
        </material>
    </visual>
    <collision>
        <geometry>
            <cylinder radius="0.0025" length="0.005" />
        </geometry>
        <origin rpy="0 0 0" xyz="0 0 0" />
    </collision>
    <inertial>
        <origin xyz="0.0 0.0 0.0025" rpy="0.0 0.0 0.0" />
        <mass value="2.0" />
        <inertia ixx="5.0" ixy="0.0" ixz="0.0" iyy="5.0" iyz="0.0" izz="5.0" />
    </inertial>
</link>

<joint name="right_end_joint" type="fixed">
    <parent link="right_link_5"/>
    <child link="end_link"/>
    <origin xyz="-0.074 0.074 0" rpy="0.0 0.0 0.0"/>
</joint>

<link name="left_end_link">
    <inertial>
    <origin xyz="0 0 0" rpy="0 0 0"/>
    <mass value="0.001"/>
    <inertia
        ixx="0.0001" ixy="0.0" ixz="0.0"
        iyy="0.0001" iyz="0.0"
        izz="0.0001"/>
    </inertial>
</link>

<joint name="left_end_virtual_joint" type="fixed">
    <parent link="end_link"/>
    <child link="left_end_link"/>
    <origin xyz="0 0 0" rpy="0 0 0"/>
</joint>


<gazebo>
    <joint name="left_end_joint" type="fixed">
        <parent> left_link_5 </parent>
        <child> left_end_link </child>
        <pose> 0 0 0 0 0 0 </pose>
    </joint>
</gazebo>

<gazebo>
    <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
    <robotNamespace></robotNamespace>
    <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
    <legacyModeNS>true</legacyModeNS>
    <gravity>0</gravity>
    </plugin>
</gazebo>

<transmission name="prismatic">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="dummy2dummy">
        <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
    </joint>
    <actuator name="prismatic_motor">
        <mechanicalReduction>1.0</mechanicalReduction>
        <hardwareInterface>hardware_interface/EffortJointInterface ...
(more)
edit retag flag offensive close merge delete