Re: FATAL Odometry error when converting bag file using data_recorder
Posted by
matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/FATAL-Odometry-error-when-converting-bag-file-using-data-recorder-tp886p894.html
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:=false
Setting "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