A 2D costmap provides a mapping between points in the world and their associated "costs". More...
#include <costmap_2d.h>

Classes | |
| class | MarkCell |
| class | PolygonOutlineCells |
Public Types | |
| typedef boost::recursive_mutex | mutex_t |
Public Member Functions | |
| unsigned int | cellDistance (double world_dist) |
| Given distance in the world... convert it to cells. More... | |
| void | convexFillCells (const std::vector< MapLocation > &polygon, std::vector< MapLocation > &polygon_cells) |
| Get the map cells that fill a convex polygon. More... | |
| bool | copyCostmapWindow (const Costmap2D &map, double win_origin_x, double win_origin_y, double win_size_x, double win_size_y) |
| Turn this costmap into a copy of a window of a costmap passed in. More... | |
| Costmap2D () | |
| Default constructor. More... | |
| Costmap2D (const Costmap2D &map) | |
| Copy constructor for a costmap, creates a copy efficiently. More... | |
| Costmap2D (unsigned int cells_size_x, unsigned int cells_size_y, double resolution, double origin_x, double origin_y, unsigned char default_value=0) | |
| Constructor for a costmap. More... | |
| unsigned char * | getCharMap () const |
| Will return a pointer to the underlying unsigned char array used as the costmap. More... | |
| unsigned char | getCost (unsigned int mx, unsigned int my) const |
| Get the cost of a cell in the costmap. More... | |
| unsigned char | getDefaultValue () |
| unsigned int | getIndex (unsigned int mx, unsigned int my) const |
| Given two map coordinates... compute the associated index. More... | |
| mutex_t * | getMutex () |
| double | getOriginX () const |
| Accessor for the x origin of the costmap. More... | |
| double | getOriginY () const |
| Accessor for the y origin of the costmap. More... | |
| double | getResolution () const |
| Accessor for the resolution of the costmap. More... | |
| unsigned int | getSizeInCellsX () const |
| Accessor for the x size of the costmap in cells. More... | |
| unsigned int | getSizeInCellsY () const |
| Accessor for the y size of the costmap in cells. More... | |
| double | getSizeInMetersX () const |
| Accessor for the x size of the costmap in meters. More... | |
| double | getSizeInMetersY () const |
| Accessor for the y size of the costmap in meters. More... | |
| void | indexToCells (unsigned int index, unsigned int &mx, unsigned int &my) const |
| Given an index... compute the associated map coordinates. More... | |
| void | mapToWorld (unsigned int mx, unsigned int my, double &wx, double &wy) const |
| Convert from map coordinates to world coordinates. More... | |
| Costmap2D & | operator= (const Costmap2D &map) |
| Overloaded assignment operator. More... | |
| void | polygonOutlineCells (const std::vector< MapLocation > &polygon, std::vector< MapLocation > &polygon_cells) |
| Get the map cells that make up the outline of a polygon. More... | |
| void | resetMap (unsigned int x0, unsigned int y0, unsigned int xn, unsigned int yn) |
| void | resizeMap (unsigned int size_x, unsigned int size_y, double resolution, double origin_x, double origin_y) |
| bool | saveMap (std::string file_name) |
| Save the costmap out to a pgm file. More... | |
| bool | setConvexPolygonCost (const std::vector< geometry_msgs::Point > &polygon, unsigned char cost_value) |
| Sets the cost of a convex polygon to a desired value. More... | |
| void | setCost (unsigned int mx, unsigned int my, unsigned char cost) |
| Set the cost of a cell in the costmap. More... | |
| void | setDefaultValue (unsigned char c) |
| virtual void | updateOrigin (double new_origin_x, double new_origin_y) |
| Move the origin of the costmap to a new location.... keeping data when it can. More... | |
| bool | worldToMap (double wx, double wy, unsigned int &mx, unsigned int &my) const |
| Convert from world coordinates to map coordinates. More... | |
| void | worldToMapEnforceBounds (double wx, double wy, int &mx, int &my) const |
| Convert from world coordinates to map coordinates, constraining results to legal bounds. More... | |
| void | worldToMapNoBounds (double wx, double wy, int &mx, int &my) const |
| Convert from world coordinates to map coordinates without checking for legal bounds. More... | |
| virtual | ~Costmap2D () |
| Destructor. More... | |
Protected Member Functions | |
| template<typename data_type > | |
| void | copyMapRegion (data_type *source_map, unsigned int sm_lower_left_x, unsigned int sm_lower_left_y, unsigned int sm_size_x, data_type *dest_map, unsigned int dm_lower_left_x, unsigned int dm_lower_left_y, unsigned int dm_size_x, unsigned int region_size_x, unsigned int region_size_y) |
| Copy a region of a source map into a destination map. More... | |
| virtual void | deleteMaps () |
| Deletes the costmap, static_map, and markers data structures. More... | |
| virtual void | initMaps (unsigned int size_x, unsigned int size_y) |
| Initializes the costmap, static_map, and markers data structures. More... | |
| template<class ActionType > | |
| void | raytraceLine (ActionType at, unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int max_length=UINT_MAX) |
| Raytrace a line and apply some action at each step. More... | |
| virtual void | resetMaps () |
| Resets the costmap and static_map to be unknown space. More... | |
Protected Attributes | |
| unsigned char * | costmap_ |
| unsigned char | default_value_ |
| double | origin_x_ |
| double | origin_y_ |
| double | resolution_ |
| unsigned int | size_x_ |
| unsigned int | size_y_ |
Private Member Functions | |
| template<class ActionType > | |
| void | bresenham2D (ActionType at, unsigned int abs_da, unsigned int abs_db, int error_b, int offset_a, int offset_b, unsigned int offset, unsigned int max_length) |
| A 2D implementation of Bresenham's raytracing algorithm... applies an action at each step. More... | |
| int | sign (int x) |
Private Attributes | |
| mutex_t * | access_ |
Friends | |
| class | CostmapTester |
A 2D costmap provides a mapping between points in the world and their associated "costs".
Definition at line 96 of file costmap_2d.h.
| typedef boost::recursive_mutex costmap_2d::Costmap2D::mutex_t |
Definition at line 330 of file costmap_2d.h.
| costmap_2d::Costmap2D::Costmap2D | ( | unsigned int | cells_size_x, |
| unsigned int | cells_size_y, | ||
| double | resolution, | ||
| double | origin_x, | ||
| double | origin_y, | ||
| unsigned char | default_value = 0 |
||
| ) |
Constructor for a costmap.
| cells_size_x | The x size of the map in cells |
| cells_size_y | The y size of the map in cells |
| resolution | The resolution of the map in meters/cell |
| origin_x | The x origin of the map |
| origin_y | The y origin of the map |
| default_value | Default Value |
Definition at line 45 of file costmap_2d.cpp.
| costmap_2d::Costmap2D::Costmap2D | ( | const Costmap2D & | map | ) |
Copy constructor for a costmap, creates a copy efficiently.
| map | The costmap to copy |
Definition at line 161 of file costmap_2d.cpp.
| costmap_2d::Costmap2D::Costmap2D | ( | ) |
Default constructor.
Definition at line 169 of file costmap_2d.cpp.
|
virtual |
Destructor.
Definition at line 175 of file costmap_2d.cpp.
|
inlineprivate |
A 2D implementation of Bresenham's raytracing algorithm... applies an action at each step.
Definition at line 432 of file costmap_2d.h.
| unsigned int costmap_2d::Costmap2D::cellDistance | ( | double | world_dist | ) |
Given distance in the world... convert it to cells.
| world_dist | The world distance |
Definition at line 181 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::convexFillCells | ( | const std::vector< MapLocation > & | polygon, |
| std::vector< MapLocation > & | polygon_cells | ||
| ) |
Get the map cells that fill a convex polygon.
| polygon | The polygon in map coordinates to rasterize |
| polygon_cells | Will be set to the cells that fill the polygon |
Definition at line 359 of file costmap_2d.cpp.
| bool costmap_2d::Costmap2D::copyCostmapWindow | ( | const Costmap2D & | map, |
| double | win_origin_x, | ||
| double | win_origin_y, | ||
| double | win_size_x, | ||
| double | win_size_y | ||
| ) |
Turn this costmap into a copy of a window of a costmap passed in.
| map | The costmap to copy |
| win_origin_x | The x origin (lower left corner) for the window to copy, in meters |
| win_origin_y | The y origin (lower left corner) for the window to copy, in meters |
| win_size_x | The x size of the window, in meters |
| win_size_y | The y size of the window, in meters |
Definition at line 101 of file costmap_2d.cpp.
|
inlineprotected |
Copy a region of a source map into a destination map.
| source_map | The source map |
| sm_lower_left_x | The lower left x point of the source map to start the copy |
| sm_lower_left_y | The lower left y point of the source map to start the copy |
| sm_size_x | The x size of the source map |
| dest_map | The destination map |
| dm_lower_left_x | The lower left x point of the destination map to start the copy |
| dm_lower_left_y | The lower left y point of the destination map to start the copy |
| dm_size_x | The x size of the destination map |
| region_size_x | The x size of the region to copy |
| region_size_y | The y size of the region to copy |
Definition at line 351 of file costmap_2d.h.
|
protectedvirtual |
Deletes the costmap, static_map, and markers data structures.
Definition at line 57 of file costmap_2d.cpp.
| unsigned char * costmap_2d::Costmap2D::getCharMap | ( | ) | const |
Will return a pointer to the underlying unsigned char array used as the costmap.
Definition at line 187 of file costmap_2d.cpp.
| unsigned char costmap_2d::Costmap2D::getCost | ( | unsigned int | mx, |
| unsigned int | my | ||
| ) | const |
Get the cost of a cell in the costmap.
| mx | The x coordinate of the cell |
| my | The y coordinate of the cell |
Definition at line 192 of file costmap_2d.cpp.
|
inline |
Definition at line 277 of file costmap_2d.h.
|
inline |
Given two map coordinates... compute the associated index.
| mx | The x coordinate |
| my | The y coordinate |
Definition at line 207 of file costmap_2d.h.
|
inline |
Definition at line 331 of file costmap_2d.h.
| double costmap_2d::Costmap2D::getOriginX | ( | ) | const |
Accessor for the x origin of the costmap.
Definition at line 450 of file costmap_2d.cpp.
| double costmap_2d::Costmap2D::getOriginY | ( | ) | const |
Accessor for the y origin of the costmap.
Definition at line 455 of file costmap_2d.cpp.
| double costmap_2d::Costmap2D::getResolution | ( | ) | const |
Accessor for the resolution of the costmap.
Definition at line 460 of file costmap_2d.cpp.
| unsigned int costmap_2d::Costmap2D::getSizeInCellsX | ( | ) | const |
Accessor for the x size of the costmap in cells.
Definition at line 430 of file costmap_2d.cpp.
| unsigned int costmap_2d::Costmap2D::getSizeInCellsY | ( | ) | const |
Accessor for the y size of the costmap in cells.
Definition at line 435 of file costmap_2d.cpp.
| double costmap_2d::Costmap2D::getSizeInMetersX | ( | ) | const |
Accessor for the x size of the costmap in meters.
Definition at line 440 of file costmap_2d.cpp.
| double costmap_2d::Costmap2D::getSizeInMetersY | ( | ) | const |
Accessor for the y size of the costmap in meters.
Definition at line 445 of file costmap_2d.cpp.
|
inline |
Given an index... compute the associated map coordinates.
| index | The index |
| mx | Will be set to the x coordinate |
| my | Will be set to the y coordinate |
Definition at line 218 of file costmap_2d.h.
|
protectedvirtual |
Initializes the costmap, static_map, and markers data structures.
| size_x | The x size to use for map initialization |
| size_y | The y size to use for map initialization |
Definition at line 65 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::mapToWorld | ( | unsigned int | mx, |
| unsigned int | my, | ||
| double & | wx, | ||
| double & | wy | ||
| ) | const |
Convert from map coordinates to world coordinates.
| mx | The x map coordinate |
| my | The y map coordinate |
| wx | Will be set to the associated world x coordinate |
| wy | Will be set to the associated world y coordinate |
Definition at line 202 of file costmap_2d.cpp.
Overloaded assignment operator.
| map | The costmap to copy |
Definition at line 137 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::polygonOutlineCells | ( | const std::vector< MapLocation > & | polygon, |
| std::vector< MapLocation > & | polygon_cells | ||
| ) |
Get the map cells that make up the outline of a polygon.
| polygon | The polygon in map coordinates to rasterize |
| polygon_cells | Will be set to the cells contained in the outline of the polygon |
Definition at line 344 of file costmap_2d.cpp.
|
inlineprotected |
Raytrace a line and apply some action at each step.
| at | The action to take... a functor |
| x0 | The starting x coordinate |
| y0 | The starting y coordinate |
| x1 | The ending x coordinate |
| y1 | The ending y coordinate |
| max_length | The maximum desired length of the segment... allows you to not go all the way to the endpoint |
Definition at line 396 of file costmap_2d.h.
| void costmap_2d::Costmap2D::resetMap | ( | unsigned int | x0, |
| unsigned int | y0, | ||
| unsigned int | xn, | ||
| unsigned int | yn | ||
| ) |
Definition at line 93 of file costmap_2d.cpp.
|
protectedvirtual |
Resets the costmap and static_map to be unknown space.
Reimplemented in costmap_2d::VoxelLayer.
Definition at line 87 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::resizeMap | ( | unsigned int | size_x, |
| unsigned int | size_y, | ||
| double | resolution, | ||
| double | origin_x, | ||
| double | origin_y | ||
| ) |
Definition at line 72 of file costmap_2d.cpp.
| bool costmap_2d::Costmap2D::saveMap | ( | std::string | file_name | ) |
Save the costmap out to a pgm file.
| file_name | The name of the file to save |
Definition at line 465 of file costmap_2d.cpp.
| bool costmap_2d::Costmap2D::setConvexPolygonCost | ( | const std::vector< geometry_msgs::Point > & | polygon, |
| unsigned char | cost_value | ||
| ) |
Sets the cost of a convex polygon to a desired value.
| polygon | The polygon to perform the operation on |
| cost_value | The value to set costs to |
Definition at line 315 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::setCost | ( | unsigned int | mx, |
| unsigned int | my, | ||
| unsigned char | cost | ||
| ) |
Set the cost of a cell in the costmap.
| mx | The x coordinate of the cell |
| my | The y coordinate of the cell |
| cost | The cost to set the cell to |
Definition at line 197 of file costmap_2d.cpp.
|
inline |
Definition at line 272 of file costmap_2d.h.
|
inlineprivate |
Definition at line 450 of file costmap_2d.h.
|
virtual |
Move the origin of the costmap to a new location.... keeping data when it can.
| new_origin_x | The x coordinate of the new origin |
| new_origin_y | The y coordinate of the new origin |
Reimplemented in costmap_2d::VoxelLayer.
Definition at line 260 of file costmap_2d.cpp.
| bool costmap_2d::Costmap2D::worldToMap | ( | double | wx, |
| double | wy, | ||
| unsigned int & | mx, | ||
| unsigned int & | my | ||
| ) | const |
Convert from world coordinates to map coordinates.
| wx | The x world coordinate |
| wy | The y world coordinate |
| mx | Will be set to the associated map x coordinate |
| my | Will be set to the associated map y coordinate |
Definition at line 208 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::worldToMapEnforceBounds | ( | double | wx, |
| double | wy, | ||
| int & | mx, | ||
| int & | my | ||
| ) | const |
Convert from world coordinates to map coordinates, constraining results to legal bounds.
| wx | The x world coordinate |
| wy | The y world coordinate |
| mx | Will be set to the associated map x coordinate |
| my | Will be set to the associated map y coordinate |
Definition at line 228 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::worldToMapNoBounds | ( | double | wx, |
| double | wy, | ||
| int & | mx, | ||
| int & | my | ||
| ) | const |
Convert from world coordinates to map coordinates without checking for legal bounds.
| wx | The x world coordinate |
| wy | The y world coordinate |
| mx | Will be set to the associated map x coordinate |
| my | Will be set to the associated map y coordinate |
Definition at line 222 of file costmap_2d.cpp.
|
friend |
Definition at line 98 of file costmap_2d.h.
|
private |
Definition at line 455 of file costmap_2d.h.
|
protected |
Definition at line 462 of file costmap_2d.h.
|
protected |
Definition at line 463 of file costmap_2d.h.
|
protected |
Definition at line 460 of file costmap_2d.h.
|
protected |
Definition at line 461 of file costmap_2d.h.
|
protected |
Definition at line 459 of file costmap_2d.h.
|
protected |
Definition at line 457 of file costmap_2d.h.
|
protected |
Definition at line 458 of file costmap_2d.h.