Closed marco-monforte closed 3 months ago
https://github.com/SteveMacenski/slam_toolbox/blob/ros2/src/slam_toolbox_common.cpp#L645C27-L645C38
It appears that we timestamp it with the last laser reading, so if none have come in yet for the first after deserialization, then I can see how 0
happens. Any suggestions? :-)
There must be something broken in the TF tree.
The /map, /odom, and /top_laser_controller/out are publishing correctly. Also, I get a TF with ros2 run tf2_ros tf2_echo odom base_link
. What I don't get is the TF from ros2 run tf2_ros tf2_echo map odom
.
The lidar messages are not consumed, since I get [slam_toolbox]: Message Filter dropping message: frame 'top_laser_frame' at time XX.XXX for reason 'discarding message because the queue is full'
. If I've understood correctly, this is what's causing the map to be initially timestamped with 0
, but I can't understand what's the origin of the missing TF :thinking:
EDIT: I'm sorry but I'm new to ROS2 and slam_toolbox, so it is all a bit confusing to me
Ok, I've found the error. The timestamp of the odometry was wrong. Once fixed, slam_toolbox worked properly :rocket:
Hi, I'm trying to use slam_toolbox to create a map of my simulated environment and then localize asynchronously.
I was able to create and serialize the map without any issues but then, when I launch the file for localization, for some reason the map is not taken by Rviz. It is published but with timestamp always 0.0. Rviz doesn't show it and doesn't see the parameters of the map *.yaml (of course).
What puzzles me is that if I launch another Rviz instance and add a new Map, it works.
This is my config file:
Any idea where I might be wrong?