Navigation function class. Holds buffers for costmap, navfn map. Maps are pixel-based. Origin is upper left, x is right, y is down.
More...
#include <navfn.h>
|
bool | calcNavFnAstar () |
| Calculates a plan using the A* heuristic, returns true if one is found. More...
|
|
bool | calcNavFnDijkstra (bool atStart=false) |
| Caclulates the full navigation function using Dijkstra. More...
|
|
int | calcPath (int n, int *st=NULL) |
| Calculates the path for at mose <n> cycles. More...
|
|
void | display (void fn(NavFn *nav), int n=100) |
|
float | getLastPathCost () |
| Gets the cost of the path found the last time a navigation function was computed. More...
|
|
int | getPathLen () |
| Accessor for the length of a path. More...
|
|
float * | getPathX () |
| Accessor for the x-coordinates of a path. More...
|
|
float * | getPathY () |
| Accessor for the y-coordinates of a path. More...
|
|
float | gradCell (int n) |
|
void | initCost (int k, float v) |
| Initialize cell k with cost v for propagation. More...
|
|
| NavFn (int nx, int ny) |
| Constructs the planner. More...
|
|
bool | propNavFnAstar (int cycles) |
| Run propagation for <cycles> iterations, or until start is reached using the best-first A* method with Euclidean distance heuristic. More...
|
|
bool | propNavFnDijkstra (int cycles, bool atStart=false) |
| Run propagation for <cycles> iterations, or until start is reached using breadth-first Dijkstra method. More...
|
|
void | savemap (const char *fname) |
|
void | setCostmap (const COSTTYPE *cmap, bool isROS=true, bool allow_unknown=true) |
| Set up the cost array for the planner, usually from ROS. More...
|
|
void | setGoal (int *goal) |
| Sets the goal position for the planner. Note: the navigation cost field computed gives the cost to get to a given point from the goal, not from the start. More...
|
|
void | setNavArr (int nx, int ny) |
| Sets or resets the size of the map. More...
|
|
void | setObs () |
|
void | setStart (int *start) |
| Sets the start position for the planner. Note: the navigation cost field computed gives the cost to get to a given point from the goal, not from the start. More...
|
|
void | setupNavFn (bool keepit=false) |
|
void | updateCell (int n) |
| Updates the cell at index n. More...
|
|
void | updateCellAstar (int n) |
| Updates the cell at index n using the A* heuristic. More...
|
|
| ~NavFn () |
|
Navigation function class. Holds buffers for costmap, navfn map. Maps are pixel-based. Origin is upper left, x is right, y is down.
Definition at line 106 of file navfn.h.
navfn::NavFn::NavFn |
( |
int |
nx, |
|
|
int |
ny |
|
) |
| |
Constructs the planner.
- Parameters
-
nx | The x size of the map |
ny | The y size of the map |
Definition at line 110 of file navfn.cpp.
bool navfn::NavFn::calcNavFnAstar |
( |
| ) |
|
Calculates a plan using the A* heuristic, returns true if one is found.
- Returns
- True if a plan is found, false otherwisecalculates a plan, returns true if found
Definition at line 325 of file navfn.cpp.
bool navfn::NavFn::calcNavFnDijkstra |
( |
bool |
atStart = false | ) |
|
Caclulates the full navigation function using Dijkstra.
calculates the full navigation function
Definition at line 290 of file navfn.cpp.
int navfn::NavFn::calcPath |
( |
int |
n, |
|
|
int * |
st = NULL |
|
) |
| |
Calculates the path for at mose <n> cycles.
- Parameters
-
n | The maximum number of cycles to run for |
- Returns
- The lenght of the path foundcalculates path for at most <n> cycles, returns path length, 0 if none
Definition at line 822 of file navfn.cpp.
void navfn::NavFn::display |
( |
void |
fnNavFn *nav, |
|
|
int |
n = 100 |
|
) |
| |
display callback <n> is the number of cycles between updates
Definition at line 1051 of file navfn.cpp.
float navfn::NavFn::getLastPathCost |
( |
| ) |
|
Gets the cost of the path found the last time a navigation function was computed.
- Returns
- The cost of the last path foundReturn cost of path found the last time A* was called
Definition at line 804 of file navfn.cpp.
int navfn::NavFn::getPathLen |
( |
| ) |
|
Accessor for the length of a path.
- Returns
- The length of a pathlength of path, 0 if not found
Definition at line 354 of file navfn.cpp.
float * navfn::NavFn::getPathX |
( |
| ) |
|
Accessor for the x-coordinates of a path.
- Returns
- The x-coordinates of a pathx-coordinates of path
Definition at line 352 of file navfn.cpp.
float * navfn::NavFn::getPathY |
( |
| ) |
|
Accessor for the y-coordinates of a path.
- Returns
- The y-coordinates of a pathy-coordinates of path
Definition at line 353 of file navfn.cpp.
float navfn::NavFn::gradCell |
( |
int |
n | ) |
|
calculates gradient at cell <n>, returns norm
Definition at line 992 of file navfn.cpp.
void navfn::NavFn::initCost |
( |
int |
k, |
|
|
float |
v |
|
) |
| |
Initialize cell k with cost v for propagation.
- Parameters
-
k | the cell to initialize |
v | the cost to give to the cellinitialize cell <k> with cost <v>, for propagation |
Definition at line 456 of file navfn.cpp.
bool navfn::NavFn::propNavFnAstar |
( |
int |
cycles | ) |
|
Run propagation for <cycles> iterations, or until start is reached using the best-first A* method with Euclidean distance heuristic.
- Parameters
-
cycles | The maximum number of iterations to run for |
- Returns
- true if the start point is reachedreturns true if start point found
Definition at line 729 of file navfn.cpp.
bool navfn::NavFn::propNavFnDijkstra |
( |
int |
cycles, |
|
|
bool |
atStart = false |
|
) |
| |
Run propagation for <cycles> iterations, or until start is reached using breadth-first Dijkstra method.
- Parameters
-
cycles | The maximum number of iterations to run for |
atStart | Whether or not to stop when the start point is reached |
- Returns
- true if the start point is reachedreturns true if start point found or full prop
Definition at line 652 of file navfn.cpp.
void navfn::NavFn::savemap |
( |
const char * |
fname | ) |
|
save costmap write out costmap and start/goal states as fname.pgm and fname.txt
Definition at line 1064 of file navfn.cpp.
void navfn::NavFn::setCostmap |
( |
const COSTTYPE * |
cmap, |
|
|
bool |
isROS = true , |
|
|
bool |
allow_unknown = true |
|
) |
| |
Set up the cost array for the planner, usually from ROS.
- Parameters
-
cmap | The costmap |
isROS | Whether or not the costmap is coming in in ROS format |
allow_unknown | Whether or not the planner should be allowed to plan through unknown spacesets up the cost map |
Definition at line 228 of file navfn.cpp.
void navfn::NavFn::setGoal |
( |
int * |
goal | ) |
|
Sets the goal position for the planner. Note: the navigation cost field computed gives the cost to get to a given point from the goal, not from the start.
goal and start positions
- Parameters
-
Definition at line 173 of file navfn.cpp.
void navfn::NavFn::setNavArr |
( |
int |
nx, |
|
|
int |
ny |
|
) |
| |
Sets or resets the size of the map.
- Parameters
-
nx | The x size of the map |
ny | The y size of the map sets or resets the size of the map |
Definition at line 193 of file navfn.cpp.
void navfn::NavFn::setObs |
( |
| ) |
|
simple obstacle for testing
Definition at line 362 of file navfn.cpp.
void navfn::NavFn::setStart |
( |
int * |
start | ) |
|
Sets the start position for the planner. Note: the navigation cost field computed gives the cost to get to a given point from the goal, not from the start.
- Parameters
-
Definition at line 181 of file navfn.cpp.
void navfn::NavFn::setupNavFn |
( |
bool |
keepit = false | ) |
|
resets all nav fn arrays for propagation
Definition at line 402 of file navfn.cpp.
void navfn::NavFn::updateCell |
( |
int |
n | ) |
|
|
inline |
Updates the cell at index n.
propagation
- Parameters
-
n | The index to updateupdates the cell at index <n> |
Definition at line 477 of file navfn.cpp.
void navfn::NavFn::updateCellAstar |
( |
int |
n | ) |
|
|
inline |
Updates the cell at index n using the A* heuristic.
- Parameters
-
n | The index to updateupdates the cell at index <n>, uses A* heuristic |
Definition at line 562 of file navfn.cpp.
cell arrays cost array in 2D configuration space
Definition at line 170 of file navfn.h.
block priority thresholds current threshold
Definition at line 181 of file navfn.h.
void(* navfn::NavFn::displayFn) (NavFn *nav) |
display function itself
Definition at line 261 of file navfn.h.
int navfn::NavFn::displayInt |
int navfn::NavFn::goal[2] |
float* navfn::NavFn::gradx |
gradient and paths
Definition at line 240 of file navfn.h.
float * navfn::NavFn::grady |
gradient arrays, size of potential array
Definition at line 240 of file navfn.h.
float navfn::NavFn::last_path_cost_ |
Holds the cost of the path found the last time A* was called
Definition at line 245 of file navfn.h.
int * navfn::NavFn::nextP |
number of obstacle cells
Definition at line 173 of file navfn.h.
number of path points
Definition at line 242 of file navfn.h.
int navfn::NavFn::npathbuf |
size of pathx, pathy buffers
Definition at line 243 of file navfn.h.
size of grid, in pixels
Definition at line 124 of file navfn.h.
int * navfn::NavFn::overP |
priority buffer block ptrs
Definition at line 177 of file navfn.h.
end points of arrays
Definition at line 178 of file navfn.h.
float navfn::NavFn::pathStep |
step size for following gradient
Definition at line 256 of file navfn.h.
float* navfn::NavFn::pathx |
float * navfn::NavFn::pathy |
path points, as subpixel cell coordinates
Definition at line 241 of file navfn.h.
block priority buffers
Definition at line 176 of file navfn.h.
storage buffers for priority blocks
Definition at line 176 of file navfn.h.
bool* navfn::NavFn::pending |
pending cells during propagation
Definition at line 172 of file navfn.h.
float* navfn::NavFn::potarr |
potential array, navigation function potential
Definition at line 171 of file navfn.h.
float navfn::NavFn::priInc |
priority threshold increment
Definition at line 182 of file navfn.h.
int navfn::NavFn::start[2] |
The documentation for this class was generated from the following files: