VINS的运行主要有两种方式
一、可以先录制数据包,然后回放数据包发布节点(IMU、camera),最后启动VINS订阅节点。
二、也可以实时运行,首先启动相机发布节点信息,然后启动VINS订阅节点。以realsense D435i为例:
roslaunch realsense2_camera rs_rgbd.launch
roslaunch vins_estimator realsense_color.launch
roslaunch vins_estimator vins_rviz.launch
刚开始的时候,我启动rviz出现global status:error。还以为是相机有问题。后来发现是我发布的相机节点不对。
因为如果运行的是:
roslaunch realsense2_camera rs_camera.launch
然后同过运行:
rostopic list
会发现里面的节点是这样的:
里面没有vins需要的IMU话题。导致rviz显示出来是这样的:
如果你跟我遇到了同样的问题,请看一下你运行的相机节点是否正确!!
通过将相机节点换成rs_rgbd.launch时,再次运行结果就是正确的,因为rostopic list一下会发现里面有对应正确的话题。
至此,在线运行VINS成功!当然后续可以通过加载pose_graph进行在线重定位。
步骤如下:
1.录制数据包
2.启动vins,结束后保存pose_graph,用于重定位。
3.启动相机,加载重定位