25     "mrpt::maps::CHeightGridMap2D_MRF,dem_mrf",
    32     const std::string& sectionNamePrefix)
    35     const std::string sSectCreation =
    36         sectionNamePrefix + string(
"_creationOpts");
    38         run_map_estimation_at_ctor, 
bool, source, sSectCreation);
    45         sSectCreation, 
"mapType", mapType);
    47     insertionOpts.loadFromConfigFile(
    48         source, sectionNamePrefix + 
string(
"_insertOpts"));
    52     std::ostream& 
out)
 const    66     this->insertionOpts.dumpToTextStream(
out);
    87     double y_max, 
double resolution, 
bool run_first_map_estimation_now)
    91     m_rfgm_run_update_upon_clear = run_first_map_estimation_now;
    99     const double x, 
const double y, 
const double z,
   103     if (!cell) 
return false;
   104     this->insertIndividualReading(
   113     const size_t cx, 
const size_t cy, 
double& z_out)
 const   125     const double x, 
const double y, 
double& z_out)
 const   147     return dem_internal_insertObservation(obs, robotPose);
   155     [[maybe_unused]] 
const CPose3D& takenFrom)
   163     dyngridcommon_writeToStream(
out);
   170     n = 
static_cast<uint32_t
>(m_map.size());
   174 #if MRPT_IS_BIG_ENDIAN   175     for (uint32_t i = 0; i < n; i++)
   177         out << m_map[i].kf_mean() << m_map[i].dm_mean()
   178             << m_map[i].dmv_var_mean;
   182     out.WriteBuffer(&m_map[0], 
sizeof(m_map[0]) * m_map.size());
   186     out << uint8_t(m_mapType) << m_cov << m_stackedCov;
   188     out << insertionOptions.sigma << insertionOptions.cutoffRadius
   189         << insertionOptions.R_min << insertionOptions.R_max
   190         << insertionOptions.KF_covSigma << insertionOptions.KF_initialCellStd
   191         << insertionOptions.KF_observationModelNoise
   192         << insertionOptions.KF_defaultCellMeanValue
   193         << insertionOptions.KF_W_size;
   195     out << m_average_normreadings_mean << m_average_normreadings_var
   196         << uint64_t(m_average_normreadings_count);
   198     out << genericMapParams;
   208             dyngridcommon_readFromStream(in);
   220 #if MRPT_IS_BIG_ENDIAN   221             for (uint32_t i = 0; i < n; i++)
   222                 in >> m_map[i].kf_mean() >> m_map[i].dm_mean() >>
   223                     m_map[i].dmv_var_mean;
   226             in.
ReadBuffer(&m_map[0], 
sizeof(m_map[0]) * m_map.size());
   234                 in >> m_cov >> m_stackedCov;
   236                 in >> insertionOptions.sigma >> insertionOptions.cutoffRadius >>
   237                     insertionOptions.R_min >> insertionOptions.R_max >>
   238                     insertionOptions.KF_covSigma >>
   239                     insertionOptions.KF_initialCellStd >>
   240                     insertionOptions.KF_observationModelNoise >>
   241                     insertionOptions.KF_defaultCellMeanValue >>
   242                     insertionOptions.KF_W_size;
   247                 in >> m_average_normreadings_mean >>
   248                     m_average_normreadings_var >> N;
   249                 m_average_normreadings_count = N;
   252             in >> genericMapParams;
   254             m_hasToRecoverMeanAndCov = 
true;
   267     std::ostream& 
out)
 const   269     out << 
"\n----------- [CHeightGridMap2D_MRF::TInsertionOptions] "   272     out << 
"[TInsertionOptions.Common] ------------ \n\n";
   273     internal_dumpToTextStream_common(
   286     internal_loadFromConfigFile_common(
iniFile, section);
   299     if (!genericMapParams.enableSaveAs3DObject) 
return;
   312     if (!genericMapParams.enableSaveAs3DObject) 
return;
 void clear()
Erase all the contents of the map. 
 
bool run_map_estimation_at_ctor
Runs map estimation at start up (Default:true) 
 
Virtual base for specifying the kind and parameters of one map (normally, to be inserted into mrpt::m...
 
Extra params for insertIndividualPoint() 
 
bool internal_insertObservation(const mrpt::obs::CObservation &obs, const mrpt::poses::CPose3D *robotPose=nullptr) override
Internal method called by insertObservation() 
 
#define THROW_EXCEPTION(msg)
 
std::string std::string format(std::string_view fmt, ARGS &&... args)
 
void getAs3DObject(mrpt::opengl::CSetOfObjects::Ptr &outObj) const override
Returns a 3D object representing the map. 
 
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
To be added to all CSerializable-classes implementation files. 
 
mrpt::maps::CHeightGridMap2D_MRF::TMapRepresentation mapType
The kind of map representation (see CHeightGridMap2D_MRF::CHeightGridMap2D_MRF) 
 
void loadFromConfigFile_map_specific(const mrpt::config::CConfigFileBase &source, const std::string §ionNamePrefix) override
Load all map-specific params. 
 
mrpt::vision::TStereoCalibParams params
 
TMapRepresentation
The type of map representation to be used, see CRandomFieldGridMap2D for a discussion. 
 
CHeightGridMap2D_MRF represents digital-elevation-model over a 2D area, with uncertainty, based on a Markov-Random-Field (MRF) estimator. 
 
void serializeFrom(mrpt::serialization::CArchive &in, uint8_t serial_version) override
Pure virtual method for reading (deserializing) from an abstract archive. 
 
void getAs3DObject(mrpt::opengl::CSetOfObjects::Ptr &outObj) const override
Returns a 3D object representing the map (mean) 
 
void dumpToTextStream_map_specific(std::ostream &out) const override
 
ENUMTYPE read_enum(const std::string §ion, const std::string &name, const ENUMTYPE &defaultValue, bool failIfNotFound=false) const
Reads an "enum" value, where the value in the config file can be either a numerical value or the symb...
 
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations. 
 
uint8_t serializeGetVersion() const override
Must return the current versioning number of the object. 
 
This class allows loading and storing values and vectors of different types from a configuration text...
 
This base provides a set of functions for maths stuff. 
 
double & kf_mean()
[KF-methods only] The mean value of this cell 
 
#define ASSERT_EQUAL_(__A, __B)
Assert comparing two values, reporting their actual values upon failure. 
 
The contents of each cell in a CRandomFieldGridMap2D map. 
 
double min_x
See CHeightGridMap2D_MRF::CHeightGridMap2D_MRF. 
 
TInsertionOptions()
Default values loader. 
 
size_t dem_get_size_y() const override
 
This namespace contains representation of robot actions and observations. 
 
string iniFile(myDataDir+string("benchmark-options.ini"))
 
size_t dem_get_size_x() const override
 
void dem_update_map() override
Ensure that all observations are reflected in the map estimate. 
 
bool insertIndividualPoint(const double x, const double y, const double z, const CHeightGridMap2D_Base::TPointInsertParams ¶ms=CHeightGridMap2D_Base::TPointInsertParams()) override
Update the DEM with one new point. 
 
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
 
bool dem_get_z_by_cell(const size_t cx, const size_t cy, double &z_out) const override
Get cell 'z' by (cx,cy) cell indices. 
 
static mrpt::maps::CMetricMap * internal_CreateFromMapDefinition(const mrpt::maps::TMetricMapInitializer &def)
 
#define LOADABLEOPTS_DUMP_VAR(variableName, variableType)
Macro for dumping a variable to a stream, within the method "dumpToTextStream(out)" (Variable types a...
 
#define MRPT_LOAD_CONFIG_VAR( variableName, variableType, configFileObject, sectionNameStr)
An useful macro for loading variables stored in a INI-like file under a key with the same name that t...
 
void serializeTo(mrpt::serialization::CArchive &out) const override
Pure virtual method for writing (serializing) to an abstract archive. 
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
#define MAP_DEFINITION_REGISTER(_CLASSNAME_STRINGS, _CLASSNAME_WITH_NS)
Registers one map class into TMetricMapInitializer factory. 
 
CRandomFieldGridMap2D represents a 2D grid map where each cell is associated one real-valued property...
 
Virtual base class for "archives": classes abstracting I/O streams. 
 
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. 
 
Declares a virtual base class for all metric maps storage classes. 
 
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. 
 
mrpt::maps::CHeightGridMap2D_MRF::TInsertionOptions insertionOpts
Observations insertion options. 
 
void internal_clear() override
Erase all the contents of the map. 
 
void internal_clear() override
Internal method called by clear() 
 
size_t ReadBuffer(void *Buffer, size_t Count)
Reads a block of bytes from the stream into Buffer. 
 
bool dem_get_z(const double x, const double y, double &z_out) const override
Get cell 'z' (x,y) by metric coordinates. 
 
double dem_get_resolution() const override
 
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 internal_computeObservationLikelihood(const mrpt::obs::CObservation &obs, const mrpt::poses::CPose3D &takenFrom) override
Internal method called by computeObservationLikelihood()