[ros-users] tf doubts

Tully Foote tfoote at willowgarage.com
Mon Jun 28 05:41:06 UTC 2010


Narasimhan,
You are precisely right the transform represents the difference in pose 
between turtle1 and turtle2.

The position is stored as a vector and the orientation as a quaternion.  
The transform is a tf::Transform which is a btTransform underneath.  You 
should read over the API to find out what things like the 3 argument 
constructor arguments are for btQuaternion.  They are documented in the 
bullet package.

And I would suggest that you find your choice of reference to understand 
quaternions, and how to convert from euler angles etc. A google search 
will find plenty of good references.

Tully

On 06/27/2010 06:35 AM, Narasimhan wrote:
> in this tutorial
> http://www.ros.org/wiki/tf/Tutorials/Writing%20a%20tf%20listener%20%28C%2B%2B%29
> Writing a tf listener
> i wanted to know what transform.getOrigin().x() and
> transform.getOrigin().y() were.
> first i just thought that they were the difference in the x and y
> coordinates of turtle1 and turtle2.
> but i found out that the values are different.( by adding the line
> "ROS_INFO("net displacement is /turtle1-/turtle2: (%.4f, %.4f, %.4f)",
> transform.getOrigin().x(),transform.getOrigin().y() ,
> transform.getOrigin().z());" to the turtle_tf_listener.cpp and running it
> separately)
> so what exactly are they.
>
> and what is Quaternion w, x, y, z and how is it related to the turtle. i
> guess it represents the turtles orientation(direction it faces) since its
> position is already represented by its coordinates.
> and in this
> http://www.ros.org/wiki/tf/Tutorials/Writing%20a%20tf%20broadcaster%20%28C%2B%2B%29
> Writing a tf broadcaster   "transform.setRotation(tf::Quaternion(msg->theta,
> 0, 0));" how does theta change to w and z.
>    



More information about the ros-users mailing list