Hello,
I'm using the Debian packages for RTAB-Map under ROS Indigo and Ubuntu 14.04. I recorded a bag file from my TurtleBot 2 (Kobuki) using the command: $ rosbag record -b 512 -O ~/tmp/rtabmap.bag data_throttled_image/compressed data_throttled_image_depth/compressedDepth data_throttled_camera_info tf scan odom I am now trying to convert the bag file to an rtabmap.db database file using the data_recorder.launch file like this: $ roslaunch rtabmap_ros data_recorder.launch subscribe_depth:=true subscribe_odometry:=true subscribe_laserScan:=true frame_id:=base_footprint odom_topic:=/odom scan_topic:=/scan rgb_topic:=data_throttled_image rgb_info_topic:=data_throttled_camera_info depth_topic:=data_throttled_image_depth rgb_image_transport:=compressed depth_image_transport:=compressedDepth $ rosbag play --clock ~/tmp/rtabmap.bag But I immediately get the following fatal error in the data_recorder window: [ INFO] [1448606174.219485493]: rtabmap: Database version = "0.10.10". [ INFO] [1448606174.407369964]: Registering Depth+LaserScan callback... [ INFO] [1448606174.409487787]: /data_recorder subscribed to: /data_throttled_image/compressed, /data_throttled_image_depth/compressedDepth, /data_throttled_camera_info, /odom, /scan [ INFO] [1448606174.409542728]: rtabmap 0.10.10 started... [ WARN] [1448606182.774314821]: rtabmap: Could not get transform from base_footprint to /camera_rgb_optical_frame after 0.100000 second! [FATAL] (2015-11-26 22:36:23.268) OdometryEvent.h:45::generateCovarianceMatrix() Condition (uIsFinite(transVariance) && transVariance>0) not met! ******* FATAL message occurred! Application will now exit. ******* [data_recorder-1] process has died [pid 9563, exit code 1, cmd /opt/ros/indigo/lib/rtabmap_ros/rtabmap --delete_db_on_start rgb/image:=data_throttled_image rgb/camera_info:=data_throttled_camera_info depth/image:=data_throttled_image_depth left/image_rect:=camera/left/image_rect_color left/camera_info:=camera/left/camera_info right/image_rect:=camera/right/image_rect right/camera_info:=camera/right/camera_info scan:=/scan odom:=/odom __name:=data_recorder __log:=/home/patrick/.ros/log/2eae6298-94cf-11e5-a790-64006a04e0e0/data_recorder-1.log]. log file: /home/patrick/.ros/log/2eae6298-94cf-11e5-a790-64006a04e0e0/data_recorder-1*.log all processes on machine have died, roslaunch will exit shutting down processing monitor... ... shutting down processing monitor complete done What am I doing wrong? Thanks! patrick |
This post was updated on .
|
Thanks Guido--I installed the latest version 0.10.12 from source but I still get the same error...
|
Administrator
|
Hi,
The commit referred in this post should fix the "[FATAL] (2015-11-26 22:36:23.268) OdometryEvent.h:45::generateCovarianceMatrix() Condition (uIsFinite(transVariance) && transVariance>0) not met! " error. Then you will need also to update rtabmap and rtabmap_ros code to avoid the following error: [FATAL] (2015-11-27 14:28:25.872) DBDriverSqlite3.cpp:2580::stepNode() Condition (rc == SQLITE_DONE) not met! [DB error: UNIQUE constraint failed: Node.label] ******* FATAL message occurred! Application will now exit. ******* terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >' what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument [data_recorder-2] process has died [pid 28223, exit code -6, cmd /home/mathieu/catkin_ws/devel/lib/rtabmap_ros/rtabmap --delete_db_on_start --udebug rgb/image:=data_throttled_image rgb/camera_info:=data_throttled_camera_info depth/image:=data_throttled_image_depth left/image_rect:=camera/left/image_rect_color left/camera_info:=camera/left/camera_info right/image_rect:=camera/right/image_rect right/camera_info:=camera/right/camera_info scan:=/scan odom:=/odom __name:=data_recorder __log:=/home/mathieu/.ros/log/027b839a-953d-11e5-8970-58b03561ac71/data_recorder-2.log]. log file: /home/mathieu/.ros/log/027b839a-953d-11e5-8970-58b03561ac71/data_recorder-2*.log For conversion of large ros bags, you may want to add the argument "record_in_RAM=false" so that the database is recorded directly on the hard drive: roslaunch rtabmap_ros data_recorder.launch subscribe_depth:=true subscribe_odometry:=true subscribe_laserScan:=true frame_id:=base_footprint odom_topic:=/odom scan_topic:=/scan rgb_topic:=data_throttled_image rgb_info_topic:=data_throttled_camera_info depth_topic:=data_throttled_image_depth rgb_image_transport:=compressed depth_image_transport:=compressedDepth record_in_RAM:=falseSetting "record_in_RAM=true" is useful when doing short recordings at high framerate to not miss frames. EDIT: For the binaries (version 0.10.10), to avoid the FATAL error above (about DBDriverSqlite3.cpp), add this under rtabmap node in data_recorder.launch (indigo-devel version): <param name="RGBD/LinearUpdate" type="string" value="0"/> <param name="RGBD/AngularUpdate" type="string" value="0"/> cheers |
Thanks Mathieu--that fixed it! It seems the large covariance values may be deliberately published by the kobuki_node and may be used as "I don't know" values. I see the same values in this other post.
--patrick |
Free forum by Nabble | Edit this page |