How to check if there is problem in odometry?

asked 2018-10-22 01:18:50 -0600

malgudi gravatar image

updated 2018-10-22 02:18:38 -0600

gvdhoorn gravatar image

Hi, I am moving a robot from point A to point B using ROS navigation packages. I found the strange thing that, after few iterations the there is the difference between actual map and laser map, the laser map get tilts, so the robot starts moving in the wrong direction. I am not getting where the exact problem is. The following figure may help you to understand the issue. Does amcl not work properly or there is problem with odometry or something else? Could you help me? Thank you.


edit retag flag offensive close merge delete


Can you provide more information on what packages / configurations you're using?

stevejp gravatar image stevejp  ( 2018-10-25 19:19:22 -0600 )edit

I am using the move_base package. I am trying to move the robot from point A to point B and point B to point A continuously. I guess it is a cumulative odometry problem if it is so, then I have to prove it. I do not know much about kinematics and dynamics concepts in robotics, so how to test?

malgudi gravatar image malgudi  ( 2018-10-25 20:39:05 -0600 )edit

map created using gmapping One can see that, as robot moved, it started creating a different map

malgudi gravatar image malgudi  ( 2018-10-25 21:10:28 -0600 )edit

what is source of your odometry? are you using robot_localization package? if yes, what is the configuration? This seems like odometry problem.

Choco93 gravatar image Choco93  ( 2018-10-26 01:39:05 -0600 )edit

Thank you for your reply. I guess, source of odometry is from the robot itself, like I subscribed /odom topics. Someone else did the calculation. If it is an odometry problem then what test should I conduct to prove it? No I am not using robot_localization package.

malgudi gravatar image malgudi  ( 2018-10-26 02:01:57 -0600 )edit

One very simple test can be visual, visualize your robot in rviz, don't move your robot and just observe that whether it's orientation changes after a while, if it doesn't, then rotate your robot couple of times and see whether orientation matches with where you ended in real world.

Choco93 gravatar image Choco93  ( 2018-10-26 02:39:58 -0600 )edit

Another way can be calculating yaw. Since orientation given by odom is in quaternion, you can write a simple node that converts it into euler and publishes it. Then you can check yaw, whether the changes in yaw make sense or not.

Choco93 gravatar image Choco93  ( 2018-10-26 02:42:02 -0600 )edit

The yaml files (global_costmap and local_costmap) could be useful here, Also as @stevejp said, what ppackages are you launching exactly ? The list of the command and launch files you use would help us.

Delb gravatar image Delb  ( 2018-10-26 03:40:48 -0600 )edit