Difference and relation between /world frame, /odom frame and /map frame

Can someone explain in layman terms the difference and relation between /world frame, /odom frame and /map frame (while being used in TF tree)

Hi @Joseph1001,

first of all, to mention that all these frame names are part of the naming convention widely used in the ROS environment. For further information visit: REP 105 -- Coordinate Frames for Mobile Platforms (ROS.org).

About your actual question, we can define the /world frame as the frame used to represent absolute positions in the world. It has no parent, so its value is always (0, 0, 0).
While the /map frame is the origin of your map, understanding the map as the spatial framework for the robot to understand and navigate its surroundings. This kind of frame is specifically used in navigation and mapping applications within ROS. So can be affirmed that the map frame is often a child of the world frame, meaning it is positioned and oriented relative to the world frame but focuses specifically on the spatial layout.

Finally, the /odom frame is tied to the robot’s odometry data, representing the robot’s position and orientation based on its internal sensors and movement calculations. This frame is useful as an accurate, short-term local reference, but drift due to error accumulations by the sensors makes it a poor frame for long-term reference.

1 Like

Hi @Joseph1001 ,

Adding on to the great answers by @antmar3736

Dynamic Nature of Frames:
It’s important to note that the /odom frame is dynamic and continually updated as the robot moves. This frame is prone to accumulating errors over time due to sensor inaccuracies and uncertainties in the robot’s motion model. On the other hand, the /map and /world frames are typically considered static or are updated less frequently, representing a more accurate and absolute reference.

Coordinate Transformations:
In a typical ROS TF tree, you might have transformations between /odom and /base_link (the frame representing the robot’s base or center). This transformation is often used to correct for short-term inaccuracies in the robot’s odometry.

Localization and Global Positioning:
The /map frame plays a key role in robot localization. Algorithms, such as Adaptive Monte Carlo Localization (AMCL), use the /map frame to estimate the robot’s position within the environment based on sensor measurements and the known map.

Regards,
Jing Jie

1 Like

I have posted a video here to answer your question. please watch, thanks.

1 Like