ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A
Ask Your Question

problem localization AMCL (only laser scanner)

asked 2017-01-18 17:19:46 -0500

Alessio gravatar image

updated 2017-01-21 09:01:27 -0500

Hi, I'm quite confused about AMCL. Until now, i was able to create a map with hector_slam. Now i'm trying to use AMCL to localize my robot into this map.

I want to specify that i'm using only a Hokuyo laser scanner, so without odometry. Is it necessary to implement also an IMU or to do other steps in order to get AMCL able to work?

this is the situation after i set the 2d Pose Estimate

If starting from that condition i move the robot, it will not localize itself. So i think that i'm missing something. Any hints? Is there a way to use the laser scanner data as odometry?

I'm running everything on ROS kinetic ubuntu 16.04. The laser scanner is connected to a raspberry Pi3 and the computational stuff are done on a desktop pc with ROS_MASTER_URI.

EDIT Finally i was able to build laser scan matcher from the source. I want to say thanks to the man here, his tutorial was very helpful to success (the last part for CSM). Talking about Laser Scan Matcher, according to these few hours of testing, the results are very very good.

Two days ago I managed to use Hector_Slam to obtain the data from the laser scanner using "pub_map_odom_transform" but the results are not so good. I mean, it works but sometimes the robot gets lost. Here some hints

So to conclude, using Laser Scanner Matcher is the best way to deal with laser scanner data for AMCL.

edit retag flag offensive close merge delete


Hi, I am also working with the lidar but no odometry for the navigation stack..Do I need to built it from source too (kinetic)? May I also know how you use the package? by roslaunch some launch files or..? I'm super new to ROS. not sure how to link it up to the rest.. Hope you can give me some hits.

IvyKK gravatar imageIvyKK ( 2018-12-06 00:05:55 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2017-01-18 20:46:32 -0500

spmaniato gravatar image

updated 2017-01-18 20:48:07 -0500

You are missing the odom to base_link transformation. Usually this comes from a combination of wheel odometry, IMU, and other sensors (for example visual odometry). If you want to rely solely on LiDAR, you can use laser scan matching ( ) - with appropriate parametrization - to calculate this transform. It's easy to set it up.

edit flag offensive delete link more


Yes, i'm using a static transformation between base_link and odom. The problem with laser_scan_matcher is that: according to the documentation it is not available for ros kinetic. How to install it?

Alessio gravatar imageAlessio ( 2017-01-19 03:54:31 -0500 )edit

Hmm, you're right. I just checked with apt-cache search ros-kinetic-laser-scan-matcher You can try building it from source:

spmaniato gravatar imagespmaniato ( 2017-01-19 19:26:25 -0500 )edit

Thanks man, I edit the first post with few details about my solution.

Alessio gravatar imageAlessio ( 2017-01-21 09:02:37 -0500 )edit

hi @spmaniato I am also trying to use laser scan matcher but I am getting the world frame doesn not exist error. Can you please tell me how did you get scan matcher working ?

ZainMehdi gravatar imageZainMehdi ( 2017-04-11 06:21:45 -0500 )edit

answered 2017-01-19 14:01:40 -0500

duck-development gravatar image

You can try this As an alternative. Or use hactor as an exchange for amcl

edit flag offensive delete link more

Your Answer

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

Add Answer

Question Tools



Asked: 2017-01-18 17:19:46 -0500

Seen: 1,386 times

Last updated: Jan 21 '17