catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
否则会imu率发布不稳定。
同时ubuntu18.04 5.4的内核目前对realsense435i支持不好,导致话题发布频率非常不稳定,导致相机标定不准
所以需要在ubuntu16.04上标定
目前测试过librealsense-2.31.0 及配套的realsense-ros-2.2.11测试标定relasense435i 是稳定的。
imu,双目,双目及imu标定
它们依次标定,标定得到的文件精确性都很重要,如果有一个标定结果做的不精确,都会导致vins_fusion 会漂的很严重,多次踩坑的血泪教训。但是每次几乎都是在ubuntu18.04上话题发布频率不稳定的情况下进行的,换到ubuntu16.04全部重新标定一次之后,成功了。
_测试用的历程:
标定imu:尽量标定40分钟以上,技巧:录制之后可以rosbag play -r 200 以200倍的速度播放
标定双目:
10hz
rosrun topic_tools throttle messages /camera/infra1/image_rect_raw 10 /left_cam
rosrun topic_tools throttle messages /camera/infra2/image_rect_raw 10 /right_cam
rosbag record -o stereo.bag /left_cam /right_cam
rosrun kalibr kalibr_calibrate_cameras --bag ~/kalibr_workspace/src/bagfiles/d435i_stereo/stereo_calib_new/stereo_2020-07-07-03-38-39.bag --topics /left_cam /right_cam --models pinhole-radtan pinhole-radtan --target ~/kalibr_workspace/src/bagfiles/april_6x6_50x50cm.yaml
标定双目和imu
30hz
rosbag record -o stereo_imu.bag /camera/infra1/image_rect_raw /camera/infra2/image_rect_raw /camera/imu
kalibr_calibrate_imu_camera --target ~/kalibr_workspace/src/bagfiles/april_6x6_50x50cm.yaml --cam ~/kalibr_workspace/src/bagfiles/d435i_stereo/stereo_calib_new/result/camchain-d435i_stereo_new.yaml --imu ~/kalibr_workspace/src/bagfiles/d435i_stereo/imu_d435i.yaml --bag ~/kalibr_workspace/src/bagfiles/d435i_stereo/stereo_imu_calib/stereo_imu_2020-07-07-03-59-04.bag --bag-from-to 10 65
生成imu相对双目的位姿矩阵
请注意:实测发现
vins_fusion使用的时候使用的是cam to imu矩阵
否则会飘不稳定。
将得到的矩阵数值复制到realsense_stereo_imu_config.yaml中,同时estimate_extrinsic置为1,表示除了用矩阵计算之,还引入辅助估计纠正
启动的时候:
rosrun vins vins_node ~/ws_vins_fusion/src/VINS-Fusion-master/config/realsense_d435i/realsense_stereo_imu_config.yaml
看看数据:
几乎不怎么飘,如果标定的不准确,则数据很快会飘走,位移单位是m。
rosrun loop_fusion loop_fusion_node ~/ws_vins_fusion/src/VINS-Fusion-master/config/realsense_d435i/realsense_stereo_imu_config.yaml #启动回环检测
DenseSurfelMapping-VINS-supported的git clone下来编译之后,运行
roslaunch surfel_fusion vins_realsense.launch #建立3d彩色地图