ICAROUS
All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Modules Pages
Public Member Functions | Static Private Member Functions | List of all members
larcfm::Detection3D Class Referenceabstract
Inheritance diagram for larcfm::Detection3D:
larcfm::ParameterAcceptor larcfm::ParameterProvider larcfm::CDCylinder larcfm::Detection3DSUM larcfm::TCAS3D larcfm::WCV_tvar larcfm::WCV_TAUMOD larcfm::WCV_TCPA larcfm::WCV_TEP larcfm::WCV_HZ larcfm::WCV_TAUMOD_SUM

Public Member Functions

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
 
virtual ConflictData conflictDetection (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double B, double T) const =0
 
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
 
virtual Detection3Dcopy () const =0
 
virtual Detection3Dmake () const =0
 
std::string getCanonicalClassName () const
 
std::string getCanonicalSuperClassName () const
 
virtual std::string getSimpleClassName () const =0
 
virtual std::string getSimpleSuperClassName () const
 
virtual std::string toString () const =0
 
virtual std::string toPVS () const =0
 
virtual std::string getIdentifier () const =0
 
virtual void setIdentifier (const std::string &s)=0
 
virtual bool equals (Detection3D *o) const =0
 
virtual bool contains (const Detection3D *cd) const =0
 
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
 
virtual void horizontalHazardZone (std::vector< Position > &haz, const TrafficState &ownship, const TrafficState &intruder, double T) const
 
- Public Member Functions inherited from larcfm::ParameterAcceptor
virtual void setParameters (const ParameterData &p)=0
 
- Public Member Functions inherited from larcfm::ParameterProvider
virtual ParameterData getParameters () const =0
 
virtual void updateParameterData (ParameterData &p) const =0
 

Static Private Member Functions

static void add_blob (std::vector< std::vector< Position > > &blobs, std::vector< Position > &vin, std::vector< Position > &vout)
 

Member Function Documentation

◆ conflict()

bool larcfm::Detection3D::conflict ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
double  B,
double  T 
) const

This functional call returns true if there will be a violation between times B and T from now (relative).

Parameters
soownship position
voownship velocity
siintruder position
viintruder velocity
Bbeginning of detection time (>=0)
Tend of detection time (if T < 0 then use an "infinite" lookahead time)
Returns
true if there is a conflict within times B to T

◆ conflictDetection()

virtual ConflictData larcfm::Detection3D::conflictDetection ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
double  B,
double  T 
) const
pure virtual

This functional call returns a ConflictData object detailing the conflict between times B and T from now (relative), if any.

Parameters
soownship position
voownship velocity
siintruder position
viintruder velocity
Dhorizontal separation
Hvertical separation
Bbeginning of detection time (>=0)
Tend of detection time (if T < 0 then use an "infinite" lookahead time)
Returns
a ConflictData object detailing the conflict

Implemented in larcfm::CDCylinder, larcfm::TCAS3D, and larcfm::WCV_tvar.

◆ conflictDetectionWithTrafficState()

ConflictData larcfm::Detection3D::conflictDetectionWithTrafficState ( const TrafficState ownship,
const TrafficState intruder,
double  B,
double  T 
) const
virtual

This functional call returns a ConflictData object detailing the conflict between times B and T from now (relative), if any.

Parameters
ownshipownship state
intruderintruder state
Dhorizontal separation
Hvertical separation
Bbeginning of detection time (>=0)
Tend of detection time (if T < 0 then use an "infinite" lookahead time)
Returns
a ConflictData object detailing the conflict

Reimplemented in larcfm::WCV_TAUMOD_SUM.

◆ conflictWithTrafficState()

bool larcfm::Detection3D::conflictWithTrafficState ( const TrafficState ownship,
const TrafficState intruder,
double  B,
double  T 
) const

This functional call returns true if there will be a violation between times B and T from now (relative).

Parameters
ownshipownship state
intruderintruder state
Bbeginning of detection time (>=0)
Tend of detection time (if T < 0 then use an "infinite" lookahead time)
Returns
true if there is a conflict within times B to T

◆ copy()

virtual Detection3D * larcfm::Detection3D::copy ( ) const
pure 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.

Implemented in larcfm::CDCylinder, larcfm::TCAS3D, larcfm::WCV_HZ, larcfm::WCV_TAUMOD, larcfm::WCV_TAUMOD_SUM, larcfm::WCV_TCPA, larcfm::WCV_TEP, and larcfm::WCV_tvar.

◆ equals()

virtual bool larcfm::Detection3D::equals ( Detection3D o) const
pure 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; }

Implemented in larcfm::CDCylinder, larcfm::TCAS3D, and larcfm::WCV_tvar.

◆ horizontalContours()

void larcfm::Detection3D::horizontalContours ( std::vector< std::vector< Position > > &  blobs,
const TrafficState ownship,
const TrafficState intruder,
double  thr,
double  T 
) const

Computes horizontal list of contours contributed by intruder aircraft. A contour is a list of points in counter-clockwise direction representing a polygon. Last point should be connected to first one.

Parameters
thrThis is a contour threshold in radians [0,pi]. This threshold indicates how far from current direction to look for contours. A value of 0 means only conflict contour. A value of pi means all contours.
TLookahead time in seconds

NOTE: The computed polygon should only be used for display purposes since it's merely an approximation of the actual contours defined by the violation and detection methods.

◆ horizontalHazardZone()

void larcfm::Detection3D::horizontalHazardZone ( std::vector< Position > &  haz,
const TrafficState ownship,
const TrafficState intruder,
double  T 
) const
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.

Parameters
TThis 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 in larcfm::CDCylinder, larcfm::TCAS3D, and larcfm::WCV_tvar.

◆ violation()

bool larcfm::Detection3D::violation ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi 
) const

This functional call returns true if there is a violation given the current states.

Parameters
soownship position
voownship velocity
siintruder position
viintruder velocity
Returns
true if there is a violation

◆ violationAtWithTrafficState()

bool larcfm::Detection3D::violationAtWithTrafficState ( const TrafficState ownship,
const TrafficState intruder,
double  t 
) const

This functional call returns true if there is a violation at time t.

Parameters
ownshipownship state
intruderintruder state
ttime in seconds
Returns
true if there is a violation at time t

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