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

Revision history [back]

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

If I want a fixed robot, I'll add an additional "world_link" and a fixed joint from "world_link" to "base_link"


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="Mobile 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>

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

If I want 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, robot (relative world_frame for RViz/Gazebo),
I'll add an additional "world_link" and a fixed joint from "world_link" to "base_link"


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="Mobile 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>

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"> 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="Mobile 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>