[Solved] Rtabmap cannot load map in localization mode
I'm building a map with the Realsense D435 and T265. The map building works fine with rtabmap. But when I run rtabmap in localization mode, it fails loading the map with this error message:
[FATAL] (2020-05-05 22:47:50.222) Rtabmap.cpp:3338::process() Condition (_memory->getSignature(id) != 0) not met! [id=113]
More detailed logs:
[ INFO] [1588744066.076405296]: RTAB-Map detection rate = 2.000000 Hz [ INFO] [1588744066.076975993]: rtabmap: Using database from "/home/pi/.ros/rtabmap.db" (17 MB). [ INFO] [1588744069.472376862]: rtabmap: 2D occupancy grid map loaded (186x108). [ INFO] [1588744069.518758444]: rtabmap: Database version = "0.19.6". [ INFO] [1588744069.583005831]: /rtabmap/rtabmap: subscribe_depth = true [ INFO] [1588744069.583818635]: /rtabmap/rtabmap: subscribe_rgb = true [ INFO] [1588744069.584374405]: /rtabmap/rtabmap: subscribe_stereo = false [ INFO] [1588744069.584849640]: /rtabmap/rtabmap: subscribe_rgbd = false (rgbd_cameras=1) [ INFO] [1588744069.585292097]: /rtabmap/rtabmap: subscribe_odom_info = false [ INFO] [1588744069.585727128]: /rtabmap/rtabmap: subscribe_user_data = false [ INFO] [1588744069.586053309]: /rtabmap/rtabmap: subscribe_scan = false [ INFO] [1588744069.586374287]: /rtabmap/rtabmap: subscribe_scan_cloud = false [ INFO] [1588744069.586675042]: /rtabmap/rtabmap: queue_size = 100 [ INFO] [1588744069.586982908]: /rtabmap/rtabmap: approx_sync = true [ INFO] [1588744069.587772269]: Setup depth callback [ INFO] [1588744069.661110241]: /rtabmap/rtabmap subscribed to (approx sync): /odom, /d435/color/image_raw, /d435/aligned_depth_to_color/image_raw, /d435/color/camera_info [ INFO] [1588744069.690802854]: rtabmap 0.19.6 started... [ WARN] (2020-05-05 22:47:50.041) Rtabmap.cpp:1058::process() Update map correction based on last localization saved in database! correction = xyz=0.113142,-0.081209,0.002167 rpy=-0.034855,-0.053422,3.092206, nearest id = 113 of last pose = xyz=0.113444,-0.081569,0.001993 rpy=-0.026738,-0.025294,3.090959, odom = xyz=-0.000329,0.000350,-0.000144 rpy=0.008064,0.028154,-0.000266 [ WARN] (2020-05-05 22:47:50.216) Rtabmap.cpp:1708::process() rejected hypothesis: last closure hypothesis is null (loop ratio is on) [ WARN] (2020-05-05 22:47:50.217) Rtabmap.cpp:3998::getPaths() path.size()=0!? nearestId=0 ids=113, aborting... [FATAL] (2020-05-05 22:47:50.222) Rtabmap.cpp:3338::process() Condition (_memory->getSignature(id) != 0) not met! [id=113] terminate called after throwing an instance of 'UException' what(): [FATAL] (2020-05-05 22:47:50.222) Rtabmap.cpp:3338::process() Condition (_memory->getSignature(id) != 0) not met! [id=113] [rtabmap/rtabmap-5] process has died [pid 1931, exit code -6, cmd /home/pi/catkin_ws/devel/lib/rtabmap_ros/rtabmap rgb/image:=/d435/color/image_raw depth/image:=/d435/aligned_depth_to_color/image_raw rgb/camera_info:=/d435/color/camera_info rgbd_image:=rgbd_image_relay left/image_rect:=/stereo_camera/left/image_rect_color right/image_rect:=/stereo_camera/right/image_rect left/camera_info:=/stereo_camera/left/camera_info right/camera_info:=/stereo_camera/right/camera_info scan:=/scan scan_cloud:=/scan_cloud user_data:=/user_data user_data_async:=/user_data_async gps/fix:=/gps/fix tag_detections:=/tag_detections odom:=/odom imu:=/imu/data move_base:=/move_base grid_map:=/map __name:=rtabmap __log:=/home/pi/.ros/log/6fd4bf78-8f58-11ea-8779-dca63207de8a/rtabmap-rtabmap-5.log]. log file: /home/pi/.ros/log/6fd4bf78-8f58-11ea-8779-dca63207de8a/rtabmap-rtabmap-5*.log
Any idea what's causing this and how to fix it?
Can you share that database? Maybe there is something corrupted. Corrupted databases can be recovered with:
thanks @matlabbe. The recovery command did not fix it unfortunately. I uploaded the database to https://fil.email/MHy1ZmDF (link valid for 7 days).
Unfortunately, I missed the link...
No problem @matlabbe. I've uploaded the database again to a more permanent location (my S3 bucket): https://dschnabel-uploads.s3-us-west-... Appreciate your help! :)
I cannot reproduce the error (I am using latest rtabmap version from source), I can see the database correctly with:
I see you are using
Mem/ReduceGraph
, try without it, just reprocess the database to regenerate the database without reducing the graph:See if without reducing the graph you have the same error.