参考源码:https://github.com/VladyslavUsenko/basalt-mirror 注释版
在此基础上添加更详细的注释
课程《深蓝学院SLAM开源算法解析》
vio.cpp
step1: 命令行参数解析
-
step2:load camera calibration
step3:加载不同的数据集,视觉前端初始化
- 查看支持哪些类型的数据集(euroc、bag、uzh、kitti)
step4:后端初始化
step5:地图保存线程的创建
step6:开辟新线程输入数据
- 1.Feed functions,将图像push到前端opt_flow的输入队列中
输出和输出都是一个使用tbb实现的线程安全队列
输入的数据类型
输出数据类型
光流的构造:1.点到点光流 2.帧到帧光流
- 2.IMU feed function, 将IMUpush到后端
光流跟踪
-
构造函数->开启处理线程
-
处理线程->processFrame
3.processFrame -
初始化
addPoints()
detectKeypoints()
trackPoints()
点到点光流跟踪 trackPoint()
当前帧的光流跟踪
trackPointAtLevel()
以上,添加特征点的过程结束,接下来剔除外点。
filterPoints();
-
追踪
-
输出