I did try the second sequence, even as a second session in same database, and it works (with those new changes
to make it easier to detect visual loop closures, though another parameter tuning pass would be required to enable memory management approach of rtabmap as after the second sequence, the algorithm is not real-time anymore).
But for your issue, it looks like the rtabmap node is not subscribed to right point cloud topic. In the launch file, I explicitly launch a velodyne node
to re-assemble the velodyne point clouds with timestamp field, which is the point cloud that deskewing node should use (otherwise it will fail with errors like this).
For the "Cannot compute transform" warnings, it says that consecutive scans don't have enough overlap, which is strange as I didn't see this problem on my side.
Note that I updated the launch file to be easier to be used with docker (which includes SURF features used in this example). So based on this how to use rtabmap docker example
, you can do with this dataset (also based on docker tools for that dataset here
# Launch dataset UI (remap volume to host directory containing dataset):
docker run -it --rm\
--ipc host \
-v /home/mathieu/Downloads/usyd_dataset:/data \
--name dataset-tools \
roslaunch dataset_playback run.launch
# Select dataset from UI from "/data" folder inside the container
# Check "Playback in real-time"
# Get latest rtabmap_ros image
docker pull introlab3it/rtabmap_ros:noetic-latest
# Launch rtabmap example
docker run -it --rm \
--user $UID \
-e ROS_HOME=/tmp/.ros \
--network host \
-v ~/.ros:/tmp/.ros \
roslaunch rtabmap_examples usyd_dataset.launch \
# for visualization, open local rviz, or rtabmap_viz:
export ROS_NAMESPACE=rtabmap && rosrun rtabmap_viz rtabmap_viz
# play bag