A class for storing an occupancy grid map.
COccupancyGridMap2D is a class for storing a metric map representation in the form of a probabilistic occupancy grid map: value of 0 means certainly occupied, 1 means a certainly empty cell. Initially 0.5 means uncertainty.
The cells keep the log-odd representation of probabilities instead of the probabilities themselves. More details can be found at http://www.mrpt.org/Occupancy_Grids
The algorithm for updating the grid from a laser scanner can optionally take into account the progressive widening of the beams, as described in the wiki (this feature was introduced in MRPT 0.6.4).
Some implemented methods are:
Definition at line 92 of file COccupancyGridMap2D.h.
#include <mrpt/slam/COccupancyGridMap2D.h>

Classes | |
| struct | TCriticalPointsList |
| The structure used to store the set of Voronoi diagram critical points. More... | |
| struct | TEntropyInfo |
| Used for returning entropy related information. More... | |
| class | TInsertionOptions |
| With this struct options are provided to the observation insertion process. More... | |
| class | TLikelihoodOptions |
| With this struct options are provided to the observation likelihood computation process. More... | |
| class | TLikelihoodOutput |
| Some members of this struct will contain intermediate or output data after calling "computeObservationLikelihood" for some likelihood functions. More... | |
| struct | TUpdateCellsInfoChangeOnly |
| An internal structure for storing data related to counting the new information apported by some observation. More... | |
Public Types | |
| enum | TLikelihoodMethod { lmMeanInformation = 0, lmRayTracing, lmConsensus, lmCellsDifference, lmLikelihoodField_Thrun, lmLikelihoodField_II, lmConsensusOWA } |
| The type for selecting a likelihood computation method. More... | |
| typedef int16_t | cellType |
| The type of the map cells: | |
| typedef uint16_t | cellTypeUnsigned |
| typedef std::pair< double, CPoint2D > | TPairLikelihoodIndex |
| Auxiliary private class. | |
| typedef int16_t | cell_t |
| The type of cells. | |
| typedef detail::logoddscell_traits < int16_t > | traits_t |
Public Member Functions | |
| void | updateCell (int x, int y, float v) |
| Performs the Bayesian fusion of a new observation of a cell. | |
| COccupancyGridMap2D (float min_x=-20.0f, float max_x=20.0f, float min_y=-20.0f, float max_y=20.0f, float resolution=0.05f) | |
| Constructor. | |
| void | fill (float default_value=0.5f) |
| Fills all the cells with a default value. | |
| virtual | ~COccupancyGridMap2D () |
| Destructor. | |
| void | setSize (float x_min, float x_max, float y_min, float y_max, float resolution, float default_value=0.5f) |
| Change the size of gridmap, erasing all its previous contents. | |
| void | resizeGrid (float new_x_min, float new_x_max, float new_y_min, float new_y_max, float new_cells_default_value=0.5f, bool additionalMargin=true) MRPT_NO_THROWS |
| Change the size of gridmap, maintaining previous contents. | |
| double | getArea () const |
| Returns the area of the gridmap, in square meters. | |
| unsigned int | getSizeX () const |
| Returns the horizontal size of grid map in cells count. | |
| unsigned int | getSizeY () const |
| Returns the vertical size of grid map in cells count. | |
| float | getXMin () const |
| Returns the "x" coordinate of left side of grid map. | |
| float | getXMax () const |
| Returns the "x" coordinate of right side of grid map. | |
| float | getYMin () const |
| Returns the "y" coordinate of top side of grid map. | |
| float | getYMax () const |
| Returns the "y" coordinate of bottom side of grid map. | |
| float | getResolution () const |
| Returns the resolution of the grid map. | |
| int | x2idx (float x) const |
| Transform a coordinate value into a cell index. | |
| int | y2idx (float y) const |
| int | x2idx (double x) const |
| int | y2idx (double y) const |
| float | idx2x (const size_t cx) const |
| Transform a cell index into a coordinate value. | |
| float | idx2y (const size_t cy) const |
| int | x2idx (float x, float x_min) const |
| Transform a coordinate value into a cell index, using a diferent "x_min" value. | |
| int | y2idx (float y, float y_min) const |
| void | setCell (int x, int y, float value) |
| Change the contents [0,1] of a cell, given its index. | |
| float | getCell (int x, int y) const |
| Read the real valued [0,1] contents of a cell, given its index. | |
| cellType * | getRow (int cy) |
| Access to a "row": mainly used for drawing grid as a bitmap efficiently, do not use it normally. | |
| const cellType * | getRow (int cy) const |
| Access to a "row": mainly used for drawing grid as a bitmap efficiently, do not use it normally. | |
| void | setPos (float x, float y, float value) |
| Change the contents [0,1] of a cell, given its coordinates. | |
| float | getPos (float x, float y) const |
| Read the real valued [0,1] contents of a cell, given its coordinates. | |
| bool | isStaticPos (float x, float y, float threshold=0.7f) const |
| Returns "true" if cell is "static", i.e.if its occupancy is below a given threshold. | |
| bool | isStaticCell (int cx, int cy, float threshold=0.7f) const |
| void | setBasisCell (int x, int y, uint8_t value) |
| Change a cell in the "basis" maps.Used for Voronoi calculation. | |
| unsigned char | getBasisCell (int x, int y) const |
| Reads a cell in the "basis" maps.Used for Voronoi calculation. | |
| void | subSample (int downRatio) |
| Performs a downsampling of the gridmap, by a given factor: resolution/=ratio. | |
| void | computeEntropy (TEntropyInfo &info) const |
| Computes the entropy and related values of this grid map. | |
| int | computeClearance (int cx, int cy, int *basis_x, int *basis_y, int *nBasis, bool GetContourPoint=false) const |
| Compute the clearance of a given cell, and returns its two first basis (closest obstacle) points.Used to build Voronoi and critical points. | |
| float | computeClearance (float x, float y, float maxSearchDistance) const |
| An alternative method for computing the clearance of a given location (in meters). | |
| float | computePathCost (float x1, float y1, float x2, float y2) const |
| Compute the 'cost' of traversing a segment of the map according to the occupancy of traversed cells. | |
| double | computeObservationLikelihood (const CObservation *obs, const CPose3D &takenFrom) |
| Computes the likelihood that a given observation was taken from a given pose in the world being modeled with this map. | |
| bool | canComputeObservationLikelihood (const CObservation *obs) |
| Returns true if this map is able to compute a sensible likelihood function for this observation (i.e. | |
| double | computeLikelihoodField_Thrun (const CPointsMap *pm, const CPose2D *relativePose=NULL) |
| Computes the likelihood [0,1] of a set of points, given the current grid map as reference. | |
| double | computeLikelihoodField_II (const CPointsMap *pm, const CPose2D *relativePose=NULL) |
| Computes the likelihood [0,1] of a set of points, given the current grid map as reference. | |
| bool | saveAsBitmapFile (const std::string &file) const |
| Saves the gridmap as a graphical file (BMP,PNG,...). | |
| template<class CLANDMARKSMAP > | |
| bool | saveAsBitmapFileWithLandmarks (const std::string &file, const CLANDMARKSMAP *landmarks, bool addTextLabels=false, const mrpt::utils::TColor &marks_color=mrpt::utils::TColor(0, 0, 255)) const |
| Saves the gridmap as a graphical bitmap file, 8 bit gray scale, 1 pixel is 1 cell, and with an overlay of landmarks. | |
| void | getAsImage (utils::CImage &img, bool verticalFlip=false, bool forceRGB=false, bool tricolor=false) const |
| Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if forceRGB is true) If "tricolor" is true, only three gray levels will appear in the image: gray for unobserved cells, and black/white for occupied/empty cells respectively. | |
| void | getAsImageFiltered (utils::CImage &img, bool verticalFlip=false, bool forceRGB=false) const |
| Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if forceRGB is true) - This method filters the image for easy feature detection If "tricolor" is true, only three gray levels will appear in the image: gray for unobserved cells, and black/white for occupied/empty cells respectively. | |
| void | getAs3DObject (mrpt::opengl::CSetOfObjectsPtr &outObj) const |
| Returns a 3D plane with its texture being the occupancy grid and transparency proportional to "uncertainty" (i.e. | |
| bool | isEmpty () const |
| Returns true upon map construction or after calling clear(), the return changes to false upon successful insertObservation() or any other method to load data in the map. | |
| bool | loadFromBitmapFile (const std::string &file, float resolution, float xCentralPixel=-1, float yCentralPixel=-1) |
| Load the gridmap from a image in a file (the format can be any supported by CImage::loadFromFile). | |
| bool | loadFromBitmap (const mrpt::utils::CImage &img, float resolution, float xCentralPixel=-1, float yCentralPixel=-1) |
| Load the gridmap from a image in a file (the format can be any supported by CImage::loadFromFile). | |
| void | computeMatchingWith2D (const CMetricMap *otherMap, const CPose2D &otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const CPose2D &angularDistPivotPoint, TMatchingPairList &correspondences, float &correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=false, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const |
| See the base class for more details: In this class it is implemented as correspondences of the passed points map to occupied cells. | |
| float | compute3DMatchingRatio (const CMetricMap *otherMap, const CPose3D &otherMapPose, float minDistForCorr=0.10f, float minMahaDistForCorr=2.0f) const |
| Computes the ratio in [0,1] of correspondences between "this" and the "otherMap" map, whose 6D pose relative to "this" is "otherMapPose" In the case of a multi-metric map, this returns the average between the maps. | |
| void | saveMetricMapRepresentationToFile (const std::string &filNamePrefix) const |
| This virtual method saves the map to a file "filNamePrefix"+< some_file_extension >, as an image or in any other applicable way (Notice that other methods to save the map may be implemented in classes implementing this virtual interface). | |
| void | clear () |
| Erase all the contents of the map. | |
| void | loadFromProbabilisticPosesAndObservations (const CSimpleMap &Map) |
| Load the map contents from a CSimpleMap object, erasing all previous content of the map. | |
| void | loadFromSimpleMap (const CSimpleMap &Map) |
| Load the map contents from a CSimpleMap object, erasing all previous content of the map. | |
| bool | insertObservation (const CObservation *obs, const CPose3D *robotPose=NULL) |
| Insert the observation information into this map. | |
| bool | insertObservationPtr (const CObservationPtr &obs, const CPose3D *robotPose=NULL) |
| A wrapper for smart pointers, just calls the non-smart pointer version. | |
| double | computeObservationLikelihood (const CObservation *obs, const CPose2D &takenFrom) |
| Computes the log-likelihood of a given observation given an arbitrary robot 2D pose. | |
| double | computeObservationsLikelihood (const CSensoryFrame &sf, const CPose2D &takenFrom) |
| Returns the sum of the log-likelihoods of each individual observation within a mrpt::slam::CSensoryFrame. | |
| bool | canComputeObservationsLikelihood (const CSensoryFrame &sf) |
| Returns true if this map is able to compute a sensible likelihood function for this observation (i.e. | |
| virtual void | computeMatchingWith3D (const CMetricMap *otherMap, const CPose3D &otherMapPose, float maxDistForCorrespondence, float maxAngularDistForCorrespondence, const CPoint3D &angularDistPivotPoint, TMatchingPairList &correspondences, float &correspondencesRatio, float *sumSqrDist=NULL, bool onlyKeepTheClosest=true, bool onlyUniqueRobust=false, const size_t decimation_other_map_points=1, const size_t offset_other_map_points=0) const |
| Computes the matchings between this and another 3D points map - method used in 3D-ICP. | |
| virtual void | auxParticleFilterCleanUp () |
| This method is called at the end of each "prediction-update-map insertion" cycle within "mrpt::slam::CMetricMapBuilderRBPF::processActionObservation". | |
| virtual float | squareDistanceToClosestCorrespondence (const float &x0, const float &y0) const |
| Returns the square distance from the 2D point (x0,y0) to the closest correspondence in the map. | |
| virtual const CSimplePointsMap * | getAsSimplePointsMap () const |
| If the map is a simple points map or it's a multi-metric map that contains EXACTLY one simple points map, return it. | |
| virtual CSimplePointsMap * | getAsSimplePointsMap () |
| mrpt::utils::CObjectPtr | duplicateGetSmartPtr () const |
| Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer). | |
| CObject * | clone () const |
| Cloning interface for smart pointers. | |
Sensor simulators | |
| void | laserScanSimulator (CObservation2DRangeScan &inout_Scan, const CPose2D &robotPose, float threshold=0.5f, size_t N=361, float noiseStd=0, unsigned int decimation=1, float angleNoiseStd=DEG2RAD(0)) const |
| Simulates a laser range scan into the current grid map. | |
| void | sonarSimulator (CObservationRange &inout_observation, const CPose2D &robotPose, float threshold=0.5f, float rangeNoiseStd=0, float angleNoiseStd=DEG2RAD(0)) const |
| Simulates the observations of a sonar rig into the current grid map. | |
| void | simulateScanRay (const double x, const double y, const double angle_direction, float &out_range, bool &out_valid, const unsigned int max_ray_len, const float threshold_free=0.5f, const double noiseStd=0, const double angleNoiseStd=0) const |
| Simulate just one "ray" in the grid map. | |
Static Public Member Functions | |
| static float | l2p (const cellType l) |
| Scales an integer representation of the log-odd into a real valued probability in [0,1], using p=exp(l)/(1+exp(l)) | |
| static uint8_t | l2p_255 (const cellType l) |
| Scales an integer representation of the log-odd into a linear scale [0,255], using p=exp(l)/(1+exp(l)) | |
| static cellType | p2l (const float p) |
| Scales a real valued probability in [0,1] to an integer representation of: log(p)-log(1-p) in the valid range of cellType. | |
| static bool | saveAsBitmapTwoMapsWithCorrespondences (const std::string &fileName, const COccupancyGridMap2D *m1, const COccupancyGridMap2D *m2, const TMatchingPairList &corrs) |
| Saves a composite image with two gridmaps and lines representing a set of correspondences between them. | |
| static bool | saveAsEMFTwoMapsWithCorrespondences (const std::string &fileName, const COccupancyGridMap2D *m1, const COccupancyGridMap2D *m2, const TMatchingPairList &corrs) |
| Saves a composite image with two gridmaps and numbers for the correspondences between them. | |
| static void | updateCell_fast_occupied (const unsigned x, const unsigned y, const cell_t logodd_obs, const cell_t thres, cell_t *mapArray, const unsigned _size_x) |
| Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly. | |
| static void | updateCell_fast_occupied (cell_t *theCell, const cell_t logodd_obs, const cell_t thres) |
| Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly. | |
| static void | updateCell_fast_free (const unsigned x, const unsigned y, const cell_t logodd_obs, const cell_t thres, cell_t *mapArray, const unsigned _size_x) |
| Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly. | |
| static void | updateCell_fast_free (cell_t *theCell, const cell_t logodd_obs, const cell_t thres) |
| Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly. | |
Public Attributes | |
| struct MAPS_IMPEXP mrpt::slam::COccupancyGridMap2D::TUpdateCellsInfoChangeOnly | updateInfoChangeOnly |
| TInsertionOptions | insertionOptions |
| With this struct options are provided to the observation insertion process. | |
| mrpt::slam::COccupancyGridMap2D::TLikelihoodOptions | likelihoodOptions |
| class mrpt::slam::COccupancyGridMap2D::TLikelihoodOutput | likelihoodOutputs |
| struct MAPS_IMPEXP mrpt::slam::COccupancyGridMap2D::TCriticalPointsList | CriticalPointsList |
| bool | m_disableSaveAs3DObject |
| When set to true (default=false), calling "getAs3DObject" will have no effects. | |
Static Public Attributes | |
| static const cellType | OCCGRID_CELLTYPE_MIN = CLogOddsGridMap2D<cellType>::CELLTYPE_MIN |
| Discrete to float conversion factors: The min/max values of the integer cell type, eg. | |
| static const cellType | OCCGRID_CELLTYPE_MAX = CLogOddsGridMap2D<cellType>::CELLTYPE_MAX |
| static const cellType | OCCGRID_P2LTABLE_SIZE = CLogOddsGridMap2D<cellType>::P2LTABLE_SIZE |
| static const mrpt::utils::TRuntimeClassId | classCObject |
| static const int16_t | CELLTYPE_MIN = -32767 |
| static const int16_t | CELLTYPE_MAX = 32767 |
| static const int16_t | P2LTABLE_SIZE = CELLTYPE_MAX |
| static const size_t | LOGODDS_LUT_ENTRIES = 1<<16 |
RTTI stuff | |
| static const mrpt::utils::TRuntimeClassId | classCMetricMap |
RTTI stuff | |
| static const mrpt::utils::TRuntimeClassId | classCSerializable |
Protected Member Functions | |
| virtual void | OnPostSuccesfulInsertObs (const CObservation *) |
| See base class. | |
| void | freeMap () |
| Frees the dynamic memory buffers of map. | |
| void | setCell_nocheck (int x, int y, float value) |
| Change the contents [0,1] of a cell, given its index. | |
| float | getCell_nocheck (int x, int y) const |
| Read the real valued [0,1] contents of a cell, given its index. | |
| void | setRawCell (unsigned int cellIndex, cellType b) |
| Changes a cell by its absolute index (Do not use it normally) | |
| double | computeObservationLikelihood_Consensus (const CObservation *obs, const CPose2D &takenFrom) |
| One of the methods that can be selected for implementing "computeObservationLikelihood" (This method is the Range-Scan Likelihood Consensus for gridmaps, see the ICRA2007 paper by Blanco et al.) | |
| double | computeObservationLikelihood_ConsensusOWA (const CObservation *obs, const CPose2D &takenFrom) |
| One of the methods that can be selected for implementing "computeObservationLikelihood" TODO: This method is described in.... | |
| double | computeObservationLikelihood_CellsDifference (const CObservation *obs, const CPose2D &takenFrom) |
| One of the methods that can be selected for implementing "computeObservationLikelihood". | |
| double | computeObservationLikelihood_MI (const CObservation *obs, const CPose2D &takenFrom) |
| One of the methods that can be selected for implementing "computeObservationLikelihood". | |
| double | computeObservationLikelihood_rayTracing (const CObservation *obs, const CPose2D &takenFrom) |
| One of the methods that can be selected for implementing "computeObservationLikelihood". | |
| double | computeObservationLikelihood_likelihoodField_Thrun (const CObservation *obs, const CPose2D &takenFrom) |
| One of the methods that can be selected for implementing "computeObservationLikelihood". | |
| double | computeObservationLikelihood_likelihoodField_II (const CObservation *obs, const CPose2D &takenFrom) |
| One of the methods that can be selected for implementing "computeObservationLikelihood". | |
| virtual void | internal_clear () |
| Clear the map: It set all cells to their default occupancy value (0.5), without changing the resolution (the grid extension is reset to the default values). | |
| virtual bool | internal_insertObservation (const CObservation *obs, const CPose3D *robotPose=NULL) |
| Insert the observation information into this map. | |
| void | publishEvent (const mrptEvent &e) const |
| Called when you want this object to emit an event to all the observers currently subscribed to this object. | |
| bool | hasSubscribers () const |
| Can be called by a derived class before preparing an event for publishing with publishEvent to determine if there is no one subscribed, so it can save the wasted time preparing an event that will be not read. | |
CSerializable virtual methods | |
| void | writeToStream (mrpt::utils::CStream &out, int *getVersion) const |
| Introduces a pure virtual method responsible for writing 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 be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori. | |
Static Protected Member Functions | |
| static double | H (double p) |
| Entropy computation internal function: | |
Protected Attributes | |
| std::vector< cellType > | map |
| This is the buffer for storing the cells.In this dynamic size buffer are stored the cell values as "bytes", stored row by row, from left to right cells. | |
| uint32_t | size_x |
| The size of the grid in cells. | |
| uint32_t | size_y |
| float | x_min |
| The limits of the grid in "units" (meters). | |
| float | x_max |
| float | y_min |
| float | y_max |
| float | resolution |
| Cell size, i.e. | |
| std::vector< double > | precomputedLikelihood |
| These are auxiliary variables to speed up the computation of observation likelihood values for LF method among others, at a high cost in memory (see TLikelihoodOptions::enableLikelihoodCache). | |
| bool | precomputedLikelihoodToBeRecomputed |
| CDynamicGrid< uint8_t > | m_basis_map |
| Used for Voronoi calculation.Same struct as "map", but contains a "0" if not a basis point. | |
| CDynamicGrid< uint16_t > | m_voronoi_diagram |
| Used to store the Voronoi diagram. | |
| bool | m_is_empty |
| True upon construction; used by isEmpty() | |
| float | voroni_free_threshold |
| The free-cells threshold used to compute the Voronoi diagram. | |
Static Protected Attributes | |
| static CLogOddsGridMapLUT < cellType > | m_logodd_lut |
| Lookup tables for log-odds. | |
| static std::vector< float > | entropyTable |
| Internally used to speed-up entropy calculation. | |
Private Member Functions | |
| unsigned char | GetNeighborhood (int cx, int cy) const |
| Returns a byte with the occupancy of the 8 sorrounding cells. | |
| int | direction2idx (int dx, int dy) |
| Returns the index [0,7] of the given movement, or -1 if invalid one. | |
Private Attributes | |
| int | direccion_vecino_x [8] |
| Used to store the 8 possible movements from a cell to the sorrounding ones.Filled in the constructor. | |
| int | direccion_vecino_y [8] |
Friends | |
| class | CMultiMetricMap |
| class | CMultiMetricMapPDF |
RTTI stuff | |
| typedef COccupancyGridMap2DPtr | SmartPtr |
| static mrpt::utils::CLASSINIT | _init_COccupancyGridMap2D |
| static mrpt::utils::TRuntimeClassId | classCOccupancyGridMap2D |
| static const mrpt::utils::TRuntimeClassId * | classinfo |
| static const mrpt::utils::TRuntimeClassId * | _GetBaseClass () |
| virtual const mrpt::utils::TRuntimeClassId * | GetRuntimeClass () const |
| Returns information about the class of an object in runtime. | |
| virtual mrpt::utils::CObject * | duplicate () const |
| Returns a copy of the object, indepently of its class. | |
| static mrpt::utils::CObject * | CreateObject () |
| static COccupancyGridMap2DPtr | Create () |
Voronoi methods | |
| void | buildVoronoiDiagram (float threshold, float robot_size, int x1=0, int x2=0, int y1=0, int y2=0) |
| Build the Voronoi diagram of the grid map. | |
| uint16_t | getVoroniClearance (int cx, int cy) const |
| Reads a the clearance of a cell (in centimeters), after building the Voronoi diagram with buildVoronoiDiagram. | |
| const CDynamicGrid< uint8_t > & | getBasisMap () const |
| Return the auxiliary "basis" map built while building the Voronoi diagram. | |
| const CDynamicGrid< uint16_t > & | getVoronoiDiagram () const |
| Return the Voronoi diagram; each cell contains the distance to its closer obstacle, or 0 if not part of the Voronoi diagram. | |
| void | findCriticalPoints (float filter_distance) |
| Builds a list with the critical points from Voronoi diagram, which must must be built before calling this method. | |
| void | setVoroniClearance (int cx, int cy, uint16_t dist) |
| Used to set the clearance of a cell, while building the Voronoi diagram. | |
|
inherited |
The type of cells.
Definition at line 69 of file CLogOddsGridMap2D.h.
| typedef int16_t mrpt::slam::COccupancyGridMap2D::cellType |
The type of the map cells:
Definition at line 110 of file COccupancyGridMap2D.h.
| typedef uint16_t mrpt::slam::COccupancyGridMap2D::cellTypeUnsigned |
Definition at line 111 of file COccupancyGridMap2D.h.
A typedef for the associated smart pointer
Definition at line 102 of file COccupancyGridMap2D.h.
| typedef std::pair<double,CPoint2D> mrpt::slam::COccupancyGridMap2D::TPairLikelihoodIndex |
Auxiliary private class.
Definition at line 695 of file COccupancyGridMap2D.h.
|
inherited |
Definition at line 70 of file CLogOddsGridMap2D.h.
The type for selecting a likelihood computation method.
| Enumerator | |
|---|---|
| lmMeanInformation | |
| lmRayTracing | |
| lmConsensus | |
| lmCellsDifference | |
| lmLikelihoodField_Thrun | |
| lmLikelihoodField_II | |
| lmConsensusOWA | |
Definition at line 584 of file COccupancyGridMap2D.h.
| mrpt::slam::COccupancyGridMap2D::COccupancyGridMap2D | ( | float | min_x = -20.0f, |
| float | max_x = 20.0f, |
||
| float | min_y = -20.0f, |
||
| float | max_y = 20.0f, |
||
| float | resolution = 0.05f |
||
| ) |
Constructor.
|
virtual |
Destructor.
|
staticprotected |
|
inlinevirtualinherited |
This method is called at the end of each "prediction-update-map insertion" cycle within "mrpt::slam::CMetricMapBuilderRBPF::processActionObservation".
This method should normally do nothing, but in some cases can be used to free auxiliary cached variables.
Reimplemented in mrpt::slam::CLandmarksMap, and mrpt::slam::CMultiMetricMap.
Definition at line 326 of file CMetricMap.h.
| void mrpt::slam::COccupancyGridMap2D::buildVoronoiDiagram | ( | float | threshold, |
| float | robot_size, | ||
| int | x1 = 0, |
||
| int | x2 = 0, |
||
| int | y1 = 0, |
||
| int | y2 = 0 |
||
| ) |
Build the Voronoi diagram of the grid map.
| threshold | The threshold for binarizing the map. |
| robot_size | Size in "units" (meters) of robot, approx. |
| x1 | Left coordinate of area to be computed. Default, entire map. |
| x2 | Right coordinate of area to be computed. Default, entire map. |
| y1 | Top coordinate of area to be computed. Default, entire map. |
| y2 | Bottom coordinate of area to be computed. Default, entire map. |
|
virtual |
Returns true if this map is able to compute a sensible likelihood function for this observation (i.e.
an occupancy grid map cannot with an image).
| obs | The observation. |
Reimplemented from mrpt::slam::CMetricMap.
|
inherited |
Returns true if this map is able to compute a sensible likelihood function for this observation (i.e.
an occupancy grid map cannot with an image).
| sf | The observations. |
|
inherited |
Erase all the contents of the map.
Referenced by mrpt::slam::CReflectivityGridMap2D::clear(), mrpt::slam::CHeightGridMap2D::clear(), and mrpt::slam::CRandomFieldGridMap2D::clear().
|
inlineinherited |
|
virtual |
Computes the ratio in [0,1] of correspondences between "this" and the "otherMap" map, whose 6D pose relative to "this" is "otherMapPose" In the case of a multi-metric map, this returns the average between the maps.
This method always return 0 for grid maps.
| otherMap | [IN] The other map to compute the matching with. |
| otherMapPose | [IN] The 6D pose of the other map as seen from "this". |
| minDistForCorr | [IN] The minimum distance between 2 non-probabilistic map elements for counting them as a correspondence. |
| minMahaDistForCorr | [IN] The minimum Mahalanobis distance between 2 probabilistic map elements for counting them as a correspondence. |
Implements mrpt::slam::CMetricMap.
| int mrpt::slam::COccupancyGridMap2D::computeClearance | ( | int | cx, |
| int | cy, | ||
| int * | basis_x, | ||
| int * | basis_y, | ||
| int * | nBasis, | ||
| bool | GetContourPoint = false |
||
| ) | const |
Compute the clearance of a given cell, and returns its two first basis (closest obstacle) points.Used to build Voronoi and critical points.
| cx | The cell index |
| cy | The cell index |
| basis_x | Target buffer for coordinates of basis, having a size of two "ints". |
| basis_y | Target buffer for coordinates of basis, having a size of two "ints". |
| nBasis | The number of found basis: Can be 0,1 or 2. |
| GetContourPoint | If "true" the basis are not returned, but the closest free cells.Default at false. |
| float mrpt::slam::COccupancyGridMap2D::computeClearance | ( | float | x, |
| float | y, | ||
| float | maxSearchDistance | ||
| ) | const |
An alternative method for computing the clearance of a given location (in meters).
| void mrpt::slam::COccupancyGridMap2D::computeEntropy | ( | TEntropyInfo & | info | ) | const |
Computes the entropy and related values of this grid map.
The entropy is computed as the summed entropy of each cell, taking them as discrete random variables following a Bernoulli distribution:
| info | The output information is returned here. |
| double mrpt::slam::COccupancyGridMap2D::computeLikelihoodField_II | ( | const CPointsMap * | pm, |
| const CPose2D * | relativePose = NULL |
||
| ) |
Computes the likelihood [0,1] of a set of points, given the current grid map as reference.
| pm | The points map |
| relativePose | The relative pose of the points map in this map's coordinates, or NULL for (0,0,0). See "likelihoodOptions" for configuration parameters. |
| double mrpt::slam::COccupancyGridMap2D::computeLikelihoodField_Thrun | ( | const CPointsMap * | pm, |
| const CPose2D * | relativePose = NULL |
||
| ) |
Computes the likelihood [0,1] of a set of points, given the current grid map as reference.
| pm | The points map |
| relativePose | The relative pose of the points map in this map's coordinates, or NULL for (0,0,0). See "likelihoodOptions" for configuration parameters. |
|
virtual |
See the base class for more details: In this class it is implemented as correspondences of the passed points map to occupied cells.
NOTICE: That the "z" dimension is ignored in the points. Clip the points as appropiated if needed before calling this method.
Reimplemented from mrpt::slam::CMetricMap.
|
inlinevirtualinherited |
Computes the matchings between this and another 3D points map - method used in 3D-ICP.
This method finds the set of point pairs in each map.
The method is the most time critical one into the ICP algorithm.
| otherMap | [IN] The other map to compute the matching with. |
| otherMapPose | [IN] The pose of the other map as seen from "this". |
| maxDistForCorrespondence | [IN] Maximum 2D linear distance between two points to be matched. |
| maxAngularDistForCorrespondence | [IN] In radians: The aim is to allow larger distances to more distant correspondences. |
| angularDistPivotPoint | [IN] The point used to calculate distances from in both maps. |
| correspondences | [OUT] The detected matchings pairs. |
| correspondencesRatio | [OUT] The ratio [0,1] of points in otherMap with at least one correspondence. |
| sumSqrDist | [OUT] The sum of all matched points squared distances.If undesired, set to NULL, as default. |
| onlyKeepTheClosest | [IN] If set to true, only the closest correspondence will be returned. If false (default) all are returned. |
Reimplemented in mrpt::slam::CPointsMap.
Definition at line 272 of file CMetricMap.h.
References MRPT_END, MRPT_START, and THROW_EXCEPTION.
|
inlineinherited |
Computes the log-likelihood of a given observation given an arbitrary robot 2D pose.
| takenFrom | The robot's pose the observation is supposed to be taken from. |
| obs | The observation. |
Definition at line 175 of file CMetricMap.h.
|
virtual |
Computes the likelihood that a given observation was taken from a given pose in the world being modeled with this map.
See "likelihoodOptions" for configuration parameters.
| takenFrom | The robot's pose the observation is supposed to be taken from. |
| obs | The observation. |
Used in particle filter algorithms, see: CMultiMetricMapPDF::prediction_and_update
Implements mrpt::slam::CMetricMap.
|
protected |
One of the methods that can be selected for implementing "computeObservationLikelihood".
|
protected |
One of the methods that can be selected for implementing "computeObservationLikelihood" (This method is the Range-Scan Likelihood Consensus for gridmaps, see the ICRA2007 paper by Blanco et al.)
|
protected |
One of the methods that can be selected for implementing "computeObservationLikelihood" TODO: This method is described in....
|
protected |
One of the methods that can be selected for implementing "computeObservationLikelihood".
|
protected |
One of the methods that can be selected for implementing "computeObservationLikelihood".
|
protected |
One of the methods that can be selected for implementing "computeObservationLikelihood".
|
protected |
One of the methods that can be selected for implementing "computeObservationLikelihood".
|
inherited |
Returns the sum of the log-likelihoods of each individual observation within a mrpt::slam::CSensoryFrame.
| takenFrom | The robot's pose the observation is supposed to be taken from. |
| sf | The set of observations in a CSensoryFrame. |
| float mrpt::slam::COccupancyGridMap2D::computePathCost | ( | float | x1, |
| float | y1, | ||
| float | x2, | ||
| float | y2 | ||
| ) | const |
Compute the 'cost' of traversing a segment of the map according to the occupancy of traversed cells.
|
static |
|
static |
|
private |
Returns the index [0,7] of the given movement, or -1 if invalid one.
|
virtual |
Returns a copy of the object, indepently of its class.
Implements mrpt::utils::CObject.
|
inlineinherited |
| void mrpt::slam::COccupancyGridMap2D::fill | ( | float | default_value = 0.5f | ) |
Fills all the cells with a default value.
| void mrpt::slam::COccupancyGridMap2D::findCriticalPoints | ( | float | filter_distance | ) |
Builds a list with the critical points from Voronoi diagram, which must must be built before calling this method.
| filter_distance | The minimum distance between two critical points. |
|
protected |
Frees the dynamic memory buffers of map.
|
inline |
Returns the area of the gridmap, in square meters.
Definition at line 338 of file COccupancyGridMap2D.h.
References mrpt::utils::square().
|
virtual |
Returns a 3D plane with its texture being the occupancy grid and transparency proportional to "uncertainty" (i.e.
a value of 0.5 is fully transparent)
Implements mrpt::slam::CMetricMap.
| void mrpt::slam::COccupancyGridMap2D::getAsImage | ( | utils::CImage & | img, |
| bool | verticalFlip = false, |
||
| bool | forceRGB = false, |
||
| bool | tricolor = false |
||
| ) | const |
Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if forceRGB is true) If "tricolor" is true, only three gray levels will appear in the image: gray for unobserved cells, and black/white for occupied/empty cells respectively.
| void mrpt::slam::COccupancyGridMap2D::getAsImageFiltered | ( | utils::CImage & | img, |
| bool | verticalFlip = false, |
||
| bool | forceRGB = false |
||
| ) | const |
Returns the grid as a 8-bit graylevel image, where each pixel is a cell (output image is RGB only if forceRGB is true) - This method filters the image for easy feature detection If "tricolor" is true, only three gray levels will appear in the image: gray for unobserved cells, and black/white for occupied/empty cells respectively.
|
inlinevirtualinherited |
If the map is a simple points map or it's a multi-metric map that contains EXACTLY one simple points map, return it.
Otherwise, return NULL
Reimplemented in mrpt::slam::CPointsMap, mrpt::slam::CMultiMetricMap, and mrpt::slam::CSimplePointsMap.
Definition at line 346 of file CMetricMap.h.
|
inlinevirtualinherited |
Reimplemented in mrpt::slam::CPointsMap, mrpt::slam::CMultiMetricMap, and mrpt::slam::CSimplePointsMap.
Definition at line 347 of file CMetricMap.h.
|
inline |
Reads a cell in the "basis" maps.Used for Voronoi calculation.
Definition at line 464 of file COccupancyGridMap2D.h.
References ASSERT_ABOVEEQ_, ASSERT_BELOWEQ_, mrpt::utils::CDynamicGrid< T >::cellByIndex(), mrpt::utils::CDynamicGrid< T >::getSizeX(), and mrpt::utils::CDynamicGrid< T >::getSizeY().
|
inline |
Return the auxiliary "basis" map built while building the Voronoi diagram.
Definition at line 769 of file COccupancyGridMap2D.h.
|
inline |
Read the real valued [0,1] contents of a cell, given its index.
Definition at line 419 of file COccupancyGridMap2D.h.
|
inlineprotected |
Read the real valued [0,1] contents of a cell, given its index.
Definition at line 183 of file COccupancyGridMap2D.h.
|
inlineprivate |
Returns a byte with the occupancy of the 8 sorrounding cells.
| cx | The cell index |
| cy | The cell index |
|
inline |
Read the real valued [0,1] contents of a cell, given its coordinates.
Definition at line 441 of file COccupancyGridMap2D.h.
|
inline |
Returns the resolution of the grid map.
Definition at line 366 of file COccupancyGridMap2D.h.
|
inline |
Access to a "row": mainly used for drawing grid as a bitmap efficiently, do not use it normally.
Definition at line 429 of file COccupancyGridMap2D.h.
|
inline |
Access to a "row": mainly used for drawing grid as a bitmap efficiently, do not use it normally.
Definition at line 433 of file COccupancyGridMap2D.h.
|
virtual |
Returns information about the class of an object in runtime.
Reimplemented from mrpt::slam::CMetricMap.
|
inline |
Returns the horizontal size of grid map in cells count.
Definition at line 342 of file COccupancyGridMap2D.h.
|
inline |
Returns the vertical size of grid map in cells count.
Definition at line 346 of file COccupancyGridMap2D.h.
|
inline |
Reads a the clearance of a cell (in centimeters), after building the Voronoi diagram with buildVoronoiDiagram.
Definition at line 740 of file COccupancyGridMap2D.h.
References ASSERT_ABOVEEQ_, ASSERT_BELOWEQ_, mrpt::utils::CDynamicGrid< T >::cellByIndex(), mrpt::utils::CDynamicGrid< T >::getSizeX(), and mrpt::utils::CDynamicGrid< T >::getSizeY().
|
inline |
Return the Voronoi diagram; each cell contains the distance to its closer obstacle, or 0 if not part of the Voronoi diagram.
Definition at line 772 of file COccupancyGridMap2D.h.
|
inline |
Returns the "x" coordinate of right side of grid map.
Definition at line 354 of file COccupancyGridMap2D.h.
|
inline |
Returns the "x" coordinate of left side of grid map.
Definition at line 350 of file COccupancyGridMap2D.h.
|
inline |
Returns the "y" coordinate of bottom side of grid map.
Definition at line 362 of file COccupancyGridMap2D.h.
|
inline |
Returns the "y" coordinate of top side of grid map.
Definition at line 358 of file COccupancyGridMap2D.h.
|
staticprotected |
Entropy computation internal function:
|
inlineprotectedinherited |
Can be called by a derived class before preparing an event for publishing with publishEvent to determine if there is no one subscribed, so it can save the wasted time preparing an event that will be not read.
Definition at line 69 of file CObservable.h.
|
inline |
Transform a cell index into a coordinate value.
Definition at line 378 of file COccupancyGridMap2D.h.
|
inline |
Definition at line 379 of file COccupancyGridMap2D.h.
|
inlineinherited |
Insert the observation information into this map.
This method must be implemented in derived classes.
| obs | The observation |
| robotPose | The 3D pose of the robot mobile base in the map reference system, or NULL (default) if you want to use the origin. |
Definition at line 133 of file CMetricMap.h.
|
inlineinherited |
A wrapper for smart pointers, just calls the non-smart pointer version.
Definition at line 147 of file CMetricMap.h.
References MRPT_END, MRPT_START, mrpt::slam::CObservationPtr::pointer(), mrpt::stlplus::smart_ptr_base< T, C, COUNTER >::present(), and THROW_EXCEPTION.
|
protectedvirtual |
Clear the map: It set all cells to their default occupancy value (0.5), without changing the resolution (the grid extension is reset to the default values).
Implements mrpt::slam::CMetricMap.
|
protectedvirtual |
Insert the observation information into this map.
| obs | The observation |
| robotPose | The 3D pose of the robot mobile base in the map reference system, or NULL (default) if you want to use CPose2D(0,0,deg) |
After successfull execution, "lastObservationInsertionInfo" is updated.
Implements mrpt::slam::CMetricMap.
|
virtual |
Returns true upon map construction or after calling clear(), the return changes to false upon successful insertObservation() or any other method to load data in the map.
Implements mrpt::slam::CMetricMap.
|
inline |
Definition at line 446 of file COccupancyGridMap2D.h.
|
inline |
Returns "true" if cell is "static", i.e.if its occupancy is below a given threshold.
Definition at line 445 of file COccupancyGridMap2D.h.
|
inlinestatic |
Scales an integer representation of the log-odd into a real valued probability in [0,1], using p=exp(l)/(1+exp(l))
Definition at line 388 of file COccupancyGridMap2D.h.
References mrpt::slam::CLogOddsGridMapLUT< TCELL >::l2p().
|
inlinestatic |
Scales an integer representation of the log-odd into a linear scale [0,255], using p=exp(l)/(1+exp(l))
Definition at line 395 of file COccupancyGridMap2D.h.
References mrpt::slam::CLogOddsGridMapLUT< TCELL >::l2p_255().
| void mrpt::slam::COccupancyGridMap2D::laserScanSimulator | ( | CObservation2DRangeScan & | inout_Scan, |
| const CPose2D & | robotPose, | ||
| float | threshold = 0.5f, |
||
| size_t | N = 361, |
||
| float | noiseStd = 0, |
||
| unsigned int | decimation = 1, |
||
| float | angleNoiseStd = DEG2RAD(0) |
||
| ) | const |
Simulates a laser range scan into the current grid map.
The simulated scan is stored in a CObservation2DRangeScan object, which is also used to pass some parameters: all previously stored characteristics (as aperture,...) are taken into account for simulation. Only a few more parameters are needed. Additive gaussian noise can be optionally added to the simulated scan.
| inout_Scan | [IN/OUT] This must be filled with desired parameters before calling, and will contain the scan samples on return. |
| robotPose | [IN] The robot pose in this map coordinates. Recall that sensor pose relative to this robot pose must be specified in the observation object. |
| threshold | [IN] The minimum occupancy threshold to consider a cell to be occupied, for example 0.5. |
| N | [IN] The count of range scan "rays", by default to 361. |
| noiseStd | [IN] The standard deviation of measurement noise. If not desired, set to 0. |
| decimation | [IN] The rays that will be simulated are at indexes: 0, D, 2D, 3D, ... Default is D=1 |
| angleNoiseStd | [IN] The sigma of an optional Gaussian noise added to the angles at which ranges are measured (in radians). |
| bool mrpt::slam::COccupancyGridMap2D::loadFromBitmap | ( | const mrpt::utils::CImage & | img, |
| float | resolution, | ||
| float | xCentralPixel = -1, |
||
| float | yCentralPixel = -1 |
||
| ) |
Load the gridmap from a image in a file (the format can be any supported by CImage::loadFromFile).
| img | The image. Only a grayscale image will be used, so RGB components will be mixed if a color image is passed. |
| resolution | The size of a pixel (cell), in meters. Recall cells are always squared, so just a dimension is needed. |
| xCentralPixel | The "x" coordinate (0=first) for the pixel which will be taken at coordinates origin (0,0). If not supplied, it will be used the middle of the map. |
| yCentralPixel | The "y" coordinate (0=first) for the pixel which will be taken at coordinates origin (0,0). If not supplied, it will be used the middle of the map. |
| bool mrpt::slam::COccupancyGridMap2D::loadFromBitmapFile | ( | const std::string & | file, |
| float | resolution, | ||
| float | xCentralPixel = -1, |
||
| float | yCentralPixel = -1 |
||
| ) |
Load the gridmap from a image in a file (the format can be any supported by CImage::loadFromFile).
| file | The file to be loaded. |
| resolution | The size of a pixel (cell), in meters. Recall cells are always squared, so just a dimension is needed. |
| xCentralPixel | The "x" coordinate (0=first) for the pixel which will be taken at coordinates origin (0,0). If not supplied, it will be used the middle of the map. |
| yCentralPixel | The "y" coordinate (0=first) for the pixel which will be taken at coordinates origin (0,0). If not supplied, it will be used the middle of the map. |
|
inherited |
Load the map contents from a CSimpleMap object, erasing all previous content of the map.
This is automaticed invoking "insertObservation" for each observation at the mean 3D robot pose as given by the "poses::CPosePDF" in the CSimpleMap object.
| std::exception | Some internal steps in invoked methods can raise exceptions on invalid parameters, etc... |
|
inlineinherited |
Load the map contents from a CSimpleMap object, erasing all previous content of the map.
This is automaticed invoking "insertObservation" for each observation at the mean 3D robot pose as given by the "poses::CPosePDF" in the CSimpleMap object.
| std::exception | Some internal steps in invoked methods can raise exceptions on invalid parameters, etc... |
Definition at line 124 of file CMetricMap.h.
|
protectedvirtual |
See base class.
Reimplemented from mrpt::slam::CMetricMap.
|
inlinestatic |
Scales a real valued probability in [0,1] to an integer representation of: log(p)-log(1-p) in the valid range of cellType.
Definition at line 402 of file COccupancyGridMap2D.h.
References mrpt::slam::CLogOddsGridMapLUT< TCELL >::p2l().
|
protectedinherited |
Called when you want this object to emit an event to all the observers currently subscribed to this object.
|
protectedvirtual |
Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori.
| in | The input binary stream where the object data must read from. |
| version | The version of the object stored in the stream: use this version number in your code to know how to read the incoming data. |
| std::exception | On any error, see CStream::ReadBuffer |
Implements mrpt::utils::CSerializable.
| void mrpt::slam::COccupancyGridMap2D::resizeGrid | ( | float | new_x_min, |
| float | new_x_max, | ||
| float | new_y_min, | ||
| float | new_y_max, | ||
| float | new_cells_default_value = 0.5f, |
||
| bool | additionalMargin = true |
||
| ) |
Change the size of gridmap, maintaining previous contents.
| new_x_min | The "x" coordinates of new left most side of grid. |
| new_x_max | The "x" coordinates of new right most side of grid. |
| new_y_min | The "y" coordinates of new top most side of grid. |
| new_y_max | The "y" coordinates of new bottom most side of grid. |
| new_cells_default_value | The value of the new cells, tipically 0.5. |
| additionalMargin | If set to true (default), an additional margin of a few meters will be added to the grid, ONLY if the new coordinates are larger than current ones. |
| bool mrpt::slam::COccupancyGridMap2D::saveAsBitmapFile | ( | const std::string & | file | ) | const |
Saves the gridmap as a graphical file (BMP,PNG,...).
The format will be derived from the file extension (see CImage::saveToFile )
|
inline |
Saves the gridmap as a graphical bitmap file, 8 bit gray scale, 1 pixel is 1 cell, and with an overlay of landmarks.
Definition at line 929 of file COccupancyGridMap2D.h.
References mrpt::utils::TColor::black, mrpt::format(), MRPT_END, and MRPT_START.
|
static |
Saves a composite image with two gridmaps and lines representing a set of correspondences between them.
|
static |
Saves a composite image with two gridmaps and numbers for the correspondences between them.
|
virtual |
This virtual method saves the map to a file "filNamePrefix"+< some_file_extension >, as an image or in any other applicable way (Notice that other methods to save the map may be implemented in classes implementing this virtual interface).
Implements mrpt::slam::CMetricMap.
|
inline |
Change a cell in the "basis" maps.Used for Voronoi calculation.
Definition at line 450 of file COccupancyGridMap2D.h.
References ASSERT_ABOVEEQ_, ASSERT_BELOWEQ_, mrpt::utils::CDynamicGrid< T >::cellByIndex(), mrpt::utils::CDynamicGrid< T >::getSizeX(), and mrpt::utils::CDynamicGrid< T >::getSizeY().
|
inline |
Change the contents [0,1] of a cell, given its index.
Definition at line 409 of file COccupancyGridMap2D.h.
|
inlineprotected |
Change the contents [0,1] of a cell, given its index.
Definition at line 176 of file COccupancyGridMap2D.h.
|
inline |
Change the contents [0,1] of a cell, given its coordinates.
Definition at line 437 of file COccupancyGridMap2D.h.
|
inlineprotected |
Changes a cell by its absolute index (Do not use it normally)
Definition at line 190 of file COccupancyGridMap2D.h.
| void mrpt::slam::COccupancyGridMap2D::setSize | ( | float | x_min, |
| float | x_max, | ||
| float | y_min, | ||
| float | y_max, | ||
| float | resolution, | ||
| float | default_value = 0.5f |
||
| ) |
Change the size of gridmap, erasing all its previous contents.
| x_min | The "x" coordinates of left most side of grid. |
| x_max | The "x" coordinates of right most side of grid. |
| y_min | The "y" coordinates of top most side of grid. |
| y_max | The "y" coordinates of bottom most side of grid. |
| resolution | The new size of cells. |
| default_value | The value of cells, tipically 0.5. |
|
inlineprotected |
Used to set the clearance of a cell, while building the Voronoi diagram.
Definition at line 754 of file COccupancyGridMap2D.h.
References ASSERT_ABOVEEQ_, ASSERT_BELOWEQ_, mrpt::utils::CDynamicGrid< T >::cellByIndex(), mrpt::utils::CDynamicGrid< T >::getSizeX(), and mrpt::utils::CDynamicGrid< T >::getSizeY().
|
inline |
Simulate just one "ray" in the grid map.
This method is used internally to sonarSimulator and laserScanSimulator.
| void mrpt::slam::COccupancyGridMap2D::sonarSimulator | ( | CObservationRange & | inout_observation, |
| const CPose2D & | robotPose, | ||
| float | threshold = 0.5f, |
||
| float | rangeNoiseStd = 0, |
||
| float | angleNoiseStd = DEG2RAD(0) |
||
| ) | const |
Simulates the observations of a sonar rig into the current grid map.
The simulated ranges are stored in a CObservationRange object, which is also used to pass in some needed parameters, as the poses of the sonar sensors onto the mobile robot.
| inout_observation | [IN/OUT] This must be filled with desired parameters before calling, and will contain the simulated ranges on return. |
| robotPose | [IN] The robot pose in this map coordinates. Recall that sensor pose relative to this robot pose must be specified in the observation object. |
| threshold | [IN] The minimum occupancy threshold to consider a cell to be occupied, for example 0.5. |
| rangeNoiseStd | [IN] The standard deviation of measurement noise. If not desired, set to 0. |
| angleNoiseStd | [IN] The sigma of an optional Gaussian noise added to the angles at which ranges are measured (in radians). |
|
inlinevirtualinherited |
Returns the square distance from the 2D point (x0,y0) to the closest correspondence in the map.
Definition at line 333 of file CMetricMap.h.
References MRPT_END, MRPT_START, and THROW_EXCEPTION.
| void mrpt::slam::COccupancyGridMap2D::subSample | ( | int | downRatio | ) |
Performs a downsampling of the gridmap, by a given factor: resolution/=ratio.
| void mrpt::slam::COccupancyGridMap2D::updateCell | ( | int | x, |
| int | y, | ||
| float | v | ||
| ) |
Performs the Bayesian fusion of a new observation of a cell.
|
inlinestaticinherited |
Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.
This method increases the "free-ness" of a cell, managing possible saturation.
| x | Cell index in X axis. |
| y | Cell index in Y axis. |
| logodd_obs | Observation of the cell, in log-odd form as transformed by p2l. |
| thres | This must be CELLTYPE_MAX-logodd_obs |
Definition at line 119 of file CLogOddsGridMap2D.h.
|
inlinestaticinherited |
Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.
This method increases the "free-ness" of a cell, managing possible saturation.
| x | Cell index in X axis. |
| y | Cell index in Y axis. |
| logodd_obs | Observation of the cell, in log-odd form as transformed by p2l. |
| thres | This must be CELLTYPE_MAX-logodd_obs |
Definition at line 141 of file CLogOddsGridMap2D.h.
|
inlinestaticinherited |
Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.
This method increases the "occupancy-ness" of a cell, managing possible saturation.
| x | Cell index in X axis. |
| y | Cell index in Y axis. |
| logodd_obs | Observation of the cell, in log-odd form as transformed by p2l. |
| thres | This must be CELLTYPE_MIN+logodd_obs |
Definition at line 80 of file CLogOddsGridMap2D.h.
|
inlinestaticinherited |
Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.
This method increases the "occupancy-ness" of a cell, managing possible saturation.
| theCell | The cell to modify |
| logodd_obs | Observation of the cell, in log-odd form as transformed by p2l. |
| thres | This must be CELLTYPE_MIN+logodd_obs |
Definition at line 101 of file CLogOddsGridMap2D.h.
|
protectedvirtual |
Introduces a pure virtual method responsible for writing to a CStream.
This can not be used directly be users, instead use "stream << object;" for writing it to a stream.
| out | The output binary stream where object must be dumped. |
| getVersion | If NULL, the object must be dumped. If not, only the version of the object dump must be returned in this pointer. This enables the versioning of objects dumping and backward compatibility with previously stored data. |
| std::exception | On any error, see CStream::WriteBuffer |
Implements mrpt::utils::CSerializable.
|
inline |
Transform a coordinate value into a cell index.
Definition at line 370 of file COccupancyGridMap2D.h.
|
inline |
Definition at line 373 of file COccupancyGridMap2D.h.
|
inline |
Transform a coordinate value into a cell index, using a diferent "x_min" value.
Definition at line 383 of file COccupancyGridMap2D.h.
|
inline |
Definition at line 371 of file COccupancyGridMap2D.h.
|
inline |
Definition at line 374 of file COccupancyGridMap2D.h.
|
inline |
Definition at line 384 of file COccupancyGridMap2D.h.
|
friend |
Definition at line 121 of file COccupancyGridMap2D.h.
|
friend |
Definition at line 122 of file COccupancyGridMap2D.h.
|
staticprotected |
Definition at line 102 of file COccupancyGridMap2D.h.
|
staticinherited |
Definition at line 52 of file CLogOddsGridMap2D.h.
|
staticinherited |
Definition at line 51 of file CLogOddsGridMap2D.h.
|
staticinherited |
Definition at line 81 of file CMetricMap.h.
|
staticinherited |
|
static |
Definition at line 102 of file COccupancyGridMap2D.h.
|
staticinherited |
Definition at line 56 of file CSerializable.h.
|
static |
Definition at line 102 of file COccupancyGridMap2D.h.
| struct MAPS_IMPEXP mrpt::slam::COccupancyGridMap2D::TCriticalPointsList mrpt::slam::COccupancyGridMap2D::CriticalPointsList |
|
private |
Used to store the 8 possible movements from a cell to the sorrounding ones.Filled in the constructor.
Definition at line 1071 of file COccupancyGridMap2D.h.
|
private |
Definition at line 1071 of file COccupancyGridMap2D.h.
|
staticprotected |
Internally used to speed-up entropy calculation.
Definition at line 200 of file COccupancyGridMap2D.h.
| TInsertionOptions mrpt::slam::COccupancyGridMap2D::insertionOptions |
With this struct options are provided to the observation insertion process.
Definition at line 580 of file COccupancyGridMap2D.h.
| mrpt::slam::COccupancyGridMap2D::TLikelihoodOptions mrpt::slam::COccupancyGridMap2D::likelihoodOptions |
| class mrpt::slam::COccupancyGridMap2D::TLikelihoodOutput mrpt::slam::COccupancyGridMap2D::likelihoodOutputs |
|
staticinherited |
Definition at line 54 of file CLogOddsGridMap2D.h.
|
protected |
Used for Voronoi calculation.Same struct as "map", but contains a "0" if not a basis point.
Definition at line 150 of file COccupancyGridMap2D.h.
|
inherited |
When set to true (default=false), calling "getAs3DObject" will have no effects.
Definition at line 321 of file CMetricMap.h.
|
protected |
True upon construction; used by isEmpty()
Definition at line 158 of file COccupancyGridMap2D.h.
|
staticprotected |
Lookup tables for log-odds.
Definition at line 124 of file COccupancyGridMap2D.h.
|
protected |
Used to store the Voronoi diagram.
Contains the distance of each cell to its closer obstacles in 1/100th distance units (i.e. in centimeters), or 0 if not into the Voronoi diagram.
Definition at line 156 of file COccupancyGridMap2D.h.
|
protected |
This is the buffer for storing the cells.In this dynamic size buffer are stored the cell values as "bytes", stored row by row, from left to right cells.
Definition at line 130 of file COccupancyGridMap2D.h.
|
static |
Definition at line 116 of file COccupancyGridMap2D.h.
|
static |
Discrete to float conversion factors: The min/max values of the integer cell type, eg.
[0,255] or [0,65535]
Definition at line 115 of file COccupancyGridMap2D.h.
|
static |
Definition at line 117 of file COccupancyGridMap2D.h.
|
staticinherited |
Definition at line 53 of file CLogOddsGridMap2D.h.
|
protected |
These are auxiliary variables to speed up the computation of observation likelihood values for LF method among others, at a high cost in memory (see TLikelihoodOptions::enableLikelihoodCache).
Definition at line 146 of file COccupancyGridMap2D.h.
|
protected |
Definition at line 147 of file COccupancyGridMap2D.h.
|
protected |
|
protected |
The size of the grid in cells.
Definition at line 134 of file COccupancyGridMap2D.h.
|
protected |
Definition at line 134 of file COccupancyGridMap2D.h.
| struct MAPS_IMPEXP mrpt::slam::COccupancyGridMap2D::TUpdateCellsInfoChangeOnly mrpt::slam::COccupancyGridMap2D::updateInfoChangeOnly |
|
protected |
The free-cells threshold used to compute the Voronoi diagram.
Definition at line 164 of file COccupancyGridMap2D.h.
|
protected |
Definition at line 138 of file COccupancyGridMap2D.h.
|
protected |
The limits of the grid in "units" (meters).
Definition at line 138 of file COccupancyGridMap2D.h.
|
protected |
Definition at line 138 of file COccupancyGridMap2D.h.
|
protected |
Definition at line 138 of file COccupancyGridMap2D.h.
| Page generated by Doxygen 1.8.3 for MRPT 0.9.6 SVN: at Fri Feb 15 22:05:02 EST 2013 |