Commit Graph

110 Commits

Author SHA1 Message Date
Andrew Tridgell b984dd4a62 Plane: added in FF component in tailsitters
this is needed for decent control of tailsitters
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
Peter Barker 0b35708f33 Plane: set tailsitter throttle output when disarmed 2021-03-16 10:41:44 +11:00
Peter Barker 000ff90a71 autotest: remove thrust-to-actuator to armed section 2021-03-16 10:41:44 +11:00
Pierre Kancir 6062e4ee81 ArduPlane: use AUX_PWM_TRIGGER_LOW and AUX_PWM_TRIGGER_HIGH 2021-02-10 18:48:06 +11:00
Andrew Tridgell 96c2a5c77c Plane: added scaling for Q_TAILSIT_VFGAIN
this scales the vectoring in fixed wing flight to remove the impact of
surface speed scaling and add throttle scaling
2021-01-05 08:23:28 +11:00
Iampete1 33e397c524 Plane: tailsitter: output 0 tilt with 0 vector gain 2020-12-22 11:00:59 +11:00
Iampete1 c62c19c798 Plane: tailsitter: apply gain scailing to Tilts in motors only Qassist 2020-12-22 11:00:59 +11:00
Iampete1 0976979045 Plane: tailsitter: set motor limit flags 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 9bf89e5635 Plane: add check for vectored tailsitter in tailsitter_transition_vtol_complete 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
Iampete1 0e50023593 Plane: tailsitter: use true hover throttle in VTOL transision. 2020-11-18 19:33:21 +11:00
Hwurzburg 5e8e088978 ArduPlane:Add safety limit on tailsitter VTOL transition throttle
Co-authored-by: Peter Hall <33176108+IamPete1@users.noreply.github.com>
2020-11-17 11:21:17 +11:00
Iampete1 f480f4e946 Plane: tailsitter: fix Qassist back - transision 2020-11-17 10:15:27 +11:00
Iampete1 2d80dcd937 Plane: remove tailsitter VTOL transition race condition 2020-11-04 18:34:00 +11:00
Iampete1 b225ae43ab Plane: always log tailsitter scalefactor 2020-11-03 10:38:51 +11:00
Iampete1 e6ba53856a Plane: tailsitter: ask for FW state don't check 2020-10-27 11:04:52 +11:00
Iampete1 08a710235d Plane: add tailsitter assist with motors only option 2020-07-09 06:49:24 +10:00
Peter Hall 7688430029 Plane: allow Qassit for fw to vtol transision 2020-05-26 09:01:47 +10:00
Peter Hall 87cd9a4791 Plane: allow Qassist for tailsitters 2020-05-26 09:01:47 +10:00
Peter Hall 90494c9de6 Plane: tailsitter: allow motor test 2020-01-21 10:11:16 +11:00
Mark Whitehorn 56b2c697d2 Plane: change tailsitter_input to bitmask
update parameter metadata for Q_TAILSIT_INPUT and Q_FRAME_TYPE
2019-12-18 08:33:29 +11:00
Mark Whitehorn c16f3a2cba Plane: simplify body-frame roll axis swapping and constrain yaw rate max 2019-12-18 08:33:29 +11:00
Mark Whitehorn 14fc6c5446 Plane: add logging for tailsitter gainscaling and clean up tailsitter body-frame roll input handling
fix metadata for tailsitter param GSCMSK
rework roll/yaw scaling for body-frame roll options
add constraints on body-frame roll and yaw inputs
move speed_scaler logging into QTUN message
2019-12-18 08:33:29 +11:00
kd0aij 95da094bfe Plane: update tailsitter speedscaling logic
add tailsitter gain scaling option mask and logging
tailsitter qassist bugfix; thanks, @iampete
apply roll limit in tailsitter bodyframe roll control
add define for future exclusion of tailsitter gainscaling debug code/logging
tailsitter bodyframe roll and qacro input scaling bugfixes:
  respect Q_TAILSIT_RLL_MX and roll/yaw scale parameters in bodyframe roll modes
  fix unintended swap of Q_ACRO_RLL/YAW_RATE params in QACRO mode
don't scale motor tilt

Co-authored-by: IamPete1 <33176108+IamPete1@users.noreply.github.com>
2019-12-18 08:33:29 +11:00
Leonard Hall 124d18228b Plane: Support seperate roll and pitch limits 2019-08-03 12:06:32 +09:00
IamPete1 76663d66e8 Plane: support bicopter tiltrotors 2019-07-02 10:15:17 +10:00
Mark Whitehorn 0a78368590 Plane: avoid arithmetic exception in powf 2019-04-23 09:15:55 +10:00
Mark Whitehorn b3f093b877 Plane: remove trig calls from constexpr 2019-03-28 09:41:14 +11:00
Mark Whitehorn e0765747e7 Plane: add new tailsitter bodyframe roll option 2019-03-26 14:50:37 +11:00
Mark Whitehorn abfeee3a3d Plane: fix indentation 2019-03-19 10:13:59 +11:00
Mark Whitehorn f7bf10fcfc ArduPlane: add rudder to tailsitter gain scaling 2019-03-12 10:12:23 +11:00
Mark Whitehorn 4a6b97828f ArduPlane: add tailsitter input type TAILSITTER_INPUT_BF_ROLL 2019-03-06 15:48:51 +11:00
IamPete1 872c3df45c Plane: tailsitter pull in copter ouputs from AP_motors 2019-03-06 14:46:39 +11:00
Mark Whitehorn 6e4a2b97f9 ArduPlane:add subclass for copter tailsitters
cleanup and add tailsit_motmx
add constexpr and motor mask check
add support for tricopter tailsitter
don't call output_motor_mask unless armed
fix whitespace
2019-03-06 07:53:46 +09:00
Mark Whitehorn 61aff344d3 ArduPlane: add high-speed Qmode tailsitter gain scaling with support for airspeed sensor 2019-03-05 10:27:42 +11:00
IamPete1 1a98989ac6 Tailsitter: move mixer to AP_motors 2018-12-21 11:19:18 +09:00
Andrew Tridgell da69bf3391 Plane: added an abstraction for reverse thrust
use have_reverse_thrust() and get_throttle_input()
2018-11-16 08:33:35 +11:00
Michael du Breuil b6efc8a20b Plane: reduce some copy pasted code 2018-09-20 13:47:21 -07:00
IamPete1 20c67019b0 Plane: added Q_TAILSIT_THSCMX
this provides more flexibility in tailsitter throttle scaling
2018-07-19 09:48:25 +10:00
Michael du Breuil 3e4288d604 Plane: Use RC_Channels instead of hal.rcin 2018-04-11 21:47:07 +01:00
Randy Mackay f41f4dc6e5 Plane: move pos-control pids to pos-control library 2018-01-23 12:00:43 +09:00
Andrew Tridgell e06f160dc9 Plane: disable rudder scaling in tailsitters
this is most often implemented as dual-motor differential thrust, and
we don't want to do surface speed scaling for that.

In the future we'll move this scaling so it can be done on rudders for
3D planes
2017-11-18 10:38:46 +11:00
Andrew Tridgell bbf98fae46 Plane: fixed a warning 2017-11-05 21:25:37 +11:00
Andrew Tridgell e27c54a312 Plane: smooth out fwd tailsitter transition
use Q_TRANSITION_MS and the transition angle to pitch forward more
slowly
2017-11-05 17:25:00 +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 214434a2d7 Plane: fixed tailsitter ANGLE_WAIT transition
we need vtol control during transition from hover to fwd flight
2017-10-30 16:30:38 +11: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 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 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 07ab04897d Plane: reset roll/pitch integrators while tailsitter active
this prevents integrator buildup while flying in hover
2017-02-18 22:23:58 +11:00
Andrew Tridgell e8b11924f8 Plane: split out the tailsitter transition complete code
use both roll and pitch to trigger completion of transition. This
copes with situations where the plane has managed to get itself rolled
over far enough that it can't recover into hover
2017-02-18 17:26:43 +11:00
Andrew Tridgell c787f4c56f Plane: initial support for tailsitter transitions 2017-02-18 17:26:43 +11:00
Andrew Tridgell 83f3cee99e Plane: initial hooks for tailsitter support 2017-02-18 17:26:43 +11:00