REP: 120 Title: Coordinate Frames for Humanoid Robots Author: Thomas Moulard <thomas.moulard@gmail.com> Status: Active Type: Informational Content-Type: text/x-rst Requires: 103, 105 Created: 25-Nov-2011 Post-History: 11-Jan-2012, 18-Jan-2012, 08-Feb-2012
This REP specifies naming conventions and semantic meaning for coordinate frames of humanoid robots used within ROS.
Developers of packages aimed at humanoid robots need a shared convention for coordinate frames in order to better integrate and re-use software components.
The REP 105 [2] already defines frames for mobile bases. This REP both remains compatible with REP 105 [2] and extends it to label other important locations on a humanoid robot such as the gaze (head), left and right wrists, hands and feet.
The coordinate frame called base_link
is rigidly attached to the
robot root body. It is recommended to choose the robot waist as its
root body. The base_link
can be attached to the root in any
arbitrary position or orientation; for every hardware platform there
will be a different place on the base that provides an obvious point
of reference. Note that REP 103 [1] specifies a preferred orientation
for frames.
The base_footprint
is the representation of the robot position on
the floor. The floor is usually the level where the supporting leg rests,
i.e. z = min(l_sole_z, r_sole_z) where l_sole_z and r_sole_z are the left
and right sole height respecitvely. The translation component of the frame
should be the barycenter of the feet projections on the floor. With respect
to the odom
frame, the roll and pitch angles should be zero and the
yaw angle should correspond to the base_link
yaw angle.
Rationale: base_footprint
provides a fairly stable 2D planar representation
of the humanoid even while walking and swaying with the base_link
.
The coordinate frame called l_wrist
defines the position and
orientation of the left arm regardless of the tool (grasping device
for instance) attached to it.
The coordinate frame called r_wrist
defines the equivalent
frame for the right arm.
The coordinate frame called l_gripper
defines the position and
orientation of the left arm end effector.
If the end effector is a grasping device, the frame should be located at the recommended object grasping location. The frame orientation is defined as X the axis going "toward" the object. Y the main dimension in which the grasping device moves and Z orthogonal to X and Y axes.
The coordinate frame called r_gripper
defines the equivalent frame
for the right arm.
The coordinate frame called l_ankle
defines the position and
orientation of the left leg regardless of the support body geometry.
The coordinate frame called r_ankle
defines the equivalent
frame for the right leg.
The coordinate frame called l_sole
defines the position and
orientation of the left leg support body. The (X,Y) plane of this
frame must be coplanar with the support body contact surface. It is
recommended to choose the origin as the projection of the support body
origin on the contact surface. The Z coordinate of this frame should
be on the ground level when standing.
The coordinate frame called r_sole
defines the equivalent
frame for the right leg.
The coordinate frame called l_toe
defines the position and
orientation of the left leg toe body. The (X,Y) plan of this frame
must be coplanar with the toe body contact surface. It is recommended
to choose the origin as the projection of the body center on the
contact surface.
The coordinate frame called r_toe
defines the equivalent frame
for the right leg.
The coordinate frame called gaze
defines the head position and
orientation. The orientation indicates in which direction the head
appears to be looking regardless of any sensors (camera for instance).
The coordinate frame called torso
is attached to the lowest body
of the model which is a parent of l_gripper
, r_gripper
and
gaze
.
See REP 105 [1] for map
and odom
frames definition.
- base_link
- base_footprint
- ... - (l|r)_ankle - (l_r)_sole - (l|r)_toe
- ... - torso
- ... - gaze
- ... - (l|r)_wrist - (l|r)_gripper
Unlike most mobile bases, the transformation from base_link
to
base_footprint
is not rigid on humanoid robots and is broadcasted by
an external node.
The scope of potential robotics software is too broad to require all ROS software to follow the guidelines of this REP. However, choosing different conventions should be well justified and well documented.
This REP depends on and is compliant with REP 103 [1] and REP 105 [2].
[1] | REP 103, Standard Units of Measure and Coordinate Conventions (http://www.ros.org/reps/rep-0103.html) |
[2] | REP 105, Coordinate Frames for Mobile Platforms (http://www.ros.org/reps/rep-0105.html) |
This document has been placed in the public domain.