Michael, <div>  To your original question.  We use the name *_link in the robot because they are auto generated from the physical links in the URDF.  On the PR2 the base_laser_link is attached to the base_link by a fixed joint, whereas the laser_tilt_link goes through the spine and the tilting joint.  The base_footprint is an example of a convenience frame, where it is the position of the base, but oriented vertically even if the robot rocks on its wheels. </div>

<div><br></div><div>Tully<br><br><div class="gmail_quote">On Fri, May 14, 2010 at 5:00 PM, John Hsu <span dir="ltr"><<a href="mailto:johnhsu@willowgarage.com">johnhsu@willowgarage.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi,<br><br>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.<br>



<br>There are various ways to see the PR2 kinematics tree structure, for example you can use tools in urdf package:<br><br>rosmake urdf<br>rosrun xacro xacro.py `rospack find pr2_description`/robots/pr2.urdf.xacro > /tmp/pr2.urdf<br>



rosrun urdf urdf_to_graphviz /tmp/pr2.urdf<br>evince pr2.pdf<br><br>Regards,<br><font color="#888888">John</font><div><div></div><div class="h5"><br><br><div class="gmail_quote">On Fri, May 14, 2010 at 4:39 PM, Wim Meeussen <span dir="ltr"><<a href="mailto:meeussen@willowgarage.com" target="_blank">meeussen@willowgarage.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex"><div>> Wim, I'm not sure I understand this rationale.  Somewhere someone is<br>


> chaining all the transforms and computing the shallow tree.<br>
<br>
</div>The shallow tree is only computed once, and then published over tf. So<br>
every tf listener can efficiently compute transformations between<br>
links. If we publish the more natural tree, then every single tf<br>
listener would have to do extra computations to chain links together.<br>
<div><br>
> Why not just<br>
> publish a more "natural" tree, along with the pre-computed transforms that<br>
> go into the shallow tree?<br>
<br>
</div>I'm not sure I understand what you mean. Tf doesn't allow us to<br>
publish the same tree twice.<br>
<div><br>
Wim<br>
<br>
<br>
--<br>
--<br>
Wim Meeussen<br>
Willow Garage Inc.<br>
<<a href="http://www.willowgarage.com" target="_blank">http://www.willowgarage.com</a>)<br>
_______________________________________________<br>
</div><div><div></div><div>ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org" target="_blank">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
</div></div></blockquote></div><br>
</div></div><br>_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Tully Foote<br>Systems Engineer<br>Willow Garage, Inc.<br><a href="mailto:tfoote@willowgarage.com">tfoote@willowgarage.com</a><br>(650) 475-2827<br>
</div>