0
$\begingroup$

Rosanswers logo

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

rotating

I am also attaching the video link below:

https://youtu.be/JmqD6jLuAq0

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

Thanks


Originally posted by Dharmateja Kadem on ROS Answers with karma: 190 on 2016-09-20

Post score: 1


Original comments

Comment by curranw on 2016-09-20:
Are you using laser scan matching for odometry?

Comment by Dharmateja Kadem on 2016-09-20:
No, I am using laser scan for amcl and robot_localization is using both laser scan and odometry for localization

Comment by DavidN on 2016-09-21:
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. http://wiki.ros.org/navigation/Troubleshooting#Is_My_Odometry_Good_Enough_for_AMCL

Comment by Dharmateja Kadem on 2016-09-21:
Thanks for the reply, I will try these tests and get back..

Comment by Dharmateja Kadem on 2016-09-21:
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?

Comment by Dharmateja Kadem on 2016-09-21:
because this odometry data is calibrated as much as possible and improving this may or may not improve the localization

Comment by DavidN on 2016-09-22:
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: http://wiki.ros.org/amcl

Comment by DavidN on 2016-09-22:
If you are familiar with laser odom, you may consider using hector_slam (http://wiki.ros.org/hector_slam) so that you can obtain odom data independently from robot characteristics.

Comment by curranw on 2016-09-22:
Or http://wiki.ros.org/laser_scan_matcher

Comment by Dharmateja Kadem on 2016-09-22:
I tried changing odom_alphas it improved little bit for values alpha1 = 1.5, alpha2 = 1.5, alpha3 = 1.0 and alpha4 = 1.5 after this values there is no change.

Comment by Dharmateja Kadem on 2016-09-22:
I will try the laser_scan_matcher and get back. Thanks for your inputs @DavidN @curranw

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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

Thanks everyone for your help


Originally posted by Dharmateja Kadem with karma: 190 on 2016-09-26

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by gleb on 2016-09-27:
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.

Comment by Dharmateja Kadem on 2016-09-27:
First, I followed the navigation tuning guide http://wiki.ros.org/navigation/Tutorials/Navigation%20Tuning%20Guide 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)

Comment by Dharmateja Kadem on 2016-09-27:
After changing that the error got resolved.

Comment by gleb on 2016-09-27:
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?

Comment by Dharmateja Kadem on 2016-09-27:
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.

Comment by Dharmateja Kadem on 2016-09-27:
Another thing I tried to improve odometry is changing the alpha_odom values in amcl

Comment by Dharmateja Kadem on 2016-09-27:
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

Comment by Dharmateja Kadem on 2016-09-27:
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

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.