视觉全局一致性
目的:不同无人机看到同一个路标点时,可以构建重投影误差来优化位姿
重点学习参考vins前端图像跟踪
双目模式vins
- VIO
入口为rosNodeTest.cpp
,首先利用sync_process()
中先读取配置文件,再调用estimator.inputImage(time, image0, image1);
在estimator.cpp
的inputImage(time, image0, image1)
函数,在该函数中
- 先调用
featureFrame = featureTracker.trackImage(t, _img);
,这个函数返回当前帧所有特征点以及每个特征点相对于上一帧的速度 - 将
featureFrame
推入缓存区数组featureBuf
- 最后调用
processMeasurements()
处理图像数据和imu数据(imu预积分)
- 回环检测
入口为posae_graph_node.cpp
,首先读取brief_k10L6.bin
,这个预训练的字典文件,用于brief描述子的查找和匹配;然后订阅和发布各种话题;最后进入主线程measurement_process = std::thread(process);
vins一些说明
1.外参
vins含有话题/vins_estimator/extrinsic,是相机与IMU的外参;配置文件中有关变量为 estimate_extrinsic,
estimate_extrinsic=0,不需要标定
estimate_extrinsic=1,初始值为估计值,需要进一步优化
estimate_extrinsic=2,不知道外参值,需要标定
2.pose_graph_save_path
配置文件写入路径值,在vio进程中存储,在回环检测进程中读取
这个文件存的是什么?需要研究一下
3.发布点云
vins的/vins_estimator/keyframe_point和/vins_estimator/margin_cloud这俩点云有什么区别?