ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
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>
2 | No.2 Revision |
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>
3 | No.3 Revision |
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>