Оценка ковариации в SLAM

Я пытаюсь проанализировать ковариацию оптимизатора в vins_fusion с ceres, но я обнаружил, что ковариация далека от ошибки траектории, которая рассчитывается 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 ответов

Другие вопросы по тегам