0
$\begingroup$

Rosanswers logo

I am trying to simulate my mobile robot with a 5DOF arm. I came across the IKFast tutorial which mentions that I need a dummy link in my URDF. However, I am confused as to how to introduce this dummy link in my URDF. Some examples use a fixed joint between the world link and the robot chassis. If I create a dummy link and and a fixed joint to my robot chassis, will it be mobile? Should I use a planar joint? Here, base_link is my chassis (gray colored in the image below).

Here is IKFast tutorial which I am referring to. Also I get a similar error while using KDL as mentioned in this unsolved post.

Image for reference

Is this the right way to do it? Are my dummy joint parameters right? My current URDF file without dummy links here.

<link name="world">

<link
    name="base_link">
    <inertial>
        <origin
        ...
        <mass
        ...
        <inertia
        ...
    </inertial>
    <visual>
    ...
    </visual>
    <collision>
    ...
    </collision>
</link>

<joint
    name="dummy_joint"
    type="fixed">
    <origin
        xyz="0 0 0"
        rpy="0 0 0" />
    <parent
        link="world" />
    <child
        link="base_link" />
    ...
</joint>

<link
    name="wheel_front_left_link">
    <inertial>
    ...
    </inertial>
    <visual>
    ...
    </visual>
    <collision>
    ...
    </collision>
</link>

<joint
    name="wheel_front_left_joint"
    type="continuous">
    ...
</joint>

Originally posted by heethesh on ROS Answers with karma: 33 on 2018-04-18

Post score: 2


Original comments

Comment by Geoff on 2018-04-18:
Can you post a link to the tutorial telling you to add a dummy link? Knowing the reason why will help us provide better advice.

Comment by heethesh on 2018-04-19:
Updated the post with links.

Comment by gvdhoorn on 2018-04-19:\

Also I get a similar error while using KDL as mentioned in this unsolved post.

note: that is not an error, but a warning.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Typically, I'll name my dummy link "base_link",
and add a fixed joint between "base_link" and the robot's chassis/mount, etc.

In this case, "base_link" does not map to any physical robot structure (chassis, arm mount, etc.) but simply represents the robot's base coordinate frame.

For a fixed robot (relative world_frame for RViz/Gazebo),
I'll add an additional "world_link" and a fixed joint from "world_link" to "base_link"


In your case, I'd suggest renaming your current "base_link" to something more descriptive (e.g. "square_base", "chassis") and then adding an "empty" "base_link" as shown in the examples below.


Example (mobile robot):

<?xml version="1.0" ?>
<robot name="Mobile_Robot"> 
  
  <link name="base_link" />

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

  <link name="chassis">
    <inertial>
    ...
    </inertial>
    <visual>
    ...
    </visual>
    <collision>
    ...
    </collision>
   </link>

   ...
</robot>

Example (fixed robot):

<?xml version="1.0" ?>
<robot name="Fixed_Robot"> 
  
  <link name="world" />

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

  <link name="base_link" />

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

  <link name="chassis">
    <inertial>
    ...
    </inertial>
    <visual>
    ...
    </visual>
    <collision>
    ...
    </collision>
   </link>

   ...
</robot>

Originally posted by josephcoombe with karma: 697 on 2018-04-19

This answer was ACCEPTED on the original site

Post score: 4


Original comments

Comment by heethesh on 2018-04-20:
Thanks a lot. This is very helpful.

Comment by sapan on 2018-07-20:
Hi, to constrain the robot motion I am adding joint between the base of the robot and world. But as I need 3 such joints for 3 Dof robot, I am trying to add dummy_link. world>dummy_link(revolute joint)>base_link(prismatic joint) But then I get no error in terminal but model doesn't appears in gazebo

Comment by LR on 2020-10-21:
it doesn't work!!!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.