VINS-Fusion开源代码之loop_fusion_node数据流分析
1. 源由
之前对VINS-Fusion做了简单了解,详见:《Linux 35.5 + JetPack v5.1.3@VINS-Fusion编译安装》。
为了更好的从模块化视角了解该模块功能,我们需要通过类似灰盒的角度去分析模块的数据流,以便进一步深入模块设计。
在《VINS-Fusion开源代码之vins_node数据流分析》已经对其中一个模块进行了分析,接下来研究loop_fusion_node
。
2. 方法
分析方法,请参考:《VINS-Fusion开源代码之vins_node数据流分析》。
3. 仿真分析
借助脚本和ROS系统的强大DEBUG功能,在实际执行以下模拟命令时:
- terminal 1 仿真环境
$ source ./devel/setup.sh
$ roslaunch vins vins_rviz.launch
- terminal 2 逻辑算法1 - vins_node
$ source ./devel/setup.sh
$ rosrun vins vins_node src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml
- terminal 3 逻辑算法2 - loop_fusion_node
$ source ./devel/setup.sh
$ rosrun loop_fusion loop_fusion_node src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml
- terminal 4 仿真回放
$ source ./devel/setup.sh
$ rosbag play MH/MH_04_difficult.bag
VINS-Fusion | loop_fusion_node
3.1 rostopic 清单
根据启动脚本vins_rviz.launch
,具体内容详见附录。
以及rostopic list
指令,可以清晰的看到整个环境目前所有的话题。
$ rostopic list
/cam0/image_raw
/cam1/image_raw
/clicked_point
/clock
/feature_tracker/feature
/globalEstimator/car_model
/globalEstimator/global_path
/imu0
/initialpose
/leica/position
/loop_fusion/base_path
/loop_fusion/camera_pose_visual
/loop_fusion/margin_cloud_loop_rect
/loop_fusion/match_image
/loop_fusion/match_image/mouse_click
/loop_fusion/odometry_rect
/loop_fusion/path_1
/loop_fusion/path_2
/loop_fusion/path_3
/loop_fusion/path_4
/loop_fusion/path_5
/loop_fusion/path_6
/loop_fusion/path_7
/loop_fusion/path_8
/loop_fusion/path_9
/loop_fusion/point_cloud_loop_rect
/loop_fusion/pose_graph
/loop_fusion/pose_graph_path
/move_base_simple/goal
/rosout
/rosout_agg
/tf
/tf_static
/vins_cam_switch
/vins_estimator/camera_pose
/vins_estimator/camera_pose_visual
/vins_estimator/extrinsic
/vins_estimator/image_track
/vins_estimator/image_track/mouse_click
/vins_estimator/imu_propagate
/vins_estimator/key_poses
/vins_estimator/keyframe_point
/vins_estimator/keyframe_pose
/vins_estimator/margin_cloud
/vins_estimator/odometry
/vins_estimator/path
/vins_estimator/point_cloud
/vins_imu_switch
/vins_restart
3.2 rosbag 输入
仿真数据在回放过程,将会向系统注入以下topic:
-
<