Ask Your Question

Using AMCL for navigation with navigation stack, std_msgs/Range, Range_sensor layer

asked 2015-07-08 09:05:22 -0600

miguel gravatar image

I have set-up the navigation stack on my differential drive robot which has three ultrasonic sensors 45 degrees apart(I know the map is not going to be great with these sensors but it is my only option). I have got a global and local costmap setup similar to the tutorial on the navigation stack ( robot_setup ). I incorporated three range_sensor_layers for my three ultrasound sensors in the costmaps.

My question is, What do I start with possibly AMCL with a created pgm map of its environment or gmapping? My ultimate goal is to end up with an autonomous 2D mapping robot.

I am currently trying to use AMCL with a template map but I do not know how to translate the ultrasonic readings in a way that AMCL can use them. I know AMCL expects a laser scan to be published on the /scan topic?

Any help will be greatly appreciated, Please let me know if any further information is needed.

edit retag flag offensive close merge delete


Hello Miguel, I have just prepared a robot like you and have set up the navigation stack. I also have no other options for using a Sonar, but is it important to use multiple sonars? If so then how to get the reading from the three and bind it into one reading. Please assume that I know nothing.

mukut_noob gravatar imagemukut_noob ( 2016-04-03 22:21:07 -0600 )edit

Have you been able to obtain a single reading?

miguel gravatar imagemiguel ( 2016-04-04 00:50:35 -0600 )edit

I was not able to map successfully with three sonars. I moved onto an asus xtion Kinect. The sonars do not provide enough data. Also too many sonars could interfere with each other.

miguel gravatar imagemiguel ( 2016-04-04 00:51:52 -0600 )edit

Then? Was it successful? I suggest you to use a IR Range Finder. Check it out.

mukut_noob gravatar imagemukut_noob ( 2016-04-04 09:01:57 -0600 )edit

Actually I just have one sonar and wanted to know that would it really work with three of them, if it worked then id buy the rest so I asked you.

mukut_noob gravatar imagemukut_noob ( 2016-04-04 09:02:55 -0600 )edit

Did you get the odometry data? Did you use the encoders?

mukut_noob gravatar imagemukut_noob ( 2016-04-04 09:05:35 -0600 )edit

do you think this setup will work with autonomous navigation in a known map?i have the same sensors and it's my school project,so i was wondering if it'll work.

mohamedaminhuidi gravatar imagemohamedaminhuidi ( 2018-10-04 07:22:20 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2015-07-08 15:55:51 -0600

Naman gravatar image

You have two options:
1. If you want to use std_msgs/Range with AMCL, then you have to modify amcl so that it can accept it which might not be straightforward.
2. Another way is to convert your std_msgs/Range to laser scan (/scan) and use that with AMCL which might be easier to implement.

edit flag offensive delete link more


That seemed to be the conclusion I was coming to. Is there any resource material that you know of to convert? And it terms of gmapping will that come after I get AMCL working?

miguel gravatar imagemiguel ( 2015-07-09 01:00:02 -0600 )edit

I just created a laser scan with three reading and the associated angles of each sonar. I hope that is correct.

miguel gravatar imagemiguel ( 2015-07-10 01:38:55 -0600 )edit

yeah..but you should interpolate in between your range finders or maybe you can tune the grid size of the costmap else you will have problems clearing the costmap because you just have 3 sensors.

Naman gravatar imageNaman ( 2015-07-10 08:23:11 -0600 )edit

how would you adjust the grid size? the resolution?

miguel gravatar imagemiguel ( 2015-07-10 10:10:26 -0600 )edit
Naman gravatar imageNaman ( 2015-07-10 13:49:55 -0600 )edit

Thank you, in terms of only having three sensors would it lean to a smaller or larger meters/cell? I would think larger since I have less points?

miguel gravatar imagemiguel ( 2015-07-11 02:56:16 -0600 )edit

yes..larger meters/cell

Naman gravatar imageNaman ( 2015-07-13 07:45:18 -0600 )edit

If I want to go for option 1, can you guide me what changes I need to do in amcl to accept std_msgs/Range data?

b2meer gravatar imageb2meer ( 2016-01-15 09:07:06 -0600 )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: 2015-07-08 09:05:22 -0600

Seen: 937 times

Last updated: Jul 08 '15