Hi,

As far as I know, PR2's tf tree is designed for transforms efficiency and not meant to represent the PR2 kinematics structures.  Also, tf is exactly the same whether you're running in simulation or on the robot.

There are various ways to see the PR2 kinematics tree structure, for example you can use tools in urdf package:

rosmake urdf
rosrun xacro xacro.py `rospack find pr2_description`/robots/pr2.urdf.xacro > /tmp/pr2.urdf
rosrun urdf urdf_to_graphviz /tmp/pr2.urdf
evince pr2.pdf

Regards,
John

On Fri, May 14, 2010 at 4:39 PM, Wim Meeussen <meeussen@willowgarage.com> wrote:
> Wim, I'm not sure I understand this rationale.  Somewhere someone is
> chaining all the transforms and computing the shallow tree.

The shallow tree is only computed once, and then published over tf. So
every tf listener can efficiently compute transformations between
links. If we publish the more natural tree, then every single tf
listener would have to do extra computations to chain links together.

> Why not just
> publish a more "natural" tree, along with the pre-computed transforms that
> go into the shallow tree?

I'm not sure I understand what you mean. Tf doesn't allow us to
publish the same tree twice.

Wim


--
--
Wim Meeussen
Willow Garage Inc.
<http://www.willowgarage.com)
_______________________________________________