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 | 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 319 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 785 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 1014 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 767 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 348 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 346 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 347 of file navfn.cpp.
float navfn::NavFn::gradCell |
( |
int |
n | ) |
|
calculates gradient at cell <n>, returns norm
Definition at line 955 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 419 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 692 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 615 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 1027 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::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 365 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 440 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 525 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 258 of file navfn.h.
int navfn::NavFn::displayInt |
int navfn::NavFn::goal[2] |
float* navfn::NavFn::gradx |
gradient and paths
Definition at line 237 of file navfn.h.
float * navfn::NavFn::grady |
gradient arrays, size of potential array
Definition at line 237 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 242 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 239 of file navfn.h.
int navfn::NavFn::npathbuf |
size of pathx, pathy buffers
Definition at line 240 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 253 of file navfn.h.
float* navfn::NavFn::pathx |
float * navfn::NavFn::pathy |
path points, as subpixel cell coordinates
Definition at line 238 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: