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

#include <Priority.h>

Static Public Member Functions

static double get_tc ()
 
static double get_cruise_def ()
 
static double get_vertical_deadband ()
 
static double get_lateral_deadband ()
 
static double get_lateral_relative_deadband ()
 
static double get_time_maneuver_restriction ()
 
static double get_time_proximity ()
 
static double get_time_lookahead ()
 
static void set_tc (double tc)
 
static void set_cruise_def (double CruiseDef)
 
static void set_vertical_deadband (double VerticalDeadband)
 
static void set_lateral_deadband (double LateralDeadband)
 
static void set_lateral_relative_deadband (double LateralRelativeDeadband)
 
static void set_time_maneuver_restriction (double TimeManeuverRestriction)
 
static void set_time_proximity (double TimeProximity)
 
static void set_time_lookahead (double TimeLookahead)
 
static bool lateral_only (double sox, double soy, double soz, double vox, double voy, double voz, double six, double siy, double siz, double vix, double viy, double viz)
 
static bool check (double sox, double soy, double soz, double vox, double voy, double voz, bool mo, double six, double siy, double siz, double vix, double viy, double viz, bool mi)
 
static bool checkLL (double lato, double lono, double alto, double trko, double gso, double vso, bool mo, double lati, double loni, double alti, double trki, double gsi, double vsi, bool mi)
 
static bool check (const Position &po, const Velocity &vo, bool mo, const Position &pi, const Velocity &vi, bool mi)
 

Static Public Attributes

static double TIME_MANEUVER_RESTRICTION
 
static double TIME_PROXIMITY
 
static double TIME_LOOKAHEAD
 

Detailed Description

This class is used to determine if one aircraft has priority over another aircraft. It is an encapsulation of the "right of way" rules.

Disclaimer: The current rules have been verified to have certain safety and liveness properties, but they have not been validated, that is, they may not behave "naturally." As we learn more about what is expected, these rules may evolve in the future.

Member Function Documentation

◆ check() [1/2]

static bool larcfm::Priority::check ( const Position po,
const Velocity vo,
bool  mo,
const Position pi,
const Velocity vi,
bool  mi 
)
static

Determines if the ownship has priority over the given traffic aircraft.

Parameters
poposition of the ownship
vovelocity of the ownship
motrue if the ownship is managed
piposition of the traffic aircraft
vivelocity of the traffic aircraft
mitrue if the traffic aircraft is managed
Returns
true, if the ownship has priority over the traffic aircraft

◆ check() [2/2]

static bool larcfm::Priority::check ( double  sox,
double  soy,
double  soz,
double  vox,
double  voy,
double  voz,
bool  mo,
double  six,
double  siy,
double  siz,
double  vix,
double  viy,
double  viz,
bool  mi 
)
static

Determines if the ownship has priority over the given traffic aircraft.

Parameters
soxx component of the position of the ownship in [nmi]
soyy component of the position of the ownship in [nmi]
sozz component of the position of the ownship in [ft]
voxx component of the velocity of the ownship in [knot]
voyy component of the velocity of the ownship in [knot]
vozz component of the velocity of the ownship in [fpm]
motrue if the ownship is managed
sixx component of the position of the traffic aircraft in [nmi]
siyy component of the position of the traffic aircraft in [nmi]
sizz component of the position of the traffic aircraft in [ft]
vixx component of the velocity of the traffic aircraft in [knot]
viyy component of the velocity of the traffic aircraft in [knot]
vizz component of the velocity of the traffic aircraft in [fpm]
mitrue if the traffic aircraft is managed
Returns
true, if the ownship has priority over the traffic aircraft

◆ checkLL()

static bool larcfm::Priority::checkLL ( double  lato,
double  lono,
double  alto,
double  trko,
double  gso,
double  vso,
bool  mo,
double  lati,
double  loni,
double  alti,
double  trki,
double  gsi,
double  vsi,
bool  mi 
)
static

Determines if the ownship has priority over the given traffic aircraft.

Parameters
latolatitude of the ownship in [degrees north]
lonolongitude of the ownship in [degrees east]
altoaltitude of the ownship in [ft]
trkotrack angle of the velocity of the ownship in [deg, clockwise from true north]
gsoground speed of the ownship in [knot]
vsovertical speed of the ownship in [fpm]
motrue if the ownship is managed
latilatitude of the traffic aircraft in [degrees north]
lonilongitude of the traffic aircraft in [degrees east]
altialtitude of the traffic aircraft in [ft]
trkitrack angle of the velocity of the traffic aircraft in [deg, clockwise from true north]
gsiground speed of the traffic aircraft in [knot]
vsivertical speed of the traffic aircraft in [fpm]
mitrue if the traffic aircraft is managed
Returns
true, if the ownship has priority over the traffic aircraft

◆ get_cruise_def()

static double larcfm::Priority::get_cruise_def ( )
inlinestatic

Returns the vertical speed value that defines "cruise" in [fpm]

◆ get_lateral_deadband()

static double larcfm::Priority::get_lateral_deadband ( )
inlinestatic

Returns the value of the relative uncertainty in horizontal speed in [knot]

◆ get_lateral_relative_deadband()

static double larcfm::Priority::get_lateral_relative_deadband ( )
inlinestatic

Returns the value of the relative uncertainty in horizontal speed in [knot]

◆ get_tc()

static double larcfm::Priority::get_tc ( )
inlinestatic

Returns TC in seconds

◆ get_time_lookahead()

static double larcfm::Priority::get_time_lookahead ( )
inlinestatic

returns the value of the time lookahead. I don't know what this parameter is for

◆ get_time_maneuver_restriction()

static double larcfm::Priority::get_time_maneuver_restriction ( )
inlinestatic

returns the value of the time maneuver restrictions. I don't know what this parameter is for

◆ get_time_proximity()

static double larcfm::Priority::get_time_proximity ( )
inlinestatic

returns the value of the time proximity. I don't know what this parameter is for

◆ get_vertical_deadband()

static double larcfm::Priority::get_vertical_deadband ( )
inlinestatic

Returns the value of the relative uncertainty in vertical speed in [fpm]

◆ lateral_only()

static bool larcfm::Priority::lateral_only ( double  sox,
double  soy,
double  soz,
double  vox,
double  voy,
double  voz,
double  six,
double  siy,
double  siz,
double  vix,
double  viy,
double  viz 
)
static

Determines if the ownship has priority (in the lateral dimension only) over the traffic aircraft.

Parameters
soxx component of the position of the ownship in [nmi]
soyy component of the position of the ownship in [nmi]
sozz component of the position of the ownship in [ft]
voxx component of the velocity of the ownship in [knot]
voyy component of the velocity of the ownship in [knot]
vozz component of the velocity of the ownship in [fpm]
sixx component of the position of the traffic aircraft in [nmi]
siyy component of the position of the traffic aircraft in [nmi]
sizz component of the position of the traffic aircraft in [ft]
vixx component of the velocity of the traffic aircraft in [knot]
viyy component of the velocity of the traffic aircraft in [knot]
vizz component of the velocity of the traffic aircraft in [fpm]
Returns
true, if the ownship has priority over the traffic aircraft

◆ set_cruise_def()

static void larcfm::Priority::set_cruise_def ( double  CruiseDef)
inlinestatic

Set the value of the vertical speed that defines "cruise" in [fpm]

This value should never change; however, since its precise values is still to be experimentally determined, it is left modifiable.

◆ set_lateral_deadband()

static void larcfm::Priority::set_lateral_deadband ( double  LateralDeadband)
inlinestatic

Set the value of the relative uncertainty in the horizontal speed in [knot]

This value should never change; however, since its precise values is still to be experimentally determined, it is left modifiable.

◆ set_lateral_relative_deadband()

static void larcfm::Priority::set_lateral_relative_deadband ( double  LateralRelativeDeadband)
inlinestatic

Set the value of the relative uncertainty in the horizontal speed in [knot]

This value should never change; however, since its precise values is still to be experimentally determined, it is left modifiable.

◆ set_tc()

static void larcfm::Priority::set_tc ( double  tc)
inlinestatic

Set the value of the relative uncertainty in the horizontal speed in [knot]

This value should never change; however, since its precise values is still to be experimentally determined, it is left modifiable.

◆ set_time_lookahead()

static void larcfm::Priority::set_time_lookahead ( double  TimeLookahead)
inlinestatic

Set the value of the time lookahead. I don't know what this parameter is for

◆ set_time_maneuver_restriction()

static void larcfm::Priority::set_time_maneuver_restriction ( double  TimeManeuverRestriction)
inlinestatic

Set the value of the time to maneuver. I don't know what this parameter is for

◆ set_time_proximity()

static void larcfm::Priority::set_time_proximity ( double  TimeProximity)
inlinestatic

Set the value of the time proximity. I don't know what this parameter is for

◆ set_vertical_deadband()

static void larcfm::Priority::set_vertical_deadband ( double  VerticalDeadband)
inlinestatic

Set the value of the relative uncertainty in vertical speed in [fpm]

This value should never change; however, since its precise values is still to be experimentally determined, it is left modifiable.

Member Data Documentation

◆ TIME_LOOKAHEAD

double larcfm::Priority::TIME_LOOKAHEAD
static

I don't know what this parameter is for

◆ TIME_MANEUVER_RESTRICTION

double larcfm::Priority::TIME_MANEUVER_RESTRICTION
static

I don't know what this parameter is for

◆ TIME_PROXIMITY

double larcfm::Priority::TIME_PROXIMITY
static

I don't know what this parameter is for


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