Commit Graph

496 Commits

Author SHA1 Message Date
Andrew Tridgell
a5c6ecb7ea Plane: reset VTOL takeoff if not armed
we need to reset the takeoff target position while disarmed so we
don't use spurious position information from before we get good GPS
lock.

also remove the "Resetting previous waypoint" message as it doesn't
provide useful information and is just a distraction (it would be
printed continuously while waiting for arming with this PR)
2021-12-18 12:17:38 +09:00
Andrew Tridgell
e918c72705 Plane: limiting POS1 landing target speed
prevent very high target speeds when the target velocity profile is
above the initial speed in POSITION1. Always allow up to 2*Q_WP_SPEED,
but don't go above the initial speed
2021-12-18 12:17:38 +09:00
Andrew Tridgell
54122ffe84 Plane: limited VFWD integrator to cruise throttle
in some situations (such as when landing approach is disabled) the
vfwd integrator can wind up to extreme values. This can put a huge
load on an electric quadplane as it is running both forward and vtol
motors, and the downforce from being nose down can be extreme.

It should never need to go above the cruise throttle in any reasonable
situation, so limit it to cruise to ensure we don't apply too much
forward throttle
2021-12-18 12:17:38 +09:00
Andrew Tridgell
38a5feefb6 Plane: display VTOL pos1 state change when approach disabled 2021-12-18 12:17:38 +09:00
Andrew Tridgell
983b5276ab Plane: suppress spurious EKF yaw reset message
this makes plane match copter, emitting a yaw reset event, but not
worrying user. This message came out on each boot when EKF3 first
became active
2021-11-29 19:02:57 +09:00
Andrew Tridgell
35de0855f3 Plane: allow for new guided destination during guided takeoff
if you set a very high alt for takeoff this is useful
2021-11-29 19:02:57 +09:00
Andrew Tridgell
76f4ead7c1 Plane: fixed overshoot in guided takeoff of quadplanes 2021-11-29 19:02:57 +09:00
Andrew Tridgell
6d4615ac7a Plane: default rate max to 75 for quadplane VTOL
this reduces overshoot when VTOL tune is less than ideal
2021-11-29 19:02:57 +09:00
Andrew Tridgell
1a33ca3ebe Plane: fixed a bug in POSITION1 speed thresholds (for plane 4.1)
we were comparing two different speeds in the threshold for going to
Q_WP_SPEED limit. The reason the two speeds were different was the
wp_nav init happened before the defaults were setup for quadplanes

this fixes both bugs
2021-11-29 19:02:57 +09:00
Andrew Tridgell
17e646add9 Plane: avoid qpos approach when very close to destination
this prevents a fwd transition when doing something like LOITER_TIME
close to a VTOL_LAND wp. We use 1.5 times the stopping distance at
cruise airspeed for the threshold
2021-11-29 19:02:57 +09:00
Andrew Tridgell
9cb67adedb Plane: fixed VTOL state error when using Q_ENABLE=2
this ensures the poscontrol state is reset if it has not been
initialised before a VTOL loiter operation

thanks to Pete Hall for finding this
2021-11-29 19:02:57 +09:00
Iampete1
a073d6b447 Plane: Quadplane: allow scripting matrix frame class 2021-11-29 19:02:57 +09:00
Andrew Tridgell
ca753d4814 Plane: don't apply fw pitch limit in VTOL control for tailsitters
tailsitters may have narrow fixed wing limits but need high limits for
landing in high wind

found this on a HWing which was essentially impossible to auto land
2021-10-18 18:06:45 -04:00
Peter Hall
dc869860e7 Plane: quadplane: set last_pidz_init_ms 2021-09-10 14:08:46 +09:00
Leonard Hall
92cdd9ea25 Plane: fix PID filter names FILT -> FLTE, D_FILT -> FLTD 2021-08-14 11:05:37 +09:00
Leonard Hall
029f5d23a4 Plane: seperate kinimatic shaping from pid limit setting 2021-07-23 10:19:47 +09:00
Andrew Tridgell
50e6d67a66 Plane: update for new double precision position APIs 2021-06-24 21:34:30 +10:00
Andrew Tridgell
61ac45dd5a Plane: use cleaned up APIs 2021-06-24 20:28:45 +10:00
Andrew Tridgell
66bc673442 Plane: fixed attitude control during QPOS_AIRBRAKE
this fixes a bug where we used the multicopter rate control when in
airbrake approach stage, which could lead to attitude going out of
control
2021-06-22 07:42:20 +10:00
Iampete1
6eab9b9c15 plane: quadplane: skip QPOS_POSITION1 on tailsitters 2021-06-15 09:25:58 +10:00
Hwurzburg
4f48233b43 ArduPlane: add QRTL always as Q_RTL_MODE option 2021-06-14 09:08:20 +10:00
Andrew Tridgell
0c8e81964e Plane: reset yaw controller on entry to POSITION1
this fixes a yaw change when we finish landing approach in
QRTL. Thanks to Henry for noticing this
2021-06-14 07:53:32 +10:00
Andrew Tridgell
4307390820 Plane: fixed distance threshold for vtol land 2021-06-13 07:50:02 +10:00
Andrew Tridgell
f749c2c3ad Plane: fixed issue with overspeed in QPOS_POSITIION1
this fixes the backflip issue on the convergence that Henry found
2021-06-13 07:50:02 +10:00
Andrew Tridgell
ae6220aace Plane: cope with zero distance to target in QPOS_POSITION1 2021-06-10 13:50:29 +10:00
Andrew Tridgell
0f9e7001d1 Plane: limit speed in POSITION1 based on angle
this prevents trying to fly a quadplane fast backwards or sideways. If
flying backwards then a 3x reduction is used. For sideways a 2x
reduction is used
2021-06-10 13:50:29 +10:00
Andrew Tridgell
74ac9964f1 Plane: improved POSITION1 speed profile
allow acceleration up to the Q_WP_SPEED, and assume a decel profile
matching Q_TRANS_DECEL for approach speed
2021-06-10 13:50:29 +10:00
Andrew Tridgell
5f8e90cd6f Plane: metadata fix for Q_OPTIONS 2021-06-10 13:50:29 +10:00
Andrew Tridgell
3611b1dbf7 Plane: added check for QPOS initialisation
thanks to Kris for noticing this!
2021-06-10 13:50:29 +10:00
Andrew Tridgell
db34577755 Plane: use a separate bit for landing reposition in quadplanes
when repositioning stop descent
2021-06-10 13:50:29 +10:00
Andrew Tridgell
06cd077c36 Plane: fixed stick mixing with land reposition in quadplanes
prevent stick mixing overriding landing control
2021-06-10 13:50:29 +10:00
Andrew Tridgell
f970735d47 Plane: fixed handling of NAV_LOITER_TIME with Q_GUIDED_MODE=1
and made logic of in_vtol_mode() easier to read
2021-06-05 13:05:30 +10:00
Andrew Tridgell
aa904d6bbc Plane: fixed guided mode handling with new approach code
ensure we treat guided approach as not a vtol mode
2021-06-05 13:05:30 +10:00
Andrew Tridgell
f15497c6a9 Plane: only do fwd thrust loss detection in SLT vehicles
on tilt rotors and tailsitters it doesn't make sense to switch to
POSITION1 at low speeds when in APPROACH
2021-06-05 13:05:30 +10:00
Andrew Tridgell
0232fa7456 Plane: cope with fwd thrust loss in Q approach
if throttle is saturated and descending and low airspeed then declare
thrust loss
2021-06-05 13:05:30 +10:00
Andrew Tridgell
fbf5083e6a Plane: avoid transition in QRTL
if close to home and already in a VTOL mode then don't transition
2021-06-05 13:05:30 +10:00
Andrew Tridgell
77ee922473 Plane: fixed NAV_CONTROLLER_OUTPUT in QRTL 2021-06-05 13:05:30 +10:00
Andrew Tridgell
245ded2f2d Plane: fixed handling of loss of fwd thrust in QRTL 2021-06-05 13:05:30 +10:00
Andrew Tridgell
c7a14a5da1 Plane: disable cross-track in Q approach modes and QRTL 2021-06-05 13:05:30 +10:00
Andrew Tridgell
46722500b0 Plane: default Q_TRANS_DECEL to 6 for tailsitters 2021-06-05 13:05:30 +10:00
Andrew Tridgell
a7b809d5d4 Plane: added approach and airbrake options
this defaults VTOL landings to have an approach and airbraking stage,
allowing for more efficient landings. Can be disabled by setting
Q_OPTIONS bit 16
2021-06-05 13:05:30 +10:00
Andrew Tridgell
ddfc9e8300 Plane: improved quadplane auto-land into wind
when heading is strong we need to ramp up pitch limit slowly to
prevent a big dive
2021-06-05 13:05:30 +10:00
Andrew Tridgell
b4992cc226 Plane: added accessors for poscontrol state
allows for time since state entered
2021-06-05 13:05:30 +10:00
Andrew Tridgell
f1f7f01300 Plane: slave fixed wing desired rate to multicopter desired rate
this ensures that the two rate controllers don't fight each other when
in a VTOL mode
2021-06-05 13:05:30 +10:00
Andrew Tridgell
68a1100c64 Plane: use new APIs for takeoff/touchdown expected 2021-06-02 11:13:16 +09:00
Hwurzburg
bf14c32109 Plane: correct description of Q_TAILSIT_MOTMX param 2021-05-30 22:36:26 -07:00
Leonard Hall
e275ec9e63 Plane: Rename set_yaw_target_to_current_heading 2021-05-26 16:03:05 +09:00
Hwurzburg
38ed4a2dd6 ArduPlane: make centideg metadata incr and range consistent 2021-05-25 10:10:18 +10:00
Leonard Hall
8b3b6cf693 Plane: Fix before squash 2021-05-24 20:13:37 +10:00
Andrew Tridgell
d1f6d913d5 Plane: adjust reposition landing code
use accel with 1s timeconstant
2021-05-24 20:13:37 +10:00