Go to the documentation of this file.
9 #ifndef CLandmarksMap_H
10 #define CLandmarksMap_H
66 bool internal_insertObservation( const
mrpt::obs::CObservation *obs, const
mrpt::poses::CPose3D *robotPose = NULL )
MRPT_OVERRIDE;
82 double internal_computeObservationLikelihood( const
mrpt::obs::CObservation *obs, const
mrpt::poses::CPose3D &takenFrom )
MRPT_OVERRIDE;
85 static
mrpt::utils::TColorf COLOR_LANDMARKS_IN_3DSCENES;
122 inline size_t size()
const {
return m_landmarks.size(); };
132 const CLandmark* get(
unsigned int indx)
const;
133 void isToBeModified(
unsigned int indx);
134 void hasBeenModified(
unsigned int indx);
135 void hasBeenModifiedAll();
136 void erase(
unsigned int indx);
146 const CLandmark* getByBeaconID(
unsigned int ID )
const;
150 float getLargestDistanceFromOrigin()
const;
166 static std::map<std::pair<mrpt::maps::CLandmark::TLandmarkID, mrpt::maps::CLandmark::TLandmarkID>,
double>
_mEDD;
366 bool saveToMATLABScript2D(
368 const char *style=
"b",
369 float stdCount = 2.0f );
378 bool saveToMATLABScript3D(
380 const char *style=
"b",
381 float confInterval = 0.95f )
const ;
399 void loadSiftFeaturesFromImageObservation(
410 void loadSiftFeaturesFromStereoImageObservation(
421 void loadOccupancyFeaturesFrom2DRangeScan(
424 unsigned int downSampleFactor = 1);
427 void computeMatchingWith2D(
430 float maxDistForCorrespondence,
431 float maxAngularDistForCorrespondence,
434 float &correspondencesRatio,
435 float *sumSqrDist = NULL,
436 bool onlyKeepTheClosest =
false,
437 bool onlyUniqueRobust =
false )
const;
446 void computeMatchingWith3DLandmarks(
449 float &correspondencesRatio,
450 std::vector<bool> &otherCorrespondences)
const;
465 void fuseWith(
CLandmarksMap &other,
bool justInsertAllOfThem =
false );
470 double computeLikelihood_SIFT_LandmarkMap(
473 std::vector<bool> *otherCorrespondences = NULL);
485 void simulateBeaconReadings(
486 const
mrpt::poses::CPose3D &in_robotPose,
487 const
mrpt::poses::CPoint3D &in_sensorLocationOnRobot,
488 mrpt::obs::CObservationBeaconRanges &out_Observations ) const;
506 void simulateRangeBearingReadings(
507 const
mrpt::poses::CPose3D &robotPose,
508 const
mrpt::poses::CPose3D &sensorLocationOnRobot,
509 mrpt::obs::CObservationBearingRange &observations,
510 bool sensorDetectsIDs = true,
511 const
float stdRange = 0.01f,
515 const
double spurious_count_mean = 0,
516 const
double spurious_count_std = 0
525 void saveMetricMapRepresentationToFile(const std::
string &filNamePrefix) const
MRPT_OVERRIDE;
bool insert_SIFTs_from_monocular_images
If set to true (default), the insertion of a CObservationImage in the map will insert SIFT 3D feature...
float ellapsedTime
See "minTimesSeen".
float SiftLikelihoodThreshold
[For SIFT landmarks only] The minimum likelihood value of a match to set as correspondence (Default=0...
float SIFTsLoadEllipsoidWidth
[For SIFT landmarks only] The width (in meters, standard deviation) of the ellipsoid in the axis perp...
static bool _maxIDUpdated
float SiftEDDThreshold
[For SIFT landmarks only] The minimum Euclidean Descriptor Distance value of a match to set as corres...
bool m_largestDistanceFromOriginIsUpdated
Auxiliary variables used in "getLargestDistanceFromOrigin".
internal::TSequenceLandmarks::iterator iterator
#define MAP_DEFINITION_END(_CLASS_NAME_, _LINKAGE_)
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
bool insert_SIFTs_from_stereo_images
If set to true (default), the insertion of a CObservationStereoImages in the map will insert SIFT 3D ...
float SIFTnullCorrespondenceDistance
mrpt::utils::CDynamicGrid< vector_int > * getGrid()
const_iterator end() const
float SIFTsLoadDistanceOfTheMean
[For SIFT landmarks only] The distance (in meters) of the mean value of landmarks,...
float GPS_sigma
A constant "sigma" for GPS localization data (in meters)
size_t size(const MATRIXLIKE &m, int dim)
With this struct options are provided to the observation insertion process.
Parameters for CMetricMap::compute3DMatchingRatio()
double SIFTs_sigma_euclidean_dist
mrpt::maps::CLandmarksMap CLandmarksMap
Backward compatible typedef.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
unsigned int SIFTLikelihoodMethod
[For SIFT landmarks only] Method to compute the likelihood (Default = 0 (Our method)) 0: Our method -...
float SiftCorrRatioThreshold
[For SIFT landmarks only] The ratio between the best and second best descriptor distances to set as c...
const typedef Scalar * const_iterator
double SIFTs_sigma_descriptor_dist
unsigned int rangeScan2D_decimation
The number of rays from a 2D range scan will be decimated by this factor (default = 1,...
unsigned int SIFTMatching3DMethod
[For SIFT landmarks only] Method to compute 3D matching (Default = 0 (Our method)) 0: Our method -> E...
float m_largestDistanceFromOrigin
Auxiliary variables used in "getLargestDistanceFromOrigin".
internal::TSequenceLandmarks m_landmarks
The actual list.
void saveToTextFile(const std::string &file, mrpt::math::TMatrixTextFileFormat fileFormat=mrpt::math::MATRIX_FORMAT_ENG, bool appendMRPTHeader=false, const std::string &userHeader=std::string()) const
Save matrix to a text file, compatible with MATLAB text format (see also the methods of matrix classe...
This struct store de GPS longitude, latitude (in degrees ) and altitude (in meters) for the first GPS...
const_iterator begin() const
int SIFTs_numberOfKLTKeypoints
Number of points to extract in the image.
EIGEN_STRONG_INLINE void push_back(Scalar val)
Insert an element at the end of the container (for 1D vectors/arrays)
With this struct options are provided to the fusion process.
bool insert_Landmarks_from_range_scans
If set to true (default), inserting a CObservation2DRangeScan in the map will generate landmarks for ...
Declares a virtual base class for all metric maps storage classes.
#define MAP_DEFINITION_START(_CLASS_NAME_, _LINKAGE_)
Add a MAP_DEFINITION_START() ...
The class for storing "landmarks" (visual or laser-scan-extracted features,...)
This struct stores extra results from invoking insertObservation.
static std::map< std::pair< mrpt::maps::CLandmark::TLandmarkID, mrpt::maps::CLandmark::TLandmarkID >, double > _mEDD
Map of the Euclidean Distance between the descriptors of two SIFT-based landmarks.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
int64_t TLandmarkID
The type for the IDs of landmarks.
static mrpt::maps::CLandmark::TLandmarkID _mapMaxID
This class allows loading and storing values and vectors of different types from a configuration text...
int SIFTs_decimation
Considers 1 out of "SIFTs_decimation" visual landmarks in the observation during the likelihood compu...
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
A class used to store a 2D pose.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Scale Invariant Feature Transform [LOWE'04].
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
float SIFTs_stdXY
[For SIFT landmarks only] The standard deviation (in pixels) for the SIFTs detector (This is used for...
mrpt::vision::CFeatureExtraction::TOptions SIFT_feat_options
Parameters of the SIFT feature detector/descriptors while inserting images in the landmark map.
bool beaconRangesUseObservationStd
(Default: false) If true, beaconRangesStd is ignored and each individual CObservationBeaconRanges::st...
#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
This declaration must be inserted in all CSerializable classes definition, before the class declarati...
std::pair< mrpt::math::TPoint3D, unsigned int > TPairIdBeacon
std::vector< CLandmark > TSequenceLandmarks
The list of landmarks: the wrapper class is just for maintaining the KD-Tree representation.
mrpt::vision::CFeatureExtraction::TOptions SIFT_feat_options
Parameters of the SIFT feature detector/descriptors while inserting images in the landmark map.
internal::TSequenceLandmarks::const_iterator const_iterator
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
float beaconRangesStd
The standard deviation used for Beacon ranges likelihood (default=0.08) [meters].
unsigned int min_sat
Minimum number of sats to take into account the data.
mrpt::utils::CDynamicGrid< vector_int > m_grid
A grid-map with the set of landmarks falling into each cell.
With this struct options are provided to the likelihood computations.
A class for storing a map of 3D probabilistic landmarks.
float SIFTs_stereo_maxDepth
Maximum depth of 3D landmarks when loading a landmarks map from a stereo image observation.
std::vector< size_t > vector_size_t
Declares a class derived from "CObservation" that encapsules an image from a camera,...
float SIFTs_epipolar_TH
Maximum distance (in pixels) from a point to a certain epipolar line to be considered a potential mat...
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
Observation class for either a pair of left+right or left+disparity images from a stereo camera.
unsigned int minTimesSeen
Required number of times of a landmark to be seen not to be removed, in "ellapsedTime" seconds.
bool PLOT_IMAGES
Indicates if the images (as well as the SIFT detected features) should be shown in a window.
Page generated by Doxygen 1.8.16 for MRPT 1.4.0 SVN: at Mon Oct 14 23:08:25 UTC 2019 | | |