ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

URDF, Attaching two joints to one link for a gripper

asked 2020-01-09 13:57:06 -0600

Aaron MV gravatar image

updated 2020-01-09 17:42:42 -0600

jayess gravatar image

HI everyone im trying to make my own gripper , but i had a problem , how can i can attach two joints to the same link? for example LINK "A" attach with link c(green color) and "A" attached with B , im used mimic tag but it dosnt work , its any one can help me please? here is my urdf code AND an image of my gripper image description I'm searched about "virtual links" and "dummy" but i cant find anything, well thanks for reading this post =) hope you can help me!

ROS VERSION : KINETIC

<?xml version="1.0"?>
<robot name="gripper">
    <link name="world"/>
                            <!-- BASE -->
    <link name="base_link">
        <visual>
            <geometry>
                <mesh filename="package://odam_arm/meshes/GRIPPER_DAE/base.dae" scale="1 1 1"/>
            </geometry>
        </visual>
        <material name="blue">
            <color rgba="${0/255} ${0/255} ${255/255} 1.0"/>
        </material>
        <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0"/>
    </link>


    <joint name="fixed_joint" type="fixed">
        <parent link="world"/>
        <child link="base_link"/>
    </joint>

    <!-- LEFT PART BASE ACTUADOR  -->

    <link name="actBody_Link">
        <visual>
            <geometry>
                <mesh filename="package://odam_arm/meshes/GRIPPER_DAE/ActuadorBody.dae" scale="1 1 1"/>
            </geometry>
        </visual>
        <material name="blue">
            <color rgba="${0/255} ${0/255} ${255/255} 1.0"/>
        </material>
        <origin xyz=" 0 0 0.0" rpy="0.0 0.0 0.0"/>>
    </link>


    <joint name="actBody_Joint" type="revolute">
        <parent link="base_link"/>
        <child link="actBody_Link"/>
        <origin xyz=" 0.044661  -0.022722  0.016772   " rpy="0.0 0.0 0.0"/>
        <axis xyz="0 0 1 "/>
        <limit effort="200" lower="-0.02" upper="0.13" velocity="1.0"/>

    </joint>

    <!-- LEFT PART SHAFT ACTUADOR OR C PART -->
    <link name="actShaft_Link">
        <visual>
            <geometry>
                <mesh filename="package://odam_arm/meshes/GRIPPER_DAE/ActuadorShaft.dae" scale="1 1 1"/>
            </geometry>
        </visual>
        <material name="blue">
            <color rgba="${0/255} ${0/255} ${255/255} 1.0"/>
        </material>
        <origin xyz="0 0 0.0" rpy="0.0 0.0 0.0"/>>
    </link>


    <joint name="actShaft_Joint" type="fixed">
        <parent link="actBody_Link"/>
        <child link="actShaft_Link"/>
        <origin xyz="0.029065  -0.091559  0.004383   " rpy="0 0 0.3"/>
        <axis xyz="0 1 0 "/>
        <limit effort="200" lower="0.0" upper="0.05" velocity="1.0"/>
        <!-- <mimic joint="part1_Joint" multiplier="1" offset="0"/> -->
    </joint>
        <!-- PART5  OR A PART-->
    <link name="part5_Link">
        <visual>
            <geometry>
                <mesh filename="package://odam_arm/meshes/GRIPPER_DAE/parte5.dae" scale="1 1 1"/>
            </geometry>
        </visual>
        <material name="blue">
            <color rgba="${0/255} ${0/255} ${255/255} 1.0"/>
        </material>
        <origin xyz="0 0 0.0" rpy="0.0 0.0 0.0"/>>
    </link>


    <joint name="part5_Joint" type="revolute">
        <parent link="base_link"/>
        <child link="part5_Link"/>
        <origin xyz="0.043003 ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-01-09 16:33:08 -0600

The URDF format does not support closed loops of links so cannot represent a four bar linkage such as your gripper.

There is a solution though. URDF models can describe mimic joints where the angle of one joint is defined to have a linear relationship to the angle of another joint. In your case one of the four revolute joints on each side of your gripper would be a normal joint, two others would be mimic joints, and the final joint wouldn't need adding at all. This is not an ideal solution and only works for parallel four bar linkages, but it will work in your case.

Here's an example of this being used in a URDF model.

edit flag offensive delete link more

Comments

Thank's for your fast response , i will try it!

Aaron MV gravatar image Aaron MV  ( 2020-01-10 12:41:35 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2020-01-09 13:57:06 -0600

Seen: 2,995 times

Last updated: Jan 09 '20