ICAROUS
|
Public Member Functions | |
CDCylinder (const std::string &s="") | |
CDCylinder (const CDCylinder &cdc) | |
CDCylinder (double d, double h) | |
CDCylinder (double d, const std::string &dunit, double h, const std::string &hunit) | |
std::string | getUnits (const std::string &key) const |
double | getHorizontalSeparation () const |
void | setHorizontalSeparation (double d) |
double | getVerticalSeparation () const |
void | setVerticalSeparation (double h) |
double | getHorizontalSeparation (const std::string &u) const |
void | setHorizontalSeparation (double d, const std::string &u) |
double | getVerticalSeparation (const std::string &u) const |
void | setVerticalSeparation (double h, const std::string &u) |
LossData | detection (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const double D, const double H, const double B, const double T) const |
LossData | detection (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const double D, const double H, const double T) const |
LossData | detection (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const double D, const double H) const |
virtual ConflictData | conflictDetection (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double B, double T) const |
double | timeOfClosestApproach (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double B, double T) const |
virtual CDCylinder * | copy () const |
virtual CDCylinder * | make () const |
virtual ParameterData | getParameters () const |
virtual void | updateParameterData (ParameterData &p) const |
virtual void | setParameters (const ParameterData &p) |
virtual std::string | getSimpleClassName () const |
virtual std::string | toString () const |
virtual std::string | toPVS () const |
virtual std::string | getIdentifier () const |
virtual void | setIdentifier (const std::string &s) |
virtual bool | equals (Detection3D *d) const |
virtual bool | contains (const Detection3D *cd) const |
virtual void | horizontalHazardZone (std::vector< Position > &haz, const TrafficState &ownship, const TrafficState &intruder, double T) const |
![]() | |
bool | violation (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi) const |
bool | conflict (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double B, double T) const |
bool | violationAtWithTrafficState (const TrafficState &ownship, const TrafficState &intruder, double t) const |
bool | conflictWithTrafficState (const TrafficState &ownship, const TrafficState &intruder, double B, double T) const |
virtual ConflictData | conflictDetectionWithTrafficState (const TrafficState &ownship, const TrafficState &intruder, double B, double T) const |
std::string | getCanonicalClassName () const |
std::string | getCanonicalSuperClassName () const |
virtual std::string | getSimpleSuperClassName () const |
bool | instanceOf (const std::string &classname) const |
void | horizontalContours (std::vector< std::vector< Position > > &blobs, const TrafficState &ownship, const TrafficState &intruder, double thr, double T) const |
Static Public Member Functions | |
static CDCylinder | make (double distance, const std::string &dUnits, double height, const std::string &hUnits) |
static CDCylinder | mk (double distance, double height) |
static const CDCylinder & | A_CDCylinder () |
static const CDCylinder & | CD3DCylinder () |
static ConflictData | conflict_detection (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double D, double H, double B, double T) |
static double | time_of_closest_approach (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double D, double H, double B, double T) |
static void | circular_arc (std::vector< Position > &arc, const Position &pc, const Velocity &v, double alpha, bool include_last) |
Private Attributes | |
std::string | id |
std::map< std::string, std::string > | units_ |
double | D_ |
double | H_ |
larcfm::CDCylinder::CDCylinder | ( | const std::string & | s = "" | ) |
Instantiates a new CD3D object.
larcfm::CDCylinder::CDCylinder | ( | const CDCylinder & | cdc | ) |
This specifies the internal table is a copy of the provided table
tab |
|
static |
|
static |
|
virtual |
This functional call returns a ConflictData object detailing the conflict between times B and T from now (relative), if any.
so | ownship position |
vo | ownship velocity |
si | intruder position |
vi | intruder velocity |
D | horizontal separation |
H | vertical separation |
B | beginning of detection time (>=0) |
T | end of detection time (if T < 0 then use an "infinite" lookahead time) |
Implements larcfm::Detection3D.
|
virtual |
Implements larcfm::Detection3D.
|
virtual |
This returns a pointer to a new instance of this type of Detector3D. You are responsible for destroying this instance when it is no longer needed.
Implements larcfm::Detection3D.
LossData larcfm::CDCylinder::detection | ( | const Vect3 & | s, |
const Vect3 & | vo, | ||
const Vect3 & | vi, | ||
const double | D, | ||
const double | H | ||
) | const |
Computes the conflict time interval in [0,...).
s | the relative position of the aircraft |
vo | the ownship's velocity |
vi | the intruder's velocity |
D | the minimum horizontal distance |
H | the minimum vertical distance |
LossData larcfm::CDCylinder::detection | ( | const Vect3 & | s, |
const Vect3 & | vo, | ||
const Vect3 & | vi, | ||
const double | D, | ||
const double | H, | ||
const double | B, | ||
const double | T | ||
) | const |
Computes the conflict time interval in [B,T].
s | the relative position of the aircraft |
vo | the ownship's velocity |
vi | the intruder's velocity |
D | the minimum horizontal distance |
H | the minimum vertical distance |
B | the the lower bound of the lookahead time (B >= 0) |
T | the upper bound of the lookahead time (B < T) |
LossData larcfm::CDCylinder::detection | ( | const Vect3 & | s, |
const Vect3 & | vo, | ||
const Vect3 & | vi, | ||
const double | D, | ||
const double | H, | ||
const double | T | ||
) | const |
Computes the conflict time interval in [0,T].
s | the relative position of the aircraft |
vo | the ownship's velocity |
vi | the intruder's velocity |
D | the minimum horizontal distance |
H | the minimum vertical distance |
T | the the lookahead time (T > 0) |
|
virtual |
Return true if two instances have identical parameters (including identifiers). Use address equality (&x == &y) to distinguish instances. A generic implementation, assuming the identifier is included in the ParameterData object, would be virtual bool equals(Detection3D* o) const { if (!larcfmequals(getClassName(), o->getClassName())) return false; if (!getParameterData().equals(o->getParameterData())) return false; return true; }
Implements larcfm::Detection3D.
|
virtual |
Implements larcfm::Detection3D.
|
virtual |
Implements larcfm::ParameterProvider.
|
virtual |
Implements larcfm::Detection3D.
|
virtual |
Return a list of points (polygon) that approximates the horizontal hazard zone around the ownship, with respect to a traffic aircraft. A polygon is a list of points in counter-clockwise direction, where the last point is connected to the first one.
T | This time represents a time horizon in seconds. When T is 0, the polygon represents the hazard zone. Otherwise, the are represents the hazard zone with time horizon T. |
NOTE 1: This polygon should only be used for display purposes since it's merely an approximation of the actual hazard zone defined by the violation and detection methods.
NOTE 2: This method has to be redefined as appropriate for every specific hazard zone.
Reimplemented from larcfm::Detection3D.
|
virtual |
Implements larcfm::Detection3D.
|
static |
Create a new state-based conflict detection object using specified units.
distance | the minimum horizontal separation distance in specified units |
height | the minimum vertical separation height in specified units. |
|
static |
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]. |
|
virtual |
Implements larcfm::Detection3D.
|
virtual |
Implements larcfm::ParameterAcceptor.
|
virtual |
Implements larcfm::Detection3D.
|
virtual |
Implements larcfm::Detection3D.
|
virtual |
Implements larcfm::ParameterProvider.