ICAROUS
|
#include <CriteriaCore.h>
Static Public Member Functions | |
static int | horizontalCoordination (const Vect2 &s, const Vect2 &v) |
static int | horizontalCoordination (const Vect3 &s, const Vect3 &v) |
static int | verticalCoordination (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, double D, double H, std::string ownship, std::string traffic) |
static bool | horizontal_criterion (const Vect2 &sp, const Vect2 &v, double D, int epsh) |
static bool | vertical_criterion (int eps, const Vect3 &s, const Vect3 &v, const Vect3 &nv, double D, double H) |
static bool | horizontal_los_criterion (const Vect2 &s, const Vect2 &vo, const Vect2 &vi, const Vect2 &nvo, int eps) |
static void | printRepulsiveCriteria2DTerms (const Vect2 &s, const Vect2 &vo, const Vect2 &vi, const Vect2 &nvo, int eps) |
static void | printRepulsiveCriteriaTerms (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const Vect3 &nvo, int eps) |
static bool | horizontalRepulsiveCriteria (const Vect3 &s3, const Velocity &vo3, const Velocity &vi3, const Velocity &nvo3, int eps) |
static bool | verticalRepulsiveCriterion (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const Vect3 &nvo, double H, double minrelvs, int epsv) |
static bool | criteria (const Vect3 &s, const Velocity &vo, const Velocity &vi, const Velocity &nvo, double minRelVs, double D, double H, int epsh, int epsv) |
static Vect2 | incr_trk_vect (const Vect2 &vo, double step, int dir) |
static int | losr_trk_iter_dir (const Vect2 &s, const Vect2 &vo, const Vect2 &vi, double step, int eps) |
static int | trkSearchDirection (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, int eps) |
static Vect2 | incr_gs_vect (const Vect2 &vo, double step, int dir) |
static int | losr_gs_iter_dir (const Vect2 &s, const Vect2 &vo, const Vect2 &vi, double mings, double maxgs, double step, int eps) |
static int | gsSearchDirection (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, int eps) |
static int | vsSearchDirection (int epsv) |
static int | dataVsRateEpsilon (int epsv, double vsRate) |
static int | dataTurnEpsilon (const Vect3 &s, const Velocity &vo, const Velocity &vi, int epsh, double trackRate) |
static bool | horizontal_new_repulsive_criterion (const Vect2 &s, const Vect2 &vo, const Vect2 &vi, const Vect2 &nvo, int eps) |
static bool | horizontal_new_repulsive_criterion (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const Vect3 &nvo, int eps) |
static bool | vertical_new_repulsive_criterion (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const Vect3 &nvo, int eps) |
static int | verticalCoordinationLoS (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, std::string ownship, std::string traffic) |
Static Private Member Functions | |
static bool | horizontal_criterion_0 (const Vect2 &sp, int eps, const Vect2 &v, double D) |
static int | verticalCoordinationConflict (const Vect3 &s, const Vect3 &v, double D, std::string ownship, std::string traffic) |
static bool | criterion_3D (const Vect3 &sp, const Velocity &v, int epsH, int epsV, const Velocity &nv, double D, double H) |
static Vect3 | vertical_decision_vect (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, double caD, double caH) |
static int | losr_vs_dir (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, double caD, double caH, std::string ownship, std::string traffic) |
static bool | vs_bound_crit (const Vect3 &v, const Vect3 &nv, int eps) |
static double | min_rel_vert_speed (double vz, int eps, double minrelvs) |
static bool | vertical_los_criterion (const Vect3 &s, const Vect3 &v, const Vect3 &nv, int eps, double H, double minrelvs) |
static int | breakSymmetry (const Vect3 &s, std::string ownship, std::string traffic) |
This class provides criteria for
horizontal conflict (See ACCoRD PVS theory: horizontal_criterion.pvs) vertical conflict (See ACCoRD PVS theory: vertical_criterion.pvs) horizontal loss of separation (See ACCoRD PVS theory: repulsive.pvs) vertical loss of separation (See ACCoRD PVS Theory: vertical_los_generic.pvs)
|
staticprivate |
Perform a symmetry calculation
|
static |
true iff the velocity vector nvo satisfies the implicit coordination criteria
s | relative position of the ownship |
vo | velocity of the ownship aircraft |
vi | velocity of the traffic aircraft |
nvo | velocity vector to be checked |
minRelVs | desired minimum relative exit ground speed (used in LoS only) |
D | diameter of the protection zone |
H | height of the protection zone |
|
static |
Return the horizontal epsilon that corresponds to the direction the traffic aircraft is currently turning indicated by sign of trackRate
s | relative position |
vo | velocity of ownship |
vi | velocity of intruder |
epsh | horizontal epsilon |
trackRate | trackRate of traffic |
|
static |
Return the horizontal epsilon that corresponds to the direction the traffic aircraft is currently turning indicated by sign of trackRate
s | relative position |
vo | velocity of ownship |
vi | velocity of intruder |
epsh | horizontal epsilon |
trackRate | trackRate of traffic |
|
static |
Return an absolute repulsive ground speed search direction (or none) Assumes Velocity vo is non-zero.
|
static |
The fundamental horizontal criterion (Conflict Case)
sp | relative position assumed to be horizontally separated (Sp_vect2 : TYPE = (horizontal_sep?)) |
v | relative velocity |
D | protection zone diameter |
epsh | +1 or -1 |
|
static |
Checks whether a horizontal solution is repulsive or divergent in the turn direction indicated by nvo (2D geometry)
s | relative position of the ownship |
vo | velocity of the ownship aircraft |
vi | velocity of the traffic aircraft |
nvo | resolution velocity of the traffic aircraft |
eps | horizontalCoordination |
|
static |
[CAM] This method replaces horizontal_old_repulsive_criterion. This definition is independent and coordinated for both state-based and iterative algorithms. This method is intended to be used with kinematic solvers, that is it is called iteratively with nvo progressing with each iteration.
Checks whether a horizontal solution is repulsive or divergent in the turn direction indicated by nvo (2D geometry). Derived from PVS predicate: repulsive.repulsive_criteria(s,v,eps)(nv): bool
s | relative position of the ownship |
vo | velocity of the ownship aircraft |
vi | velocity of the traffic aircraft |
nvo | resolution velocity of the traffic aircraft |
eps | horizontalCoordination |
|
static |
[CAM] This method replaces horizontal_old_repulsive_criterion. This definition is independent and coordinated for both state-based and iterative algorithms. This method is intended to be used with kinematic solvers, that is it is called iteratively with nvo progressing with each iteration.
Checks whether a horizontal solution is repulsive or divergent in the turn direction indicated by nvo (2D geometry). Derived from PVS predicate: repulsive.repulsive_criteria(s,v,eps)(nv): bool
s | relative position of the ownship |
vo | velocity of the ownship aircraft |
vi | velocity of the traffic aircraft |
nvo | resolution velocity of the traffic aircraft |
eps | horizontalCoordination |
Horizontal coordination.
s | the relative position |
v | the relative velocity |
Horizontal coordination.
s | the relative position |
v | the relative velocity |
|
static |
Checks whether a horizontal solution is repulsive or divergent in the turn direction indicated by nvo3
s3 | relative position of the ownship |
vo3 | velocity of the ownship aircraft |
vi3 | velocity of the traffic aircraft |
nvo3 | resolution velocity of the traffic aircraft |
eps | horizontalCoordination |
|
static |
Return an absolute repulsive track search direction (or none) Assumes velocity vo is non-zero.
|
static |
vertical criterion (Conflict Case) (currently only used in VisualCriteriaCore)
epsv | vertical coordination parameter |
s | relative position |
v | relative velocity |
nv | new relative velocity |
D | protection zone diameter |
H | protection zone height |
|
static |
[CAM] This method replaces vertical_old_repulsive_criterion. It's intended to be used for kinematic, iterative maneuvers. This criterion is like vs_bound_crit? but removes the else branch that restricts some vertical maneuvers.
s | relative position of the ownship |
vo | velocity of the ownship aircraft |
vi | velocity of the traffic aircraft |
nvo | resolution velocity of the traffic aircraft |
eps | Vertical coordination |
|
static |
Vertical coordination.
s | the relative position |
vo | the ownship velocity |
vi | the traffic aircraft velocity |
D | the horizontal distance |
H | the vertical distance |
ownship | the name of the ownship |
traffic | the name of the traffic aircraft |
|
static |
Checks whether a velocity vector satisfies the repulsive LoS criteria
s | relative position of the ownship |
vo | velocity of the ownship aircraft |
vi | velocity of the traffic aircraft |
nvo | resolution velocity of the traffic aircraft |
H | protection zone height |
minrelvs | minimum relative exit speed |
epsv | vertical coordination parameter |
|
static |
Return an absolute repulsive vertical speed search direction (or none) Assumes Velocity vo is non-zero.