This message is actually good news: SLAM Toolbox is receiving LaserScan messages (frame laser) now. âś…
The bad news is: it’s receiving them too fast / your VM is too slow, so SLAM’s internal message filter queue is overflowing, and it drops scans:
Message Filter dropping message ... because the queue is full
So your problem has shifted from “no scan/map” → to performance / buffering.
Here’s how to fix it (pick A first).
A) Reduce the LaserScan rate (best fix for VirtualBox / UTM)
Option A1: Throttle scan to 10 Hz (recommended)
Install topic tools:
sudo apt update
sudo apt install -y ros-jazzy-topic-toolsRun a throttle (new terminal):
source /opt/ros/jazzy/setup.bash
ros2 run topic_tools throttle messages /robot_0/base_scan 10.0 /robot_0/base_scan_throttleNow tell SLAM Toolbox to use the throttled topic.
If you use your params file, set:
scan_topic: /robot_0/base_scan_throttleThen relaunch SLAM toolbox.
If you didn’t use a params file, use the launch argument method (recommended):
ros2 launch slam_toolbox online_async_launch.py use_sim_time:=True \
arguments:="--ros-args -r /scan:=/robot_0/base_scan_throttle"
B) Increase SLAM Toolbox queue / reduce processing load
If you are using a SLAM params file (mapper_params_...yaml), add/adjust these (names vary slightly by version, but these are common and safe):
slam_toolbox:
ros__parameters:
use_sim_time: true
scan_topic: /robot_0/base_scan
throttle_scans: 1 # process fewer scans (if supported)
map_update_interval: 1.0 # update map slower (if supported)Then relaunch SLAM.
If throttle_scans isn’t recognized in your version, no harm — it will just warn. The throttle tool (A) is more reliable anyway.
C) Reduce visualization load (you already did part of this)
Keep TF display OFF (good)
In RViz, only keep:
LaserScan (optional)
Map (needed)
Global Options → Frame Rate = 10
What you should see after fixing
Within ~5–15 seconds:
ros2 topic echo /map --once prints âś…
RViz Map display warning disappears âś…
Quick “next command” for you (fastest path)
Do exactly this:
Start throttle:
ros2 run topic_tools throttle messages /robot_0/base_scan 10.0 /robot_0/base_scan_throttle
Relaunch SLAM:
ros2 launch slam_toolbox online_async_launch.py use_sim_time:=True \
arguments:="--ros-args -r /scan:=/robot_0/base_scan_throttle"
Test map:
ros2 topic echo /map --once
If after throttling you still get queue-full spam, tell me what VM you’re on (VirtualBox vs UTM), and I’ll suggest the “lower Hz” setting (like 5 Hz) and a couple of SLAM params to lighten CPU further.