An internal class for storing the collision grid
Definition at line 168 of file CPTG_DiffDrive_CollisionGridBased.h.
#include <mrpt/nav/tpspace/CPTG_DiffDrive_CollisionGridBased.h>
Public Member Functions | |
CCollisionGrid (float x_min, float x_max, float y_min, float y_max, float resolution, CPTG_DiffDrive_CollisionGridBased *parent) | |
virtual | ~CCollisionGrid () |
bool | saveToFile (mrpt::serialization::CArchive *fil, const mrpt::math::CPolygon &computed_robotShape) const |
Save to file, true = OK. More... | |
bool | loadFromFile (mrpt::serialization::CArchive *fil, const mrpt::math::CPolygon ¤t_robotShape) |
Load from file, true = OK. More... | |
const TCollisionCell & | getTPObstacle (const float obsX, const float obsY) const |
For an obstacle (x,y), returns a vector with all the pairs (a,d) such as the robot collides. More... | |
void | updateCellInfo (const unsigned int icx, const unsigned int icy, const uint16_t k, const float dist) |
Updates the info into a cell: It updates the cell only if the distance d for the path k is lower than the previous value: More... | |
void | setSize (const double x_min, const double x_max, const double y_min, const double y_max, const double resolution, const TCollisionCell *fill_value=nullptr) |
Changes the size of the grid, ERASING all previous contents. More... | |
void | clear () |
Erase the contents of all the cells. More... | |
void | fill (const TCollisionCell &value) |
Fills all the cells with the same value. More... | |
virtual void | resize (double new_x_min, double new_x_max, double new_y_min, double new_y_max, const TCollisionCell &defaultValueNewCells, double additionalMarginMeters=2.0) |
Changes the size of the grid, maintaining previous contents. More... | |
TCollisionCell * | cellByPos (double x, double y) |
Returns a pointer to the contents of a cell given by its coordinates, or nullptr if it is out of the map extensions. More... | |
const TCollisionCell * | cellByPos (double x, double y) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
TCollisionCell * | cellByIndex (unsigned int cx, unsigned int cy) |
Returns a pointer to the contents of a cell given by its cell indexes, or nullptr if it is out of the map extensions. More... | |
const TCollisionCell * | cellByIndex (unsigned int cx, unsigned int cy) const |
Returns a pointer to the contents of a cell given by its cell indexes, or nullptr if it is out of the map extensions. More... | |
size_t | getSizeX () const |
Returns the horizontal size of grid map in cells count. More... | |
size_t | getSizeY () const |
Returns the vertical size of grid map in cells count. More... | |
double | getXMin () const |
Returns the "x" coordinate of left side of grid map. More... | |
double | getXMax () const |
Returns the "x" coordinate of right side of grid map. More... | |
double | getYMin () const |
Returns the "y" coordinate of top side of grid map. More... | |
double | getYMax () const |
Returns the "y" coordinate of bottom side of grid map. More... | |
double | getResolution () const |
Returns the resolution of the grid map. More... | |
int | x2idx (double x) const |
Transform a coordinate values into cell indexes. More... | |
int | y2idx (double y) const |
int | xy2idx (double x, double y) const |
void | idx2cxcy (const int &idx, int &cx, int &cy) const |
Transform a global (linear) cell index value into its corresponding (x,y) cell indexes. More... | |
double | idx2x (int cx) const |
Transform a cell index into a coordinate value of the cell central point. More... | |
double | idx2y (int cy) const |
void | getAsMatrix (MAT &m) const |
Get the entire grid as a matrix. More... | |
virtual float | cell2float (const TCollisionCell &) const |
The user must implement this in order to provide "saveToTextFile" a way to convert each cell into a numeric value. More... | |
bool | saveToTextFile (const std::string &fileName) const |
Saves a float representation of the grid (via "cell2float()") to a text file. More... | |
Protected Member Functions | |
std::vector< TCollisionCell > & | m_map_castaway_const () const |
Used only from logically const method that really need to modify the object. More... | |
void | dyngridcommon_writeToStream (STREAM &out) const |
void | dyngridcommon_readFromStream (STREAM &in, bool cast_from_float=false) |
Protected Attributes | |
std::vector< TCollisionCell > | m_map |
The cells More... | |
double | m_x_min |
double | m_x_max |
double | m_y_min |
double | m_y_max |
double | m_resolution |
size_t | m_size_x |
size_t | m_size_y |
Private Attributes | |
CPTG_DiffDrive_CollisionGridBased const * | m_parent |
|
inline |
Definition at line 174 of file CPTG_DiffDrive_CollisionGridBased.h.
|
inlinevirtual |
Definition at line 182 of file CPTG_DiffDrive_CollisionGridBased.h.
|
inlinevirtualinherited |
The user must implement this in order to provide "saveToTextFile" a way to convert each cell into a numeric value.
Definition at line 320 of file CDynamicGrid.h.
|
inlineinherited |
Returns a pointer to the contents of a cell given by its cell indexes, or nullptr if it is out of the map extensions.
Definition at line 232 of file CDynamicGrid.h.
|
inlineinherited |
Returns a pointer to the contents of a cell given by its cell indexes, or nullptr if it is out of the map extensions.
Definition at line 243 of file CDynamicGrid.h.
|
inlineinherited |
Returns a pointer to the contents of a cell given by its coordinates, or nullptr if it is out of the map extensions.
Definition at line 211 of file CDynamicGrid.h.
|
inlineinherited |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 220 of file CDynamicGrid.h.
|
inlineinherited |
Erase the contents of all the cells.
Definition at line 109 of file CDynamicGrid.h.
|
inlineprotectedinherited |
Definition at line 351 of file CDynamicGrid.h.
|
inlineprotectedinherited |
Definition at line 343 of file CDynamicGrid.h.
|
inlineinherited |
Fills all the cells with the same value.
Definition at line 117 of file CDynamicGrid.h.
|
inlineinherited |
Get the entire grid as a matrix.
MAT | The type of the matrix, typically a mrpt::math::CMatrixDouble. |
[out] | m | The output matrix; will be set automatically to the correct size. Entry (cy,cx) in the matrix contains the grid cell with indices (cx,cy). |
Definition at line 309 of file CDynamicGrid.h.
|
inlineinherited |
Returns the resolution of the grid map.
Definition at line 264 of file CDynamicGrid.h.
|
inlineinherited |
Returns the horizontal size of grid map in cells count.
Definition at line 252 of file CDynamicGrid.h.
|
inlineinherited |
Returns the vertical size of grid map in cells count.
Definition at line 254 of file CDynamicGrid.h.
const CPTG_DiffDrive_CollisionGridBased::TCollisionCell & CPTG_DiffDrive_CollisionGridBased::CCollisionGrid::getTPObstacle | ( | const float | obsX, |
const float | obsY | ||
) | const |
For an obstacle (x,y), returns a vector with all the pairs (a,d) such as the robot collides.
Definition at line 293 of file CPTG_DiffDrive_CollisionGridBased.cpp.
References mrpt::containers::CDynamicGrid< TCollisionCell >::cellByPos().
Referenced by mrpt::nav::CPTG_DiffDrive_CollisionGridBased::updateTPObstacle(), and mrpt::nav::CPTG_DiffDrive_CollisionGridBased::updateTPObstacleSingle().
|
inlineinherited |
Returns the "x" coordinate of right side of grid map.
Definition at line 258 of file CDynamicGrid.h.
|
inlineinherited |
Returns the "x" coordinate of left side of grid map.
Definition at line 256 of file CDynamicGrid.h.
|
inlineinherited |
Returns the "y" coordinate of bottom side of grid map.
Definition at line 262 of file CDynamicGrid.h.
|
inlineinherited |
Returns the "y" coordinate of top side of grid map.
Definition at line 260 of file CDynamicGrid.h.
|
inlineinherited |
Transform a global (linear) cell index value into its corresponding (x,y) cell indexes.
Definition at line 281 of file CDynamicGrid.h.
|
inlineinherited |
Transform a cell index into a coordinate value of the cell central point.
Definition at line 289 of file CDynamicGrid.h.
|
inlineinherited |
Definition at line 293 of file CDynamicGrid.h.
bool CPTG_DiffDrive_CollisionGridBased::CCollisionGrid::loadFromFile | ( | mrpt::serialization::CArchive * | fil, |
const mrpt::math::CPolygon & | current_robotShape | ||
) |
Load from file, true = OK.
Definition at line 433 of file CPTG_DiffDrive_CollisionGridBased.cpp.
References COLGRID_FILE_MAGIC, mrpt::nav::CPTG_DiffDrive_CollisionGridBased::m_resolution, READ_DOUBLE_CHECK_IT_MATCHES_STORED, READ_FLOAT_CHECK_IT_MATCHES_STORED, and READ_UINT16_CHECK_IT_MATCHES_STORED.
Referenced by mrpt::nav::CPTG_DiffDrive_CollisionGridBased::loadColGridsFromFile().
|
inlineprotectedinherited |
Used only from logically const method that really need to modify the object.
Definition at line 45 of file CDynamicGrid.h.
|
inlinevirtualinherited |
Changes the size of the grid, maintaining previous contents.
Definition at line 127 of file CDynamicGrid.h.
bool CPTG_DiffDrive_CollisionGridBased::CCollisionGrid::saveToFile | ( | mrpt::serialization::CArchive * | fil, |
const mrpt::math::CPolygon & | computed_robotShape | ||
) | const |
Save to file, true = OK.
Definition at line 386 of file CPTG_DiffDrive_CollisionGridBased.cpp.
References COLGRID_FILE_MAGIC, and mrpt::nav::CPTG_DiffDrive_CollisionGridBased::m_resolution.
Referenced by mrpt::nav::CPTG_DiffDrive_CollisionGridBased::saveColGridsToFile().
|
inlineinherited |
Saves a float representation of the grid (via "cell2float()") to a text file.
Definition at line 323 of file CDynamicGrid.h.
|
inlineinherited |
Changes the size of the grid, ERASING all previous contents.
If fill_value is left as nullptr, the contents of cells may be undefined (some will remain with their old values, the new ones will have the default cell value, but the location of old values may change wrt their old places). If fill_value is not nullptr, it is assured that all cells will have a copy of that value after resizing.
Definition at line 82 of file CDynamicGrid.h.
void CPTG_DiffDrive_CollisionGridBased::CCollisionGrid::updateCellInfo | ( | const unsigned int | icx, |
const unsigned int | icy, | ||
const uint16_t | k, | ||
const float | dist | ||
) |
Updates the info into a cell: It updates the cell only if the distance d for the path k is lower than the previous value:
cellInfo | The index of the cell |
k | The path index (alpha discreet value) |
d | The distance (in TP-Space, range 0..1) to collision. |
Definition at line 305 of file CPTG_DiffDrive_CollisionGridBased.cpp.
Referenced by mrpt::nav::CPTG_DiffDrive_CollisionGridBased::internal_initialize().
|
inlineinherited |
Transform a coordinate values into cell indexes.
Definition at line 266 of file CDynamicGrid.h.
|
inlineinherited |
Definition at line 274 of file CDynamicGrid.h.
|
inlineinherited |
Definition at line 270 of file CDynamicGrid.h.
|
protectedinherited |
The cells
Definition at line 42 of file CDynamicGrid.h.
|
private |
Definition at line 171 of file CPTG_DiffDrive_CollisionGridBased.h.
|
protectedinherited |
Definition at line 50 of file CDynamicGrid.h.
|
protectedinherited |
Definition at line 51 of file CDynamicGrid.h.
|
protectedinherited |
Definition at line 51 of file CDynamicGrid.h.
|
protectedinherited |
Definition at line 50 of file CDynamicGrid.h.
|
protectedinherited |
Definition at line 50 of file CDynamicGrid.h.
|
protectedinherited |
Definition at line 50 of file CDynamicGrid.h.
|
protectedinherited |
Definition at line 50 of file CDynamicGrid.h.
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST |