Class CHeightGridMap2D

Nested Relationships

Nested Types

Inheritance Relationships

Base Types

  • public mrpt::maps::CMetricMap

  • public mrpt::containers::CDynamicGrid< THeightGridmapCell >

  • public mrpt::maps::CHeightGridMap2D_Base (Class CHeightGridMap2D_Base)

Class Documentation

class CHeightGridMap2D : public mrpt::maps::CMetricMap, public mrpt::containers::CDynamicGrid<THeightGridmapCell>, public mrpt::maps::CHeightGridMap2D_Base

Digital Elevation Model (DEM), a mesh or grid representation of a surface which keeps the estimated height for each (x,y) location. Important implemented features are the insertion of 2D laser scans (from arbitrary 6D poses) and the exportation as 3D scenes.

Each cell contains the up-to-date average height from measured falling in that cell. Algorithms that can be used:

  • mrSimpleAverage: Each cell only stores the current average value.

This class implements generic version of mrpt::maps::CMetric::insertObservation() accepting these types of sensory data:

  • mrpt::obs::CObservation2DRangeScan: 2D range scans

  • mrpt::obs::CObservationVelodyneScan

Public Types

enum TMapRepresentation

The type of map representation to be used. See mrpt::maps::CHeightGridMap2D for discussion.

Values:

enumerator mrSimpleAverage

Public Functions

inline void clear()

Calls the base CMetricMap::clear Declared here to avoid ambiguity between the two clear() in both base classes.

inline float cell2float(const THeightGridmapCell &c) const override
inline std::string asString() const override

Returns a short description of the map.

CHeightGridMap2D(TMapRepresentation mapType = mrSimpleAverage, double x_min = -2, double x_max = 2, double y_min = -2, double y_max = 2, double resolution = 0.1)

Constructor

bool isEmpty() const override

Returns true if the map is empty/no observation has been inserted.

float compute3DMatchingRatio(const mrpt::maps::CMetricMap *otherMap, const mrpt::poses::CPose3D &otherMapPose, const TMatchingRatioParams &params) const override

See docs in base class: in this class it always returns 0

void saveMetricMapRepresentationToFile(const std::string &filNamePrefix) const override
void getVisualizationInto(mrpt::viz::CSetOfObjects &outObj) const override

Returns a 3D object representing the map: by default, it will be a mrpt::viz::CMesh object, unless it is specified otherwise in mrpt::global_settings::HEIGHTGRIDMAP_EXPORT3D_AS_MESH

TMapRepresentation getMapType()

Return the type of the gas distribution map, according to parameters passed on construction

size_t countObservedCells() const

Return the number of cells with at least one height data inserted.

virtual bool insertIndividualPoint(const double x, const double y, const double z, const CHeightGridMap2D_Base::TPointInsertParams &params = CHeightGridMap2D_Base::TPointInsertParams()) override

Update the DEM with one new point.

See also

mrpt::maps::CMetricMap::insertObservation() for inserting higher-level objects like 2D/3D LIDAR scans

Returns:

true if updated OK, false if (x,y) is out of bounds

virtual double dem_get_resolution() const override
virtual size_t dem_get_size_x() const override
virtual size_t dem_get_size_y() const override
virtual bool dem_get_z_by_cell(size_t cx, size_t cy, double &z_out) const override

Get cell ‘z’ by (cx,cy) cell indices.

Returns:

false if out of bounds or un-observed cell.

virtual bool dem_get_z(const double x, const double y, double &z_out) const override

Get cell ‘z’ (x,y) by metric coordinates.

Returns:

false if out of bounds or un-observed cell.

virtual void dem_update_map() override

Ensure that all observations are reflected in the map estimate

void internal_clear() override
bool internal_insertObservation(const mrpt::obs::CObservation &obs, const std::optional<const mrpt::poses::CPose3D> &robotPose) override
double internal_computeObservationLikelihood(const mrpt::obs::CObservation &obs, const mrpt::poses::CPose3D &takenFrom) const override

Public Members

mrpt::maps::CHeightGridMap2D::TInsertionOptions insertionOptions
TMapRepresentation m_mapType

The map representation type of this map

double min_x = {-2}

See CHeightGridMap2D::CHeightGridMap2D

double max_x = {2}
double min_y = {-2}
double max_y = {2}
double resolution = {0.10f}
mrpt::maps::CHeightGridMap2D::TMapRepresentation mapType = {CHeightGridMap2D::mrSimpleAverage}

The kind of map representation (see CHeightGridMap2D::CHeightGridMap2D)

mrpt::maps::CHeightGridMap2D::TInsertionOptions insertionOpts
struct TInsertionOptions : public mrpt::config::CLoadableOptions

Parameters related with inserting observations into the map

Public Functions

TInsertionOptions()

Default values loader

void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string &section) override
void dumpToTextStream(std::ostream &out) const override

Public Members

bool filterByHeight = {false}

Whether to perform filtering by z-coordinate (default=false): coordinates are always RELATIVE to the robot for this filter.vvv

float z_min = {-0.5}

Only when filterByHeight is true: coordinates are always RELATIVE to the robot for this filter.

float z_max = {0.5}
mrpt::img::TColormap colorMap = {mrpt::img::cmJET}