[ros-users] Draft REP: Coordinate Frames for Humanoids Robots

Armin Hornung HornungA at informatik.uni-freiburg.de
Wed Jan 11 16:17:32 UTC 2012

On 2012-01-11 12:06, Thomas Moulard wrote:
> Hi all,
> Attached is a draft defining naming conventions and semantic meaning
> for coordinate frames of legged robots used within ROS.
+1 for the REP in general, it's a good idea to standardize as early as 
possible! I have a few questions / comments below:

- It might be good to standardize wrt. wheeled manipulation robots such 
as the PR2 or TUM's Rosie as well concerning arms and head frames, so 
that manipulation algorithms can be shared. For this the upper body is 
largely independent  of the locomotion (legs or wheels).

- right/left is differentiated by l/r prefixes on the PR2 this would 
make sense here as well (more in line with existing conventions, short 
to type, easier to swap out just one letter with xacro).

- base_footprint: We've had some good experience using this one for 
navigation instead of the "floating" base_link on humanoids. The REP 
should specify where the "floor" is however (lowest or supporting foot 
sole, not necessarily z=0 in multilevel / 3D environments). To use 
regular 2D navigation it's good to have the same yaw angle as base_link 
but with pitch and roll enforced to 0 in the projection. In the optimal 
case, I think this shouldn't oscillate from the swaying torso motion 
when walking so instead of only projecting down from base_link we chose 
the average between the two foot frames (see 
This is fairly stable when walking so it can be used with a local 
velocity controller.

- *_hand: I couldn't immediately understand the frame orientation from 
the description ;)

- gaze: does the description mean this should always switch to the 
currently active sensor (e.g. a camera pointing down), or where the 
humanoid's head appears to be looking e.g. for interaction?

- I'm not sure why both ankle and sole (end of the leg chain) need to be 
standardized. Say there are 2 DOF in the ankle, where would the 
right_ankle frame be? If it's *after* the joints, isn't it just a 
constant offset from  *_sole then? (I guess the same applies for wrist 
and hand).


Armin Hornung
Humanoid Robots Lab, Albert-Ludwigs-Universität Freiburg
Contact: http://www.informatik.uni-freiburg.de/~hornunga

More information about the ros-users mailing list