Difference between revisions of "Talk:ROS HOWTO"

From AIRWiki
Jump to: navigation, search
(Created page with "= About specific ROS packages = == tf == From [http://www.ros.org/wiki/tf ROS documentation]: "''tf is a package that lets the user keep track of multiple coordinate frames o...")
(No difference)

Revision as of 14:14, 14 June 2012

About specific ROS packages

tf

From ROS documentation: "tf is a package that lets the user keep track of multiple coordinate frames over time. tf maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time" (from ROS documentation). It is a key element of ROS and, if you work on mobile robotics, there's not much that you can do with ROS without using tf.

One problem of the ROS documentation about tf is that there are countless references to a frame called /world but... /world is not defined anywhere! The solution is that (see this help page) "By convention, the /world frame is never defined. The frame /world is simply the default."

Actually, it seems that the "default" reference frame does not need to be called /world. tf manages a tree of reference frames, where each frame has one (and only one) parent. The only exception to this rule is the frame that constitutes the root of the tree, which has no parent. This is OK, as long as there is a single root frame: i.e., as long as every other frame in the tree has a parent. Which frame is the root, i.e. which is the "default" frame, seems to be defined implicitly. In fact, any frame F in the tree is there because a transform between another frame (its parent) and F has been defined. So, the one frame that has been used as a parent while defining at least one transform, but has not been defined itself through a transform from another frame, is the root of the tree. The name of such root, or "default", frame seems to be arbitrary; frequently it is called "/map" or "/world".