Rosanswers logo

I am using, ROS Noetic + 20.04. Lidar hardware: rplidar_a3m1

  • I installed slam_toolbox package via sudo apt install ros-noetic-slam-toolboxand it is working fine
  • I installed rplidar driver via rplidar git

I want to create an indoor map using slam_toolbox with lidar ONLY. I do not have wheel odometry.

First I do,

  • roslaunch rplidar_ros rplidar_a3.launch This starts publishing on the /scan topic.
  • roslaunch slam_toolbox online_sync.launch I launch the slam_toolbox with default config.

Initially, I encounter that map did not grow after its initialization #438

Then, I provided a dynamic frame as per Broadcasting a moving frame. Which looks like this tf publisher

But I see my map is not generated correctly. It is moving in a circle (which I guess due to the dynamic tf I provided). The circle get smaller if I reduce the amplitude. I do not know what is the correct way of providing the dynamic tf between frames when I want to move the sensor with hand and create a map.


And this is how my tf tree looks like when running, rosrun tf2_tools view_frames.py



Originally posted by amjack on ROS Answers with karma: 46 on 2021-12-08

Post score: 0

Original comments

Comment by WarTurtle on 2021-12-08:
Try having a look at hector_slam. It has worked well for me in the past.

Comment by amjack on 2021-12-08:
@WarTurtle Thanks for commenting. Would you recommend hector_slam as better solution than slam_toolbox?. As hector_slam does not provide loop closing ability

Comment by Mike Scheutzow on 2021-12-08:
I'm not sure that what you want to do is possible. All the SLAM algorithms I've looked at want a half-way accurate estimated robot pose for each scan they record. This value is normally constructed using measurements from sensor(s).

Comment by amjack on 2021-12-09:
@Mike Scheutzow

I would like to generate the map of an indoor environment. I am not trying to localize the sensor, so I believe Odometry is not required. Please correct me if miss something.


1 Answer 1


Rosanswers logo

You need some source of odometry information for the SLAM algorithm to work. Just laser scans is not sufficient.

Fortunately, it is possible (although not as accurate) to calculate an odometry estimate from the laser scans. Here are some packages that do this:

Use one of these to calculate an odometry estimate and feed that into the TF tree to provide the pose of each laser scan.

Originally posted by Geoff with karma: 4203 on 2021-12-08

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by amjack on 2021-12-10:
Thanks for your reply, But I suspect laser_scan_matcher is not a maintained repository. Although, I tried hector_slam and was able to localize the lidar sensor.


Your Answer

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