Commit Graph

495 Commits

Author SHA1 Message Date
Andrew Tridgell 477599b3d7 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:22 +09:00
Andrew Tridgell e95c4658a9 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:22 +09:00
Andrew Tridgell f4d832df44 Plane: display VTOL pos1 state change when approach disabled 2021-12-18 12:17:22 +09:00
Andrew Tridgell 206d5e468c 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:38 +09:00
Andrew Tridgell ab9a453b47 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:38 +09:00
Andrew Tridgell 2d73a0bc38 Plane: fixed overshoot in guided takeoff of quadplanes 2021-11-29 19:02:38 +09:00
Andrew Tridgell c857f889b3 Plane: default rate max to 75 for quadplane VTOL
this reduces overshoot when VTOL tune is less than ideal
2021-11-29 19:02:38 +09:00
Andrew Tridgell 79c7a238b1 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:38 +09:00
Andrew Tridgell a17a0c130d 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:38 +09:00
Andrew Tridgell f8acd38adc 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:38 +09:00
Iampete1 3fde3942b8 Plane: Quadplane: allow scripting matrix frame class 2021-11-29 19:02:38 +09:00
Andrew Tridgell d19426b8df 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-17 19:03:42 -04:00
Peter Hall b2ce4e1c44 Plane: quadplane: set `last_pidz_init_ms` 2021-09-10 14:07:37 +09:00
Leonard Hall 23732690a7 Plane: fix PID filter names FILT -> FLTE, D_FILT -> FLTD 2021-08-14 10:44:08 +09:00
Leonard Hall 064b0bcc63 Plane: seperate kinimatic shaping from pid limit setting 2021-07-22 19:07:36 +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
Andrew Tridgell 5857e750ce Plane: provide target velocity in QPOS descent 2021-05-24 20:13:37 +10:00