28 : run_map_estimation_at_ctor(true),
44 sectionNamePrefix +
string(
"_creationOpts");
46 run_map_estimation_at_ctor,
bool,
source, sSectCreation);
53 sSectCreation,
"mapType", mapType);
55 insertionOpts.loadFromConfigFile(
56 source, sectionNamePrefix +
string(
"_insertOpts"));
74 this->insertionOpts.dumpToTextStream(out);
95 double y_max,
double resolution,
bool run_first_map_estimation_now)
99 m_rfgm_run_update_upon_clear = run_first_map_estimation_now;
107 const double x,
const double y,
const double z,
111 if (!cell)
return false;
112 this->insertIndividualReading(
121 const size_t cx,
const size_t cy,
double& z_out)
const 133 const double x,
const double y,
double& z_out)
const 155 return dem_internal_insertObservation(obs, robotPose);
179 dyngridcommon_writeToStream(out);
190 #if MRPT_IS_BIG_ENDIAN 193 out << m_map[i].kf_mean << m_map[i].dm_mean
194 << m_map[i].dmv_var_mean;
198 out.
WriteBuffer(&m_map[0],
sizeof(m_map[0]) * m_map.size());
202 out <<
uint8_t(m_mapType) << m_cov << m_stackedCov;
204 out << insertionOptions.sigma << insertionOptions.cutoffRadius
205 << insertionOptions.R_min << insertionOptions.R_max
206 << insertionOptions.KF_covSigma
207 << insertionOptions.KF_initialCellStd
208 << insertionOptions.KF_observationModelNoise
209 << insertionOptions.KF_defaultCellMeanValue
210 << insertionOptions.KF_W_size;
212 out << m_average_normreadings_mean << m_average_normreadings_var
213 <<
uint64_t(m_average_normreadings_count);
215 out << genericMapParams;
228 dyngridcommon_readFromStream(
in);
240 #if MRPT_IS_BIG_ENDIAN 242 in >> m_map[i].kf_mean >> m_map[i].dm_mean >>
243 m_map[i].dmv_var_mean;
246 in.ReadBuffer(&m_map[0],
sizeof(m_map[0]) * m_map.size());
254 in >> m_cov >> m_stackedCov;
256 in >> insertionOptions.sigma >> insertionOptions.cutoffRadius >>
257 insertionOptions.R_min >> insertionOptions.R_max >>
258 insertionOptions.KF_covSigma >>
259 insertionOptions.KF_initialCellStd >>
260 insertionOptions.KF_observationModelNoise >>
261 insertionOptions.KF_defaultCellMeanValue >>
262 insertionOptions.KF_W_size;
267 in >> m_average_normreadings_mean >>
268 m_average_normreadings_var >> N;
269 m_average_normreadings_count = N;
272 in >> genericMapParams;
274 m_hasToRecoverMeanAndCov =
true;
293 "\n----------- [CHeightGridMap2D_MRF::TInsertionOptions] ------------ " 295 out.
printf(
"[TInsertionOptions.Common] ------------ \n\n");
296 internal_dumpToTextStream_common(
314 internal_loadFromConfigFile_common(iniFile, section);
327 if (!genericMapParams.enableSaveAs3DObject)
return;
340 if (!genericMapParams.enableSaveAs3DObject)
return;
#define ASSERT_EQUAL_(__A, __B)
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()
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
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)
#define THROW_EXCEPTION(msg)
#define LOADABLEOPTS_DUMP_VAR(variableName, variableType)
Macro for dumping a variable to a stream, within the method "dumpToTextStream(out)" (Variable types a...
void WriteBuffer(const void *Buffer, size_t Count)
Writes a block of bytes to the stream from Buffer.
void writeToStream(mrpt::utils::CStream &out, int *getVersion) const override
Introduces a pure virtual method responsible for writing to a CStream.
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.
GLsizei GLsizei GLuint * obj
void readFromStream(mrpt::utils::CStream &in, int version) override
Introduces a pure virtual method responsible for loading from a CStream This can not be used directly...
virtual void getAs3DObject(mrpt::opengl::CSetOfObjects::Ptr &outObj) const override
Returns a 3D object representing the map (mean)
This class allows loading and storing values and vectors of different types from a configuration text...
bool internal_insertObservation(const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D *robotPose=nullptr) override
Internal method called by insertObservation()
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
This base provides a set of functions for maths stuff.
double kf_mean
[KF-methods only] The mean value of this cell
void dumpToTextStream(mrpt::utils::CStream &out) const override
This method should clearly display all the contents of the structure in textual form, sending it to a CStream.
#define MRPT_UNUSED_PARAM(a)
Can be used to avoid "not used parameters" warnings from the compiler.
The contents of each cell in a CRandomFieldGridMap2D map.
A helper class that can convert an enum value into its textual representation, and viceversa...
double min_x
See CHeightGridMap2D_MRF::CHeightGridMap2D_MRF.
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
TInsertionOptions()
Default values loader.
virtual size_t dem_get_size_y() const override
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
std::shared_ptr< CSetOfObjects > Ptr
This namespace contains representation of robot actions and observations.
void loadFromConfigFile_map_specific(const mrpt::utils::CConfigFileBase &source, const std::string §ionNamePrefix) override
Load all map-specific params.
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)
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...
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.
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
#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...
unsigned __int32 uint32_t
GLenum const GLfloat * params
void dumpToTextStream_map_specific(mrpt::utils::CStream &out) const override
virtual int printf(const char *fmt,...) MRPT_printf_format_check(2
Writes a string to the stream in a textual form.