Go to the documentation of this file.
9 #ifndef CLandmarksMap_H
10 #define CLandmarksMap_H
178 void erase(
unsigned int indx);
245 std::ostream& out)
const override;
358 std::ostream& out)
const override;
485 std::string file,
const char* style =
"b",
float stdCount = 2.0f);
499 float confInterval = 0.95f)
const;
554 unsigned int downSampleFactor = 1);
560 float maxDistForCorrespondence,
float maxAngularDistForCorrespondence,
563 float& correspondencesRatio,
float* sumSqrDist =
nullptr,
564 bool onlyKeepTheClosest =
false,
bool onlyUniqueRobust =
false)
const;
581 float& correspondencesRatio,
582 std::vector<bool>& otherCorrespondences)
const;
614 std::vector<bool>* otherCorrespondences =
nullptr);
677 bool sensorDetectsIDs =
true,
const float stdRange = 0.01f,
680 std::vector<size_t>* real_associations =
nullptr,
681 const double spurious_count_mean = 0,
682 const double spurious_count_std = 0)
const;
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".
static mrpt::img::TColorf COLOR_LANDMARKS_IN_3DSCENES
The color of landmark ellipsoids in CLandmarksMap::getAs3DObject.
float SiftLikelihoodThreshold
[For SIFT landmarks only] The minimum likelihood value of a match to set as correspondence (Default=0...
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.
void simulateRangeBearingReadings(const mrpt::poses::CPose3D &robotPose, const mrpt::poses::CPose3D &sensorLocationOnRobot, mrpt::obs::CObservationBearingRange &observations, bool sensorDetectsIDs=true, const float stdRange=0.01f, const float stdYaw=mrpt::DEG2RAD(0.1f), const float stdPitch=mrpt::DEG2RAD(0.1f), std::vector< size_t > *real_associations=nullptr, const double spurious_count_mean=0, const double spurious_count_std=0) const
Simulates a noisy bearing-range observation of all the beacons (landamrks with type glBeacon) in the ...
std::pair< mrpt::math::TPoint3D, unsigned int > TPairIdBeacon
float SIFTsLoadEllipsoidWidth
[For SIFT landmarks only] The width (in meters, standard deviation) of the ellipsoid in the axis perp...
const CLandmark * getByID(CLandmark::TLandmarkID ID) const
Returns the landmark with a given landmrk ID, or nullptr if not found.
struct mrpt::maps::CLandmarksMap::TLikelihoodOptions::TGPSOrigin GPSOrigin
double ang
These 3 params allow rotating and shifting GPS coordinates with other 2D maps (e.g.
bool internal_insertObservation(const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D *robotPose=nullptr) override
Internal method called by insertObservation()
float SiftEDDThreshold
[For SIFT landmarks only] The minimum Euclidean Descriptor Distance value of a match to set as corres...
bool saveToMATLABScript3D(std::string file, const char *style="b", float confInterval=0.95f) const
Save to a MATLAB script which displays 3D error ellipses for the map.
const Scalar * const_iterator
static bool _maxIDUpdated
bool m_largestDistanceFromOriginIsUpdated
Auxiliary variables used in "getLargestDistanceFromOrigin".
void computeMatchingWith3DLandmarks(const mrpt::maps::CLandmarksMap *otherMap, mrpt::tfest::TMatchingPairList &correspondences, float &correspondencesRatio, std::vector< bool > &otherCorrespondences) const
Perform a search for correspondences between "this" and another lansmarks map: In this class,...
double computeLikelihood_RSLC_2007(const CLandmarksMap *s, const mrpt::poses::CPose2D &sensorPose)
Computes the (logarithmic) likelihood function for a sensed observation "o" according to "this" map.
void computeMatchingWith2D(const mrpt::maps::CMetricMap *otherMap, const mrpt::poses::CPose2D &otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const mrpt::poses::CPose2D &angularDistPivotPoint, mrpt::tfest::TMatchingPairList &correspondences, float &correspondencesRatio, float *sumSqrDist=nullptr, bool onlyKeepTheClosest=false, bool onlyUniqueRobust=false) const
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form,...
int64_t TLandmarkID
The type for the IDs of landmarks.
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 ...
internal::TSequenceLandmarks::iterator iterator
float SIFTnullCorrespondenceDistance
bool saveToTextFile(std::string file)
Save to a text file.
struct mrpt::maps::CLandmarksMap::TInsertionResults insertionResults
double internal_computeObservationLikelihood(const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D &takenFrom) override
Computes the (logarithmic) likelihood that a given observation was taken from a given pose in the wor...
size_t size() const
Returns the stored landmarks count.
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)
With this struct options are provided to the observation insertion process.
Parameters for CMetricMap::compute3DMatchingRatio()
double SIFTs_sigma_euclidean_dist
void loadSiftFeaturesFromStereoImageObservation(const mrpt::obs::CObservationStereoImages &obs, mrpt::maps::CLandmark::TLandmarkID fID, const mrpt::vision::CFeatureExtraction::TOptions &feat_options=mrpt::vision::CFeatureExtraction::TOptions(mrpt::vision::featSIFT))
Loads into this landmarks map the SIFT features extracted from an observation consisting of a pair of...
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 getLargestDistanceFromOrigin() const
This method returns the largest distance from the origin to any of the points, such as a sphere cente...
float SiftCorrRatioThreshold
[For SIFT landmarks only] The ratio between the best and second best descriptor distances to set as c...
mrpt::maps::CLandmarksMap::TInsertionOptions insertionOptions
double SIFTs_sigma_descriptor_dist
void loadOccupancyFeaturesFrom2DRangeScan(const mrpt::obs::CObservation2DRangeScan &obs, const mrpt::poses::CPose3D *robotPose=nullptr, unsigned int downSampleFactor=1)
Loads into this landmarks-map a set of occupancy features according to a 2D range scan (Previous cont...
mrpt::containers::CDynamicGrid< std::vector< int32_t > > m_grid
A grid-map with the set of landmarks falling into each cell.
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".
const CLandmark * getByBeaconID(unsigned int ID) const
Returns the landmark with a given beacon ID, or nullptr if not found.
internal::TSequenceLandmarks m_landmarks
The actual list.
TInsertionOptions()
Initilization of default parameters.
struct mrpt::maps::CLandmarksMap::TFuseOptions fuseOptions
GLsizei GLsizei GLchar * source
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.
mrpt::maps::CLandmark::TLandmarkID getMapMaxID()
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 ...
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form,...
virtual void auxParticleFilterCleanUp() override
This method is called at the end of each "prediction-update-map insertion" cycle within "mrpt::slam::...
Declares a virtual base class for all metric maps storage classes.
void erase(unsigned int indx)
Declares a class derived from "CObservation" that represents one (or more) range measurements to labe...
void fuseWith(CLandmarksMap &other, bool justInsertAllOfThem=false)
Fuses the contents of another map with this one, updating "this" object with the result.
The class for storing "landmarks" (visual or laser-scan-extracted features,...)
This struct stores extra results from invoking insertObservation.
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...
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle.
float compute3DMatchingRatio(const mrpt::maps::CMetricMap *otherMap, const mrpt::poses::CPose3D &otherMapPose, const TMatchingRatioParams ¶ms) const override
Computes the ratio in [0,1] of correspondences between "this" and the "otherMap" map,...
void push_back(const CLandmark &lm)
The object is copied, thus the original copy passed as a parameter can be released.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
@ featSIFT
Scale Invariant Feature Transform [LOWE'04].
void hasBeenModified(unsigned int indx)
A RGB color - floats in the range [0,1].
float extRobotPoseStd
The standard deviation used for external robot poses likelihood (default=0.05) [meters].
struct mrpt::maps::CLandmarksMap::TCustomSequenceLandmarks landmarks
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
std::vector< CLandmark > TSequenceLandmarks
bool isEmpty() const override
Returns true if the map is empty/no observation has been inserted.
mrpt::containers::CDynamicGrid< std::vector< int32_t > > * getGrid()
This observation represents a number of range-bearing value pairs, each one for a detected landmark,...
unsigned int nSiftL
The number of SIFT detected in left and right images respectively.
bool saveToMATLABScript2D(std::string file, const char *style="b", float stdCount=2.0f)
Save to a MATLAB script which displays 2D error ellipses for the map (top-view, projection on the XY ...
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.
void saveMetricMapRepresentationToFile(const std::string &filNamePrefix) const override
This virtual method saves the map to a file "filNamePrefix"+< some_file_extension >,...
std::shared_ptr< CSetOfObjects > Ptr
void loadSiftFeaturesFromImageObservation(const mrpt::obs::CObservationImage &obs, const mrpt::vision::CFeatureExtraction::TOptions &feat_options=mrpt::vision::CFeatureExtraction::TOptions(mrpt::vision::featSIFT))
Loads into this landmarks map the SIFT features extracted from an image observation (Previous content...
internal::TSequenceLandmarks::const_iterator const_iterator
#define MAP_DEFINITION_START(_CLASS_NAME_)
Add a MAP_DEFINITION_START() ...
bool beaconRangesUseObservationStd
(Default: false) If true, beaconRangesStd is ignored and each individual CObservationBeaconRanges::st...
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
double computeLikelihood_SIFT_LandmarkMap(CLandmarksMap *map, mrpt::tfest::TMatchingPairList *correspondences=nullptr, std::vector< bool > *otherCorrespondences=nullptr)
Returns the (logarithmic) likelihood of a set of landmarks "map" given "this" map.
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.
A 2D grid of dynamic size which stores any kind of data at each cell.
mrpt::maps::CLandmarksMap::TLikelihoodOptions likelihoodOptions
void hasBeenModifiedAll()
#define MAP_DEFINITION_END(_CLASS_NAME_)
void changeCoordinatesReference(const mrpt::poses::CPose3D &newOrg)
Changes the reference system of the map to a given 3D pose.
#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].
TFuseOptions()
Initialization.
virtual ~CLandmarksMap()
Virtual destructor.
void isToBeModified(unsigned int indx)
void internal_clear() override
Internal method called by clear()
CLandmarksMap()
Constructor.
unsigned int min_sat
Minimum number of sats to take into account the data.
static mrpt::maps::CLandmark::TLandmarkID _mapMaxID
Declares a class that represents any robot's observation.
With this struct options are provided to the likelihood computations.
void simulateBeaconReadings(const mrpt::poses::CPose3D &in_robotPose, const mrpt::poses::CPoint3D &in_sensorLocationOnRobot, mrpt::obs::CObservationBeaconRanges &out_Observations) const
Simulates a noisy reading toward each of the beacons in the landmarks map, if any.
GLsizei const GLchar ** string
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.
CLandmark * get(unsigned int indx)
A class used to store a 3D point.
void getAs3DObject(mrpt::opengl::CSetOfObjects::Ptr &outObj) const override
Returns a 3D object representing the map.
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...
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.
GLenum const GLfloat * params
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
TCustomSequenceLandmarks()
Default constructor.
double DEG2RAD(const double x)
Degrees to radians.
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST | |