ICAROUS
|
#include <Kinematics.h>
Static Public Member Functions | |
static double | turnRadius (double speed, double bank, double g) |
static double | turnRadius (double speed, double bank) |
static double | turnRadiusByRate (double speed, double omega) |
static double | speedOfTurn (double R, double bank) |
static double | turnRate (double speed, double bankAngle) |
static double | bankAngleRadius (double R, double speed) |
static double | bankAngleRadius (double speed, double R, bool turnRight) |
static double | bankAngle (double speed, double turnRate) |
static double | bankAngleGoal (double track, double goalTrack, double maxBank) |
static double | turnRateGoal (const Velocity &vo, double goalTrack, double maxBank) |
static bool | turnDone (double currentTrack, double targetTrack, bool turnRight) |
static double | turnTime (const Velocity &v0, double goalTrack, double maxBank, bool turnRight) |
static double | turnTime (const Velocity &v0, double goalTrack, double maxBank) |
static double | turnTime (double groundSpeed, double deltaTrack, double bankAngle) |
static double | turnTime (double deltaTrack, double trackRate) |
static bool | turnRight (const Velocity &v0, double goalTrack) |
static std::pair< Vect3, Velocity > | linear (const std::pair< Vect3, Velocity > &sv0, double t) |
static std::pair< Vect3, Velocity > | linear (Vect3 so, Velocity vo, double t) |
static std::pair< Vect3, Velocity > | turnOmega (const Vect3 &s0, const Velocity &v0, double t, double omega) |
static Vect2 | center (const Vect3 &s0, const Velocity &v0, double omega) |
static std::pair< Vect3, Velocity > | turnByDist2D (const Vect3 &so, const Vect3 ¢er, int dir, double d, double gsAt_d) |
** *** EXPERIMENTAL *** More... | |
static Vect3 | turnByDist2D (const Vect3 &so, const Vect3 ¢er, int dir, double d) |
static Vect3 | turnByAngle2D (const Vect3 &so, const Vect3 ¢er, double alpha) |
static std::pair< Vect3, Velocity > | turnOmega (const std::pair< Vect3, Velocity > &sv0, double t, double omega) |
static std::pair< Vect3, Velocity > | turn (const Vect3 &s0, const Velocity &v0, double t, double R, bool turnRight) |
static std::pair< Vect3, Velocity > | turn (const std::pair< Vect3, Velocity > &sv0, double t, double R, bool turnRight) |
static std::pair< Vect3, Velocity > | turn (const Vect3 &s0, const Velocity &v0, double t, double bank) |
static std::pair< Vect3, Velocity > | turnUntil (const Vect3 &so, const Velocity &vo, double t, double goalTrack, double maxBank) |
static std::pair< Vect3, Velocity > | turnUntil (const std::pair< Vect3, Velocity > &sv0, double t, double goalTrack, double maxBank) |
static std::pair< Vect3, Velocity > | turnUntilTimeRadius (std::pair< Vect3, Velocity > svo, double t, double turnTime, double R, bool turnRight) |
static std::pair< Vect3, Velocity > | turnUntilTimeOmega (const Vect3 &so, const Velocity &vo, double t, double turnTime, double omega) |
static std::pair< Vect3, Velocity > | turnUntilTimeOmega (const std::pair< Vect3, Velocity > &svo, double t, double turnTime, double omega) |
static Vect3 | positionAfterTurn (const Vect3 &so, const Velocity &vo, double goalTrack, double bankAngle) |
static double | closestTimeOnTurn (const Vect3 &s0, const Velocity &v0, double omega, const Vect3 &x, double endTime) |
static double | closestDistOnTurn (const Vect3 &s0, const Velocity &v0, double R, int dir, const Vect3 &x, double maxDist) |
static std::pair< Vect2, Vect2 > | directTo (const Vect2 &bot, const Vect2 &v0, const Vect2 &goal, double R) |
static Quad< Vect3, Velocity, double, int > | directToPoint (const Vect3 &so, const Velocity &vo, const Vect3 &wp, double R) |
static Triple< Vect3, double, double > | genDirectToVertex (const Vect3 &so, const Velocity &vo, const Vect3 &wp, double bankAngle, double timeBeforeTurn) |
static Vect2 | centerOfTurn (const Vect2 &so, const Vect2 &vo, double R, int dir) |
static Vect2 | centerOfTurn (const Vect2 &so, const Vect2 &vo, double bankAngle, bool turnRight) |
static bool | testLoSTrk (const Vect3 &so, const Velocity &vo, const Velocity &nvo, const Vect3 &si, const Velocity &vi, double bankAngleOwn, double stopTime, double D, double H) |
static Vect3 | gsAccelPos (const Vect3 &so3, const Velocity &vo3, double t, double a) |
static std::pair< Vect3, Velocity > | gsAccel (const Vect3 &so3, const Velocity &vo3, double t, double a) |
static double | gsAccelTime (double gs0, double goalGs, double gsAccel) |
static double | gsAccelTime (const Velocity &vo, double goalGs, double gsAccel) |
static Triple< Vect3, Velocity, double > | gsAccelGoal (const Vect3 &so, const Velocity &vo, double goalGs, double gsAccel) |
static std::pair< Vect3, Velocity > | gsAccelUntilRWB (const Vect3 &so3, const Velocity &vo3, double t, double goalGS, double gsAccel) |
static std::pair< Vect3, Velocity > | gsAccelUntil (const Vect3 &so3, const Velocity &vo3, double t, double goalGS, double gsAccel) |
static std::pair< Vect3, Velocity > | gsAccelUntil (const std::pair< Vect3, Velocity > &sv0, double t, double goalGS, double gsAccel) |
static std::pair< double, double > | gsAccelToRTA (double gsIn, double dist, double rta, double gsAccel) |
static std::pair< double, double > | gsAccelToDist (double gsIn, double dist, double gsAccel) |
static double | distanceToGsAccelTime (double gs, double gsAccel, double dist) |
static std::pair< double, double > | distanceWithGsAccel (double gs0, double gsTarget, double gsAccel, double dt) |
static double | neededDistGsAccel (double gsIn, double gsTarget, double gsAccel) |
static double | gsAccelDist (double gs1, double gs2, double a) |
static bool | testLoSGs (const Vect3 &so, const Velocity &vo, const Velocity &nvo, const Vect3 &si, const Velocity &vi, double gsAccelOwn, double stopTime, double D, double H) |
static double | elevationAngle (Velocity v) |
static Vect3 | vsAccelPos (const Vect3 &so3, const Velocity &vo3, double t, double a) |
static std::pair< Vect3, Velocity > | vsAccel (const Vect3 &so3, const Velocity &vo3, double t, double a) |
static std::pair< Vect3, Velocity > | vsAccel (const std::pair< Vect3, Velocity > &sv0, double t, double a) |
static double | vsAccelTime (double vs, double goalVs, double vsAccel) |
static double | vsAccelTime (const Velocity &vo, double goalVs, double vsAccel) |
static Triple< Vect3, Velocity, double > | vsAccelGoal (const Vect3 &so, const Velocity &vo, double goalVs, double vsAccel) |
static std::pair< Vect3, Velocity > | vsAccelUntil (const Vect3 &so, const Velocity &vo, double t, double goalVs, double vsAccel) |
static std::pair< Vect3, Velocity > | vsAccelUntil (const std::pair< Vect3, Velocity > &sv0, double t, double goalVs, double vsAccel) |
static bool | testLoSVs (const Vect3 &so, const Velocity &vo, const Velocity &nvo, const Vect3 &si, const Velocity &vi, double vsAccelOwn, double stopTime, double D, double H) |
static StateVector | vsLevelOutFinal (const std::pair< Vect3, Velocity > &sv0, double climbRate, double targetAlt, double a, bool allowClimbRateChange) |
static StateVector | vsLevelOutFinal (const std::pair< Vect3, Velocity > &sv0, double climbRate, double targetAlt, double a) |
static bool | overShoot (const std::pair< Vect3, Velocity > &svo, double climbRate, double targetAlt, double accelup, double acceldown, bool allowClimbRateChange) |
static Tuple5< double, double, double, double, double > | vsLevelOutTimes (double s0z, double v0z, double climbRate, double targetAlt, double accelup, double acceldown, bool allowClimbRateChange) |
static Tuple5< double, double, double, double, double > | vsLevelOutTimes (const std::pair< Vect3, Velocity > &svo, double climbRate, double targetAlt, double accelup, double acceldown, bool allowClimbRateChange) |
static Tuple5< double, double, double, double, double > | vsLevelOutTimes (const std::pair< Vect3, Velocity > &svo, double climbRate, double targetAlt, double a, bool allowClimbRateChange) |
static Tuple5< double, double, double, double, double > | vsLevelOutTimes (const std::pair< Vect3, Velocity > &svo, double climbRate, double targetAlt, double a) |
static double | vsLevelOutClimbRate (const std::pair< Vect3, Velocity > &svo, double climbRate, double targetAlt, double accelup, double acceldown, bool allowClimbRateChange) |
static double | vsLevelOutTime (const std::pair< Vect3, Velocity > &sv0, double climbRate, double targetAlt, double a, bool allowClimbRateChange) |
static double | vsLevelOutTime (const std::pair< Vect3, Velocity > &sv0, double climbRate, double targetAlt, double a) |
static std::pair< double, double > | vsLevelOutCalc (double soz, double voz, double targetAlt, double a1, double a2, double t1, double t2, double t3, double t) |
static std::pair< Vect3, Velocity > | vsLevelOutCalculation (const std::pair< Vect3, Velocity > &sv0, double targetAlt, double a1, double a2, double t1, double t2, double t3, double t) |
static std::pair< Vect3, Velocity > | vsLevelOut (const std::pair< Vect3, Velocity > &sv0, double t, double climbRate, double targetAlt, double accelUp, double accelDown, bool allowClimbRateChange) |
static std::pair< Vect3, Velocity > | vsLevelOut (const std::pair< Vect3, Velocity > &sv0, double t, double climbRate, double targetAlt, double a, bool allowClimbRateChange) |
static std::pair< Vect3, Velocity > | vsLevelOut (const std::pair< Vect3, Velocity > &sv0, double t, double climbRate, double targetAlt, double a) |
static double | tau (const Vect3 &s, const Vect3 &vo, const Vect3 &vi) |
static double | distAtTau (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, bool futureOnly) |
Static Private Member Functions | |
static double | dirSign (bool turnRight) |
static std::pair< Vect3, Velocity > | vsLevelOutCalculation (const std::pair< Vect3, Velocity > &sv0, double t, double T1, double T2, double T3, double climbRate, double targetAlt, double a1, double a2) |
static Tuple5< double, double, double, double, double > | vsLevelOutTimesBase (double s0z, double v0z, double climbRate, double targetAlt, double accelup, double acceldown, bool allowClimbRateChange) |
** More... | |
A library of functions to aid the computation of the kinematics of an aircraft. This library is currently under development and is far from complete. The majority of the functions handle constant velocity turns and movement with constant ground speed acceleration.
Unless otherwise noted, all kinematics function parameters are in internal units – angles are in radians, linear speeds are in m/s, distances are in meters, time is in seconds.
|
static |
Returns the calculated bank angle for a turn that has specified turnRate. Assumes sea-level gravity.
speed | ground speed (speed ≥ 0.0) |
turnRate | (positive is a right turn) |
|
static |
Find the minimum turn for the to reach the goal and returns the maxBank angle, with the correct sign to achieve that goal. Assumes sea-level gravity.
track | the current track |
goalTrack | the goal track angle |
maxBank | the maximum bank angle, must be in (0,pi/2) |
|
static |
Calculates the bank angle used for a given turn radius and ground speed.
Because this method does not have enough information, it always returns a positive bank angle (indicating a right hand turn). Assumes sea-level gravity. If R <= 0.0, this returns 0.
speed | ground speed |
R | radius |
|
static |
Calculates the bank angle used for a given turn radius and ground speed. Assumes sea-level gravity.
speed | ground speed (speed ≥ 0.0) |
R | radius (R > 0.0) |
turnRight | true, if a right turn is desired |
|
static |
find center of turn determined by line (so,vo) with bankAngle and direction (turnRight)
so | position |
vo | velocity |
bankAngle | bank angle |
turnRight | right turn (left otherwise) |
find center of turn determined by line (so,vo) with bankAngle and direction TurnRight
so | |
vo | |
R | |
dir | direction: 1 = right, -1 = left |
|
static |
find center of turn determined by line (so,vo) with radius R and direction dir
so | position |
vo | velocity |
R | radius of turn |
dir | direction: 1 = right, -1 = left |
find center of turn determined by line (so,vo) with radius R and direction dir
so | |
vo | |
R | |
dir | direction: 1 = right, -1 = left |
|
static |
Calculate when during the turn we will be closest to the given point.
s0 | turn start position |
v0 | turn start velocity |
R | turn radius |
dir | direction of turn |
x | point of interest |
maxDist | distance at which turn finishes. If ≤ 0, assume a full turn is allowed. |
|
static |
Calculate when during the turn we will be closest to the given point.
s0 | turn start position |
v0 | turn start velocity |
omega | rate of turn (+ = right, - = left) |
x | point of interest |
endTime | time at which turn finishes. If ≤ 0, assume a full turn is allowed. |
|
static |
Given an initial position, initial velocity, and goal position (outside of the turn radius) calculate the end of turn and center of turn
bot | initial position (i.e. beginning of turn) |
v0 | initial velocity |
goal | goal position |
R | turn radius |
|
static |
The time required to cover distance "dist" if initial speed is "gs" and acceleration is "gsAccel"
gs | initial ground speed |
gsAccel | signed ground speed acceleration |
dist | non-negative distance |
Warning: This function can return NaN
|
static |
distance traveled when accelerating from gs0 to gsTarget for time dt (acceleration stops after gsTarget is reached)
gs0 | initial ground speed |
gsTarget | target ground speed |
gsAccel | positive ground speed acceleration |
dt | total time traveling |
Note: if gsAccel = 0 it returns gs0*dt
|
static |
distance at time of closest approach
s | relative position of aircraft |
vo | velocity of ownship |
vi | velocity of traffic |
futureOnly | if true then in divergent cases use distance now |
|
static |
Return the elevation angle (alternatively the negative glide-slope angle) for a climb (descent)
v | velocity |
Return the elevation angle (alternatively the negative glide-slope angle) for a climb (descent)
|
static |
Position/Velocity after a constant GS acceleration for t seconds
so3 | current position |
vo3 | current velocity |
t | amount of time accelerating |
a | acceleration, i.e. a positive or negative acceleration |
|
static |
Distance traveled when accelerating from gs1 to gs2
gs1 | starting ground speed |
gs2 | ending ground speed |
a | acceleration value (unsigned) |
Distance traveled when accelerating from gs1 to gs2
gs1 | starting gs |
gs2 | ending gs |
a | acceleration value (unsigned) |
|
static |
Final 3D position after a constant GS acceleration for t seconds
so3 | current position |
vo3 | current velocity |
a | acceleration, i.e. a positive or negative acceleration |
t | amount of time accelerating |
|
static |
returns time required to accelerate to target ground speed GoalGs
vo | current velocity |
goalGs | ground speed where the acceleration stops |
gsAccel | ground speed acceleration (a positive value) |
|
static |
returns time required to accelerate to target ground speed GoalGs
gs0 | current ground speed |
goalGs | ground speed where the acceleration stops |
gsAccel | ground speed acceleration (a positive value) |
|
static |
Accelerate for a given distance. Return the end gs and time. Negative time indicates an error.
|
static |
Compute the goal ground speed and time needed to accelerate in order to reach a point at a given required time of arrival.
gsIn | Current ground speed (m/s) |
dist | Current horizontal distance to goal point (m) |
rta | (relative) required time of arrival (s) |
gsAccel | maximum ground speed acceleration or deceleration (positive, m/s^2) |
|
static |
Position after t time units where there is first an acceleration or deceleration to the target ground speed goalGS and then continuing at that speed for the remainder of the time, if any.
so | starting position |
vo | initial velocity |
goalGS | the ground speed where the acceleration stops |
gsAccel | the ground speed acceleration (a positive value) |
t | time of acceleration [secs] |
|
static |
sv0 | Pair (initial position, initial velocity) |
t | time of travel |
|
static |
distance traveled when accelerating from gsIn to gsTarget
gsIn | initial ground speed |
gsTarget | target ground speed |
gsAccel | positive ground speed acceleration |
See also gsAccelDist will give same answer
|
static |
Calculates ground speed of the vehicle from radius R and the bank angle. Assumes sea-level gravity.
R | radius, must be non-negative |
bank | bank angle, must be in (-pi/2,pi/2) |
|
static |
time of closest approach, if parallel return Double.MAX_VALUE
s | relative position of aircraft |
vo | velocity of ownship |
vi | velocity of traffic |
|
static |
Test for LoS(D,H) between two aircraft when only ownship gs accelerates, compute trajectories up to time stopTime
so | initial position of ownship |
vo | initial velocity of ownship |
nvo | the target velocity of ownship (i.e. after turn maneuver complete) |
si | initial position of traffic |
vi | initial velocity of traffic |
gsAccelOwn | ground speed acceleration of the ownship |
stopTime | the duration of the turns |
D | horizontal distance |
H | vertical distance |
|
static |
Test for LoS(D,H) between two aircraft when only ownship turns, compute trajectories up to time stopTime
so | initial position of ownship |
vo | initial velocity of ownship |
nvo | the target velocity of ownship (i.e. after turn maneuver complete) |
si | initial position of traffic |
vi | initial velocity of traffic |
bankAngleOwn | the bank angle of the ownship |
turnRightOwn | the turn direction of ownship |
stopTime | the duration of the turns |
D | horizontal distance |
H | vertical distance |
|
static |
Test for LoS(D,H) between two aircraft when only ownship gs accelerates, compute trajectories up to time stopTime
so | initial position of ownship |
vo | initial velocity of ownship |
nvo | the target velocity of ownship (i.e. after turn maneuver complete) |
si | initial position of traffic |
vi | initial velocity of traffic |
vsAccelOwn | ground speed acceleration of the ownship |
stopTime | the duration of the turns |
D | horizontal distance |
H | vertical distance |
|
static |
Position/Velocity after turning t time units right or left with bank angle bank
sv0 | Pair (initial position, initial velocity) |
t | time of turn |
R | turn radius |
turnRight | true iff only turn direction is to the right |
|
static |
Position/Velocity after turning t time with bank angle bank, direction of turn determined by sign of bank
sv0 | Pair (initial position, initial velocity) |
t | time of turn |
bank | bank angle (-pi,pi) (positive = right turn, negative = left turn) |
|
static |
Position/Velocity after turning t time units right or left with bank angle bank
s0 | starting position |
v0 | initial velocity |
t | time of turn |
R | turn radius |
turnRight | true iff only turn direction is to the right |
|
static |
Position after turning (does not compute altitude!!)
Note: will be used in a context where altitude is computing subsequently
so | starting position |
center | center of turn |
alpha | turn angle |
|
static |
Position/Velocity
s0 | starting position |
center | |
d | distance into turn |
gsAt_d |
|
static |
Has the turn completed? Specifically, is the currentTrack at least the targetTrack given that currentTrack is roughly moving in the direction indicated by the parameter turnRight.
currentTrack | initial track angle (radians clockwise from true north) |
targetTrack | target track angle |
turnRight | true iff only turn direction is to the right |
|
static |
Position/Velocity after turning t time units according to track rate omega
sv0 | initial position and velocity |
t | time of turn |
omega | rate of change of track, sign indicates direction |
|
static |
Position/Velocity after turning t time units according to track rate omega
s0 | starting position |
v0 | initial velocity |
t | time of turn |
omega | rate of change of track, sign indicates direction |
|
static |
Calculates turn radius from ground speed and bank angle. The function assumes standard sea-level gravity, see Units.gn.
speed | ground speed |
bank | bank angle (positive is clockwise looking out the nose of the aircraft), must be in (-pi/2,pi/2). |
|
static |
Calculates turn radius from ground speed and bank angle.
speed | ground speed |
bank | bank angle (positive is clockwise looking out the nose of the aircraft), must be in (-pi/2,pi/2). |
g | local gravitational acceleration (must be positive) |
|
static |
Calculates turn rate (or track-rate) from ground speed and bank angle. Assumes sea-level gravity.
speed | ground speed |
bankAngle | bank angle, must be in (-pi/2,pi/2) |
|
static |
Calculates turn rate (or track-rate) for the minimum turn to the goal track angle. Assumes sea-level gravity.
vo | the initial velocity |
goalTrack | the goal track angle |
maxBank | the maximum bank angle, must be in (0,pi/2) |
|
static |
Returns true if the minimal (i.e. less than 180 deg) turn to goalTrack is tp the right
v0 | initial velocity vector |
goalTrack | target velocity track [rad] |
|
static |
Returns the time it takes to achieve the goal track when making the minimum turn
v0 | initial velocity vector |
goalTrack | target velocity track [rad] |
maxBank | maximum bank angle, must be in (0,pi/2) [rad] |
|
static |
Returns the time it takes to achieve the goal track angle
v0 | initial velocity vector |
goalTrack | target velocity track [rad] |
maxBank | maximum bank angle, must be in (0,pi/2) [rad] |
turnRight | true iff only turn direction is to the right |
|
static |
Returns the time it takes to turn the given angle (deltaTrack). Depending on the signs of deltaTrack and bankAngle, this turn can be more than 180 degrees.
groundSpeed | ground speed of aircraft |
deltaTrack | given angle of turn [rad] |
bankAngle | bank angle (-pi/2,pi/2) [rad] |
|
static |
Position/Velocity after t time units turning in minimal direction until goalTrack is reached, after that continue in a straight line
sv0 | initial position and velocity |
t | time of turn [s] |
goalTrack | the track angle where the turn stops |
maxBank | the maximum bank angle |
|
static |
Position/Velocity after t time units turning in minimal direction until goalTrack is reached, after that continue in a straight line
so | starting position |
vo | initial velocity |
goalTrack | the track angle where the turn stops |
bankAngle | the bank angle of the aircraft making the turn |
t | time of turn [secs] |
turnRight | true iff only turn direction is to the right |
|
static |
Position/Velocity after t time units turning at the rate of "omega," after that continue in a straight line. This function can make a turn greater than 180 deg
so | initial position and velocity |
t | time point of interest |
turnTime | total time of turn [secs] |
omega | turn rate |
|
static |
Position/Velocity after t time units turning in direction "turnRight" for a total of turnTime secs, after that continue in a straight line. This function can make a turn greater than 180 deg
so | starting position |
vo | initial velocity |
t | time point of interest |
turnTime | total time of turn [secs] |
R | turn radius (positive) |
turnRight | true iff only turn direction is to the right |
|
static |
Position/Velocity after t time units turning in direction "turnRight" for a total of turnTime, after that continue in a straight line. This function can make a turn greater than 180 deg
so | starting position |
vo | initial velocity |
t | time point of interest |
turnTime | total time of turn [secs] |
R | turn radius (positive) |
turnRight | true iff only turn direction is to the right |
|
static |
Position/Velocity after a constant vertical speed acceleration for t seconds
so3 | current position |
vo3 | current velocity |
t | amount of time accelerating |
a | acceleration, i.e. a positive or negative acceleration |
|
static |
Final 3D position after a constant VS acceleration for t seconds
so3 | current position |
vo3 | current velocity |
a | acceleration, i.e. a positive or negative acceleration |
t | amount of time accelerating |
|
static |
returns time required to vertically accelerate to target GoalVS
vo | current velocity |
goalVs | vertical speed where the acceleration stops |
vsAccel | vertical speed acceleration (a positive value) |
|
static |
returns time required to vertically accelerate to target GoalVS
vs | current vertical speed |
goalVs | vertical speed where the acceleration stops |
vsAccel | vertical speed acceleration (a positive value) |
|
static |
Position after t time units where there is first an acceleration or deceleration to the target vertical speed goalVs and then continuing at that speed for the remainder of the time, if any.
vo | initial velocity |
goalVs | the vertical speed where the acceleration stops |
vsAccel | the vertical speed acceleration (a positive value) |
t | time of acceleration [secs] |
|
static |
returns Pair that contains position and velocity at time t due to level out maneuver based on vsLevelOutTimesAD
sv0 | current position and velocity vectors |
t | time point of interest |
climbRate | climb rate |
targetAlt | target altitude |
a1 | first acceleration |
a2 | second acceleration |
allowClimbRateChange | allows climbRate to change to initial velocity if it can help. |
|
static |
Returns a statevector that holds position, velocity and relative time at final level out position
sv0 | |
climbRate | |
targetAlt | |
a | |
allowClimbRateChange |
|
staticprivate |
Helper function for vsLevelOutTimesAD. Note: This could be integrated into the function vsLevelOutTimesAD as a recursive call if desired.
s0z | initial vertical position |
v0z | initial vertical velocity |
climbRate | desired vertical speed for the climb/descent (positive), sign calculated in code |
targetAlt | target altitude |
accelup | maximum positive acceleration |
acceldown | maximum negative acceleration |
allowClimbRateChange | if true, if the current velocity is of greater magnitude than the specified climb rate, then continue at the current velocity (prioritize achieving the desired altitude). If false, first achieve the goal climb rate (prioritize achieving the indicated vs) |