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

What do three frames(baselink\odom\map) mean?

asked 2017-05-03 03:09:45 -0500

DaDaLee gravatar image

I've read over robot_localization documents , REP105 and the ROSCon 2015 presenation but still got confused by these frames. Here's my question:

1.About base_link frame: It's said to be attached to the robot.Does it mean it always keeps x axis pointing forward like ENU coordinates and move with the robot?

2.About odom frame: Why is it continuous ? The input data of imu and odometry are offered in certain frequency,isn't it discrete data? And why does it drift over time?Is it because the position is calculated by twiste data rather than given by GPS?

3.About map frame: As can be seen from the rviz, the map frame seems to go with odom frame.What's the diffrence between them?

Last but not least,my GPS,IMU,Odometry all pub discrete data but vary in frequency. What I learn from the robot_localization package is that IMU and Odometry are continuous.Which is right? I do appreciate it if someone can enlighten it to me.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
2

answered 2017-05-03 05:28:01 -0500

Sebastian got 1 and 3 right. For number 2, here is the definition from the REP you reference, with my comments

However, the pose of a robot in the odom frame is guaranteed to be continuous, meaning that the pose of a mobile platform in the odom frame always evolves in a smooth way, without discrete jumps.

Continuity here is not meant in the mathmatical distinction between discrete and continuous. It means, that you always have small errors, but no jumps in position. You can assume that the difference between the current and previous position estimates is approximately the distance travelled.

The map frame is not continuous, meaning the pose of a mobile platform in the map frame can change in discrete jumps at any time.

If you revisit a place, your robot (its SLAM software) might recognize that place and its position estimate could change very much instantaneously. Therefore you shouldn't assume that the difference between the current and previous position estimates is the actual distance travelled.

edit flag offensive delete link more

Comments

Thanks for the good explanation! Now I think this REP would even speak against using GPS as a source for odometry, as GPS is generally not continuous in the described sense.

Sebastian Kasperski gravatar image Sebastian Kasperski  ( 2017-05-03 07:36:25 -0500 )edit

Thank you guys! It helps a lot.

DaDaLee gravatar image DaDaLee  ( 2017-05-03 20:36:21 -0500 )edit

I am having some trouble following. How can odom and map both be truly, as REP 105 says, world-fixed frames if the transform map -> odom is allow to vary with time. Is the phrase world-fixed frame being used a little loosely in this context?

mattbrown11 gravatar image mattbrown11  ( 2017-06-25 20:04:48 -0500 )edit
3

answered 2017-05-03 05:01:35 -0500

Sebastian Kasperski gravatar image

updated 2017-05-03 07:39:44 -0500

  1. Yes. It will point forward from the robot, NOT north (as in ENU).
  2. See Felix' answer for a good explanation on this. Odometry is usually calculated by integrating wheel encoder data or input commands, which will drift away from the real position. GPS is a global localization and not really odometry.
  3. "map" frame is your global localization, provided by a localizer or a SLAM algorithm. "odometry" will drift away from "map" as the odometry error grows over time. (In fact the transformation map->odometry represents the odometry correction caculated by whatever global localization you use) If your odometry is global already (due to GPS), "map" and "odom" will indeed stay aligned.
edit flag offensive delete link more

Question Tools

3 followers

Stats

Asked: 2017-05-03 03:09:45 -0500

Seen: 4,414 times

Last updated: May 03 '17