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

Top Page
Attachments:
Message as email
+ (text/plain)
+ smime.p7s (application/pkcs7-signature)
Delete this message
Reply to this message
Author: User discussions
Date:  
To: wim, User discussions
Subject: Re: [ros-users] REP-105, base_footprint and odom_combined
On Mon, 12 Sep 2011 20:03:13 -0700
Wim Meeussen <> 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,
Martin

--
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
http://www.inf.uos.de/mguenthe/