ICAROUS
All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Modules Pages
Static Public Member Functions | List of all members
larcfm::Wx Class Reference

Static Public Member Functions

static Plan reRoute (const Plan &own, const PolyPath &pp)
 
static Plan reRoute (const Plan &own, const std::vector< PolyPath > &paths, double cellSize, bool adhere, bool solutionSmoothing)
 
static Plan reRoute (const Plan &own, const std::vector< PolyPath > &paths, bool adhere, bool solutionSmoothing)
 
static Plan reRoute (const Plan &own, const std::vector< PolyPath > &paths, bool adhere, bool solutionSmoothing, double timeOfCurrentPosition, double reRouteLeadIn)
 
static Plan reRoute (const Plan &own, const std::vector< PolyPath > &paths, bool adhere)
 
static std::pair< Plan, DensityGridreRoute (Position startPos, double startTime, Position endPos, double gs, const std::vector< PolyPath > &paths, double cellSize, double buffer, double factor, double T_p, std::vector< PolyPath > containment, double reRouteLeadIn)
 

Member Function Documentation

◆ reRoute()

std::pair< Plan, DensityGrid > larcfm::Wx::reRoute ( Position  startPos,
double  startTime,
Position  endPos,
double  gs,
const std::vector< PolyPath > &  paths,
double  cellSize,
double  buffer,
double  factor,
double  T_p,
std::vector< PolyPath containment,
double  reRouteLeadIn 
)
static

Produce a plan that travels between two end points and is approximately conflict free of any polygons.

(Note this code is experimental and may not always produce correct results.)

Note:

  • "Approximately conflict free" means that there should be no intrusions that are greater than cellSize. This is intended to be a first step in a more thorough algorithm to avoid polygons.
  • This methods can produce solutions with a small intrusion into one or more polygons (less than 1 cellSize). These usually happen at acute corners of polygons. Reducing the grid size will mitigate this (to the reduced grid size).
  • If reduceGridPath is true, this is more likely.
  • FastPolygonReroute uses an overestimation of polygons.
Parameters
startPos
startTime
endPos
gs
pathsa list of polypaths (i.e. a collection of polygons) to be routed around
cellSizeapproximate size of grid square (in meters)
bufferapproximate size of extended grid area (in meters)
factorweighting for closeness to path (1.0 = approximate distance in grid squares)
T_plookahead time, relative to timeOfCurrentPosition:: Conflicts beyond this time will be ignored, which can cause unexpected behavior. It is recommended that this be turned off (set to -1) for most cases.
containment
fastPolygonReroute

param reduceGridPath , perform a low-level smoothing operation on the resulting path. this may result in a solution that is not completely conflict free.

Parameters
timeOfCurrentPositionlocation of aircraft in its plan (if -1 then, the first point of plan is used)
reRouteLeadInleadin time from current position (wait this amount of time before maneuvar)
Returns
new ownship plan (empty and/or error set on fail) and a Densitygrid used (for visualization) Note that even a successful return does not guarantee a completely conflict-free return path, only one that does not intrude into any polygons by more than cellSize.

Produce a plan that travels between two end points and is approximately conflict free of any polygons.

(Note this code is experimental and may not always produce correct results.)

Note:

  • "Approximately conflict free" means that there should be no intrusions that are greater than cellSize. This is intended to be a first step in a more thorough algorithm to avoid polygons.
  • This methods can produce solutions with a small intrusion into one or more polygons (less than 1 cellSize). These usually happen at acute corners of polygons. Reducing the grid size will mitigate this (to the reduced grid size).
  • If reduceGridPath is true, this is more likely.
  • FastPolygonReroute uses an overestimation of polygons.
Parameters
startPos
startTime
endPos
gs
pathsa list of polypaths (i.e. a collection of polygons) to be routed around
cellSizeapproximate size of grid square (in meters)
bufferapproximate size of extended grid area (in meters)
factorweighting for closeness to path (1.0 = approximate distance in grid squares)
T_plookahead time, relative to timeOfCurrentPosition:: Conflicts beyond this time will be ignored, which can cause unexpected behavior. It is recommended that this be turned off (set to -1) for most cases.
containment
fastPolygonReroute

param reduceGridPath , perform a low-level smoothing operation on the resulting path. this may result in a solution that is not completely conflict free.

Parameters
timeOfCurrentPositionlocation of aircraft in its plan (if -1 then, the first point of plan is used)
reRouteLeadInleadin time from current position (wait this amount of time before maneuvar)
Returns
new ownship plan (empty and/or error set on fail) and a Densitygrid used (for visualization) Note that even a successful return does not guarantee a completely conflict-free return path, only one that does not intrude into any polygons by more than cellSize.

The documentation for this class was generated from the following files: