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

#include <SafetyBuffers.h>

Static Public Member Functions

static double psiHorizNAC (double relHDist, double relGS, int NACpOwn, int NACvOwn, int NACpIntr, int NACvIntr, double lambda, double T)
 
static double psiHorizNIC (double relHDist, double relGS, int NICOwn, int NACvOwn, int NICIntr, int NACvIntr, double lambda, double T)
 
static double psiVertNAC (double relVDist, double relVS, int NACpOwn, int NACvOwn, int NACpIntr, int NACvIntr, double lambda, double T)
 
static double psiVertNIC (double relVDist, double relVS, int NICOwn, int NACvOwn, int NICIntr, int NACvIntr, double lambda, double T)
 
static double psi (double relDist, double relV, double ao, double ai, double bo, double bi, double lambda, double T)
 
static double psiH (Vect2 sm, Vect2 vm, double ao, double ai, double bo, double bi, double lambda, double T)
 
static double psiHorizNAC (Position po, Position pi, Velocity vo, Velocity vi, int NACpOwn, int NACvOwn, int NACpIntr, int NACvIntr, double lambda, double T)
 

Detailed Description

SafetyBuffers class. This computes the psi value (increase in safety buffer size) needed to preserve a given certainty for detection readings, based on relative distance and speed, and data accuracy values.

In general, these functions will fail (give a negative value) if invalid NIC/NAC values are given, or if a NIC/NAC corresponds to an unknown accuracy category for that dimension.

Calculations are based on A. Narkawicz, C. Munoz, H. Herencia-Zapana, G. Hagen. "Formal Verification of Safety Buffers for State-Based Conflict Detection."

Member Function Documentation

◆ psi()

double larcfm::SafetyBuffers::psi ( double  relDist,
double  relV,
double  ao,
double  ai,
double  bo,
double  bi,
double  lambda,
double  T 
)
static

Calculate the increase in a safety buffer in either vertical or horizontal that preserves a given detection accuracy, based on arbitrary measurement accuracy bounds. The overall accuracy is 4-(p0+p1+p2+p3). This uses horizontal distance and ground speed or vertical distance and vertical speed.

Parameters
relDistThe relative distance between ownship and intruder, at the last good reading (m)
relVThe relative speed between ownship and intruder, at time of last good reading (m/s)
aoaccuracy of ownship position information: the reported value is within this distance of the true value with a probability of p0 (m)
aiaccuracy of intruder position information: the reported value is within this distance of the true value with a probability of p1 (m)
boaccuracy of ownship velocity information: the reported value is within this range of the true value with a probability of p2 (m/s)
biaccuracy of intruder velocity information: the reported value is within this range of the true value with a probability of p3 (m/s)
lambdaTime since last good reading (s)
TLookahead time (s)
Returns
Increase in safety buffer radius (m). On an error, this returns a negative value.

◆ psiH()

double larcfm::SafetyBuffers::psiH ( Vect2  sm,
Vect2  vm,
double  ao,
double  ai,
double  bo,
double  bi,
double  lambda,
double  T 
)
static

Calculate the increase in a safety buffer in either vertical or horizontal that preserves a given detection accuracy, based on arbitrary measurement accuracy bounds. The overall accuracy is 4-(p0+p1+p2+p3). This uses horizontal distance and ground speed or vertical distance and vertical speed.

Parameters
smThe relative horizontal Euclidean positions between ownship and intruder, at the last good reading (m)
vmThe relative horizontal Euclidean velocities between ownship and intruder, at time of last good reading (m/s)
aoaccuracy of ownship position information: the reported value is within this distance of the true value with a probability of p0 (m)
aiaccuracy of intruder position information: the reported value is within this distance of the true value with a probability of p1 (m)
boaccuracy of ownship velocity information: the reported value is within this range of the true value with a probability of p2 (m/s)
biaccuracy of intruder velocity information: the reported value is within this range of the true value with a probability of p3 (m/s)
lambdaTime since last good reading (s)
TLookahead time (s)
Returns
Increase in safety buffer radius (m). On an error, this returns a negative value.

◆ psiHorizNAC() [1/2]

double larcfm::SafetyBuffers::psiHorizNAC ( double  relHDist,
double  relGS,
int  NACpOwn,
int  NACvOwn,
int  NACpIntr,
int  NACvIntr,
double  lambda,
double  T 
)
static

Calculate the increase of horizontal safety buffer size based on NACp values

Parameters
relHDistRelative horizontal distance between ownship and intruder at last good reading (m)
relGSRelative ground speed between ownship and intruder at last good reading (m/s)
NACpOwnOwnship NACp (1-11)
NACvOwnOwnship NACv (1-4)
NACpIntrIntruder NACp (1-11)
NACvIntrIntruder NACv (1-4)
lambdaTime since last good reading (s)
TLookahead time (s)
Returns
Increase in safety buffer radius (m). On an error, this returns a negative value.

◆ psiHorizNAC() [2/2]

double larcfm::SafetyBuffers::psiHorizNAC ( Position  po,
Position  pi,
Velocity  vo,
Velocity  vi,
int  NACpOwn,
int  NACvOwn,
int  NACpIntr,
int  NACvIntr,
double  lambda,
double  T 
)
static

Calculate the increase of horizontal safety buffer size based on NACp values. If positions are in lat/lon, this uses the projection defined in Projection.getProjection, with the ownship as the origin. This version does not include inaccuracies resulting from the projection. Be sure to call Projection.

Parameters
poposition of ownship
piposition of intruder
vovelocity of ownship
vivelocity of intruder
relGSRelative ground speed between ownship and intruder at last good reading (m/s)
NACpOwnOwnship NACp (1-11)
NACvOwnOwnship NACv (1-4)
NACpIntrIntruder NACp (1-11)
NACvIntrIntruder NACv (1-4)
lambdaTime since last good reading (s)
TLookahead time (s)
Returns
Increase in safety buffer radius (m). On an error, this returns a negative value.

◆ psiHorizNIC()

double larcfm::SafetyBuffers::psiHorizNIC ( double  relHDist,
double  relGS,
int  NICOwn,
int  NACvOwn,
int  NICIntr,
int  NACvIntr,
double  lambda,
double  T 
)
static

Calculate the increase of horizontal safety buffer size based on NIC values

Parameters
relHDistRelative horizontal distance between ownship and intruder at last good reading (m)
relGSRelative ground speed between ownship and intruder at last good reading (m/s)
NACpOwnOwnship NIC (1-11)
NACvOwnOwnship NACv (1-4)
NACpIntrIntruder NIC (1-11)
NACvIntrIntruder NACv (1-4)
lambdaTime since last good reading (s)
TLookahead time (s)
Returns
Increase in safety buffer radius (m). On an error, this returns a negative value.

◆ psiVertNAC()

double larcfm::SafetyBuffers::psiVertNAC ( double  relVDist,
double  relVS,
int  NACpOwn,
int  NACvOwn,
int  NACpIntr,
int  NACvIntr,
double  lambda,
double  T 
)
static

Calculate the increase of vertical safety buffer size based on NACp values.

Parameters
relVDistRelative vertical distance between ownship and intruder at last good reading (m)
relVSRelative vertical speed between ownship and intruder at last good reading (m/s)
NACpOwnOwnship NACp (9-11)
NACvOwnOwnship NACv (1-4)
NACpIntrIntruder NACp (9-11)
NACvIntrIntruder NACv (1-4)
lambdaTime since last good reading (s)
TLookahead time (s)
Returns
Increase in safety buffer radius (m). On an error, this returns a negative value.

◆ psiVertNIC()

double larcfm::SafetyBuffers::psiVertNIC ( double  relVDist,
double  relVS,
int  NICOwn,
int  NACvOwn,
int  NICIntr,
int  NACvIntr,
double  lambda,
double  T 
)
static

Calculate the increase of vertical safety buffer size based on NIC values.

Parameters
relVDistRelative vertical distance between ownship and intruder at last good reading (m)
relVSRelative vertical speed between ownship and intruder at last good reading (m/s)
NACpOwnOwnship NIC (9-11)
NACvOwnOwnship NACv (1-4)
NACpIntrIntruder NIC (9-11)
NACvIntrIntruder NACv (1-4)
lambdaTime since last good reading (s)
TLookahead time (s)
Returns
Increase in safety buffer radius (m). On an error, this returns a negative value.

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