Ask Your Question

kinematic problem with an urdf loaded in move-it

asked 2017-04-26 15:30:03 -0600

Nemo_Nullius gravatar image

updated 2017-04-27 03:50:10 -0600

Good morning to everyone, I am having some problems with the "Robot model" built by move-it starting from a urdf I made.

The Urdf is this one:

    <?xml version="1.0"?>

DH for Racer_5L:
a = [0.05000, 0.3700, 0.05000,  0.00000,  0.00000,  0.0000]
d = [0.36500, 0.00000,0.00000,  0.38594,  0.00000,  0.0800]
alpha = [ -1.570796327, 0,-1.570796327, 1.570796327, -1.570796327, 0 ]
q_home_offset = [0, 0, 0, 0, 0, 0]
<robot name="Racer5L" 

 <property name="pi" value="3.14159265" />

 <!-- Inertia parameters -->
  <property name="base_mass" value="4.0" /> <!-- Invented number, only matters for simulator -->
  <property name="shoulder_mass" value="3.7000" />
  <property name="upper_arm_mass" value="8.3930" />
  <property name="forearm_mass" value="2.2750" />
  <property name="wrist_1_mass" value="1.2190" />
  <property name="wrist_2_mass" value="1.2190" />
  <property name="wrist_3_mass" value="0.1879" />

<material name="gray">
    <color rgba="0.41 0.41 0.41 1"/>

<!--kinematic chain-->
 <link name="base" >
    <origin xyz="0 0 0"/>

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

  <link name="base_link" >
        <mesh filename="package://omni_base_robot_model_tom/meshes/CAD_5L_STL/AA_Racer5_1.stl" scale="0.01 0.01 0.01" />
      <origin xyz="0.0 0.0 0" rpy="0 0 0.0 " />
      <material name="gray"/>

<joint name="Ax_1" type="revolute">
    <origin rpy="0 0 0" xyz="0.0 0.0 0.242"  />
    <axis xyz="0 0 1" />
    <parent link="base_link"/>
    <child link="link_1"/>
    <limit lower="-2.967059725" upper="2.967059725" effort="1" velocity="3.14"/>

<link name="link_1">
        <mesh filename="package://omni_base_robot_model_tom/meshes/CAD_5L_STL/AA_Racer5_2.stl" scale="0.01 0.01 0.01" />
     <material name="gray"/>
     <origin rpy="0 0.0 0" xyz="0.0 0.0 -0.242"/>

<joint name="Ax_2" type="revolute">
    <origin xyz="0.0 -0.05 0.123" rpy="0 0 0" />
    <axis xyz="1 0 0" />
    <parent link="link_1" />
    <child link = "link_2" />
    <limit lower="-1.483529862" upper="2.356194488" effort="1" velocity="3.14"/>

<link name="link_2">
        <mesh filename="package://omni_base_robot_model_tom/meshes/CAD_5L_STL/AA_Racer5_3.stl" scale="0.01 0.01 0.01"/>
      <origin xyz="0.0 0.05 -0.365" rpy="0 0 0"/>
     <material name="gray"/>

<joint name="Ax_3" type="revolute">
    <origin xyz="0 0 0.370" rpy="0 0 0" />
    <parent link="link_2" />
    <child link = "link_3" />
    <axis xyz="1 0 0" />
    <limit lower="-3.14159265" upper="1.134464012" effort="1" velocity="3.14"/>

<link name="link_3">
        <mesh filename="package://omni_base_robot_model_tom/meshes/CAD_5L_STL/AA_Racer5_4.stl" scale="0.01 0.01 0.01"/>
      <origin rpy="0 0 0" xyz="0.0 0.05 -0.735"/>
     <material name="gray"/>

  <joint name="ee_fixed_joint" type="fixed">
    <parent link="link_3" />
    <child link = "ee_link" />
    <origin xyz="0.0 -0.1 0.05 ...
edit retag flag offensive close merge delete


It is very hard to give any help with incomplete source. The URDF you posted appears to be cut off, and without seeing your MoveIt config we do not know how you configured the robot. The robot doesn't look correct in rviz, either.

Geoff gravatar image Geoff  ( 2017-04-26 22:50:39 -0600 )edit

@Geoff I riedited the question trying to be more specific.

Nemo_Nullius gravatar image Nemo_Nullius  ( 2017-04-27 04:14:17 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-04-27 20:18:11 -0600

Geoff gravatar image

Your robot has quite limited degrees of freedom, and the interactive marker in MoveIt's rviz plugin doesn't play well with robots like that. The first thing you can try is ticking the Allow Approximate IK Solutions option in the rviz control panel for MoveIt. It's on the "Context" tab. I have a similar arm and ticking that box allowed me to control it interactively, although not particularly well.

If you haven't already, generating an IKFast plugin for your MoveIt config will probably help a lot. Follow the tutorial, and choose the TranslationDirection5D IK type when generating the IK solver. Aside from making planning significantly faster, this solver will be able to more reliably provide a solution than the default IK in MoveIt. My arm's reachable space improved when I generated an IKFast plugin.

Finally, a trick that some people use is to add a fake link and joint at the end effector. This gives MoveIt a little more freedom in planning. You have to add it to your URDF and to your MoveIt config (both as the end point of the planning group for the arm and set it as a passive joint, since there is nothing to control it). See the turtlebot_arm packages for an example. The fake link and joint are defined on line 25 of the URDF, and you can run the MoveIt setup assistant and point it at the turtlebot_arm_moveit_config package to load in the turtlebot_arm MoveIt config and see how it is set up.

edit flag offensive delete link more


thanks a lot the first two solution helped a lot.

Nemo_Nullius gravatar image Nemo_Nullius  ( 2017-04-28 03:43:06 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2017-04-26 15:30:03 -0600

Seen: 78 times

Last updated: Apr 27 '17