[REP Index] [REP Source]

REP:120
Title:Coordinate Frames for Humanoids Robots
Author:Thomas Moulard <thomas.moulard at 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

Abstract

This REP specifies naming conventions and semantic meaning for coordinate frames of humanoids robots used within ROS.

Motivation

Developers of packages aimed at humanoids 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.

Specification

Coordinate Frames

base_footprint

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.

l_wrist and r_wrist

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.

l_gripper and r_gripper

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.

l_ankle and r_ankle

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.

l_sole and r_sole

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.

l_toe and r_toe

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.

gaze

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).

torso

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.

map and odom

See REP 105 [1] for map and odom frames definition.

Frame Hierarchy

  • base_link
    • base_footprint

    • ... - (l|r)_ankle - (l_r)_sole - (l|r)_toe

    • ... - torso
      • ... - gaze
      • ... - (l|r)_wrist - (l|r)_gripper

Frame Authorities

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.

Exceptions

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.

Compliance

This REP depends on and is compliant with REP 103 [1] and REP 105 [2].

References

[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)