0

我尝试用 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;
4

0 回答 0