Ask Your Question
0

Can you let me know what is wrong with this URDF? [closed]

asked 2018-01-31 23:16:54 -0600

dpakshimpo gravatar image

updated 2018-02-01 07:04:54 -0600

Airuno2L gravatar image

I created the following robot in Gazebo and then converted it using py2sdf package to URDF. I am able to load the package in MoveIt! However, when I go the poses tab, I can see that only my arm1 is moving and others are not mobile. Any hints would be appreciated. I am a novice, so please pardon mistakes.

<?xml version="1.0" ?>
<robot name="gripper3">
  <joint name="gripper3__arm1_arm2_joint" type="revolute">
    <parent link="gripper3__arm1"/>
    <child link="gripper3__arm2"/>
    <origin rpy="0  0  0" xyz="0  0  1"/>
    <axis xyz="1  0  0"/>
    <limit effort="-1.0" lower="1.0" upper="1.0" velocity="-1.0"/>
  </joint>
  <joint name="gripper3__arm2_arm3_joint" type="revolute">
    <parent link="gripper3__arm2"/>
    <child link="gripper3__arm3"/>
    <origin rpy="0  0  0" xyz="0  0  1"/>
    <axis xyz="1  0  0"/>
    <limit effort="-1.0" lower="1.0" upper="1.0" velocity="-1.0"/>
  </joint>
  <joint name="gripper3__arm3_gripper_joint" type="revolute">
    <parent link="gripper3__arm3"/>
    <child link="gripper3__gripper_box"/>
    <origin rpy="0  0  0" xyz="0  0  1"/>
    <axis xyz="1  0  0"/>
    <limit effort="-1.0" lower="-1.79769" upper="1.79769" velocity="-1.0"/>
  </joint>
  <joint name="gripper3__base_arm1_joint" type="revolute">
    <parent link="gripper3__base"/>
    <child link="gripper3__arm1"/>
    <origin rpy="0  0  0" xyz="0   0   0.1"/>
    <axis xyz="1  0  0"/>
    <limit effort="-1.0" lower="-1.79769" upper="1.79769" velocity="-1.0"/>
  </joint>
  <joint name="gripper3__lgripper_joint" type="prismatic">
    <parent link="gripper3__gripper_box"/>
    <child link="gripper3__lgripper"/>
    <origin rpy="0  0  0" xyz="-0.2  0.2  0.1"/>
    <axis xyz="1  0  0"/>
    <limit effort="-1.0" lower="-1.79769" upper="1.79769" velocity="-1.0"/>
  </joint>
  <joint name="gripper3__rgripper_joint" type="prismatic">
    <parent link="gripper3__gripper_box"/>
    <child link="gripper3__rgripper"/>
    <origin rpy="0  0  0" xyz="0.2   0.2   0.15"/>
    <axis xyz="1  0  0"/>
    <limit effort="-1.0" lower="-1.79769" upper="1.79769" velocity="-1.0"/>
  </joint>
  <link name="gripper3__base">
    <inertial>
      <mass value="6"/>
      <origin rpy="0  0  0" xyz="0  0  0"/>
      <inertia ixx="0.68" ixy="0" ixz="0" iyy="0.68" iyz="0" izz="0.68"/>
    </inertial>
    <collision name="gripper3__collision">
      <origin rpy="0  0  0" xyz="0  0  0"/>
      <geometry>
        <box size="1 1 0.6"/>
      </geometry>
    </collision>
    <visual name="gripper3__visual">
      <origin rpy="0  0  0" xyz="0  0  0"/>
      <geometry>
        <box size="1 1 0.6"/>
      </geometry>
    </visual>
  </link>
  <link name="gripper3__arm1">
    <inertial>
      <mass value="0.1"/>
      <origin rpy="0  0  0" xyz="0   0   0.5"/>
      <inertia ixx="0.008583" ixy="0" ixz="0" iyy="0.008583" iyz="0" izz="0.0005"/>
    </inertial>
    <collision name="gripper3__collision">
      <origin rpy="0  0  0" xyz="0   0   0.5"/>
      <geometry>
        <cylinder length="1" radius="0.1"/>
      </geometry>
    </collision>
    <visual name="gripper3__visual">
      <origin rpy="0  0  0" xyz="0   0   0.5"/>
      <geometry>
        <cylinder length="1" radius="0.1"/>
      </geometry>
    </visual>
  </link>
  <link name="gripper3__arm2">
    <inertial>
      <mass value="0.1"/>
      <origin rpy="0  0  0" xyz="0   0   0.5"/>
      <inertia ixx="0.008583" ixy="0" ixz="0" iyy="0.008583" iyz="0" izz="0.0005"/>
    </inertial>
    <collision name ...
(more)
edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by dpakshimpo
close date 2018-03-22 03:20:01.224980

Comments

please edit your question using the preformatted text button 010101 to make any code you paste readable...

mgruhler gravatar imagemgruhler ( 2018-02-01 01:06:26 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2018-02-01 08:50:27 -0600

updated 2018-02-01 08:51:00 -0600

The upper and lower limits on the revolute joint "gripper3_arm1_arm2_joint" are both 1 - basically that says the joint angle must be >= 1 and <= 1, making it effectively a fixed joint.

  <joint name="gripper3__arm1_arm2_joint" type="revolute">
    ...
    <limit effort="-1.0" lower="1.0" upper="1.0" velocity="-1.0"/>
  </joint>

The same can be said of revolute joint "gripper3__arm2_arm3_joint".

  <joint name="gripper3__arm2_arm3_joint" type="revolute">
    ...
    <limit effort="-1.0" lower="1.0" upper="1.0" velocity="-1.0"/>
  </joint>

Whereas the joint that moves has a lower limit of -1.79769 and an upper limit of 1.79769

  <joint name="gripper3__arm3_gripper_joint" type="revolute">
    ...
    <limit effort="-1.0" lower="-1.79769" upper="1.79769" velocity="-1.0"/>
  </joint>

I'd encourage you to read through the URDF documentation here: http://wiki.ros.org/urdf/XML/joint

edit flag offensive delete link more

Comments

1

Thank you, this solved my problem. Actually, I had created the robot in Gazebo, when I converted it to URDF using py2sdf, some parameters looks to have changed.

dpakshimpo gravatar imagedpakshimpo ( 2018-02-06 03:07:44 -0600 )edit
1

Awesome, glad you were able to get it working.

I've never used py2sdf, but you may consider opening an issue/PR in the py2sdf repo to document the bug you encountered!

josephcoombe gravatar imagejosephcoombe ( 2018-03-26 10:31:43 -0600 )edit

Sure, will try to do it

dpakshimpo gravatar imagedpakshimpo ( 2018-03-29 06:49:51 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2018-01-31 23:16:54 -0600

Seen: 89 times

Last updated: Feb 01 '18