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/