[ros-users] REP-105, base_footprint and odom_combined

Martin Günther mguenthe at uos.de
Tue Sep 13 12:14:23 UTC 2011

On Mon, 12 Sep 2011 20:03:13 -0700
Wim Meeussen <meeussen at willowgarage.com> wrote:

> > REP-105 [1] states that the coordinate frames for navigation should
> > look like this:
> >
> >    map --> odom --> base_link
> >
> > ... where base_link can be an arbitrary link and does not have to
> > lie in the ground plane.
> >
> > However, the PR2 specifies an additional virtual link,
> > base_footprint, which lies below base_link in the ground plane.
> > Moreover, robot_pose_ekf publishes transforms from odom_combined to
> > base_footprint. All in all, the PR2's frames look like this (on
> > Diamondback):
> >
> >    map --> odom_combined --> base_footprint --> base_link
> >
> > So, what is the best way to resolve this inconsistency when
> > creating an own URDF model?
> >   - Follow the REP? This unfortunately means that robot_pose_ekf
> > cannot be used, since the transform from odom_combined to
> > base_footprint is hard coded.
> >   - Follow PR2's model? In that case, the REP should probably be
> > updated.
> The PR2 indeed does not follow the REP, which is unfortunate. We were
> concerned that changing the name from odom_combined to odom would
> break the code of many people.  For setting up your own robot, I'd
> recommend following the REP and not the PR2.  Also note that the robot
> pose ekf has a parameter called "output_frame" which allows you to
> change the name of the 'odom_combined' frame.

True, it does, I wasn't aware of that. Still, the name "base_footprint"
is hardcoded. Additionally, robot_pose_ekf sets the z coordinate of its
transform to zero when visual odometry is not activated. 

This means that robot_pose_ekf can only be used with a frame called
"base_footprint" that is oriented with the Z axis pointing upwards (or
downwards) and which lies in the ground plane, whereas the REP says
that "the base_link can be attached to the base in any arbitrary
position or orienation".

Since the PR2 is something like a "reference implementation", I guess
I'll just stick with base_footprint and odom_combined. Otherwise, I'll
have to remember everytime I port something from the PR2 to rename
those two frames. In my opinion, it would still be nice to update the
REP, though.

Best wishes,

Dipl.-Inf. Martin Günther
Universität Osnabrück
Institut für Informatik
Albrechtstr. 28  (Raum 31/503)
D-49076 Osnabrück

Fon: 0541 969 2434
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5404 bytes
Desc: not available
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20110913/b774c8d9/attachment-0002.p7s>

More information about the ros-users mailing list