I’m working on a ROS 2 Humble setup for a Clearpath Jackal (running on Ubuntu 22.0.4). I’m using slam_toolbox with the async_slam_toolbox_node and mapper_params_online_async.yaml.
The SLAM node starts without crashing, and the map is displayed in RViz2. However, the map does not update as the robot moves, even though:
TF tree seems correctly published (I can echo transforms between base_link, odom, and map)
LiDAR topic /ouster/points is publishing data
Robot moves physically, and I can see updates in odometry
No clear errors from SLAM Toolbox, only this sometimes:
[async_slam_toolbox_node-1] terminate called after throwing an instance of ‘karto::Exception’
What I’ve checked so far:
TF frames exist and are connected (base_link → odom → map)
LiDAR publishes valid point cloud data
Odometry topic is active (/platform/odom/filtered)
Correct topic names are configured in the YAML file
I’m visualizing both /map and /tf in RViz2
But still, the SLAM map appears frozen after the initial frame. The robot moves in reality, but the map doesn’t expand or change.
Wow, it seems like you have a proper system up and running!
What are you trying to do exactly? Are you trying to create a map for autonomous navigation or specifically use slam_toolbox specifically? I say this because you can try other mapping packages to debug further, like ROS Package: cartographer_ros
To answer your questions:
I’m not sure. What I would do is try and discard whether rviz visualization is the problem. You say that you can see the “initial” map but it doesn’t update. Does the actual message in the map topic update? What happens if you move the robot, and then save the map, is the map updated with the movement?
To check if you have bad odometry, just move the robot a known distance and then check the odometry message. If it’s close, then it’s okay. For the transforms, you mentioned they work, so you can actually visualize them and see if they are good or bad in rviz.
I think you can activate verbose in the launch file you are using, something like this:
However, I bet there is already valuable information in the normal output already, so if you could share that it would be useful. Also, screenshots help.