Go to the documentation of this file.
22 #ifndef OPEN_VINS_FEATUREINITIALIZER_H
23 #define OPEN_VINS_FEATUREINITIALIZER_H
25 #include <unordered_map>
54 Eigen::Matrix<double, 3, 3>
_Rot;
57 Eigen::Matrix<double, 3, 1>
_pos;
60 ClonePose(
const Eigen::Matrix<double, 3, 3> &R,
const Eigen::Matrix<double, 3, 1> &p) {
66 ClonePose(
const Eigen::Matrix<double, 4, 1> &q,
const Eigen::Matrix<double, 3, 1> &p) {
73 _Rot = Eigen::Matrix<double, 3, 3>::Identity();
74 _pos = Eigen::Matrix<double, 3, 1>::Zero();
78 const Eigen::Matrix<double, 3, 3> &
Rot() {
return _Rot; }
81 const Eigen::Matrix<double, 3, 1> &
pos() {
return _pos; }
100 bool single_triangulation(std::shared_ptr<Feature> feat, std::unordered_map<
size_t, std::unordered_map<double, ClonePose>> &clonesCAM);
113 bool single_triangulation_1d(std::shared_ptr<Feature> feat, std::unordered_map<
size_t, std::unordered_map<double, ClonePose>> &clonesCAM);
122 bool single_gaussnewton(std::shared_ptr<Feature> feat, std::unordered_map<
size_t, std::unordered_map<double, ClonePose>> &clonesCAM);
142 double compute_error(std::unordered_map<
size_t, std::unordered_map<double, ClonePose>> &clonesCAM, std::shared_ptr<Feature> feat,
143 double alpha,
double beta,
double rho);
148 #endif // OPEN_VINS_FEATUREINITIALIZER_H
Eigen::Matrix< double, 3, 3 > _Rot
Rotation.
bool single_triangulation_1d(std::shared_ptr< Feature > feat, std::unordered_map< size_t, std::unordered_map< double, ClonePose >> &clonesCAM)
Uses a linear triangulation to get initial estimate for the feature, treating the anchor observation ...
ClonePose()
Default constructor.
const FeatureInitializerOptions config()
Gets the current configuration of the feature initializer.
const Eigen::Matrix< double, 3, 3 > & Rot()
Accessor for rotation.
Eigen::Matrix< double, 3, 1 > _pos
Position.
Structure which stores pose estimates for use in triangulation.
bool single_triangulation(std::shared_ptr< Feature > feat, std::unordered_map< size_t, std::unordered_map< double, ClonePose >> &clonesCAM)
Uses a linear triangulation to get initial estimate for the feature.
Struct which stores all our feature initializer options.
ClonePose(const Eigen::Matrix< double, 3, 3 > &R, const Eigen::Matrix< double, 3, 1 > &p)
Constructs pose from rotation and position.
Eigen::Matrix< double, 3, 3 > quat_2_Rot(const Eigen::Matrix< double, 4, 1 > &q)
Converts JPL quaterion to SO(3) rotation matrix.
ClonePose(const Eigen::Matrix< double, 4, 1 > &q, const Eigen::Matrix< double, 3, 1 > &p)
Constructs pose from quaternion and position.
FeatureInitializer(FeatureInitializerOptions &options)
Default constructor.
const Eigen::Matrix< double, 3, 1 > & pos()
Accessor for position.
FeatureInitializerOptions _options
Contains options for the initializer process.
bool single_gaussnewton(std::shared_ptr< Feature > feat, std::unordered_map< size_t, std::unordered_map< double, ClonePose >> &clonesCAM)
Uses a nonlinear triangulation to refine initial linear estimate of the feature.
Core algorithms for OpenVINS.
double compute_error(std::unordered_map< size_t, std::unordered_map< double, ClonePose >> &clonesCAM, std::shared_ptr< Feature > feat, double alpha, double beta, double rho)
Helper function for the gauss newton method that computes error of the given estimate.
Class that triangulates feature.
ov_core
Author(s): Patrick Geneva
, Kevin Eckenhoff , Guoquan Huang
autogenerated on Mon Jan 22 2024 03:08:17