SaDVIO
|
Abstract class for 3D Landmarks. More...
#include <ALandmark.h>
Public Member Functions | |
ALandmark () | |
ALandmark (Eigen::Affine3d T_w_l, std::vector< std::shared_ptr< isae::AFeature >> features) | |
~ALandmark () | |
virtual void | init (Eigen::Affine3d T_w_l, std::vector< std::shared_ptr< isae::AFeature >> features) |
Virtual Function to properly initialize a landmark. More... | |
void | addFeature (std::shared_ptr< AFeature > feature) |
std::vector< std::weak_ptr< AFeature > > | getFeatures () |
void | removeExpiredFeatures () |
Remove features that are not linked to anything. More... | |
void | removeFeature (std::shared_ptr< AFeature > f) |
bool | fuseWithLandmark (std::shared_ptr< ALandmark > landmark) |
Fuse this landmark with another one, the feature sets are merged. More... | |
void | setPose (Eigen::Affine3d T_w_l) |
void | setPosition (Eigen::Vector3d t_w_l) |
Set only the translation of the landmark pose. More... | |
Eigen::Affine3d | getPose () const |
std::vector< Eigen::Vector3d > | getModelPoints () |
std::shared_ptr< AModel3d > | getModel () const |
cv::Mat | getDescriptor () const |
void | setDescriptor (cv::Mat descriptor) |
bool | isInitialized () const |
void | setUninitialized () |
void | setInMap () |
bool | isInMap () |
bool | sanityCheck () |
Check if the landmark is valid in terms of reprojection error and number of features. More... | |
virtual double | chi2err (std::shared_ptr< AFeature > f) |
Compute the chi2 error for a given feature. More... | |
double | avgChi2err () |
Compute the average chi2 error for all features associated to the landmark. More... | |
bool | isOutlier () const |
void | setOutlier () |
void | setInlier () |
bool | isResurected () const |
void | setResurected () |
bool | hasPrior () const |
void | setPrior () |
bool | isMarg () const |
void | setMarg () |
Public Attributes | |
int | _id |
Unique id for the landmark, used for bookeeping. More... | |
std::string | _label |
Label for the landmark. More... | |
Static Public Attributes | |
static int | _landmark_count = 0 |
Static counter for landmarks, used for unique id generation. More... | |
Protected Attributes | |
bool | _initialized = false |
Flag to check if the landmark is initialized. More... | |
bool | _in_map = false |
Flag to check if the landmark is in the map. More... | |
bool | _outlier = false |
Flag to check if the landmark is an outlier. More... | |
bool | _is_resurected = false |
Flag to check if the landmark has been resurected. More... | |
bool | _has_prior = false |
Flag to check if the landmark has a prior. More... | |
bool | _is_marg = false |
Flag to check if the landmark is marginalised. More... | |
Eigen::Affine3d | _T_w_l |
Landmark pose in world frame. More... | |
cv::Mat | _descriptor |
Descriptor of the landmark, used for matching. More... | |
std::shared_ptr< AModel3d > | _model |
3D model of the landmark More... | |
std::vector< std::weak_ptr< AFeature > > | _features |
Features associated to the landmark. More... | |
std::mutex | _lmk_mtx |
Abstract class for 3D Landmarks.
It contains a 6DoF pose and a 3D model for a general formulation. It also contains a set of features that are associated to the landmark.
|
inline |
isae::ALandmark::ALandmark | ( | Eigen::Affine3d | T_w_l, |
std::vector< std::shared_ptr< isae::AFeature >> | features | ||
) |
|
inline |
void isae::ALandmark::addFeature | ( | std::shared_ptr< AFeature > | feature | ) |
double isae::ALandmark::avgChi2err | ( | ) |
Compute the average chi2 error for all features associated to the landmark.
|
virtual |
Compute the chi2 error for a given feature.
Reimplemented in isae::Line3D.
bool isae::ALandmark::fuseWithLandmark | ( | std::shared_ptr< ALandmark > | landmark | ) |
Fuse this landmark with another one, the feature sets are merged.
If there is a wrong behavior in the association, it returns false
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
Virtual Function to properly initialize a landmark.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void isae::ALandmark::removeExpiredFeatures | ( | ) |
Remove features that are not linked to anything.
void isae::ALandmark::removeFeature | ( | std::shared_ptr< AFeature > | f | ) |
bool isae::ALandmark::sanityCheck | ( | ) |
Check if the landmark is valid in terms of reprojection error and number of features.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Set only the translation of the landmark pose.
|
inline |
|
inline |
|
inline |
|
protected |
Descriptor of the landmark, used for matching.
|
protected |
Features associated to the landmark.
|
protected |
Flag to check if the landmark has a prior.
int isae::ALandmark::_id |
Unique id for the landmark, used for bookeeping.
|
protected |
Flag to check if the landmark is in the map.
|
protected |
Flag to check if the landmark is initialized.
|
protected |
Flag to check if the landmark is marginalised.
|
protected |
Flag to check if the landmark has been resurected.
std::string isae::ALandmark::_label |
Label for the landmark.
|
static |
Static counter for landmarks, used for unique id generation.
|
mutableprotected |
|
protected |
3D model of the landmark
|
protected |
Flag to check if the landmark is an outlier.
|
protected |
Landmark pose in world frame.