Stores a nav_msgs::OccupancyGrid in a convenient opencv cv::Mat as binary map (free: 255, occupied: 0) and as distance map (distance to closest obstacle in meter). More...
#include <GridMap2D.h>
Public Member Functions | |
| const cv::Mat & | binaryMap () const |
| uchar | binaryMapAt (double wx, double wy) const |
| Returns map value at world coordinates <wx, wy>; out of bounds will be returned as 0! | |
| uchar | binaryMapAtCell (unsigned int mx, unsigned int my) const |
| Returns map value at map cell <mx, my>; out of bounds will be returned as 0! | |
| uchar & | binaryMapAtCell (unsigned int mx, unsigned int my) |
| Returns map value at map cell <mx, my>; out of bounds will be returned as 0! | |
| const cv::Mat & | distanceMap () const |
| float | distanceMapAt (double wx, double wy) const |
| Returns distance (in m) at world coordinates <wx,wy> in m; -1 if out of bounds! | |
| float | distanceMapAtCell (unsigned int mx, unsigned int my) const |
| Returns distance (in m) at map cell <mx, my> in m; -1 if out of bounds! | |
| const std::string | getFrameID () const |
| returns the tf frame ID of the map (usually "/map") | |
| const nav_msgs::MapMetaData & | getInfo () const |
| float | getResolution () const |
| GridMap2D () | |
| GridMap2D (const nav_msgs::OccupancyGridConstPtr &grid_map, bool unknown_as_obstacle=false) | |
| Create from nav_msgs::OccupancyGrid. | |
| GridMap2D (const GridMap2D &other) | |
| Copy constructor, performs a deep copy of underlying data structures. | |
| void | inflateMap (double inflationRaduis) |
| bool | inMapBounds (double wx, double wy) const |
| check if a coordinate is covered by the map extent (same as worldToMap) | |
| bool | isOccupiedAt (double wx, double wy) const |
| bool | isOccupiedAtCell (unsigned int mx, unsigned int my) const |
| void | mapToWorld (unsigned int mx, unsigned int my, double &wx, double &wy) const |
| void | setMap (const nav_msgs::OccupancyGridConstPtr &grid_map, bool unknown_as_obstacle=false) |
| Initialize map from a ROS OccupancyGrid message. | |
| void | setMap (const cv::Mat &binary_map) |
| Initialize from an existing cv::Map. mapInfo (in particular resolution) remains the same! | |
| const CvSize | size () const |
| nav_msgs::OccupancyGrid | toOccupancyGridMsg () const |
| Converts back into a ROS nav_msgs::OccupancyGrid msg. | |
| void | updateDistanceMap () |
| Recalculate the internal distance map. Required after manual changes to the grid map data. | |
| double | worldDist (unsigned x1, unsigned y1, unsigned x2, unsigned y2) |
| Distance (in m) between two map coordinates (indices) | |
| double | worldDist (const cv::Point &p1, const cv::Point &p2) |
| bool | worldToMap (double wx, double wy, unsigned int &mx, unsigned int &my) const |
| void | worldToMapNoBounds (double wx, double wy, unsigned int &mx, unsigned int &my) const |
| virtual | ~GridMap2D () |
Static Public Member Functions | |
| static double | pointDist (const cv::Point &p1, const cv::Point &p2) |
| Euclidean distance between two points: | |
| static double | pointDist2 (const cv::Point &p1, const cv::Point &p2) |
| Squared distance between two points: | |
Static Public Attributes | |
| static const uchar | FREE = 255 |
| char value for "free": 255 | |
| static const uchar | OCCUPIED = 0 |
| char value for "free": 0 | |
Protected Attributes | |
| cv::Mat | m_binaryMap |
| binary occupancy map. 255: free, 0 occupied. | |
| cv::Mat | m_distMap |
| distance map (in meter) | |
| std::string | m_frameId |
| "map" frame where ROS OccupancyGrid originated from | |
| nav_msgs::MapMetaData | m_mapInfo |
Stores a nav_msgs::OccupancyGrid in a convenient opencv cv::Mat as binary map (free: 255, occupied: 0) and as distance map (distance to closest obstacle in meter).
Definition at line 49 of file GridMap2D.h.
Definition at line 36 of file GridMap2D.cpp.
| gridmap_2d::GridMap2D::GridMap2D | ( | const nav_msgs::OccupancyGridConstPtr & | grid_map, |
| bool | unknown_as_obstacle = false |
||
| ) |
Create from nav_msgs::OccupancyGrid.
Definition at line 42 of file GridMap2D.cpp.
| gridmap_2d::GridMap2D::GridMap2D | ( | const GridMap2D & | other | ) |
Copy constructor, performs a deep copy of underlying data structures.
Definition at line 48 of file GridMap2D.cpp.
| gridmap_2d::GridMap2D::~GridMap2D | ( | ) | [virtual] |
Definition at line 57 of file GridMap2D.cpp.
| const cv::Mat& gridmap_2d::GridMap2D::binaryMap | ( | ) | const [inline] |
Definition at line 130 of file GridMap2D.h.
| uchar gridmap_2d::GridMap2D::binaryMapAt | ( | double | wx, |
| double | wy | ||
| ) | const |
Returns map value at world coordinates <wx, wy>; out of bounds will be returned as 0!
Definition at line 185 of file GridMap2D.cpp.
| uchar gridmap_2d::GridMap2D::binaryMapAtCell | ( | unsigned int | mx, |
| unsigned int | my | ||
| ) | const |
Returns map value at map cell <mx, my>; out of bounds will be returned as 0!
Definition at line 199 of file GridMap2D.cpp.
| uchar & gridmap_2d::GridMap2D::binaryMapAtCell | ( | unsigned int | mx, |
| unsigned int | my | ||
| ) |
Returns map value at map cell <mx, my>; out of bounds will be returned as 0!
Definition at line 203 of file GridMap2D.cpp.
| const cv::Mat& gridmap_2d::GridMap2D::distanceMap | ( | ) | const [inline] |
Definition at line 128 of file GridMap2D.h.
| float gridmap_2d::GridMap2D::distanceMapAt | ( | double | wx, |
| double | wy | ||
| ) | const |
Returns distance (in m) at world coordinates <wx,wy> in m; -1 if out of bounds!
Definition at line 175 of file GridMap2D.cpp.
| float gridmap_2d::GridMap2D::distanceMapAtCell | ( | unsigned int | mx, |
| unsigned int | my | ||
| ) | const |
Returns distance (in m) at map cell <mx, my> in m; -1 if out of bounds!
Definition at line 194 of file GridMap2D.cpp.
| const std::string gridmap_2d::GridMap2D::getFrameID | ( | ) | const [inline] |
returns the tf frame ID of the map (usually "/map")
Definition at line 126 of file GridMap2D.h.
| const nav_msgs::MapMetaData& gridmap_2d::GridMap2D::getInfo | ( | ) | const [inline] |
Definition at line 123 of file GridMap2D.h.
| float gridmap_2d::GridMap2D::getResolution | ( | ) | const [inline] |
Definition at line 124 of file GridMap2D.h.
| void gridmap_2d::GridMap2D::inflateMap | ( | double | inflationRaduis | ) |
Inflate occupancy map by inflationRadius
Definition at line 136 of file GridMap2D.cpp.
| bool gridmap_2d::GridMap2D::inMapBounds | ( | double | wx, |
| double | wy | ||
| ) | const |
check if a coordinate is covered by the map extent (same as worldToMap)
Definition at line 170 of file GridMap2D.cpp.
| bool gridmap_2d::GridMap2D::isOccupiedAt | ( | double | wx, |
| double | wy | ||
| ) | const |
Definition at line 213 of file GridMap2D.cpp.
| bool gridmap_2d::GridMap2D::isOccupiedAtCell | ( | unsigned int | mx, |
| unsigned int | my | ||
| ) | const |
Definition at line 208 of file GridMap2D.cpp.
| void gridmap_2d::GridMap2D::mapToWorld | ( | unsigned int | mx, |
| unsigned int | my, | ||
| double & | wx, | ||
| double & | wy | ||
| ) | const |
Definition at line 145 of file GridMap2D.cpp.
| static double gridmap_2d::GridMap2D::pointDist | ( | const cv::Point & | p1, |
| const cv::Point & | p2 | ||
| ) | [inline, static] |
Euclidean distance between two points:
Definition at line 80 of file GridMap2D.h.
| static double gridmap_2d::GridMap2D::pointDist2 | ( | const cv::Point & | p1, |
| const cv::Point & | p2 | ||
| ) | [inline, static] |
Squared distance between two points:
Definition at line 85 of file GridMap2D.h.
| void gridmap_2d::GridMap2D::setMap | ( | const nav_msgs::OccupancyGridConstPtr & | grid_map, |
| bool | unknown_as_obstacle = false |
||
| ) |
Initialize map from a ROS OccupancyGrid message.
Definition at line 67 of file GridMap2D.cpp.
| void gridmap_2d::GridMap2D::setMap | ( | const cv::Mat & | binary_map | ) |
Initialize from an existing cv::Map. mapInfo (in particular resolution) remains the same!
Definition at line 124 of file GridMap2D.cpp.
| const CvSize gridmap_2d::GridMap2D::size | ( | ) | const [inline] |
Definition at line 132 of file GridMap2D.h.
| nav_msgs::OccupancyGrid gridmap_2d::GridMap2D::toOccupancyGridMsg | ( | ) | const |
Converts back into a ROS nav_msgs::OccupancyGrid msg.
Definition at line 100 of file GridMap2D.cpp.
Recalculate the internal distance map. Required after manual changes to the grid map data.
Definition at line 61 of file GridMap2D.cpp.
| double gridmap_2d::GridMap2D::worldDist | ( | unsigned | x1, |
| unsigned | y1, | ||
| unsigned | x2, | ||
| unsigned | y2 | ||
| ) | [inline] |
Distance (in m) between two map coordinates (indices)
Definition at line 71 of file GridMap2D.h.
| double gridmap_2d::GridMap2D::worldDist | ( | const cv::Point & | p1, |
| const cv::Point & | p2 | ||
| ) | [inline] |
Definition at line 75 of file GridMap2D.h.
| bool gridmap_2d::GridMap2D::worldToMap | ( | double | wx, |
| double | wy, | ||
| unsigned int & | mx, | ||
| unsigned int & | my | ||
| ) | const |
Definition at line 157 of file GridMap2D.cpp.
| void gridmap_2d::GridMap2D::worldToMapNoBounds | ( | double | wx, |
| double | wy, | ||
| unsigned int & | mx, | ||
| unsigned int & | my | ||
| ) | const |
Definition at line 152 of file GridMap2D.cpp.
const uchar gridmap_2d::GridMap2D::FREE = 255 [static] |
char value for "free": 255
Definition at line 134 of file GridMap2D.h.
cv::Mat gridmap_2d::GridMap2D::m_binaryMap [protected] |
binary occupancy map. 255: free, 0 occupied.
Definition at line 138 of file GridMap2D.h.
cv::Mat gridmap_2d::GridMap2D::m_distMap [protected] |
distance map (in meter)
Definition at line 139 of file GridMap2D.h.
std::string gridmap_2d::GridMap2D::m_frameId [protected] |
"map" frame where ROS OccupancyGrid originated from
Definition at line 141 of file GridMap2D.h.
nav_msgs::MapMetaData gridmap_2d::GridMap2D::m_mapInfo [protected] |
Definition at line 140 of file GridMap2D.h.
const uchar gridmap_2d::GridMap2D::OCCUPIED = 0 [static] |
char value for "free": 0
Definition at line 135 of file GridMap2D.h.