ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Tf frames of a mobile robot

asked 2012-12-09 10:18:17 -0500

Karan gravatar image

updated 2012-12-09 10:18:44 -0500

I am working on mobile robot which has kinect mounted on it with an IMU unit.

I am confused about the frames of various types..Considering the above example please tell me what are the following frames. 1. Map frame 2. Odom frame 3. Base frame.

i know that the transformation between the kinect and base frame would be equal to the vector which should be added to base frame to get kinect frame...

Now i dont understand is what is Odom frame and what is the /tf between kinect and odom frame and how is it generated.. is it IMU readings or the Slam output pose for instance as in Gmapping.

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2012-12-09 11:22:30 -0500

Ben_S gravatar image

updated 2012-12-09 11:22:55 -0500

You should read this tutorial and then this proposal (REP 105). The proposal lists the differences and meanings of the most important frames (/map, /odom, /base_link).

In your setup the IMU would be responsible for the generation of the /odom -> /base_link transform.

Edit: Damn, too slow again. :D

edit flag offensive delete link more

answered 2012-12-09 11:17:07 -0500

Mac gravatar image

You want REP 105.

edit flag offensive delete link more

answered 2012-12-10 02:04:40 -0500

Karan gravatar image

updated 2013-01-12 08:18:44 -0500


I have gone through that tutorial already but i am missing something very basic... The /tf between two frames is a constant matrix...right?? For example a kinect is a fixed distance away from the center of the robot so the /tf is fixed... You said that IMU would make /odom -> /base_link transform... should not that be fixed equal to physical displacement from center of robot.. I know i am wrong here but what am i missing..? Please give an example if you can to explain the working of frames according to the above would be very helpful... What i am really asking is that what is the physical significance of the /odom frame w.r.t kinect frame or base_link_frame..

P.S. sorry had to answer my own question because the comment word limit was being exceeded..

edit flag offensive delete link more



Please read the support page. Do not create answers for updates, discussion or subsequent questions. You can always edit your question. And no, the tf between two frames is not necessarily a constant matrix. It's the (maybe changing) relation between the frames.

Lorenz gravatar image Lorenz  ( 2012-12-10 02:27:12 -0500 )edit

You could have edited your initial question. Transforms are not static (but can be). You typically use static transforms for your base -> sensor displacements. The odom -> base_link transform is dynamic and accumulates all movements of the robot. (starting point -> current position)

Ben_S gravatar image Ben_S  ( 2012-12-10 02:29:40 -0500 )edit

So this means in order to convert a current point cloud to Starting frame i should first apply static /tf between kinect and base.And then dynamic /odom tf to the resulting point cloud in previous step to convert it to starting point frame map.And then keep adding points to first cloud to get a map?

Karan gravatar image Karan  ( 2012-12-10 06:19:14 -0500 )edit

You can get and apply the complete transform in one step. No need to manually apply multiple transforms. If you odometry would be perfect, you could do just what you descibed. But since IMUs are very noisy and experience a lot of drift you need a more complex slam approach like for example rgbdslam.

Ben_S gravatar image Ben_S  ( 2012-12-10 09:10:05 -0500 )edit

Thanks i think i get it now... so i should use IMU transform for a certain distance till the noise is not much and fuse this with rgbdslam's estimate with the package robot_pose_ekf... i guess that should work..!

Karan gravatar image Karan  ( 2012-12-11 03:30:21 -0500 )edit

Question Tools


Asked: 2012-12-09 10:18:17 -0500

Seen: 1,610 times

Last updated: Jan 12 '13