User Manual
Slow navigation
When the slow navigation is set, then It allows the copter to reduce its speed to zero when
approaching the next waypoint.
#define NAV_SLOW_NAV true
Maximum allowed banking
This parameter limits the banking output from the navigation routines. By default the maximum
banking that can be induced by the navigation routines is 30deg (1deg = 100). For testing, or
developing you can decrease it to avoid runaways.
#define NAV_BANK_MAX 3000
PID controls
As many other flight characteristics, the Position hold and the RTH is controlled by PID control
loops.
Position Hold
The location error is calculated in centimeters for X (Longitude) and Y(Latitude) which is fed to
a PI controller. The first stage of the controller takes the XY position error and decides how fast
the copter should go to reach the correct location.
PI Controler - Poshold
Parameter: POSHOL_P is by default .4 or 30 cm/s for a 1m error. The desired rate maxes out at
150cm/s. This doesn't limit the pitch of the copter, The rate controller will do what it takes to
maintain this speed as it approaches the location.
Parameter: POSHOLD_I is used to overcome wind that may be pushing us away from our
target. The higher the number the faster the copter will compensate. If your number is too high
it will cause oscillations and overshoot.
PID Poshold Rate Control¶
Now that we have a desired rate, we need to change the copter pitch and roll to give us that rate
of travel.
Parameter: POSHOLD_RATE_P are the proportional response. Your copter’s optimal setting
will depend on the weight and thrust of your engines. If your copter overshoots the target, lower
this value.
Parameter: POSHOLD_RATE_I is set to 0 by default. Use this value to maintain tight control of
the speed of the copter. If the copter is not achieving the speed it needs, this term will make up
the difference by tilting the copter more or less.
Parameter: POSHOLD_RATE_D is the dampening part. If the value is too high you will see
small oscillations in pitch or roll. Once the POSHOLD_RATE_P value is dialed in, start at 0, and
increment slowly. You should see oscillations die down.