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.

Originally posted by DaDaLee on ROS Answers with karma: 113 on 2017-05-03

Post score: 3

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.

Originally posted by Felix Endres with karma: 6468 on 2017-05-03

This answer was ACCEPTED on the original site

Post score: 2

Comment by Sebastian Kasperski on 2017-05-03:
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.

Thank you guys! It helps a lot.

Comment by mattbrown11 on 2017-06-25:
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?

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.

Originally posted by Sebastian Kasperski with karma: 1658 on 2017-05-03

This answer was NOT ACCEPTED on the original site

Post score: 3