27 : run_map_estimation_at_ctor(true),
43 sectionNamePrefix +
string(
"_creationOpts");
45 run_map_estimation_at_ctor,
bool,
source, sSectCreation);
52 sSectCreation,
"mapType", mapType);
54 insertionOpts.loadFromConfigFile(
55 source, sectionNamePrefix +
string(
"_insertOpts"));
59 std::ostream& out)
const 73 this->insertionOpts.dumpToTextStream(out);
94 double y_max,
double resolution,
bool run_first_map_estimation_now)
98 m_rfgm_run_update_upon_clear = run_first_map_estimation_now;
106 const double x,
const double y,
const double z,
110 if (!cell)
return false;
111 this->insertIndividualReading(
120 const size_t cx,
const size_t cy,
double& z_out)
const 132 const double x,
const double y,
double& z_out)
const 154 return dem_internal_insertObservation(obs, robotPose);
171 dyngridcommon_writeToStream(out);
182 #if MRPT_IS_BIG_ENDIAN 185 out << m_map[i].kf_mean << m_map[i].dm_mean << m_map[i].dmv_var_mean;
189 out.
WriteBuffer(&m_map[0],
sizeof(m_map[0]) * m_map.size());
193 out <<
uint8_t(m_mapType) << m_cov << m_stackedCov;
195 out << insertionOptions.sigma << insertionOptions.cutoffRadius
196 << insertionOptions.R_min << insertionOptions.R_max
197 << insertionOptions.KF_covSigma << insertionOptions.KF_initialCellStd
198 << insertionOptions.KF_observationModelNoise
199 << insertionOptions.KF_defaultCellMeanValue
200 << insertionOptions.KF_W_size;
202 out << m_average_normreadings_mean << m_average_normreadings_var
203 <<
uint64_t(m_average_normreadings_count);
205 out << genericMapParams;
215 dyngridcommon_readFromStream(
in);
227 #if MRPT_IS_BIG_ENDIAN 229 in >> m_map[i].kf_mean >> m_map[i].dm_mean >>
230 m_map[i].dmv_var_mean;
233 in.ReadBuffer(&m_map[0],
sizeof(m_map[0]) * m_map.size());
241 in >> m_cov >> m_stackedCov;
243 in >> insertionOptions.sigma >> insertionOptions.cutoffRadius >>
244 insertionOptions.R_min >> insertionOptions.R_max >>
245 insertionOptions.KF_covSigma >>
246 insertionOptions.KF_initialCellStd >>
247 insertionOptions.KF_observationModelNoise >>
248 insertionOptions.KF_defaultCellMeanValue >>
249 insertionOptions.KF_W_size;
254 in >> m_average_normreadings_mean >>
255 m_average_normreadings_var >> N;
256 m_average_normreadings_count = N;
259 in >> genericMapParams;
261 m_hasToRecoverMeanAndCov =
true;
274 std::ostream& out)
const 277 "\n----------- [CHeightGridMap2D_MRF::TInsertionOptions] ------------ " 279 out <<
mrpt::format(
"[TInsertionOptions.Common] ------------ \n\n");
280 internal_dumpToTextStream_common(
293 internal_loadFromConfigFile_common(
iniFile, section);
306 if (!genericMapParams.enableSaveAs3DObject)
return;
319 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()
#define THROW_EXCEPTION(msg)
virtual void getAs3DObject(mrpt::opengl::CSetOfObjects::Ptr &outObj) const override
Returns a 3D object representing the map.
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
This must be inserted in 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.
TMapRepresentation
The type of map representation to be used, see CRandomFieldGridMap2D for a discussion.
void WriteBuffer(const void *Buffer, size_t Count)
Writes a block of bytes to the stream from Buffer.
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.
GLsizei GLsizei GLuint * obj
virtual 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
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
bool internal_insertObservation(const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D *robotPose=nullptr) override
Internal method called by insertObservation()
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.
virtual size_t dem_get_size_y() const override
This namespace contains representation of robot actions and observations.
string iniFile(myDataDir+string("benchmark-options.ini"))
virtual size_t dem_get_size_x() const override
GLsizei const GLchar ** string
virtual void dem_update_map() override
Ensure that all observations are reflected in the map estimate.
virtual 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...
virtual 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.
unsigned __int64 uint64_t
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).
Declares a class that represents any robot's observation.
std::string format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
mrpt::maps::CHeightGridMap2D_MRF::TInsertionOptions insertionOpts
Observations insertion options.
virtual void internal_clear() override
Erase all the contents of the map.
void internal_clear() override
Erase all the contents of the map.
double internal_computeObservationLikelihood(const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D &takenFrom) override
Internal method called by computeObservationLikelihood()
GLsizei GLsizei GLchar * source
virtual bool dem_get_z(const double x, const double y, double &z_out) const override
Get cell 'z' (x,y) by metric coordinates.
virtual 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.
unsigned __int32 uint32_t
GLenum const GLfloat * params
#define MRPT_UNUSED_PARAM(a)
Determines whether this is an X86 or AMD64 platform.