ICAROUS
|
#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 |
Conflict resolution.
Conflict resolution between an ownship and traffic aircraft using state information.
Possible resolution values:
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.
distance | the minimum horizontal separation distance [m] |
height | the minimum vertical separation height [m]. |
larcfm::CRSS::CRSS | ( | const double | distance, |
const double | height | ||
) |
Create a new state-based conflict detection object using internal units.
distance | the minimum horizontal separation distance [m] |
height | the minimum vertical separation height [m]. |
double larcfm::CRSS::getDistance | ( | ) | const |
Returns the minimum horizontal separation distance in internal units [m].
double larcfm::CRSS::getHeight | ( | ) | const |
Returns the minimum vertical separation distance in internal units.
double larcfm::CRSS::getMaxGs | ( | ) |
returns the maximum ground speed used while searching for a loss of separation solution
double larcfm::CRSS::getMaxVs | ( | ) |
returns the maximum ground speed used while searching for a loss of separation solution
double larcfm::CRSS::getMinGs | ( | ) |
returns the minimum ground speed used while searching for a loss of separation solution
double larcfm::CRSS::getMinHorizExitSpeed | ( | ) |
gets the minimum ground speed used while searching for a loss of separation solution
double larcfm::CRSS::getMinVertExitSpeed | ( | ) |
gets the minimum vertical speed used while searching for a loss of separation solution
double larcfm::CRSS::getVsDiscretization | ( | ) |
Sets the level of discretization for vertical speed, 10 = in units of 10 fpm, 100 = in units of 100 fpm
vD |
double larcfm::CRSS::gsOnly | ( | ) | const |
Ground speed-only maneuver in internal units.
bool larcfm::CRSS::hasGsOnly | ( | ) | const |
Checks if a ground speed maneuver was found.
bool larcfm::CRSS::hasOptTrkGs | ( | ) | const |
Checks if optimal track/ground speed maneuver was found.
bool larcfm::CRSS::hasTrkOnly | ( | ) | const |
Checks if a track maneuver was found.
bool larcfm::CRSS::hasVsOnly | ( | ) | const |
Checks if vertical speed maneuver was found.
double larcfm::CRSS::optGs | ( | ) | const |
Optimal ground speed maneuver in internal units.
double larcfm::CRSS::optTrk | ( | ) | const |
Optimal track maneuver in internal units.
int larcfm::CRSS::resolution | ( | const Vect3 & | s, |
const Velocity & | vo, | ||
const Velocity & | vi, | ||
int | epsh, | ||
int | epsv | ||
) |
Computes resolution maneuvers for the ownship.
s | the relative position of the aircraft |
vo | the ownship's velocity |
vi | the intruder's velocity |
epsh | the horizontal coordination epsilon (e.g. CriteriaCore.horizontalCoordination(s,v)) |
epsv | the vertical coordination epsilon (e.g. CriteriaCore.verticalCoordination(s,vo,vi,D,H,ownship,traffic)) |
Computes resolution maneuvers for the ownship.
s | the relative position of the aircraft |
vo | the ownship's velocity |
vi | the intruder's velocity |
int larcfm::CRSS::resolution | ( | const Vect3 & | s, |
const Velocity & | vo, | ||
const Velocity & | vi, | ||
std::string | ownship, | ||
std::string | traffic | ||
) |
TODO
s | the relative position of the aircraft |
vo | the ownship's velocity |
vi | the intruder's velocity |
ownship | the ownship id |
traffic | the traffic id |
void larcfm::CRSS::setDistance | ( | const double | distance | ) |
Sets the minimum horizontal separation distance in internal units.
distance | the distance in internal units [m] |
void larcfm::CRSS::setHeight | ( | const double | height | ) |
Sets the minimum vertical separation distance in internal units.
height | the height in internal units [m] |
void larcfm::CRSS::setMaxGs | ( | double | gs | ) |
sets the maximum ground speed used while searching for a loss of separation solution
void larcfm::CRSS::setMaxVs | ( | double | vs | ) |
sets the maximum vertical speed used while searching for a loss of separation solution
void larcfm::CRSS::setMinGs | ( | double | gs | ) |
sets the minimum ground speed used while searching for a loss of separation solution
void larcfm::CRSS::setMinHorizExitSpeed | ( | double | gs | ) |
sets the minimum speed used while searching for a loss of separation solution
void larcfm::CRSS::setMinVertExitSpeed | ( | double | gs | ) |
sets the minimum speed used while searching for a loss of separation solution
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
vD |
double larcfm::CRSS::trkOnly | ( | ) | const |
Track-only maneuver in internal unit.
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().
Vertical speed-only maneuver in internal units.
|
private |
The minimum horizontal distance
|
private |
The minimum vertical distance