[ros-users] Urdf joints/links question

Kirila Adamova kirila.adamova at dfki.de
Tue Jun 1 13:32:41 UTC 2010


Hi all,

I am currently writing a 3D model in urdf. I have two cylinders, which 
are connected with a joint. The second cylinder, however, is rotated and 
can be rotated further in the same direction. When I visualize them in 
gazebo, the joint is in the center of the second cylinder. Is there a 
way to make it at the end of the cylinder because that is the point 
around which I need to rotate it. To make it more clear (or even more 
confusing), here is sample code:

<link name="feet">
        <inertial>
            <origin xyz="0 0 0.275" rpy="0 0 0"/>
            <mass value="100"/>
            <inertia ixx="1" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
        </inertial>
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <cylinder radius="0.100" length="0.250"/>
            </geometry>
        </visual>
        <collision>
                  <origin xyz="0 0 0" rpy="0 0 0"/>
                  <geometry>
                    <cylinder radius="0.100" length="0.230"/>
                  </geometry>
            </collision>
    </link>

    <link name="hips">
        <inertial>
            <origin xyz="0 0 0.570" rpy="0 2.2 0"/>
            <mass value="50"/>
            <inertia ixx="1" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
        </inertial>
        <visual>
            <origin xyz="0 0 0" rpy="0 2.2 0"/>
            <geometry>
                <cylinder radius="0.060" length="0.420"/>
            </geometry>
        </visual>
        <collision>
                  <origin xyz="0 0 0" rpy="0 2.2 0"/>
                  <geometry>
                    <cylinder radius="0.060" length="0.400"/>
                  </geometry>
            </collision>
    </link>

    <joint name="knees" type="revolute">
        <parent link="feet"/>
        <child link="hips"/>
        <origin xyz="0 0 0.275"/>
        <axis xyz="0 0 1"/>
        <limit lower="1.31" upper="3.22" effort="30" velocity="1.0"/>
    </joint>

Currently, the axis xyz is set to z, although it needs to be y, because 
when it's set somewhere else, the whole model goes crazy (jumps and 
turns around) in gazebo.

Help will be greatly appreciated,

Kirila

p.s. End result must rotate the second cylinder around the point between 
the two cylinders around the y axis.



More information about the ros-users mailing list