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

#include <CRSS.h>

Public Member Functions

 CRSS ()
 
 CRSS (const double distance, const double height)
 
double getDistance () const
 
double getHeight () const
 
void setDistance (const double distance)
 
void setHeight (const double height)
 
void setMinGs (double gs)
 
void setMaxGs (double gs)
 
void setMaxVs (double vs)
 
void setMinHorizExitSpeed (double gs)
 
void setMinVertExitSpeed (double gs)
 
void setVsDiscretization (double vD)
 
double getMinGs ()
 
double getMaxGs ()
 
double getMaxVs ()
 
double getMinHorizExitSpeed ()
 
int resolution (const Vect3 &s, const Velocity &vo, const Velocity &vi, int epsh, int epsv)
 
int resolution (const Vect3 &s, const Velocity &vo, const Velocity &vi, std::string ownship, std::string traffic)
 
bool hasTrkOnly () const
 
bool hasGsOnly () const
 
bool hasVsOnly () const
 
bool hasOptTrkGs () const
 
double trkOnly () const
 
double gsOnly () const
 
double optTrk () const
 
double optGs () const
 
double vsOnly () const
 
std::string toString () const
 
 CRSS (const double distance, const std::string &ud, const double height, const std::string &uh)
 
double getDistance (const std::string &ud) const
 
double getHeight (const std::string &uh) const
 
void setDistance (const double distance, const std::string &ud)
 
void setHeight (const double height, const std::string &uh)
 
void setMinGs (double gs, const std::string &us)
 
void setMaxGs (double gs, const std::string &us)
 
void setMinHorizExitSpeed (double gs, const std::string &us)
 
double getMinGs (const std::string &us)
 
double getMaxGs (const std::string &us)
 
double getMinHorizExitSpeed (const std::string &us)
 
double getMinVertExitSpeed ()
 
double getVsDiscretization ()
 
double trkOnly (const std::string &utrk) const
 
double gsOnly (const std::string &ugs) const
 
double vsOnly (const std::string &uvs) const
 
double optTrk (const std::string &utrk) const
 
double optGs (const std::string &ugs) const
 
std::string strResolutions (int res)
 

Static Public Member Functions

static CRSS make (double distance, const std::string &dStr, double height, const std::string &hStr)
 
static CRSS mk (double distance, double height)
 

Private Member Functions

void init (const double d, const double h)
 

Private Attributes

double D
 
double H
 
double vsDiscretization
 
CR3D cr
 
double trk_only
 
double gs_only
 
double opt_trk
 
double opt_gs
 
double vs_only
 
double minHorizExitSpeedLoS
 
double minVertExitSpeedLoS
 
double maxGs
 
double minGs
 
double maxVs
 

Detailed Description

Conflict resolution.

Conflict resolution between an ownship and traffic aircraft using state information.

Possible resolution values:

Constructor & Destructor Documentation

◆ CRSS() [1/2]

larcfm::CRSS::CRSS ( )

Create a new state-based conflict detection object using internal units.

Create a new state-based conflict detection object using internal units.

Parameters
distancethe minimum horizontal separation distance [m]
heightthe minimum vertical separation height [m].

◆ CRSS() [2/2]

larcfm::CRSS::CRSS ( const double  distance,
const double  height 
)

Create a new state-based conflict detection object using internal units.

Parameters
distancethe minimum horizontal separation distance [m]
heightthe minimum vertical separation height [m].

Member Function Documentation

◆ getDistance()

double larcfm::CRSS::getDistance ( ) const

Returns the minimum horizontal separation distance in internal units [m].

Returns
the distance

◆ getHeight()

double larcfm::CRSS::getHeight ( ) const

Returns the minimum vertical separation distance in internal units.

Returns
the height in internal units [m]

◆ getMaxGs()

double larcfm::CRSS::getMaxGs ( )

returns the maximum ground speed used while searching for a loss of separation solution

◆ getMaxVs()

double larcfm::CRSS::getMaxVs ( )

returns the maximum ground speed used while searching for a loss of separation solution

◆ getMinGs()

double larcfm::CRSS::getMinGs ( )

returns the minimum ground speed used while searching for a loss of separation solution

◆ getMinHorizExitSpeed()

double larcfm::CRSS::getMinHorizExitSpeed ( )

gets the minimum ground speed used while searching for a loss of separation solution

◆ getMinVertExitSpeed()

double larcfm::CRSS::getMinVertExitSpeed ( )

gets the minimum vertical speed used while searching for a loss of separation solution

◆ getVsDiscretization()

double larcfm::CRSS::getVsDiscretization ( )

Sets the level of discretization for vertical speed, 10 = in units of 10 fpm, 100 = in units of 100 fpm

Parameters
vD

◆ gsOnly()

double larcfm::CRSS::gsOnly ( ) const

Ground speed-only maneuver in internal units.

Returns
the ground speed-only maneuver [m/s]

◆ hasGsOnly()

bool larcfm::CRSS::hasGsOnly ( ) const

Checks if a ground speed maneuver was found.

Returns
true, if ground speed-only maneuver is defined

◆ hasOptTrkGs()

bool larcfm::CRSS::hasOptTrkGs ( ) const

Checks if optimal track/ground speed maneuver was found.

Returns
true, if optimal track/ground speed maneuver was found

◆ hasTrkOnly()

bool larcfm::CRSS::hasTrkOnly ( ) const

Checks if a track maneuver was found.

Returns
true, if track-only maneuver is defined

◆ hasVsOnly()

bool larcfm::CRSS::hasVsOnly ( ) const

Checks if vertical speed maneuver was found.

Returns
true, if vertical speed-only maneuver was defined

◆ optGs()

double larcfm::CRSS::optGs ( ) const

Optimal ground speed maneuver in internal units.

Returns
the ground speed maneuver [m/s]

◆ optTrk()

double larcfm::CRSS::optTrk ( ) const

Optimal track maneuver in internal units.

Returns
the track maneuver [rad]

◆ resolution() [1/2]

int larcfm::CRSS::resolution ( const Vect3 s,
const Velocity vo,
const Velocity vi,
int  epsh,
int  epsv 
)

Computes resolution maneuvers for the ownship.

Parameters
sthe relative position of the aircraft
vothe ownship's velocity
vithe intruder's velocity
epshthe horizontal coordination epsilon (e.g. CriteriaCore.horizontalCoordination(s,v))
epsvthe vertical coordination epsilon (e.g. CriteriaCore.verticalCoordination(s,vo,vi,D,H,ownship,traffic))
Returns
type of resolution maneuvers as follows:
  • LoSDivg (3)– Loss of separation resolution
  • LoSConv (2) – Loss of separation resolution
  • None (-1)– No resolution available
  • Conflict (1) – Conflict resolution
  • Unnecessary (0) – Conflict resolution is not needed

Computes resolution maneuvers for the ownship.

Parameters
sthe relative position of the aircraft
vothe ownship's velocity
vithe intruder's velocity
Returns
type of resolution maneuvers as follows None : No resolution available Conflict : Conflict resolution LoS : Loss of separation resolution Unnecessary : The current maneuver is good to recover from LoS

◆ resolution() [2/2]

int larcfm::CRSS::resolution ( const Vect3 s,
const Velocity vo,
const Velocity vi,
std::string  ownship,
std::string  traffic 
)

TODO

Parameters
sthe relative position of the aircraft
vothe ownship's velocity
vithe intruder's velocity
ownshipthe ownship id
trafficthe traffic id
Returns
type of resolution

◆ setDistance()

void larcfm::CRSS::setDistance ( const double  distance)

Sets the minimum horizontal separation distance in internal units.

Parameters
distancethe distance in internal units [m]

◆ setHeight()

void larcfm::CRSS::setHeight ( const double  height)

Sets the minimum vertical separation distance in internal units.

Parameters
heightthe height in internal units [m]

◆ setMaxGs()

void larcfm::CRSS::setMaxGs ( double  gs)

sets the maximum ground speed used while searching for a loss of separation solution

◆ setMaxVs()

void larcfm::CRSS::setMaxVs ( double  vs)

sets the maximum vertical speed used while searching for a loss of separation solution

◆ setMinGs()

void larcfm::CRSS::setMinGs ( double  gs)

sets the minimum ground speed used while searching for a loss of separation solution

◆ setMinHorizExitSpeed()

void larcfm::CRSS::setMinHorizExitSpeed ( double  gs)

sets the minimum speed used while searching for a loss of separation solution

◆ setMinVertExitSpeed()

void larcfm::CRSS::setMinVertExitSpeed ( double  gs)

sets the minimum speed used while searching for a loss of separation solution

◆ setVsDiscretization()

void larcfm::CRSS::setVsDiscretization ( double  vD)

Sets the level of discretization for vertical speed, 10 = in units of 10 fpm, 100 = in units of 100 fpm

Parameters
vD

◆ trkOnly()

double larcfm::CRSS::trkOnly ( ) const

Track-only maneuver in internal unit.

Returns
the track maneuver [rad]

◆ vsOnly()

double larcfm::CRSS::vsOnly ( ) const

Vertical speed-only maneuver in internal units. It is recommended that the new velocity be constructed using Velocity.makeVxyz() instead of Velocity.makeTrkGsVs().

Returns
the vertical speed maneuver [m/s]

Vertical speed-only maneuver in internal units.

Returns
the vertical speed maneuver [m/s]

Member Data Documentation

◆ D

double larcfm::CRSS::D
private

The minimum horizontal distance

◆ H

double larcfm::CRSS::H
private

The minimum vertical distance


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