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 Member Functions | |
| unsigned int | cellDistance (double world_dist) |
| Given distance in the world... convert it to cells. | |
| void | convexFillCells (const std::vector< MapLocation > &polygon, std::vector< MapLocation > &polygon_cells) |
| Get the map cells that fill a convex polygon. | |
| 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. | |
| 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. | |
| Costmap2D (const Costmap2D &map) | |
| Copy constructor for a costmap, creates a copy efficiently. | |
| Costmap2D () | |
| Default constructor. | |
| unsigned char * | getCharMap () const |
| Will return a pointer to the underlying unsigned char array used as the costmap. | |
| unsigned char | getCost (unsigned int mx, unsigned int my) const |
| Get the cost of a cell in the costmap. | |
| unsigned char | getDefaultValue () |
| unsigned int | getIndex (unsigned int mx, unsigned int my) const |
| Given two map coordinates... compute the associated index. | |
| boost::shared_mutex * | getLock () |
| double | getOriginX () const |
| Accessor for the x origin of the costmap. | |
| double | getOriginY () const |
| Accessor for the y origin of the costmap. | |
| double | getResolution () const |
| Accessor for the resolution of the costmap. | |
| unsigned int | getSizeInCellsX () const |
| Accessor for the x size of the costmap in cells. | |
| unsigned int | getSizeInCellsY () const |
| Accessor for the y size of the costmap in cells. | |
| double | getSizeInMetersX () const |
| Accessor for the x size of the costmap in meters. | |
| double | getSizeInMetersY () const |
| Accessor for the y size of the costmap in meters. | |
| void | indexToCells (unsigned int index, unsigned int &mx, unsigned int &my) const |
| Given an index... compute the associated map coordinates. | |
| void | mapToWorld (unsigned int mx, unsigned int my, double &wx, double &wy) const |
| Convert from map coordinates to world coordinates. | |
| Costmap2D & | operator= (const Costmap2D &map) |
| Overloaded assignment operator. | |
| void | polygonOutlineCells (const std::vector< MapLocation > &polygon, std::vector< MapLocation > &polygon_cells) |
| Get the map cells that make up the outline of a polygon. | |
| 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. | |
| bool | setConvexPolygonCost (const std::vector< geometry_msgs::Point > &polygon, unsigned char cost_value) |
| Sets the cost of a convex polygon to a desired value. | |
| void | setCost (unsigned int mx, unsigned int my, unsigned char cost) |
| Set the cost of a cell in the costmap. | |
| 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. | |
| bool | worldToMap (double wx, double wy, unsigned int &mx, unsigned int &my) const |
| Convert from world coordinates to map coordinates. | |
| void | worldToMapEnforceBounds (double wx, double wy, int &mx, int &my) const |
| Convert from world coordinates to map coordinates, constraining results to legal bounds. | |
| void | worldToMapNoBounds (double wx, double wy, int &mx, int &my) const |
| Convert from world coordinates to map coordinates without checking for legal bounds. | |
| virtual | ~Costmap2D () |
| Destructor. | |
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. | |
| virtual void | deleteMaps () |
| Deletes the costmap, static_map, and markers data structures. | |
| virtual void | initMaps (unsigned int size_x, unsigned int size_y) |
| Initializes the costmap, static_map, and markers data structures. | |
| 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. | |
| virtual void | resetMaps () |
| Resets the costmap and static_map to be unknown space. | |
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. | |
| int | sign (int x) |
Private Attributes | |
| boost::shared_mutex * | access_ |
Friends | |
| class | CostmapTester |
A 2D costmap provides a mapping between points in the world and their associated "costs".
Definition at line 60 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 162 of file costmap_2d.cpp.
Default constructor.
Definition at line 169 of file costmap_2d.cpp.
| costmap_2d::Costmap2D::~Costmap2D | ( | ) | [virtual] |
Destructor.
Definition at line 175 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::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 | ||
| ) | [inline, private] |
A 2D implementation of Bresenham's raytracing algorithm... applies an action at each step.
Definition at line 395 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 180 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 354 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.
| void costmap_2d::Costmap2D::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 | ||
| ) | [inline, protected] |
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 313 of file costmap_2d.h.
| void costmap_2d::Costmap2D::deleteMaps | ( | ) | [protected, virtual] |
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 186 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 191 of file costmap_2d.cpp.
| unsigned char costmap_2d::Costmap2D::getDefaultValue | ( | ) | [inline] |
Definition at line 241 of file costmap_2d.h.
| unsigned int costmap_2d::Costmap2D::getIndex | ( | unsigned int | mx, |
| unsigned int | my | ||
| ) | const [inline] |
Given two map coordinates... compute the associated index.
| mx | The x coordinate |
| my | The y coordinate |
Definition at line 171 of file costmap_2d.h.
| boost::shared_mutex* costmap_2d::Costmap2D::getLock | ( | ) | [inline] |
Definition at line 293 of file costmap_2d.h.
| double costmap_2d::Costmap2D::getOriginX | ( | ) | const |
Accessor for the x origin of the costmap.
Definition at line 446 of file costmap_2d.cpp.
| double costmap_2d::Costmap2D::getOriginY | ( | ) | const |
Accessor for the y origin of the costmap.
Definition at line 451 of file costmap_2d.cpp.
| double costmap_2d::Costmap2D::getResolution | ( | ) | const |
Accessor for the resolution of the costmap.
Definition at line 456 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 426 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 431 of file costmap_2d.cpp.
| double costmap_2d::Costmap2D::getSizeInMetersX | ( | ) | const |
Accessor for the x size of the costmap in meters.
Definition at line 436 of file costmap_2d.cpp.
| double costmap_2d::Costmap2D::getSizeInMetersY | ( | ) | const |
Accessor for the y size of the costmap in meters.
Definition at line 441 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::indexToCells | ( | unsigned int | index, |
| unsigned int & | mx, | ||
| unsigned int & | my | ||
| ) | const [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 182 of file costmap_2d.h.
| void costmap_2d::Costmap2D::initMaps | ( | unsigned int | size_x, |
| unsigned int | size_y | ||
| ) | [protected, virtual] |
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 201 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 339 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::raytraceLine | ( | ActionType | at, |
| unsigned int | x0, | ||
| unsigned int | y0, | ||
| unsigned int | x1, | ||
| unsigned int | y1, | ||
| unsigned int | max_length = UINT_MAX |
||
| ) | [inline, protected] |
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 358 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.
| void costmap_2d::Costmap2D::resetMaps | ( | ) | [protected, virtual] |
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 461 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 310 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 196 of file costmap_2d.cpp.
| void costmap_2d::Costmap2D::setDefaultValue | ( | unsigned char | c | ) | [inline] |
Definition at line 236 of file costmap_2d.h.
| int costmap_2d::Costmap2D::sign | ( | int | x | ) | [inline, private] |
Definition at line 413 of file costmap_2d.h.
| void costmap_2d::Costmap2D::updateOrigin | ( | double | new_origin_x, |
| double | new_origin_y | ||
| ) | [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 259 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 207 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 227 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 221 of file costmap_2d.cpp.
friend class CostmapTester [friend] |
Definition at line 62 of file costmap_2d.h.
boost::shared_mutex* costmap_2d::Costmap2D::access_ [private] |
Definition at line 418 of file costmap_2d.h.
unsigned char* costmap_2d::Costmap2D::costmap_ [protected] |
Definition at line 425 of file costmap_2d.h.
unsigned char costmap_2d::Costmap2D::default_value_ [protected] |
Definition at line 426 of file costmap_2d.h.
double costmap_2d::Costmap2D::origin_x_ [protected] |
Definition at line 423 of file costmap_2d.h.
double costmap_2d::Costmap2D::origin_y_ [protected] |
Definition at line 424 of file costmap_2d.h.
double costmap_2d::Costmap2D::resolution_ [protected] |
Definition at line 422 of file costmap_2d.h.
unsigned int costmap_2d::Costmap2D::size_x_ [protected] |
Definition at line 420 of file costmap_2d.h.
unsigned int costmap_2d::Costmap2D::size_y_ [protected] |
Definition at line 421 of file costmap_2d.h.