Commit Graph

131 Commits

Author SHA1 Message Date
Andrew Tridgell
136e10a781 Plane: handle VTOL landing with incorrect height
if landing above expected height then run landing detector to allow a
switch from LAND_DESCEND to LAND_FINAL

this prevents the plane sitting on the ground until the battery runs
out
2019-02-26 11:12:58 +11:00
Michael du Breuil
b290148ed0 Plane: Don't overwrite the quadplane loiter relax 2019-02-23 11:08:21 +11:00
Michael du Breuil
c15983c690 Plane: prevent loss of control when Q_ENABLE is set while flying
Also rename check_throttle_suppression
2019-02-21 21:38:03 -07:00
Mark Whitehorn
95b3a5bacd ArduPlane: implement hover throttle learning for quadplanes
disable by default
check quadplane.enable in update_hover_learn
2019-02-16 19:04:13 -08:00
Mark Whitehorn
b9f3118374 Plane: allow changing Q_TRIM_PITCH in flight
change float comparison to is_equal
2019-02-12 09:42:19 +11:00
Michael du Breuil
df1632054e Plane: Update throttle mix 2019-02-05 11:05:54 +11:00
Michael du Breuil
d6cac4b52a Plane: Add a failure timer for quadplane forward transitions
Falls over to QLAND if we fail to transition
2019-01-08 10:52:12 +11:00
Michael du Breuil
69c87c6c4a Plane: Disallow arming if quadplane has been requested but isn't available 2018-12-28 18:09:21 +11:00
Andrew Tridgell
d3afc9424a Plane: make QTUN logging match copter logging 2018-12-21 22:17:52 +11:00
Michael du Breuil
1a45755ffd Plane: Support a different landing radius for quadplane fw approach 2018-12-18 10:11:22 +11:00
Nikhil Upadhye
d1e93bae83 Plane: adding new mode QAUTOTUNE
copter like autotune support for quadplanes and tailsitter in VTOL mode.

cleanup
2018-12-14 16:33:11 +11:00
Randy Mackay
71708ee4ea Plane: quadplane uses set_defaults_from_table 2018-12-06 12:23:41 +09:00
IamPete1
c6e70c0454 Plane: add roll limit for tailsitters
Quadplane: add tailsitter pitch params
2018-12-01 09:40:07 +11:00
Andrew Tridgell
c59b2c156a Plane: fixes for Q_TRIM_PITCH
improved documentation and variable names
2018-11-12 17:05:04 +11:00
IamPete1
5a7bd61e8c Quadplane: add trim params 2018-11-12 17:05:04 +11:00
Michael du Breuil
8e906e0ba0 Plane: Add support for a loiter to alt approach to VTOL landing 2018-11-10 18:58:54 +11:00
Michael du Breuil
b6efc8a20b Plane: reduce some copy pasted code 2018-09-20 13:47:21 -07:00
Andrew Tridgell
ef154cf3fa Plane: fixed relaxing of attitude controller on transition
this fixes an issue found by Leonard where the attitude controller
could have residual control left over from a previous transition when
engaging the VTOL attitude controller
2018-09-15 11:00:29 +10:00
Michael du Breuil
f9e56f9d12 Plane: Respect frame type on VTOL_TAKEOFF commands
allow missioncommands to fail to start
2018-09-11 06:42:00 +10:00
Michael du Breuil
925d76bb8c Plane: Small cleanup to quadplane const (and clarity) 2018-09-04 15:11:41 +10:00
Michael du Breuil
3d923d0572 Plane: Send a quadplane version of NAV_CONTROLLER_OUTPUT 2018-08-07 09:49:01 +10:00
IamPete1
20c67019b0 Plane: added Q_TAILSIT_THSCMX
this provides more flexibility in tailsitter throttle scaling
2018-07-19 09:48:25 +10:00
Randy Mackay
840a6e4147 Plane: quadplane uses AC_Loiter
includes param conversion
2018-04-04 10:45:10 +09:00
Peter Barker
f6a185a3c3 Plane: factor vehicle's mavlink send_heartbeat 2018-04-03 13:05:19 +01:00
Randy Mackay
a0a9a68fbc Plane: quadplane smoothing gain replaced by Q_A_INPUT_TC
Q_A_INPUT_TC parameter allows this to be tuned and a single value (which defaults to a value between the two previously used values) is used for all modes
2018-03-16 13:50:57 +09:00
Randy Mackay
f41f4dc6e5 Plane: move pos-control pids to pos-control library 2018-01-23 12:00:43 +09:00
Randy Mackay
017e71a748 Plane: quadplane velocity pi moves to position control library 2018-01-23 12:00:43 +09:00
Peter Barker
af007c5f0f Plane: tighten handleMessage result type 2017-12-01 17:01:10 +00:00
Andrew Tridgell
9c8cd6c1cc Plane: added Q_TRANS_DECEL
this gives a deceleration rate for QRTL transition from RTL, and also
for transitions to QLOITER
2017-11-05 20:44:42 +11:00
Andrew Tridgell
21164ef409 Plane: added tailsitter surface speed scaling
added scaling of control surfaces by throttle when in hover. This helps
the controller remain stable over a wide range of throttle levels, such
as when descending or rapidly climbing
2017-11-05 17:05:08 +11:00
Andrew Tridgell
552faa8f67 Plane: smoother tailsitter transitions
this smooths out tailsitter transitions in both directions, adding a
new FW to VTOL transition state
2017-10-30 16:30:38 +11:00
Andrew Tridgell
af893ddde7 Plane: implement Q_OPTIONS
this allows for NAV_TAKEOFF to be treated as NAV_VTOL_TAKEOFF in
quadplanes, and for level flight to be maintained during quadplane
transitions
2017-10-30 16:30:10 +11:00
Andrew Tridgell
8178ab4037 Plane: make mav_type in HEARTBEAT configurable
needed for qgc to setup for quadplanes
2017-10-20 15:41:06 +11:00
Andrew Tridgell
bc17c26dbf Plane: limit pitch in transition to QLOITER and QLAND
when switching to QLOITER or QLAND when in forward flight, limit the
maximum pitch to prevent a sudden decelleration
2017-09-09 08:14:09 +10:00
Andrew Tridgell
baee71a5b4 Plane: added GUIDED takeoff for quadplanes
this allows takeoff in GUIDED mode in the same way as copters
2017-09-09 08:14:09 +10:00
Andrew Tridgell
a88e663191 Plane: adjust target altitude slowly in QRTL mode
this fixes a sudden throttle drop when starting the descent in QRTL mode
thanks to Marco for finding this issue
2017-09-07 07:22:13 +10:00
Andrew Tridgell
6eaad59115 Plane: improve vectored tailsitter takeoff
this gives extra pitch input when taking off a vectored tailsitter,
allowing the motors to point straight up for easy takeoff

thanks to Leonard for the idea!
2017-05-07 09:10:44 +10:00
Andrew Tridgell
b1f1ace736 Plane: support vectored yaw tiltrotors
this adds support for tiltrotors which control yaw by vectoring the
forward motors. This avoids the need for the rear motor on a
tilt-tricopter to have a tilt servo
2017-04-24 16:54:41 +10:00
Andrew Tridgell
2d9c3e3d93 Plane: added EKF yaw reset handling to quadplane
this follows the implementation from copter. Thanks to Leonard for the
suggestion
2017-04-24 16:52:16 +10:00
Andrew Tridgell
88e02c7b35 Plane: log the throttle mix for quadplane copter control 2017-04-19 09:08:43 +10:00
Andrew Tridgell
642a6acfcb Plane: support thrust vectoring in tailsitters
adds Q_TAILSIT_VHGAIN and Q_TAILSIT_VFGAIN, allowing for thust
vectoring in both fixed wing and hover
2017-04-11 17:34:40 +10:00
Andrew Tridgell
664e41cec6 Plane: bring in demanded climb rate over 1 second
when we engage the Z controller in quadplane we bring in the climb
rate slowly to prevent a sudden change in motor demand
2017-04-09 16:45:19 +10:00
Andrew Tridgell
36d8f730e1 Plane: setup better defaults for tailsitters 2017-04-04 10:15:08 +10:00
Andrew Tridgell
5d06e4238f Plane: make the quadplane motors var_info dynamic
this will allow for more quadplane motors class types
2017-03-25 16:22:10 +11:00
Andrew Tridgell
e3a8d477f5 Plane: improve tiltrotor transition strategy
avoid running forward motors at high throttle when transitioning to a
VTOL mode
2017-03-14 14:42:20 +11:00
Andrew Tridgell
3f7e7d456f Plane: in fixed wing mode slave quadplane attitude rate controller
For quadplanes this uses the attitude controller from fixed wing
when using the multicopter controller to assist fixed wing
flight. This prevents a rate mismatch between the two controller
leading to oscillation
2017-03-14 14:42:20 +11:00
Andrew Tridgell
2db8589f49 Plane: smarter Z controller initialisation for quadplanes
this is more generic than the previous one used only for the full
position controller
2017-03-14 14:42:20 +11:00
Andrew Tridgell
c061d5615b Plane: added manual input mask for tailsitter prop-hang
This adds new parameters Q_TAILSIT_MASK and Q_TAILSIT_MASKCH. These
parameters allow a user to use the tailsitter capabilities of a 3D
plane to teach themselves to prop-hang.

It works by allowing the user to setup a switch on their transmitter
to enable manual pass-thru of a set of the input channels to outputs
when in tailsitter hover. The user can then use that switch to allow
learning of hover control in a 3D plane one channel (or two channels)
at a time.
2017-02-26 09:20:13 +11:00
Andrew Tridgell
3bb25eb194 Plane: added Q_TAILSIT_INPUT
this allows the user to control tailsitters either in body frame (like
a plane) or in earth frame (like a multicopter). This is useful for
people wanting to learn to fly prop-hang on 3D planes
2017-02-26 09:20:13 +11:00
Andrew Tridgell
ea5186340b Plane: added Q_TILT_RATE_UP and Q_TILT_RATE_DN as separate parameters
allow control of tilt rate separately for UP and DOWN

always allow at least 90 degrees/second for switching to MANUAL
2017-02-25 17:53:26 +11:00