【SLAM】VINS-MONO解析——vins_estimator流程
5.vins_estimator 基本上VINS里面绝大部分功能都在这个package下面,包括IMU数据的处理(前端),初始化(我觉得可能属于是前端),滑动窗口(后端),非线性优化(后端),关键帧的选取(部分内容)(前端)。我第一次看的时候,总是抱有一个疑问,就是为什么把这么多内容全都放在这一个node里面。为了回答这个问题,那么首先先搞清楚vins_estimator里面分别具体都是什么,为什么要有这些数据结构/函数,这些函数是怎样工作的。 这个package下面主要以下文件: factor——主要用于非线性优化对各个参数块和残差块的定义,VINS采用的是ceres,所以这部分需要对一些状态量和因子进行继承和重写。 initial——主要用于初始化,VINS采用的初始化策略是先SfM进行视觉初始化,再与IMU进行松耦合。 estimator.cpp——vins_estimator需要的所有函数都放在这里,是一个鸿篇巨制。 estimator_node.cpp——vins_estimator的入口,是一个ROS的node,实际上运行的是这个cpp文件。 feature_manager.cpp——负责管理滑窗内的所有特征点。 parameters.cpp——读取参数,是一个辅助函数。 utility——里面放着用于可视化的函数和tictok计时器。