ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

[Solved] Rtabmap cannot load map in localization mode

asked 2020-05-06 00:58:56 -0500

dschnabel gravatar image

updated 2020-05-29 23:28:46 -0500

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?

edit retag flag offensive close merge delete

Comments

Can you share that database? Maybe there is something corrupted. Corrupted databases can be recovered with:

rtabmap-recovery /home/pi/.ros/rtabmap.db
matlabbe gravatar image matlabbe  ( 2020-05-12 11:45:06 -0500 )edit

thanks @matlabbe. The recovery command did not fix it unfortunately. I uploaded the database to https://fil.email/MHy1ZmDF (link valid for 7 days).

dschnabel gravatar image dschnabel  ( 2020-05-14 01:04:29 -0500 )edit

Unfortunately, I missed the link...

matlabbe gravatar image matlabbe  ( 2020-05-26 10:12:04 -0500 )edit

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! :)

dschnabel gravatar image dschnabel  ( 2020-05-27 00:00:18 -0500 )edit
1

I cannot reproduce the error (I am using latest rtabmap version from source), I can see the database correctly with:

$ roslaunch rtabmap_ros rtabmap.launch localization:=true database_path:=~/Downloads/rtabmap-bad.db/rtabmap.db

I see you are using Mem/ReduceGraph, try without it, just reprocess the database to regenerate the database without reducing the graph:

$ rtabmap-reprocess --Mem/ReduceGraph false rtabmap.db  output.db

See if without reducing the graph you have the same error.

matlabbe gravatar image matlabbe  ( 2020-05-27 13:54:07 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-05-29 23:28:10 -0500

dschnabel gravatar image

@matlabbe provided the solution, see his last comment.

The trick was to set Mem/ReduceGraph to false. After I regenerated my database, it loads fine without the error message I was seeing earlier:

$ rtabmap-reprocess --Mem/ReduceGraph false rtabmap.db  output.db

Many thanks to matlabbe!

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2020-05-06 00:58:56 -0500

Seen: 1,185 times

Last updated: May 29 '20