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

Some stupid questions about Odometry

asked 2013-10-21 10:30:31 -0600

Massbuilder gravatar image

I know this may be a stupid question, but what unit of measurement is odometry data published in? Also does the data have to be the distances from the last publishing or the overall distance from the point of origin?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2013-10-21 13:01:09 -0600

In terms of units these are the standard units used for various things:

http://www.ros.org/reps/rep-0103.html

The next question warrants a really long answer. The short answer is that the odomtery topic is the (estimate/dead-reckoning) distance/position from the origin where the robot started. So if you told the robot to move 1 meter in the x direction, your odometry topic will have messages published reflected that, a pose of (1,0).

However, your robot more than likely is not perfect. So there is also something known as the odometry frame. Your odometry topic is actually published in this odometry frame. The odometry frame has a parent frame called the map frame. If your robot could move exactly, these frames would always be directly on top of each other. If your robot doesn't move perfectly, an algorithm like AMCL (or SLAM) will use current sensor data, the map data, and odometry data to shift the odometry frame away from the map frame to localize the robot more accurately than simply using the odometry topic.

A simple example would be as follows (always thinking of things in the global map frame). You have your robot up on blocks so that it can not move at all. You tell it to move 1 meter in the x direction. So your odometry topic will have something like (1,0) published on it. But since your robot can not move, the correct position of your robot will still be (0,0). AMCL (or SLAM) will actually shift the odometry frame so that it is (roughly) centered at (-1,0). Since your odometry topic is in the odometry frame, when you evaluate (using TF) the position of your robot in the map frame, you'll actually end up with a coordinate in the map frame of (0,0).

I guess the important thing to remember is that the odom topic and frame are two different things.

edit flag offensive delete link more

Comments

thanks this is a big help

Massbuilder gravatar image Massbuilder  ( 2013-10-22 14:55:12 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2013-10-21 10:30:31 -0600

Seen: 825 times

Last updated: Oct 21 '13