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

#include <ProjectedKinematics.h>

Static Public Member Functions

static double turnAngle (Position s1, Position s2, double R)
 
static double turnDistance (Position s1, Position s2, double R)
 
static bool clockwise (Position s1, Velocity v1, Position s2)
 
static double closestDistOnTurn (const Position &turnstart, const Velocity &v1, double R, int dir, const Position &x, double endDist)
 
static std::pair< Position, Velocityturn (const Position &so, const Velocity &vo, double t, double R, bool turnRight)
 
static std::pair< Position, VelocitygsAccel (const Position &so, const Velocity &vo, double t, double accel)
 
static std::pair< Position, VelocitygsAccelUntil (const Position &so, const Velocity &vo, double t, double goalGs, double a)
 
static std::pair< Position, VelocityvsAccel (const Position &so, const Velocity &vo, double t, double accel)
 
static std::pair< Position, VelocityvsAccelUntil (const Position &so, const Velocity &vo, double t, double goalVs, double accel)
 
static std::pair< Position, VelocityturnOmega (const Position &so, const Velocity &vo, double t, double omega)
 
static std::pair< Position, VelocityturnOmega (const Position &so, const Velocity &vo, double t, double omega, const EuclideanProjection &proj)
 
static std::pair< Position, VelocityturnUntil (const Position &so, const Velocity &vo, double t, double goalTrack, double bankAngle)
 
static std::pair< Position, VelocityturnUntil (std::pair< Position, Velocity > sv, double t, double goalTrack, double bankAngle)
 
static std::pair< Position, Velocitylinear (std::pair< Position, Velocity > p, double t)
 
static std::pair< Position, Velocitylinear (const Position &so, const Velocity &p, double t)
 
static std::pair< Position, double > intersection (const Position &so, const Velocity &vo, const Position &si, const Velocity &vi)
 
static double timeOfintersection (const Position &so, const Velocity &vo, const Position &si, const Velocity &vi)
 
static Quad< Position, Velocity, double, int > directToPoint (const Position &so, const Velocity &vo, const Position &wp, double R)
 
static Triple< Position, double, double > genDirectToVertex (const Position &sop, const Velocity &vo, const Position &wpp, double bankAngle, double timeBeforeTurn)
 
static Triple< Position, Velocity, double > vsLevelOutFinal (const Position &so, const Velocity &vo, double climbRate, double targetAlt, double a)
 
static double vsLevelOutTime (const Position &so, const Velocity &vo, double climbRate, double targetAlt, double a)
 
static std::pair< Position, VelocityvsLevelOut (const Position &so, const Velocity &vo, double t, double climbRate, double targetAlt, double a)
 

Detailed Description

This class contains versions of the Kinematics functions that have been lifted to deal with Position objects instead of Vect3 objects.

Member Function Documentation

◆ clockwise()

bool larcfm::ProjectedKinematics::clockwise ( Position  s1,
Velocity  v1,
Position  s2 
)
static

Given two points on a turn and the velocity (direction) at the first point, determine the direction for the shortest turn going through the second point, returning true if that relative direction is to the right

Parameters
s1
v1
s2
Returns
true if clockwise turn

Given two points on a turn and the velocity (direction) at the first point, determine the direction for the shortest turn going through the second point, returning true if that relative direction is to the right

◆ closestDistOnTurn()

double larcfm::ProjectedKinematics::closestDistOnTurn ( const Position turnstart,
const Velocity v1,
double  R,
int  dir,
const Position x,
double  endDist 
)
static

Return distance along turn where x is closest to. This returns -1 if x is at the turn's center

Parameters
turnstartstarting position of turn
v1velocity
Rturn radius
dir+1 = turn right, -1 turn left
xa position
endDistend distance of turn
Returns
distance along turn

◆ directToPoint()

Quad< Position, Velocity, double, int > larcfm::ProjectedKinematics::directToPoint ( const Position so,
const Velocity vo,
const Position wp,
double  R 
)
static

Wrapper around Kinematic.turnTimeDirecTo() Returns a triple: end of turn point, velocity at that point, time at that point

◆ genDirectToVertex()

Triple< Position, double, double > larcfm::ProjectedKinematics::genDirectToVertex ( const Position sop,
const Velocity vo,
const Position wpp,
double  bankAngle,
double  timeBeforeTurn 
)
static

Wrapper around Kinematic.genDirectToVertex Returns the vertex point (in a linear plan sense) between current point and directTo point.

Parameters
socurrent position
vocurrent velocity
wpfirst point (in a flight plan) that you are trying to connect to
bankAngleturn bank angle
timeBeforeTurntime to continue in current direction before beginning turn
Returns
(so,t0,t1) vertex point and delta time to reach the vertex point and delta time (from so) to reach end of turn If no result is possible this will return an invalid position and negative times.

◆ turnAngle()

double larcfm::ProjectedKinematics::turnAngle ( Position  s1,
Position  s2,
double  R 
)
static

Calculate the angle of a constant-radius turn from two points and the radius

Parameters
s1
s2
R
Returns
the turn angle

Calculate the angle of a constant-radius turn from two points and the radius

◆ turnDistance()

double larcfm::ProjectedKinematics::turnDistance ( Position  s1,
Position  s2,
double  R 
)
static

Horizontal distance covered in a turn

Parameters
s1
s2
R
Returns
the turn distance

Horizontal distance covered in a turn

◆ turnOmega() [1/2]

std::pair< Position, Velocity > larcfm::ProjectedKinematics::turnOmega ( const Position so,
const Velocity vo,
double  t,
double  omega 
)
static

Position and velocity after t time units turning in direction "dir" with radius R. This is a wrapper around turnPosition and turnVelocity for Position objects,and uses the projection defined in the static Projection class.

Parameters
sostarting position
voinitial velocity
Rturn radius
ttime of turn [secs]
turnRighttrue iff only turn direction is to the right
Returns
Position and Velocity after t time

◆ turnOmega() [2/2]

std::pair< Position, Velocity > larcfm::ProjectedKinematics::turnOmega ( const Position so,
const Velocity vo,
double  t,
double  omega,
const EuclideanProjection &  proj 
)
static

Position and velocity after t time units turning in direction "dir" with radius R. This is a wrapper around turnPosition and turnVelocity for Position objects,and uses the projection defined in the static Projection class.

Parameters
sostarting position
voinitial velocity
Rturn radius
ttime of turn [secs]
turnRighttrue iff only turn direction is to the right
Returns
Position and Velocity after t time

◆ turnUntil()

std::pair< Position, Velocity > larcfm::ProjectedKinematics::turnUntil ( const Position so,
const Velocity vo,
double  t,
double  goalTrack,
double  bankAngle 
)
static

Position and velocity after t time units turning in direction "dir" with radius R. This is a wrapper around turnUntil and uses the projection defined in the static Projection class.

Parameters
sostarting position
voinitial velocity
goalTrackthe target track angle
bankAnglethe aircraft's bank angle
ttime of turn [secs]
turnRighttrue iff only turn direction is to the right
Returns
Position and Velocity after t time

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