SLAM 中的协方差估计

时间:2021-05-21 15:36:11

标签: optimization slam ceres-solver visual-odometry

我尝试用ceres分析vins_fusion中优化器的协方差,但我发现协方差与EVO计算的轨迹误差相去甚远。我怎样才能得到正确的协方差?我使用了以下命令:

ceres::Covariance::Options cov_options;
cov_options.algorithm_type = ceres::DENSE_SVD;
cov_options.min_reciprocal_condition_number=10e-14;
cov_options.null_space_rank = -1;
ceres::Covariance covariance(cov_options);
     
std::vector<std::pair<const double*  , const double*  > > covariance_blocks;
covariance_blocks.push_back(std::make_pair(para_Pose[WINDOW_SIZE], para_Pose[WINDOW_SIZE]));
CHECK(covariance.Compute(covariance_blocks, &problem));
    covariance.GetCovarianceBlockInTangentSpace(para_Pose[WINDOW_SIZE],para_Pose[WINDOW_SIZE], cov_pose[WINDOW_SIZE].data());

cout << cov_pose[WINDOW_SIZE] << endl;

0 个答案:

没有答案