49 using iterator = std::deque<CBeacon>::iterator;
70 void resize(
const size_t N);
115 const std::string& section)
override;
117 std::ostream&
out)
const override;
134 const std::string& section)
override;
136 std::ostream&
out)
const override;
205 const std::string& file,
const char* style =
"b",
206 float confInterval = 0.95f)
const;
236 float& correspondencesRatio,
237 std::vector<bool>& otherCorrespondences)
const;
288 const std::string& filNamePrefix)
const override;
bool isEmpty() const override
Returns true if the map is empty/no observation has been inserted.
Parameters for CMetricMap::compute3DMatchingRatio()
const_iterator end() const
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
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, whose 6D pose relative to "this" is "otherMapPose" In the case of a multi-metric map, this returns the average between the maps.
void getAs3DObject(mrpt::opengl::CSetOfObjects::Ptr &outObj) const override
Returns a 3D object representing the map.
This struct contains data for choosing the method by which new beacons are inserted in the map...
#define MAP_DEFINITION_START(_CLASS_NAME_)
Add a MAP_DEFINITION_START() ...
With this struct options are provided to the likelihood computations.
mrpt::vision::TStereoCalibParams params
Declares a class derived from "CObservation" that represents one (or more) range measurements to labe...
void internal_clear() override
Internal method called by clear()
bool MC_performResampling
If set to false (default), the samples will be generated the first time a beacon is observed...
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form, sending it to a std::ostream.
double maxElevation_deg
Minimum and maximum elevation angles (in degrees) for inserting new beacons at the first observation:...
TSequenceBeacons m_beacons
The individual beacons.
#define ASSERT_(f)
Defines an assertion mechanism.
This class allows loading and storing values and vectors of different types from a configuration text...
void changeCoordinatesReference(const mrpt::poses::CPose3D &newOrg)
Changes the reference system of the map to a given 3D pose.
bool internal_insertObservation(const mrpt::obs::CObservation &obs, const mrpt::poses::CPose3D *robotPose=nullptr) override
Internal method called by insertObservation()
int64_t TBeaconID
The type for the IDs of landmarks.
float SOG_maxDistBetweenGaussians
A parameter for initializing 2D/3D SOGs.
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.
A class for storing a map of 3D probabilistic beacons, using a Montecarlo, Gaussian, or Sum of Gaussians (SOG) representation (for range-only SLAM).
float SOG_separationConstant
Constant used to compute the std.
void saveToTextFile(const std::string &fil) const
Save a text file with a row per beacon, containing this 11 elements:
void push_back(const CBeacon &m)
Inserts a copy of the given mode into the SOG.
A class used to store a 3D point.
double internal_computeObservationLikelihood(const mrpt::obs::CObservation &obs, const mrpt::poses::CPose3D &takenFrom) override
Internal method called by computeObservationLikelihood()
CBeacon & operator[](size_t i)
Access to individual beacons.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
const CBeacon & operator[](size_t i) const
Access to individual beacons.
void determineMatching2D(const mrpt::maps::CMetricMap *otherMap, const mrpt::poses::CPose2D &otherMapPose, mrpt::tfest::TMatchingPairList &correspondences, const TMatchingParams ¶ms, TMatchingExtraResults &extraResults) const override
Computes the matching between this and another 2D point map, which includes finding: ...
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
Initilization of default parameters.
Declares a virtual base class for all metric maps storage classes.
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
mrpt::vision::TStereoCalibResults out
Declares a class that represents any robot's observation.
double rangeStd
The standard deviation used for Beacon ranges likelihood (default=0.08m).
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form, sending it to a std::ostream.
bool insertAsMonteCarlo
Insert a new beacon as a set of montecarlo samples (default=true), or, if false, as a sum of gaussian...
const CBeacon * getBeaconByID(CBeacon::TBeaconID id) const
Returns a pointer to the beacon with the given ID, or nullptr if it does not exist.
void resize(const size_t N)
Resize the number of SOG modes.
mrpt::maps::CBeaconMap::TLikelihoodOptions likelihoodOptions
std::deque< CBeacon >::const_iterator const_iterator
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
const_iterator begin() const
bool saveToMATLABScript3D(const 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.
unsigned int MC_numSamplesPerMeter
Number of particles per meter of range, i.e.
std::deque< CBeacon > TSequenceBeacons
double MC_thresholdNegligible
Threshold for the maximum difference from the maximun (log) weight in the set of samples for erasing ...
void saveMetricMapRepresentationToFile(const std::string &filNamePrefix) const override
This virtual method saves the map to a file "filNamePrefix"+< some_file_extension >...
mrpt::maps::CBeaconMap::TInsertionOptions insertionOptions
float MC_maxStdToGauss
The threshold for the maximum std (X,Y,and Z) before colapsing the particles into a Gaussian PDF (def...
float MC_afterResamplingNoise
The std.dev.
Parameters for the determination of matchings between point clouds, etc.
#define MAP_DEFINITION_END(_CLASS_NAME_)
void simulateBeaconReadings(const mrpt::poses::CPose3D &in_robotPose, const mrpt::poses::CPoint3D &in_sensorLocationOnRobot, mrpt::obs::CObservationBeaconRanges &out_Observations) const
Simulates a reading toward each of the beacons in the landmarks map, if any.
The class for storing individual "beacon landmarks" under a variety of 3D position PDF distributions...
float SOG_thresholdNegligible
Threshold for the maximum difference from the maximun (log) weight in the SOG for erasing a given mod...
std::deque< CBeacon >::iterator iterator
size_t size() const
Returns the stored landmarks count.
void computeMatchingWith3DLandmarks(const mrpt::maps::CBeaconMap *otherMap, mrpt::tfest::TMatchingPairList &correspondences, float &correspondencesRatio, std::vector< bool > &otherCorrespondences) const
Perform a search for correspondences between "this" and another lansmarks map: Firsly, the landmarks' descriptor is used to find correspondences, then inconsistent ones removed by looking at their 3D poses.