27 run_map_estimation_at_ctor(true),
49 insertionOpts.loadFromConfigFile(
source, sectionNamePrefix+
string(
"_insertOpts") );
62 this->insertionOpts.dumpToTextStream(out);
79 double x_min,
double x_max,
80 double y_min,
double y_max,
double resolution,
81 bool run_first_map_estimation_now
86 m_rfgm_run_update_upon_clear = run_first_map_estimation_now;
95 if (!cell)
return false;
123 this->updateMapEstimation();
136 return dem_internal_insertObservation(obs,robotPose);
159 dyngridcommon_writeToStream(out);
170 #if MRPT_IS_BIG_ENDIAN 173 out << m_map[i].kf_mean << m_map[i].dm_mean << m_map[i].dmv_var_mean;
177 out.
WriteBuffer( &m_map[0],
sizeof(m_map[0])*m_map.size() );
186 out << insertionOptions.sigma
187 << insertionOptions.cutoffRadius
188 << insertionOptions.R_min
189 << insertionOptions.R_max
190 << insertionOptions.KF_covSigma
191 << insertionOptions.KF_initialCellStd
192 << insertionOptions.KF_observationModelNoise
193 << insertionOptions.KF_defaultCellMeanValue
194 << insertionOptions.KF_W_size;
196 out << m_average_normreadings_mean << m_average_normreadings_var <<
uint64_t(m_average_normreadings_count);
198 out << genericMapParams;
211 dyngridcommon_readFromStream(
in);
223 #if MRPT_IS_BIG_ENDIAN 225 in >> m_map[i].kf_mean >> m_map[i].dm_mean >> m_map[i].dmv_var_mean;
228 in.ReadBuffer( &m_map[0],
sizeof(m_map[0])*m_map.size() );
239 in >> insertionOptions.sigma
240 >> insertionOptions.cutoffRadius
241 >> insertionOptions.R_min
242 >> insertionOptions.R_max
243 >> insertionOptions.KF_covSigma
244 >> insertionOptions.KF_initialCellStd
245 >> insertionOptions.KF_observationModelNoise
246 >> insertionOptions.KF_defaultCellMeanValue
247 >> insertionOptions.KF_W_size;
252 in >> m_average_normreadings_mean >> m_average_normreadings_var >> N;
253 m_average_normreadings_count = N;
256 in >> genericMapParams;
258 m_hasToRecoverMeanAndCov =
true;
279 out.
printf(
"\n----------- [CHeightGridMap2D_MRF::TInsertionOptions] ------------ \n\n");
280 out.
printf(
"[TInsertionOptions.Common] ------------ \n\n");
281 internal_dumpToTextStream_common(out);
297 internal_loadFromConfigFile_common(iniFile,section);
309 if (!genericMapParams.enableSaveAs3DObject)
return;
318 mrpt::opengl::CSetOfObjectsPtr &meanObj,
319 mrpt::opengl::CSetOfObjectsPtr &varObj )
const 322 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...
virtual bool insertIndividualPoint(const double x, const double y, const double z, const CHeightGridMap2D_Base::TPointInsertParams ¶ms=CHeightGridMap2D_Base::TPointInsertParams()) MRPT_OVERRIDE
Update the DEM with one new point.
Extra params for insertIndividualPoint()
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
void loadFromConfigFile_map_specific(const mrpt::utils::CConfigFileBase &source, const std::string §ionNamePrefix)
Load all map-specific params.
double resolution
See CHeightGridMap2D_MRF::CHeightGridMap2D_MRF.
virtual bool dem_get_z_by_cell(const size_t cx, const size_t cy, double &z_out) const MRPT_OVERRIDE
Get cell 'z' by (cx,cy) cell indices.
#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.
TMapRepresentation
The type of map representation to be used, see CRandomFieldGridMap2D for a discussion.
void internal_clear() MRPT_OVERRIDE
Erase all the contents of the map.
CHeightGridMap2D_MRF represents digital-elevation-model over a 2D area, with uncertainty, based on a Markov-Random-Field (MRF) estimator.
void dumpToTextStream_map_specific(mrpt::utils::CStream &out) const
GLsizei GLsizei GLuint * obj
void writeToStream(mrpt::utils::CStream &out, int *getVersion) const
Introduces a pure virtual method responsible for writing to a CStream.
This class allows loading and storing values and vectors of different types from a configuration text...
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
#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...
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
TInsertionOptions()
Default values loader.
This namespace contains representation of robot actions and observations.
virtual void getAs3DObject(mrpt::opengl::CSetOfObjectsPtr &outObj) const MRPT_OVERRIDE
Returns a 3D object representing the map (mean)
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source, const std::string §ion) MRPT_OVERRIDE
This method load the options from a ".ini"-like file or memory-stored string list.
GLsizei const GLchar ** string
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
static mrpt::maps::CMetricMap * internal_CreateFromMapDefinition(const mrpt::maps::TMetricMapInitializer &def)
double internal_computeObservationLikelihood(const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D &takenFrom) MRPT_OVERRIDE
Internal method called by computeObservationLikelihood()
virtual size_t dem_get_size_x() const MRPT_OVERRIDE
virtual void dem_update_map() MRPT_OVERRIDE
Ensure that all observations are reflected in the map estimate.
unsigned __int64 uint64_t
#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...
virtual size_t dem_get_size_y() const MRPT_OVERRIDE
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.
bool internal_insertObservation(const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D *robotPose=NULL) MRPT_OVERRIDE
Internal method called by insertObservation()
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.
GLsizei GLsizei GLchar * source
void dumpToTextStream(mrpt::utils::CStream &out) const MRPT_OVERRIDE
This method should clearly display all the contents of the structure in textual form, sending it to a CStream.
void readFromStream(mrpt::utils::CStream &in, int version)
Introduces a pure virtual method responsible for loading from a CStream This can not be used directly...
virtual double dem_get_resolution() const MRPT_OVERRIDE
virtual bool dem_get_z(const double x, const double y, double &z_out) const MRPT_OVERRIDE
Get cell 'z' (x,y) by metric coordinates.
virtual void getAs3DObject(mrpt::opengl::CSetOfObjectsPtr &outObj) const MRPT_OVERRIDE
Returns a 3D object representing the map.
unsigned __int32 uint32_t
GLenum const GLfloat * params
virtual int printf(const char *fmt,...) MRPT_printf_format_check(2
Writes a string to the stream in a textual form.
virtual void internal_clear() MRPT_OVERRIDE
Erase all the contents of the map.