VINS代码流程

1、主函数入口:

/test中的run_euroc.cpp的main函数:输入数据路径以及config文件路径,开启线程(thd_BackEnd、thd_PubImuData、thd_PubImageData)

2、thd_PubImuData获取IMU数据

调用System::PubImuData将IMU数据保存在队列imu_buf中

3、thd_PubImageData获取image数据

调用System::PubImageData提取特征点,然后保存到feature_buf中

3.1、System::PubImageData

主要是调用FeatureTracker::readImage对图像进行直方图均衡化cv::createCLAHE、光流跟踪cv::calcOpticalFlowPyrLK、新特征的提取 cv::goodFeaturesToTrack,再对特征点进行去畸变FeatureTracker::undistortedPoints;

4、后端线程std::thread thd_BackEnd(&System::ProcessBackEnd, pSystem):

调用System::ProcessBackEnd:图像数据和对应的IMU数据形成measurements,遍历measurements,分别调用estimator.processIMU和estimator.processImag对IMU数据和图像数据进行处理

4.1、estimator.processIMU

调用new IntegrationBase对IMU数据进行预积分

4.2、Estimator::processImage

判断视差,确定marg策略(两种之一)

如果外参数不知,进行相机imu外参数初始化initial_ex_rotation.CalibrationExRotation,接着进行初始化操作initialStructure,初始化完成之后,进行非线性优化solveOdometry以及滑动窗口操作Estimator::slideWindow

4.2.1Estimator::solveOdometry非线性优化

先进性特征点三角化FeatureManager::triangulate,然后进入后端优化Estimator::backendOptimization

4.2.1.1、Estimator::backendOptimization后端优化操作

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值