Ask Your Question

localization is not working properly when robot is rotating

asked 2016-09-20 16:49:52 -0500

Dharmateja Kadem gravatar image

updated 2016-09-20 16:53:01 -0500

Hi everyone,

I have problem with my robot's localization, whenever the robot is moving forward the localization is working fine and the laser scan is matching with the room boundaries(map) but when the robot is making a turn the laser scan starts drifting and the scan doesn't match with the room boundaries(map).

After rotating, if the robot moves forward for sometime then again it localizes and laser scan matches with the map.

I don't know what exactly is causing this problem. I am attaching the screenshots of the robot moving forward and rotating.

moving forward


I am also attaching the video link below:

please check the video and help me with this problem.

I am using ros indigo, ubuntu 14.04 and sick lidar, If you need more information let me know


edit retag flag offensive close merge delete


Are you using laser scan matching for odometry?

curranw gravatar imagecurranw ( 2016-09-20 17:26:58 -0500 )edit

No, I am using laser scan for amcl and robot_localization is using both laser scan and odometry for localization

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-20 17:33:16 -0500 )edit

It seems your robot odometry is nt so good. Have you tried these tests to verify quality of odom? Btw, these tests are independent of whether you are using amcl or not.

DavidN gravatar imageDavidN ( 2016-09-21 04:08:55 -0500 )edit

Thanks for the reply, I will try these tests and get back..

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-21 10:48:02 -0500 )edit

Thanks it helped. My robot odometry is not that good. Is there any other solution to improve in localization if i have another source like IMU, with the same odometry data?

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-21 14:56:10 -0500 )edit

because this odometry data is calibrated as much as possible and improving this may or may not improve the localization

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-21 14:57:40 -0500 )edit

Are you using amcl for localization? If so, you may consider increase the value of odom_alphas in amcl params. Increasing these values will make amcl does more correction to the laser map. Follow this think for more details:

DavidN gravatar imageDavidN ( 2016-09-22 08:58:36 -0500 )edit

If you are familiar with laser odom, you may consider using hector_slam ( ) so that you can obtain odom data independently from robot characteristics.

DavidN gravatar imageDavidN ( 2016-09-22 09:01:15 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2016-09-26 12:12:02 -0500

Dharmateja Kadem gravatar image

The problem is solved by changing the wheel base i.e., distance between the two wheels

Thanks everyone for your help

edit flag offensive delete link more


Hi Dharmateja Kadem, I am simulating a carlike robot with amcl localization and get the same problem. Could you plese describe how you managed to solve your problem. Thank you.

gleb gravatar imagegleb ( 2016-09-27 11:54:28 -0500 )edit

First, I followed the navigation tuning guide to check whether odometry and other sensors are calibrated correctly or not. My robot failed the first test of odometry, so i changed the wheel base (distance between two wheels)

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-27 12:14:01 -0500 )edit

After changing that the error got resolved.

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-27 12:14:58 -0500 )edit

Thank you for your answer! My robot has a wheelbase of 2.8m, I want to simulate a real-case application, so I cannot change the wheelbase. Do you know if there is another way to improve odometry?

gleb gravatar imagegleb ( 2016-09-27 13:05:57 -0500 )edit

If you are using odometry, then you will consider no. of ticks from the encoder and calculate the velocities of the robot. For this calculation you will use robot's wheel_base. So try to find where this calculation is done and change it.

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-27 13:25:20 -0500 )edit

Another thing I tried to improve odometry is changing the alpha_odom values in amcl

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-27 13:25:54 -0500 )edit

In amcl parameters you will have four alpha_odom values, the first one will have effect on yaw of the robot second one will take care of drift , third will take care of forward movement and fourth will correct forward/backward movement, when making a turn

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-27 13:34:29 -0500 )edit

As you have problem during rotation try to change 1,2,4 alpha values. For my robot, the alpha values are 1.5,1.5,1.0,1.5 repsectively

Dharmateja Kadem gravatar imageDharmateja Kadem ( 2016-09-27 13:35:39 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2016-09-20 16:49:52 -0500

Seen: 1,018 times

Last updated: Sep 26 '16