+1 for the general idea and the naming convention.

One remark:
In the frame hierarchy, torso is directly attached base_link. This may not be always the case, e.g. for biped robots with an actuated spine. Maybe we could just add "..." to make the hierarchy more flexible?

- base_link
   - base_footprint
   - ... - (l|r)_ankle - (l_r)_sole - (l|r)_toe
   - ... - torso    <-------------------------------
      - ... - gaze
      - ... - (l|r)_wrist - (l|r)_gripper

In any case, I think this REP is bound to evolve as new biped mechanical structures appear.

Antonio El Khoury

On Wed, Jan 18, 2012 at 3:02 PM, Thomas Moulard <thomas.moulard@gmail.com> wrote:
On Fri, Jan 13, 2012 at 11:17 AM, Armin Hornung
<HornungA@informatik.uni-freiburg.de> wrote:
> Hi Thomas!
>
> I edited in the description of the base_footprint with some minor
> adjustments to keep it more general, and added a a rationale why this should
> be as described (I think this makes it easier to understand). I added
> another sentence to l/r_sole. What I don't fully understand are "It is
> recommended to choose the origin as the projection of the body center on the
> contact surface." for sole and toe. Is this the same as the sentence I added
> afterwards? Then I would suggest to change "body center" into "support body
> origin" or "support body link origin".

(I am posting your mail back to the ml so that anyone can take part in
the discussion)

Yes this is right, I made the modification.

> I also changed the frame hierarchy into a tree-format, what do you think?

It is better, I fixed it to be valid rst. Is it not as nice as your
tree, but I did not find any way
to do a better formatting job...

> You're right about the ankle, I haven't thought of non-rigid feet. I guess
> I'm too fixed to our Nao's which are all rigid and have no toes. Thinking
> about toes, I think there should be also room for an intermediate frame. In
> URDF there will be a frame at the toe link which is a child of the ankle or
> sole. Only then does the toe link follow (rigid or non-rigid like
> ankle->sole, is this correct?

Yes, this is correct.

> Concerning Tully's comments on the mailing list I tend to agree. Torso also
> sounds less medical or biological than chest (but that might only be my own
> preference since I've used "Torso" more often than "Chest"). I like "hand"
> more as it's more general than the "gripper" (which on the other hand is
> very specific to the PR2) but afaik the whole grasping / arm_navigation code
> in ROS is already using this convention.

I switched to torso and gripper to follow PR2 naming scheme.
I do not have any preference but we have to keep in mind that it would
not be sufficient
to use the PR2 arm navigation directly as PR2 frame names are
l_gripper_* and not l_gripper directly.
I it also a chance as it means that it is straight forward to add a
fixed joint in the PR2 model to
define the l_gripper / r_gripper as proposed in this REP.

@Tully:
IMHO adding a "strict" hierarchy will make the REP much more complex
to follow when dealing with mobile robots.
I think that humanoid robotos mechanical structure will evolve a lot
in the future. It will be much easier to extend it when
needed and complete it than freezing the whole thing right now.
As far as I'm concerned, I use task space control so as long as I can
identify the robot hands, I can generate a command which
will move them at the appropriate position without having any
knowledge regarding the intermediary frames and the real robot
structure.

Therefore, I would recommend not standardizing intermediary frames
unless you find it is crucial to do so.

The updated REP is here:
- online version:
http://laas.github.com/rep-coordinate-frames-for-biped-robots/rep-0120.html
- git repository / sources:
https://github.com/laas/rep-coordinate-frames-for-biped-robots

Best,
--
Thomas Moulard