【VINS
Estimator::initialStructure()
bool Estimator::initialStructure()
用途:使用sfm对图像数据进行三维重建,并对所有帧进行pnp,最后和imu联合初始化
主要思路:首先计算速度方差来确定IMU的可观性,然后将f_manage中所有的feature保存到vector sfm_f中,然后判断是否产生足够位移来进行初始化,满足条件则进行sfm重建,最后将所有数据标记为关键帧进行pnp
涉及变量:
const map<int, vector<pair<int, Eigen::Matrix<double, 7, 1>>>> &image:图像数据
double header:时间戳
if (imu_buf.empty() || feature_buf.empty())
IMU或者相机帧的buff为空,measurements返回空值。return measurements;
if (!(imu_buf.back()->header > feature_buf.front()->header + estimator.td))
IMU最新的时间戳imu_buf.back() 小于 最旧的图像帧feature_buf.front()+ td,说明IMU数据太少,等待IMU刷新
【VINS
Estimator::initialStructure()
bool Estimator::initialStructure()
用途:使用sfm对图像数据进行三维重建,并对所有帧进行pnp,最后和imu联合初始化
主要思路:首先计算速度方差来确定IMU的可观性,然后将f_manage中所有的feature保存到vector sfm_f中,然后判断是否产生足够位移来进行初始化,满足条件则进行sfm重建,最后将所有数据标记为关键帧进行pnp
涉及变量:
const map<int, vector<pair<int, Eigen::Matrix<double, 7, 1>>>> &image:图像数据
double header:时间戳
if (imu_buf.empty() || feature_buf.empty())
IMU或者相机帧的buff为空,measurements返回空值。return measurements;
if (!(imu_buf.back()->header > feature_buf.front()->header + estimator.td))
IMU最新的时间戳imu_buf.back() 小于 最旧的图像帧feature_buf.front()+ td,说明IMU数据太少,等待IMU刷新