Commit Graph

541 Commits

Author SHA1 Message Date
Peter Hall 2527117cf9 Quadplane: combine assistance_needed and assistance_safe functions 2021-08-08 19:41:22 +10:00
Iampete1 7ff592d29e Plane: Quadplane: move mode functions to mode classes in-place 2021-08-03 12:28:31 +10:00
Hwurzburg b539a534e9 Plane: improve description of Q_TRIM_PITCH 2021-07-27 12:49:33 +10:00
Iampete1 beefd95079 Plane: QuadPlane: tailsitter param conversion, set and use new enable param 2021-07-27 09:08:34 +10:00
Iampete1 0eab3faf32 Plane: use new tailsiter class 2021-07-27 09:08:34 +10:00
Iampete1 2bc2b9533b Plane: QuadPlane: move tailsitter to class 2021-07-27 09:08:34 +10:00
Peter Barker 06c2faaec5 ArduPlane: rename for AHRS restructuring 2021-07-21 21:01:39 +10:00
Hwurzburg 19213d3627 Plane: Allow yaw at zero throttle in VTOL descents 2021-07-20 11:10:25 +10:00
Iampete1 015b971ccb Plane: add new dynamic mixer frame class 2021-07-20 09:19:28 +10:00
Peter Barker 93323f1f39 Plane: stop setting terrain singleton; libraries use singleton 2021-07-12 17:34:44 +10:00
Leonard Hall 7db568c85a Plane: seperate kinimatic shaping from pid limit setting 2021-07-10 20:25:05 +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
Andrew Tridgell 71fa52d5c6 Plane: fixed slowing descent in final phase of QLAND 2021-05-24 20:13:37 +10:00
Andrew Tridgell ec1cbb06fd Plane: allow reposition in auto land 2021-05-24 20:13:37 +10:00
Andrew Tridgell 6eafcdb558 Plane: added Q_OPTION bit for throttle control of landing speed 2021-05-24 20:13:37 +10:00
Andrew Tridgell 24375cf9c1 Plane: change printf calls to send_text 2021-05-24 20:13:37 +10:00
Andrew Tridgell 52b4c257ec Plane: prevent oscillation in GUIDED mode hover 2021-05-24 20:13:37 +10:00
Andrew Tridgell 5a880c74b6 Plane: use input shaping from pos_control
smoother navigation with new input shaping code
2021-05-24 20:13:37 +10:00
Andrew Tridgell a6ec7d9f23 Plane: ensure xy controller is initialised 2021-05-24 20:13:37 +10:00
Andrew Tridgell 9d52333afc Plane: don't start descent till under 3m/s 2021-05-24 20:13:37 +10:00
Leonard Hall 4bae8f03a4 Copter: Use PosControl fixes 2021-05-24 20:13:37 +10:00
Leonard Hall 57952861d6 Plane: PosControl Update 2021-05-24 20:13:37 +10:00
Leonard Hall ff2ae1d7d1 Plane: integrate AC_PosControl::get_roll_cd rename 2021-05-12 17:16:00 +10:00
Leonard Hall 1ce63bf433 Plane: minor format and comment fixes 2021-05-12 17:16:00 +10:00
Iampete1 1a182a52da Plane: init terrain to locaiton and wpnav sub sytems 2021-05-02 18:51:27 +10:00
Iampete1 572e401894 Plane: fix QRTl terrain following 2021-05-02 18:51:27 +10:00
Andrew Tridgell b749756c29 Plane: setup SMAX for Q modes
this enables logging of rates, which helps with tuning
2021-04-13 10:28:47 +10:00
Peter Hall 105f94f1fd Plane: tailsitter: transistion to and from inverted flight 2021-04-13 10:02:28 +10:00
Peter Hall 5a941ce02f PLane: tailsitter: instant transition when disarmed 2021-04-07 17:55:48 +10:00
Peter Hall 33f9e3d4b6 plane: add tailsitter transision rates, give more info in transision complete messages 2021-04-07 17:55:48 +10:00
Iampete1 75dc0ced10 Plane: Quadplane: remove outdated Z controller reset 2021-04-07 17:37:30 +10:00
Iampete1 d1fabe0c3d Plane: VTOL: remove motors config error 2021-03-30 10:58:05 +11:00
Iampete1 e81dc36ed6 Plane: add option do do a VTOL approach RTL 2021-03-29 11:29:12 +11:00
Hwurzburg 8aabf7c22a Plane: Add VTOL descent rate, convert existing rate to climb rate only
Co-authored-by: Reko Merio K9260@student.jamk.fi
Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>
2021-03-23 14:32:46 +11:00
Hwurzburg d15e01d390 Plane: fix DO_CHANGE_SPEED airspeed to impact only AUTO and GUIDED modes 2021-03-16 10:09:34 +11:00
James O'Shannessy 5dd40afe0a ArduPlane: Retrigger fence breach if mode
ArduPlane: Move auto enabling code to common fence library
2021-03-05 14:52:46 +11:00
James O'Shannessy 8a99d9dd00 ArduPlane: Use auto enable and auto disable from AC_Fence 2021-03-05 14:52:46 +11:00
Dr.-Ing. Amilcar do Carmo Lucas 4f7ffc5eb1 Plane: move fence disable code to a function to enable reusability 2021-03-05 14:52:46 +11:00
Randy Mackay 4c8ada111b Plane: quadplane defaults Q_WP_SPEED to 500
Q_WP_ACCEL default is set to 100
2021-03-03 08:03:39 +09:00
Iampete1 1d050a01ce Plane: Quadplane: add Q_OPTION to ignore forward flight angle limits in Q modes 2021-03-02 11:16:35 +11:00
Iampete1 8ebe64a274 Plane: Quadplane disable forward motor assist in Q modes if rangefinder is out of range low 2021-02-28 18:48:56 +11:00
Andrew Tridgell 44df1dd0ca Plane: fixed the pitch control in transition for tilt rotors
this fixes an issue found by Henry. If level transition is set when
transitioning to FBWA from a Q mode, and the pilot pulls back on the
pitch stick to demand pitch up then the plane would go into a
high-alpha flight state with low vertical throttle so it would not
climb, resulting in it never getting past airspeed wait state
2021-02-28 11:33:18 +11:00
Andrew Tridgell 319368e4b7 Plane: fixed yaw on fwd transition in tilt quadplanes
this fixes the coordinated turn calculation for yaw rate in tilt
quadplanes, and also only applies it if demanding at least 10 degrees
roll.

this fixes an issue when the pilot has a small roll demand in FBWA
from slightly off roll RC trim

thanks to Henry for helping diagnose this!
2021-02-27 14:42:20 +11:00
Mark Whitehorn 236961f17f Plane: use get_frame_class/type string methods
use AP_Enum<> for frame_class/type
remove invalid copterTS check
improve quadplane setup failure message

Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>
2021-02-09 12:43:53 +11:00
Patrick José Pereira cdc7f891a9 ArduPlane: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Iampete1 004f873dc7 Plane: update Quadplane FRAME_CLASS description 2021-01-26 11:07:36 +09:00
Randy Mackay 0d0ff63242 Plane: ensure wp_nav::wp_and_spline_init is called at least once 2021-01-20 18:22:44 +11:00
Iampete1 e4fbe64616 Plane: add QuadPlane singleton 2021-01-19 11:18:10 +11:00
Peter Hall 05fb14e5d9 Plane: tailsitter start transition from initial pitch 2021-01-19 10:46:58 +11:00
Iampete1 4dec597372 Plane: move quadplane logging to QuadPlane: update() 2021-01-19 10:24:05 +11:00
Pierre Kancir 742cfc543f Plane: fix parameter unit 2021-01-12 10:21:55 +11:00
Josh Henderson cc1e395854 ArduPlane: privatize AHRS logging 2021-01-12 10:13:22 +11:00
Peter Barker 6baaf03c8c Plane: move auto_throttle_mode to being a method on each mode 2021-01-10 16:04:30 +11:00
Andrew Tridgell a0fcef6ceb Plane: added tilt vectoring in fixed wing modes
this allows for vectoring for roll and pitch in fixed wing modes on
tilt-vectored quadplanes
2021-01-05 08:23:28 +11:00
Iampete1 54ee2c35fb Plane: rename tailsitter scailing max param to match min and update descriptions 2020-12-22 11:00:59 +11:00
Iampete1 c8b3c91ae5 Plane: Tailsitter add disk theory and altitude gain scailing 2020-12-22 11:00:59 +11:00
Mark Whitehorn dd7a860f23 Plane: always instantiate AC_AttitudeControl_TS 2020-12-21 12:56:24 +11:00
Mark Whitehorn 24508f08dc Plane: don't relax pitch attitude controller for vectored tailsitters in throttle_wait
add is_vectored_tailsitter()
instantiate AC_AttitudeControl_TS for tailsitters
2020-12-21 12:56:24 +11:00
Andrew Tridgell 8e3c6124eb Plane: added support for rear motor tilt
needed for X8 tilt tri test aircraft for this PR
2020-12-21 12:05:50 +11:00
Andrew Tridgell e94cf561d0 Plane: use rull euler control for fwd transition of tilt vectored planes
this gives strong yaw control and wind handling for tilt vectored
planes in forward transitions. It relaxes the yaw if the user either
demands yaw with stick input or plane navigation is demanding a roll
angle for a turn

When navigation is demanded we setup yaw rate for a coordinated turn
2020-12-21 12:05:50 +11:00
Andrew Tridgell abd5f8351d Plane: don't reset yaw target in TRANSITION_TIMER for tilt-vectored quadplanes 2020-12-21 12:05:50 +11:00
Andrew Tridgell ad14e153e8 Plane: fixed tilt vectoring to cope with large tilt angles
This uses vectoring for both roll and yaw when tilted, and uses
differential thrust for yaw when tilted
2020-12-16 08:45:11 +11:00
Hwurzburg 8658023dad Plane: Add lower CHECK_SCALE defaults for QuadPlane 2020-12-07 11:49:01 +11:00
Andrew Tridgell cd6ddf7d4f Plane: fixed disable of geofence on quadplane landing
fixes #15917
2020-12-02 18:33:07 +11:00
Andrew Tridgell d984ddc163 Plane: apply circular limits to QLOITER pilot angles
This uses the same logic as Copters get_pilot_desired_angle() to apply
a circular limit and the limits in Q_ANGLE_MAX and Q_LOIT_ANG_MAX to
loiter pilot angles.

Co-authored-by: Kris <kris968658@gmail.com>
2020-12-01 11:22:49 +11:00
Iampete1 42887891be Plane: tailsitter: make sure alt target is abover current alt 2020-11-17 10:15:27 +11:00