// prunedStates; std::vector<featureTrack<S>> feature_tracks_; std::vector<size_t> tracked_feature_ids_;
时间: 2024-04-27 15:21:23 浏览: 112
这些变量可能与MSCKF算法中特征跟踪相关。prunedStates可能是指已被剪枝的状态,feature_tracks_则是保存了特征点的历史轨迹,tracked_feature_ids_则是保存了当前被跟踪的特征点的ID。通过跟踪特征点的历史轨迹,可以使用三角化方法估计出这些特征点的3D坐标,并进一步构建地图。同时,通过跟踪特征点,可以将它们与IMU测量进行融合,从而提高位姿和速度的估计精度。
相关问题
Camera<S> camera_; // 相机类 noiseParams<S> noise_params_; // 噪声参数类 MSCKFParams<S> msckf_params_; // MSCKF参数类 // prunedStates; std::vector<featureTrack<S>> feature_tracks_; std::vector<size_t> tracked_feature_ids_; std::vector<featureTrackToResidualize<S>> feature_tracks_to_residualize_; size_t num_feature_tracks_residualized_; std::vector<size_t> tracks_to_remove_; size_t last_feature_id_; imuState<S> imu_state_; std::vector<camState<S>> cam_states_; std::vector<camState<S>> pruned_states_; std::vector<Vector3<S>, Eigen::aligned_allocator<Vector3<S>>> map_; Matrix<S, 15, 15> imu_covar_; MatrixX<S> cam_covar_; Matrix<S, 15, Dynamic> imu_cam_covar_; std::vector<S> chi_squared_test_table; Vector3<S> pos_init_; Quaternion<S> quat_init_; Matrix<S, 15, 15> F_; Matrix<S, 15, 15> Phi_; Matrix<S, 15, 12> G_; MatrixX<S> P_;
这段代码看起来像是一个多传感器状态估计器,其中包含相机类、噪声参数类、MSCKF参数类等,同时也有保存特征跟踪、IMU状态、相机状态、地图、以及各种协方差矩阵等。其中的imu_cam_covar_可能是IMU和相机之间的协方差矩阵,而chi_squared_test_table可能是卡方检验表。请问这个多传感器状态估计器是用来做什么的?
std::vector<featureTrackToResidualize<S>> feature_tracks_to_residualize_; size_t num_feature_tracks_residualized_; std::vector<size_t> tracks_to_remove_; size_t last_feature_id_;
这些变量可能与MSCKF算法中特征跟踪的残差相关。feature_tracks_to_residualize_可能是指需要进行残差计算的特征点轨迹,num_feature_tracks_residualized_可能是指已经进行残差计算的特征点轨迹数量。tracks_to_remove_可能是指需要从特征点轨迹中移除的轨迹,可能是因为它们已经不再被跟踪或者对状态估计不再有贡献。last_feature_id_可能是指最后一个被跟踪的特征点的ID,可能用于生成新的特征点ID。
阅读全文