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

#include <TrafficState.h>

Public Types

typedef std::vector< TrafficState >::size_type nat
 

Public Member Functions

 TrafficState ()
 
void setAirVelocity (const Velocity &new_avel)
 
void setPosition (const Position &new_pos)
 
void setAsOwnship ()
 
void setAsIntruderOf (const TrafficState &ownship)
 
TrafficState makeIntruder (const std::string &id, const Position &pos, const Velocity &vel) const
 
void setAlerterIndex (int alerter)
 
int getAlerterIndex () const
 
void applyWindVector (const Velocity &wind_vector)
 
Velocity windVector () const
 
const EuclideanProjection & getEuclideanProjection () const
 
const Vect3get_s () const
 
const Velocityget_v () const
 
Vect3 pos_to_s (const Position &p) const
 
Velocity vel_to_v (const Position &p, const Velocity &v) const
 
Velocity inverseVelocity (const Velocity &v) const
 
TrafficState linearProjection (double offset) const
 
std::string formattedHeader (const std::string &utrk, const std::string &uxy, const std::string &ualt, const std::string &ugs, const std::string &uvs) const
 
std::string formattedTrafficState (const std::string &utrk, const std::string &uxy, const std::string &ualt, const std::string &ugs, const std::string &uvs, double time) const
 
std::string formattedTraffic (const std::vector< TrafficState > &traffic, const std::string &utrk, const std::string &uxy, const std::string &ualt, const std::string &ugs, const std::string &uvs, double time) const
 
std::string toPVS () const
 
std::string listToPVSAircraftList (const std::vector< TrafficState > &traffic) const
 
bool isValid () const
 
bool isLatLon () const
 
const std::string & getId () const
 
const PositiongetPosition () const
 
const VelocitygetAirVelocity () const
 
const VelocitygetGroundVelocity () const
 
const VelocitygetVelocity () const
 
const PositionpositionXYZ () const
 
const VelocityvelocityXYZ () const
 
double horizontalDirection () const
 
double horizontalDirection (const std::string &utrk) const
 
double horizontalSpeed () const
 
double horizontalSpeed (const std::string &ugs) const
 
double verticalSpeed () const
 
double verticalSpeed (const std::string &uvs) const
 
double altitude () const
 
double altitude (const std::string &ualt) const
 
const SUMDatasum () const
 
void setHorizontalPositionUncertainty (double s_EW_std, double s_NS_std, double s_EN_std)
 
void setVerticalPositionUncertainty (double sz_std)
 
void setHorizontalVelocityUncertainty (double v_EW_std, double v_NS_std, double v_EN_std)
 
void setVerticalSpeedUncertainty (double vz_std)
 
void resetUncertainty ()
 
bool sameId (const TrafficState &ac) const
 
std::string toString () const
 

Static Public Member Functions

static const TrafficStateINVALID ()
 
static TrafficState makeOwnship (const std::string &id, const Position &pos, const Velocity &vel)
 
static int findAircraftIndex (const std::vector< TrafficState > &traffic, const std::string &id)
 
static std::string listToString (const std::vector< std::string > &traffic)
 
static std::string formattedTrafficList (const std::vector< TrafficState > &traffic, const std::string &utrk, const std::string &uxy, const std::string &ualt, const std::string &ugs, const std::string &uvs, double time)
 
static std::string listToPVSStringList (const std::vector< std::string > &traffic)
 

Private Member Functions

 TrafficState (const std::string &id, const Position &pos, const Velocity &vel)
 
 TrafficState (const std::string &id, const Position &pos, const Velocity &vel, EuclideanProjection eprj, int alerter)
 
void applyEuclideanProjection ()
 

Private Attributes

std::string id_
 
Position pos_
 
Velocity gvel_
 
Velocity avel_
 
EuclideanProjection eprj_
 
int alerter_
 
SUMData sum_
 
Position posxyz_
 
Vect3 sxyz_
 
Velocity velxyz_
 

Detailed Description

Horizontal solution

Constructor & Destructor Documentation

◆ TrafficState() [1/3]

larcfm::TrafficState::TrafficState ( )

Create an non-valid aircraft state

◆ TrafficState() [2/3]

larcfm::TrafficState::TrafficState ( const std::string &  id,
const Position pos,
const Velocity vel 
)
private

Create a traffic state that is not lat/lon

Parameters
idAircraft's identifier
posAircraft's position
velAircraft's ground velocity

◆ TrafficState() [3/3]

larcfm::TrafficState::TrafficState ( const std::string &  id,
const Position pos,
const Velocity vel,
EuclideanProjection  eprj,
int  alerter 
)
private

Create a traffic state

Parameters
idAircraft's identifier
posAircraft's position
velAircraft's ground velocity
eprjEuclidean projection

Member Function Documentation

◆ altitude() [1/2]

double larcfm::TrafficState::altitude ( ) const

Returns current altitude in internal units

◆ altitude() [2/2]

double larcfm::TrafficState::altitude ( const std::string &  ualt) const

Returns current altitude in given units

◆ applyEuclideanProjection()

void larcfm::TrafficState::applyEuclideanProjection ( )
private

Apply Euclidean projection. Requires aircraft's position in lat/lon

Parameters
eprj

Apply Euclidean projection. Requires aircraft's position in lat/lon

◆ applyWindVector()

void larcfm::TrafficState::applyWindVector ( const Velocity wind_vector)

Set wind velocity

Parameters
wind_vectorWind velocity specified in the TO direction

◆ findAircraftIndex()

int larcfm::TrafficState::findAircraftIndex ( const std::vector< TrafficState > &  traffic,
const std::string &  id 
)
static

Index of aircraft id in traffic list. If aircraft is not in the list, returns -1

Parameters
traffic
id

◆ getAirVelocity()

const Velocity & larcfm::TrafficState::getAirVelocity ( ) const
Returns
Aircraft's air velocity

◆ getAlerterIndex()

int larcfm::TrafficState::getAlerterIndex ( ) const
Returns
aircraft index for this aircraft. This index is 1-based.

◆ getEuclideanProjection()

const EuclideanProjection & larcfm::TrafficState::getEuclideanProjection ( ) const

Return Euclidean projection

◆ getGroundVelocity()

const Velocity & larcfm::TrafficState::getGroundVelocity ( ) const
Returns
Aircraft's velocity (can be ground or air depending on whether a wind vector was applied or not)

◆ getId()

const std::string & larcfm::TrafficState::getId ( ) const
Returns
Aircraft's identifier

◆ getPosition()

const Position & larcfm::TrafficState::getPosition ( ) const
Returns
Aircraft's position

◆ getVelocity()

const Velocity & larcfm::TrafficState::getVelocity ( ) const
Returns
Aircraft's air velocity
Aircraft's velocity (can be ground or air depending on whether a wind vector was applied or not)

◆ horizontalDirection() [1/2]

double larcfm::TrafficState::horizontalDirection ( ) const

Returns current horizontal direction in internal units [0 - 2pi] [rad] (clock-wise with respect to North) Direction may be heading or track, depending on whether a wind vector was provided or not.

◆ horizontalDirection() [2/2]

double larcfm::TrafficState::horizontalDirection ( const std::string &  utrk) const

Returns current direction in given units [0 - 2pi] [u] (clock wise with respect to North) Direction may be heading or track, depending on whether a wind vector was provided or not.

◆ horizontalSpeed() [1/2]

double larcfm::TrafficState::horizontalSpeed ( ) const

Returns current horizontal speed in internal units. Horizontal speed may be air speed or group speed, depending on whether a wind vector was provided or not.

◆ horizontalSpeed() [2/2]

double larcfm::TrafficState::horizontalSpeed ( const std::string &  ugs) const

Returns current horizontal speed in given units. Horizontal speed may be air speed or group speed, depending on whether a wind vector was provided or not.

◆ isLatLon()

bool larcfm::TrafficState::isLatLon ( ) const
Returns
true if aircraft position is specified in lat/lon instead of x,y

◆ isValid()

bool larcfm::TrafficState::isValid ( ) const
Returns
true if this is a valid aircraft state

◆ linearProjection()

TrafficState larcfm::TrafficState::linearProjection ( double  offset) const

Project aircraft state offset time, which can be positive or negative, in the direction of the air velocity. This methods doesn't change ownship, i.e., the resulting aircraft is considered as another intruder.

Parameters
offsetOffset time.
Returns
Projected aircraft.

◆ makeIntruder()

TrafficState larcfm::TrafficState::makeIntruder ( const std::string &  id,
const Position pos,
const Velocity vel 
) const

Make intruder aircraft

Parameters
idIntruder's identifier
posIntruder's position
velIntruder's ground velocity
Returns

◆ makeOwnship()

TrafficState larcfm::TrafficState::makeOwnship ( const std::string &  id,
const Position pos,
const Velocity vel 
)
static

Make an ownship's aircraft

Parameters
idOwnship's identifier
posOwnship's position
velOwnship's ground velocity

◆ resetUncertainty()

void larcfm::TrafficState::resetUncertainty ( )

Set all uncertainties to 0

◆ setAlerterIndex()

void larcfm::TrafficState::setAlerterIndex ( int  alerter)

Set alerter index for this aircraft

Parameters
alerter

◆ setAsIntruderOf()

void larcfm::TrafficState::setAsIntruderOf ( const TrafficState ownship)

Set aircraft as intruder of ownship

◆ setAsOwnship()

void larcfm::TrafficState::setAsOwnship ( )

Set aircraft as ownship

◆ setHorizontalPositionUncertainty()

void larcfm::TrafficState::setHorizontalPositionUncertainty ( double  s_EW_std,
double  s_NS_std,
double  s_EN_std 
)

s_EW_std: East/West position standard deviation in internal units s_NS_std: North/South position standard deviation in internal units s_EN_std: East/North position standard deviation in internal units

◆ setHorizontalVelocityUncertainty()

void larcfm::TrafficState::setHorizontalVelocityUncertainty ( double  v_EW_std,
double  v_NS_std,
double  v_EN_std 
)

v_EW_std: East/West velocity standard deviation in internal units v_NS_std: North/South velocity standard deviation in internal units v_EN_std: East/North velocity standard deviation in internal units

◆ setVerticalPositionUncertainty()

void larcfm::TrafficState::setVerticalPositionUncertainty ( double  sz_std)

sz_std : Vertical position standard deviation in internal units

◆ setVerticalSpeedUncertainty()

void larcfm::TrafficState::setVerticalSpeedUncertainty ( double  vz_std)

vz_std : Vertical velocity standard deviation in internal units

◆ sum()

const SUMData & larcfm::TrafficState::sum ( ) const
Returns
SUM (Sensor Uncertainty Mitigation) data

◆ verticalSpeed() [1/2]

double larcfm::TrafficState::verticalSpeed ( ) const

Returns current vertical speed in internal units

◆ verticalSpeed() [2/2]

double larcfm::TrafficState::verticalSpeed ( const std::string &  uvs) const

Returns current vertical speed in given units

◆ windVector()

Velocity larcfm::TrafficState::windVector ( ) const

Return wind velocity in the to direction

Returns

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