Commit Graph

725 Commits

Author SHA1 Message Date
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
Iampete1 c03de6bdbe Plane: log Qassist state 2020-11-17 10:15:27 +11:00
Andrew Tridgell eea62bf733 Plane: added optional ground effect compensation for quadplanes
this allows for landings in aircraft badly effected by ground effect
to be compensated for
2020-11-10 12:05:48 +11:00
Mark Whitehorn c054218568 Plane: report quadplane setup errors in config_error loop 2020-11-05 15:04:10 +11:00
Iampete1 5f67f8130b Plane: tailsitters use Z stopping point on transition 2020-11-04 18:34:00 +11:00
Iampete1 b225ae43ab Plane: always log tailsitter scalefactor 2020-11-03 10:38:51 +11:00
Iampete1 840f129153 Plane: remove unused tailsitter scailing option 2020-11-03 10:38:51 +11:00
Mark Whitehorn 85480c8865 Plane: update frame_type parameter description 2020-10-27 10:24:20 +11:00
Iampete1 2acbef5579 Plane: tailsitters in VTOL transition use FW rates 2020-10-13 10:07:05 +11:00
Iampete1 0201692eeb Plane: Q_OPTION to disable synthetic airspeed assist 2020-10-07 18:20:08 +11:00
Iampete1 6621b69836 Plane: log quadplane transision state 2020-09-30 18:15:42 +10:00
Iampete1 f972d3dc2f Plane: Quadplane: tailsitter only change view once transision is complete 2020-09-30 18:15:42 +10:00
Hwurzburg 8c856b3ed2 Plane: Add missing Q_OPTIONS metadata for all options 2020-09-25 13:43:59 +10:00
Andy Piper d16872cca5 Plane: compile out ADSB mode if required 2020-09-24 08:22:16 -07:00
Andrew Tridgell e9b8a20312 Plane: fixed hover learn in quadplanes for THR_MIN>0
petrol quadplanes commonly have THR_MIN>0, and without this change
cannot ever learn the hover throttle
2020-09-08 11:09:25 +10:00
Mark Whitehorn 629f2153e0 Plane: move arming delay logic into AP_Arming_Plane 2020-09-08 10:54:42 +10:00
Mark Whitehorn 2b4772269d Plane: tiltrotors: allow vectored yaw motor tilt when disarmed
add disarm tilt delay
add arming delay
add Q_OPTIONS for disarmed motor tilt and delayed arming
add comment explaining arming delay option
eliminate millis() wrap in arming delay
2020-09-08 10:54:42 +10:00
Mark Whitehorn bcdd16025b Plane: replace AP_MotorsMatrixTS with AP_MotorsMatrix 2020-09-08 10:50:31 +10:00
Iampete1 abee62abc4 Plane: use throttle in for transition max comparison 2020-08-30 18:19:40 +10:00
Mark Whitehorn ee65940dfa Plane: enable yaw in qstabilize:air_mode at zero throttle 2020-08-13 08:47:27 +10:00
Mark Whitehorn 4630e9af30 Plane: add Mode::is_vtol_man_mode
and make use of is_vtol_mode in in_vtol_mode
2020-08-13 08:47:27 +10:00
Mark Whitehorn e22d9398d3 Plane: add AirMode RC option for quadplanes
add Q_OPTION for AirMode (auto-enabled if RCx_OPTION ARMDISARM assigned)
    bugfix: manual throttle mix for qacro
    qualify auto airmode on/off
    add Air Mode to Plane RC_OPTION metadata
    restrict airmode to manual throttle modes
    add qhover to manual throttle mix
    move air_mode from Plane to QuadPlane
    add Mode::is_vtol_man_throttle()
2020-08-13 08:47:27 +10:00
Andrew Tridgell 6466912ac0 Plane: don't crosstrack after AUTO VTOL takeoff 2020-08-04 09:26:08 +10:00
Andrew Tridgell cce2532901 Plane: fixed use of VTOL control for missions
horizontal speed was not being setup when doing waypoint missions in
VTOL mode
2020-07-28 08:06:14 +10:00
Iampete1 08a710235d Plane: add tailsitter assist with motors only option 2020-07-09 06:49:24 +10:00
Iampete1 6710bab006 Plane: add Q_OPTIONS to defaut to Qassist force enabled 2020-07-09 06:49:24 +10:00
Mark Whitehorn d5b1b20274 Plane: implement manual forward throttle for QACRO, QSTABILIZE and QHOVER
add parameter Q_FWD_THR_MAX for scaling manual throttle
allow forward motor tilt when disarmed
add FWD_THR_CH as an RC option
change Q_FWD_THR_MAX to percent
change RC_OPTION FWD_THR to 209
move assignment of rc_fwd_thr_ch to one_second_loop
move arming check from forward_throttle_pct to set_servos
change Q_FWD_THR_MAX TO Q_FWD_MANTHR_MAX
expand description of Q_FWD_MANTHR_MAX
add pre-arm check for VTOL manual forward throttle
change VTOL fwd throttle input to percent
2020-07-07 08:37:46 +10:00
Peter Barker d47569ccef Plane: correct ASSIST_ANGLE description 2020-07-01 20:57:32 +10:00
Andrew Tridgell 3a0538449c Plane: added Q_ASSIST_DELAY parameter
this allows tuning of the time between assistance thresholds being met
and assistance kicking in. It also changes the default delay from 1s
down to 0.5s based on analysis of a flight where assistance was too
slow
2020-07-01 20:57:32 +10:00
Peter Barker 1206df6f0c ArduPlane: remove use of Vector2 as function 2020-06-16 11:00:44 +10:00
Andrew Tridgell 568e13fbb9 Plane: allow for continue after land for quadplanes
this allows for a new takeoff after a quadplane auto landing
2020-06-02 09:12:22 +09: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 2467d7b5c7 Plane: add Qassist switch 2020-05-26 09:01:47 +10:00
Paul Riseborough 40cc5a5006 ArduPlane: Improve EKF failsafe in VTOL modes
Replicates Copter behaviour with a three step process if the EKF sustains a loss of navigation as detected by high GPS innovation test ratios:

1) Attempts a yaw reset using the GSF estimate if available
2) Attempts a lane switch
3) Falls back to a non-position mode
2020-05-14 10:40:48 +10:00
Randy Mackay 59a2667870 Plane: quadplane's throttle mix uses filtered accelerations 2020-05-12 09:56:09 +10:00
Michael du Breuil 9eaf7f5528 Plane: Fix VTOL yaw for STICK_MIXING 0 2020-05-08 08:44:03 +10:00
Andrew Tridgell d0a509eef1 ArduPlane: invalidate param count when changing param tree structure 2020-04-29 07:36:55 +10:00
Henry Wurzburg 3397bce235 Plane: Quadplane tailsit transition to FW throttle level change 2020-04-21 09:51:47 +10:00
Henry Wurzburg 6c730ccfec Plane: start tailsitter forward transition from current pitch angle 2020-04-21 09:50:57 +10:00
Rishabh 0c5d68dfeb Plane: Replace update_vel_controller_xy() with update_xy_controller() 2020-04-21 09:22:45 +10:00
Andrew Tridgell 156fe0846f Plane: fixed plane landing gear to obey LGR_OPTIONS bits
we forced landing gear retract/deploy on takeoff and landing when we
should be following the options bits
2020-04-15 17:10:31 +10:00
Michael du Breuil 37be15b3cd Plane: When stick mixing is disabled do not apply stick mixing to quadplane modes 2020-04-04 10:12:22 +11:00
Mark Whitehorn cbce94005b Plane: expand description of QTUN.Sscl log message field 2020-04-03 08:36:55 +11:00
Andrew Tridgell c6a6427d6a Plane: prevent lidar glitches from triggering land final
this prevents short term lidar glitches from triggering the change
from descend to final in quadplane
2020-02-27 13:15:46 +11:00
Randy Mackay f2ab428cdd Plane: rename update_throttle_mix
was called update_throttle_thr_mix
also minor format fixes
2020-02-25 16:52:40 +09:00
Peter Barker 74dbcac40e ArduPlane: log disarm method 2020-02-22 12:16:29 +11:00
Andrew Tridgell 7a14992cce Plane: reset TECS at end of auto VTOL takeoff 2020-02-16 17:04:07 +11:00
Andrew Tridgell 0bfab20bd0 Plane: fixed a bug in LOITER_TURNS in quadplanes
if NAV_LOITER_TURNS is used with Q_GUIDED_MODE=1 then we would orbit
forever. This ensures we do exit the loiter
2020-02-12 13:52:32 +11:00
Peter Hall a2e72de5ae Plane: move to airspeed_estimate with pointer 2020-01-14 22:34:37 -07:00
Gone4Dirt 760909d046 Plane: Prevent FS action overiding VTOL land 2019-12-31 11:42:59 +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
Peter Barker 1fdb4b429f Plane: use https:// scheme for ardupilot URLs 2019-12-10 07:53:46 +11:00
Andrew Tridgell 36baaeb3a0 Plane: added option to run idle governor in MANUAL mode
useful for quadplane testing
2019-11-17 20:10:54 +11:00
Andrew Tridgell e5bad28f1d Plane: added Q_ASSIST_ALT parameter
this allows for quadplane assistance in fixed wing modes when the
aircraft drops below a given altitude. This could help save an
aircraft that is flying badly in fixed wing mode
2019-11-09 20:17:36 +11:00
Andrew Tridgell 680a89671f Plane: fixed doc path for Q_AUTOTUNE 2019-11-01 09:31:40 +11:00
Leonard Hall 87b49c64f8 Plane: limit ATC_MOT_MIX_MAX in case of a fly away 2019-10-31 12:23:48 +08:00
Michael du Breuil ee96ec7f0d Plane: Support new AP_Vehicle::set_mode 2019-10-25 08:48:22 +08:00
Randy Mackay edb5f05339 Plane: minor comment changes 2019-10-22 07:15:48 +08:00
Mark Whitehorn 1a2abae902 Plane: reduce QTUN log rate to 25Hz 2019-10-20 06:24:46 +11:00
sas 9405fd6958 Plane: remove unused location argument to control_auto 2019-10-08 10:49:51 +11:00
Michael du Breuil f9580424f6 Plane: Resore old default behaviour for throttle curves
The change in this made QStabilize behave very differently then it had,
which is quite shocking in a test flight.
2019-10-07 21:17:07 +11:00
Andrew Tridgell db4ae9ff24 Plane: check airspeed and active Z controll for hover learning 2019-10-04 14:01:08 +10:00
Andrew Tridgell 5c43b18672 Plane: fixed height_above_ground() for case when rangefinder is below min
this prevents a rangefinder that goes below min distance from causing
the calculations that depend on height above ground to fail
2019-09-17 09:36:26 +10:00
Andrew Tridgell 34b0967d09 Plane: prevent fwd motor from spinning up on ground in quadplane landing
if the rangefinder starts to measure below it's min range then the fwd
motor can spin up.

Thanks to Josh for reporting this!
2019-09-17 09:36:26 +10:00
Andrew Tridgell 7751352a86 Plane: implement VTOL landing for AFS termination
this allows for vertical landing as an AFS_TERM_ACTION
2019-09-12 09:59:17 +10:00
Mark Whitehorn 788e7a840c Plane: default angle_boost to disabled for tailsitters 2019-09-12 09:05:42 +10:00
Michael du Breuil 4f22dff14d Plane: Add an airspeed limit for quadplane takeoffs 2019-09-09 22:06:25 -06:00
Michael du Breuil 77afcf6a1b Plane: Abort takeoffs that take to long to complete 2019-09-09 22:06:25 -06:00
Henry Wurzburg 7178655cbe Plane: fixed landing after VTOL loiters 2019-09-10 08:57:13 +10:00
Leonard Hall 34da437266 Plane: support for upgrade to PID object 2019-07-25 17:38:15 +09:00
Leonard Hall 157f786adf Global: rename desired to target in PID info 2019-07-25 17:38:15 +09:00
Michael du Breuil 22598b1a4b Plane: Reduce inerital nav dependence 2019-07-16 12:11:42 +09:00
Hwurzburg 44f6f7335e Plane: Added Quadplane option for QRTL failsafe action 2019-07-05 11:25:56 +10:00
IamPete1 76663d66e8 Plane: support bicopter tiltrotors 2019-07-02 10:15:17 +10:00
1iggy2 220176f283 Plane: added octa I frame 2019-06-04 09:49:44 +09:00
Peter Barker 400aa53654 Plane: move arming-related functionality into parent classes
Logging moves up
arming via mavlink moves up
arming via switch moves up
2019-05-30 07:37:30 +09:00
Mark Whitehorn 34a1cf9528 Plane: move callback setup to QuadPlane::setup() 2019-05-08 10:28:42 +10:00
Mark Whitehorn aeaff72e14 Plane: fix acro stabilization check 2019-05-08 08:44:52 +10:00
Mark Whitehorn 4a7ce1b384 Plane: clean up qacro 2019-05-08 08:44:52 +10:00
Mark Whitehorn dd50d435ab Plane: limit bodyframe roll mode to tailsitters 2019-04-30 08:51:24 +10:00
Mark Whitehorn f054301ec2 Plane: add QACRO roll/pitch/yaw rate params 2019-04-23 09:46:38 +10:00
Mark Whitehorn 8bcf2439ad Plane: quadplane stabilize manual throttle midpoint and expo
move throttle curve logic to AP_Math

use parameter THROTTLE_EXPO in get_pilot_throttle
2019-04-23 09:46:38 +10:00
Mark Whitehorn b515431008 AP_Math: add expo and throttle_curve functions 2019-04-23 09:46:38 +10:00
Pierre Kancir 65b4ba0539 ArduPlane: use past_interval_finish_line and line_path_proportion from Location 2019-04-23 09:20:43 +10:00
Peter Barker f09822a400 Plane: adjust for desired spool state and spool state renames 2019-04-14 12:18:03 +09:00
Pierre Kancir d8990a002e Plane: update locations_are_same to same_latlon_as 2019-04-08 08:05:05 -07:00
Pierre Kancir 47141562c0 ArduPlane: use get_distance_NE instead of location_diff 2019-04-08 08:00:52 -07:00
Leonard Hall 2daa5ffb9e Plane: replace set_throttle_out_unstabilized 2019-04-08 09:42:21 +09:00
Tom Pittenger ade6281923 Plane: use #if ADVANCED_FAILSAFE == ENABLED just like Rover and Copter 2019-04-03 17:46:50 -07:00
Tom Pittenger 0270c57530 Plane: massive refactor and creation of Mode class 2019-04-02 16:28:52 +11:00
Mark Whitehorn e0765747e7 Plane: add new tailsitter bodyframe roll option 2019-03-26 14:50:37 +11:00
Mark Whitehorn 825055d736 Plane: add rate-only option for QACRO mode 2019-03-19 10:13:59 +11:00
Mark Whitehorn 6414f0e48e Plane: skip plane assignments in QACRO 2019-03-19 10:13:59 +11:00
Andrew Tridgell 2b6210d594 Plane: use WP height for height above ground in vtol landing
this allows for landings above or below the takeoff height without
requiring the use of terrain data. It allows both the use of vfwd
motor for holding against wind, and the correct height for land final
descent rate
2019-03-18 14:47:27 +11:00
Andrew Tridgell b4103d04cc Plane: never use vfwd motor if vtol motors shutdown 2019-03-18 13:38:41 +11:00
Andrew Tridgell 7908ad437e Plane: allow fwd motor to run in VTOL land hor positioning
this fixes an issue with vtol landings below the takeoff point
2019-03-18 13:38:41 +11:00
Peter Barker ca7566fff9 Plane: use enum class for ArmingMethod and ArmingRequired 2019-03-12 19:48:14 +11:00
Peter Barker cbb0bfb809 Plane: is_flying_vtol: if spool mode is shut down we are not flying
The subsequent check for get_throttle passes if you switch from QHOVER
to MANUAL on the ground while armed.  get_throttle returns > 0.01 - but
the motors are shut down so no output occurs.
2019-03-12 10:21:11 +11:00
Mark Whitehorn 4a6b97828f ArduPlane: add tailsitter input type TAILSITTER_INPUT_BF_ROLL 2019-03-06 15:48:51 +11:00
Mark Whitehorn 01d6f1d932 ArduPlane: add body-frame yaw mode for tailsitters 2019-03-06 15:48:51 +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 487ad7a90f Plane: add QACRO mode for quadplanes
use acro_r/p/y_rate params in qacro
port ACRO throttle handling from copter

handle non-tailsitter controls
2019-03-05 10:13:20 +11:00
IamPete1 f24c6785f2 Plane: add E-stop 2019-02-27 08:51:24 +09:00
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
Michael du Breuil 25a2c77782 Plane: Fix not logging quadplane control, and over logging attitude control 2019-02-22 11:59:26 +11: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
Andrew Tridgell 28cf9d2f24 Plane: allow rudder at zero throttle
if rudder disarming is disabled
2019-02-03 05:02:07 -08:00
Randy Mackay 4d5e13f1d4 Plane: : integrate AC_WPNav::get_speed rename to get_default_speed 2019-01-31 19:34:32 +09:00
Mark Whitehorn 5c81a78c9c Plane: tailsitter forward transition bugfix 2019-01-22 12:55:47 +11:00
Peter Barker 40856fef56 Plane: remove vestiges of old PX4_MIXER code 2019-01-19 19:31:03 +11:00
Peter Barker 6fc76a32af GLOBAL: use AP::logger() and strip redundant Log_ from methods 2019-01-18 18:08:20 +11:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00
Randy Mackay 2650b1fe93 Plane: desired-ground-idle replaces spin-when-armed 2019-01-15 11:41:44 +09:00
Andrew Tridgell f35cebcca4 Plane: fixed EKF yaw reset
we need to do the yaw reset before updating the rest of quadplane, or
it is not effective

thanks to Leonard for noticing the bug!
2019-01-14 08:32:17 +11:00
Andrew Tridgell 53a1d98b68 Plane: fixed VTOL takeoff to ignore lat/lon in mission
we should always takeoff vertically
2019-01-11 13:48:45 +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
IamPete1 9c2db806f3 Plane: add units to Q_VFWD_ALT 2018-12-28 16:15:41 +11:00
Andrew Tridgell 9117dcc54b Plane: don't log QTUN when VTOL not active 2018-12-21 22:17:52 +11:00
Andrew Tridgell d3afc9424a Plane: make QTUN logging match copter logging 2018-12-21 22:17:52 +11:00
Andrew Tridgell 1013eddfce Plane: use AHRS_View for RATE logging 2018-12-21 22:17:52 +11:00
Randy Mackay a96c1566ec Plane: fix quadplane pos control param docs 2018-12-18 12:01:07 +00: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 b6519c88a5 Plane: fixed a bug in Q_ASSIST_ modes for tiltrotors
when a tilt-rotor drops below Q_ASSIST_SPEED we need to keep it in the
airspeed wait state until it has regained airspeed, otherwise we will
end up with too low throttle
2018-11-30 18:17:42 +11:00
Leonard Hall 0943ace7a9 Plane: Zero Yaw correction during transition
and relax attitude controller when not using lift motors.
2018-11-30 18:16:29 +11:00
Andrew Tridgell c081ce9adb Plane: don't relax attitude controllers for tailsitters
this fixes an issue with testing control movement when disarmed
2018-11-30 13:01:53 +11: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
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
Peter Barker 4e3e39a3e8 Plane: make libraries get EKF control limits themselves 2018-10-09 10:47:38 +11:00
Michael du Breuil 02d37d43d2 Plane: Disallow climbs during TRANSITION_AIRSPEED_WAIT 2018-10-02 09:35:47 +10:00
Michael du Breuil b2ef6b901e Plane: Cope with AC_PosControl renaming 2018-09-20 15:15:45 -07:00
Michael du Breuil b6efc8a20b Plane: reduce some copy pasted code 2018-09-20 13:47:21 -07:00
Leonard Hall 13c27e0eb8 Plane: Missing Loiter Init on accel 2018-09-19 17:29:55 +09:00
Andrew Tridgell 5136b90d27 Plane: do attitude relax after 100ms 2018-09-15 11:00:29 +10:00
Leonard Hall 7372a7b5f9 QuadPlane: Remove repeat I term reset 2018-09-15 11:00:29 +10: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
Leonard Hall e11c7c6069 QuadPlane: remove true from init of loiter 2018-09-04 13:37:28 +09:00
Michael du Breuil 3d923d0572 Plane: Send a quadplane version of NAV_CONTROLLER_OUTPUT 2018-08-07 09:49:01 +10:00
Andrew Tridgell 16c7ab81dc Plane: pass rc_speed to motor backend constructors
this sets the right speed as early as possible
2018-07-28 15:25:57 +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
Andrew Tridgell d8a7618e15 Plane: update use of AC_Loiter controller for quadplane
this changes the way the loiter controller is initialised for QLOITER,
after discussions with Leonard.

The way we were doing it could cause a sudden acceleration demand when
switching into QLOITER.

This also changes the default loiter parameters to reduce the maximum
acceleration that will be applied in QLOITER. Many thanks to Leonard for
the advice
2018-06-11 08:40:58 +09:00
Andrew Tridgell d07f8aa42b Plane: fixed a bug in transition to QSTABILIZE for tailsitters
this bug was found bug Marco on his tailsitter. It resulted in zero
throttle for 2s in transition from FBWA to QSTABILIZE
2018-04-25 18:01:12 +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 548a7f8fcf Plane: add minor comment to quadplane 2018-03-16 13:50:57 +09:00
Leonard Hall ee745d2cd2 Plane: quad plane uses rate-control control during transitions 2018-03-16 13:50:57 +09:00
Leonard Hall a16d4ddad7 Plane: quadplane uses poscontrol instead of loiter 2018-03-16 13:50:57 +09:00
Randy Mackay c5d838125b Plane: quadplane logs PSC message 2018-03-16 13:50:57 +09:00
Randy Mackay 09cad7c59d Plane: quadplane integrates attitude control inertial_frame_reset 2018-03-16 13:50:57 +09:00
Randy Mackay 03c162432e Plane: quadplane provides dt to AC_WPNav::set_pilot_desired_acceleration 2018-03-16 13:50:57 +09: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
Leonard Hall aa47b19dea Plane: remove quadplane calls to multicopter poscontrol's freeze_ff_xy 2018-03-16 13:50:57 +09:00
Randy Mackay ddcd08d6b6 Plane: PSC_ACCZ param name shortened 2018-01-31 08:48:21 +09:00
Michael du Breuil aec7521da4 Plane: Fix truncation of a time interval
Truncating the a millisecond time delta to uint16_t causes it to wrap
every 65 seconds, which could momentarily reset the desired climb rate
2018-01-25 14:30:49 +11:00
Randy Mackay d579e086cf Plane: quadplane param index comment for moved PIDs 2018-01-24 21:14:53 +09:00
Andrew Tridgell 20b05e4228 Plane: added conversion code for PID layout change
this copes with the move of multicopter PIDs inside the position
controller
2018-01-24 18:23:59 +11:00
Randy Mackay 7b1157e2d8 Plane: remove setting accel_z PID controller's dt
This is handled within pos-controller's set_dt function
2018-01-23 12:00:43 +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
luweikxy 25224cd261 Plane: remove dead code from do_vtol_land 2017-12-14 20:52:18 +09:00
Andrew Tridgell f7a735b990 Plane: fixed transitions for tailsitters after auto-takeoff
need to use angle wait
2017-11-19 16:06:02 +11:00
Andrew Tridgell 957c1f6d23 Plane: extend QLOITER transition pitch limit
use twice transition time for pitch envelope to reduce QLOITER
transition harshness
2017-11-05 21:35:32 +11: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 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
Michael du Breuil d52f5155f0 Plane: Rename rc failsafe state members 2017-11-02 16:46:08 -07:00
nick2204 7d91755bd1 Plane: update Q_OPTIONS docs
Made q_options description a little clearer
2017-11-01 09:38:42 +11:00
Andrew Tridgell 1085069851 Plane: use WP_LOITER_RAD if RTL_RADIUS is 0 for QRTL 2017-10-30 16:52:19 +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 02f8d888c3 Plane: relax controllers when disarmed
this prevents any remaining integrator from a previous flight stage from
affecting flight across a disarm
2017-10-30 16:30:10 +11:00
Andrew Tridgell 92ee05b925 Plane: fixed motor channel handling 2017-10-25 11:39:11 +11:00
Andrew Tridgell 6526ff504d Plane: fix for changes to AP_Motors API 2017-10-22 15:52:50 +11:00
Andrew Tridgell e008559b6e Plane: support LOITER_TO_ALT in quadplanes 2017-10-21 18:50:01 +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 0aed5a9a57 Plane: prevent controller windup on ground
when on the ground in an auto-throttle mode lik FBWB or CRUISE, we may
have the throttle suppressed. In that case we should not run the
multicopter controller on quadplanes, or it may build up control which
will then apply on takeoff. This is particularly severe for aircraft
that are not level on the ground, such as taildragger quadplanes

Fixes https://discuss.ardupilot.org/t/quadplane-flips-on-takeoff/22095

many thanks to Sriram for reporting
2017-10-20 15:41:04 +11:00
Andrew Tridgell 1a95dcbdd7 Plane: update docs for Q_YAW_RATE_MAX 2017-10-20 15:40:58 +11:00
Andrew Tridgell f5b4d8d99c Plane: added frame type 11 for FlreFlyY6 2017-10-06 11:36:34 +11:00
Ferruccio Vicari 85ab3edc5f Plane: Smoother transition to QLOITER and QLAND
Use estimated stopping position
2017-09-21 07:57:38 +10:00
mirkix 7c6be7c421 Plane: change format of reset alt target message 2017-09-20 20:28:53 +10:00
mirkix b682f3f6d9 Plane: fix parameter units 2017-09-19 11:34:26 +10:00
Andrew Tridgell 35c1a732a6 Plane: allow takeoff in guided then fw loiter
this allows for quadplane takeoff in GUIDED with Q_GUIDED_MODE=0. The
takeoff will be VTOL, but subsequent guided points will be fixed wing
2017-09-18 10:21:53 +10:00
Tom Pittenger 85b7f1bbb4 Plane: guided takeoff success should return true 2017-09-13 14:46:22 -07:00
Andrew Tridgell 600a5c44d2 Plane: allow changing of target altitude in GUIDED 2017-09-09 08:14:09 +10: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 b6809655d4 Plane: smooth the transition to LAND_FINAL in quadplanes
this makes for a much smoother change to LAND_FINAL, without a jerk as
it changes vertical speed
2017-09-09 08:14:09 +10:00
Andrew Tridgell 8411ac5c57 Plane: fixed a problem with descent rate in landings for quadplanes
use xy controller instead of xyz controller, which prevents calling z
controller twice, which led to poor height control
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 909f109b3f Plane: don't start a transition while disarmed
this can caused flooding of the GCS console while disarmed in FBWA
mode
2017-07-30 12:39:36 -07:00
Peter Barker c058fba5ac Plane: eliminate GCS_MAVLINK::send_statustext_all 2017-07-11 23:53:53 +01:00
Peter Barker 5a8f01c19c Plane: use send_text method on the GCS singleton 2017-07-09 17:17:29 -04:00
Pierre Kancir 5d0972f589 Arduplane: fix implicit cast to double warning in quadplane 2017-06-14 12:40:47 +01:00
Andrew Tridgell 1455c23230 Plane: fixed docs for tailsitter 2017-06-10 18:41:34 +10:00
Dr.-Ing. Amilcar Do Carmo Lucas 2f5f8eb323 Plane: Use SI units conventions in parameter units
Follow the rules from:
http://physics.nist.gov/cuu/Units/units.html
http://physics.nist.gov/cuu/Units/outside.html
and
http://physics.nist.gov/cuu/Units/checklist.html
one further constrain is that only printable (7bit) ASCII characters are allowed
2017-05-17 18:07:25 +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 7ea0f65590 Plane: removed incorrect comment 2017-04-24 16:56:23 +10:00
Andrew Tridgell 06b0742481 Plane: fixed jump in qhover on takeoff
Z controller PID is from -1 to 1

thanks to Leonard for spotting this
2017-04-24 16:55:41 +10:00
Andrew Tridgell aab20317a0 Plane: fixed position control in QLAND_FINAL 2017-04-24 16:55:41 +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 d5ec7b0aad Plane: fixed a sign error in the angle assist code
thanks to Leonard for finding this!
2017-04-18 22:09:22 +10:00
Andrew Tridgell b15b11e32d Plane: always stabilize with tailsitters 2017-04-14 12:48:08 +10:00
Andrew Tridgell 46d910539c Plane: fixed a warning 2017-04-11 17:34:40 +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 0cf571d338 Plane: moved Z altitude target reset
reset alt target whenever we have not run Z controller for 2s
2017-04-09 16:45:19 +10:00
Mark Whitehorn 7679b758b0 Plane: add parameter RUDD_DT_GAIN for dual motor tailsitter
controls rudder to differential thrust mixing in FW mode
2017-04-06 08:29:44 +10:00
Andrew Tridgell acaef22416 Plane: improve transition from QSTABILIZE to FBWA or QHOVER 2017-04-05 20:00:29 +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 af97a3974b Plane: initialise target height correctly on quadplane transition
this fixes a bug where a plane in QSTABILIZE would drop suddenly if
switched to FBWA when the target altitude had not been initialised
2017-03-22 21:34:40 +11:00
Andrew Tridgell bb158a437e Plane: handle bad Q_FRAME_CLASS
default to quad with a warning. This prevents users getting stuck
without being able to set Q_ENABLE=1

thanks to Leonard for noticing
2017-03-18 22:10: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 4ff5bf5af5 Plane: zero integrators and set throttle mix
this zeros fixed wing integrators during TRANSITION_AIRSPEED_WAIT and
uses a zero throttle mix during TRANSITION_TIMER. This should allow
the fixed wing controller more time to adapt to forward flight
2017-02-26 09:20:51 +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
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 d5a3f844f1 Plane: changes for AC_WPNav 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
Andrew Tridgell 0fc04b0158 Plane: setup plane frame type parameter flags 2017-02-14 19:50:01 +11:00
Andrew Tridgell c294519925 Plane: lower default Q_M_SPOOL_TIME to 0.25 2017-02-14 09:23:17 +09:00
priseborough 013eb254a2 Plane: use standard unit descriptor for milliseconds 2017-01-27 16:57:42 +09:00
Andrew Tridgell 07cedd8a66 Plane: prevent stability shutdown in transition
this prevents the vertical motors from shutting down while
transitioning if the desired throttle was too low at the start of the
transition
2017-01-25 19:01:15 +11:00
Andrew Tridgell 0d4405106f Plane: removed forcing of trim for motors in quadplane
this caused problems with tricopter tail servos
2017-01-25 19:01:15 +11:00
Andrew Tridgell 5c820adad4 Plane: fixed tilt transition with binary tilt servo
once the tilt is fully fwd then force transition as done at any
airspeed
2017-01-25 19:01:15 +11:00
Andrew Tridgell 586f8a9ca8 Plane: fixes for tilt quadplane after rebase 2017-01-25 19:01:15 +11:00
Andrew Tridgell 54bca768b8 Plane: added Q_TILT_TYPE for retract servo tiltrotors 2017-01-25 19:01:15 +11:00
Andrew Tridgell 2f100b0804 Plane: removed separate tricopter quadplane build
can all be done with one build now
2017-01-12 17:39:37 +11:00
Andrew Tridgell b83f50be0f Plane: use new SRV_Channels API 2017-01-12 17:39:37 +11:00
Andrew Tridgell 1c4bf77cf6 Plane: added custom conversion of Q_FRAME_CLASS parameter 2016-12-31 10:56:01 +09:00
Randy Mackay 934ef55338 Plane: quadplane instantiates motor matrix outside of case
Thanks to khancyr for noticing this
2016-12-31 10:55:23 +09:00
Randy Mackay c6dec5c3f6 Plane: quad plane uses consolidated multicopter classes 2016-12-31 10:55:23 +09:00
Pierre Kancir da1f784e78 Plane : quadplane change to float to avoid the loss of a fractional part 2016-12-05 12:39:31 -08:00
Tom Pittenger f556f705e6 Plane: move various g params to aparms 2016-11-25 19:07:30 -08:00
expntly 0d1e50b50b Plane: fix typo, check wp_nav is initialized 2016-10-27 14:39:50 +11:00
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Andrew Tridgell 0445b51143 Plane: fixed throttle slew rate in manual for quadplanes 2016-10-12 09:55:37 +11:00
murata b3eecb87ac Plane: To define the same wording. 2016-10-06 10:03:23 -07:00
Andrew Tridgell cb61840ad2 Plane: tell TECS to use synthetic airspeed during transition 2016-10-05 11:52:52 +11:00
Andrew Tridgell 4e017bf5b3 Plane: fixed loiter mode when Q_GUIDED_MODE=1
This fixes the fixed wing behaviour of LOITER mode whne
Q_GUIDED_MODE=1.

Many thanks to the PertUAV team for finding and reporting this bug
2016-10-01 08:37:17 +10:00
Andrew Tridgell 841828541d Plane: fixed auto ICE engine cut in QLAND final 2016-09-29 05:18:55 +10:00
Andrew Tridgell 6d09897b19 Plane: fixed VTOL motor termination in AFS 2016-09-27 11:53:45 +10:00
Andrew Tridgell dac7f45326 Plane: fixed use of multicopter mix_max
we need a settable mix_max for some vehicles
2016-09-21 12:23:19 +10:00
Andrew Tridgell 9b83781b4f Plane: fixed mixer arming error with FMUv4
thanks to Tim Gold for reporting this
2016-09-11 08:25:40 +10:00
Andrew Tridgell 6849f2223d Plane: set initial alt target on takeoff completion
this prevents a sudden motor spike at the start of the transition
2016-09-02 11:12:19 +10:00
Randy Mackay 3052e8f80b Plane: quadplane calls attitude control parameter check 2016-09-02 09:27:19 +09:00
Andrew Tridgell 3d0516fd57 Plane: added Q_ASSIST_ANGLE
this automatically provides quadplane assistance if the angular error
is over the given value for 1 second while flying faster than
Q_ASSIST_SPEED
2016-08-30 08:35:18 +10:00
Andrew Tridgell 33f17588b2 Plane: added auto fence enable on VTOL takeoff
fixes issue#724
2016-08-29 18:04:42 +10:00
Andrew Tridgell c81d8364ac Plane: check for safety switch state in quadplane motor output
get_soft_armed() will be false if safety on
2016-08-29 17:55:35 +10:00
Tom Pittenger ca32bcc58d Plane: add new flight mode AVOID_ADSB to mimic GUIDED 2016-08-17 22:38:54 -07:00
Andrew Tridgell b29b609bcc Plane: added AFS support for quadplanes 2016-08-16 12:56:12 +10:00
Andrew Tridgell 31fb4cc427 Plane: force trims for VTOL motors 2016-08-16 12:53:34 +10:00
Tom Pittenger fc50f145ce Revert "ArduPlane: Convert references to AP_Airspeed. Added automatic migration of ARSPD_FBW_MIN and ARSPD_FBW_MAX (plane parameter) to ARSPD_FBW_MIN and ARSPD_FBW_MAX (library parameter)."
This reverts commit da1b18d918.
2016-08-07 17:54:24 -07:00
AndersonRayner da1b18d918 ArduPlane: Convert references to AP_Airspeed. Added automatic migration of ARSPD_FBW_MIN and ARSPD_FBW_MAX (plane parameter) to ARSPD_FBW_MIN and ARSPD_FBW_MAX (library parameter). 2016-08-04 10:09:04 -07:00
Andrew Tridgell 63317e9430 Plane: added throttle suppression for quadplanes
this tries to prevent motor start when on ground. Motors instead go
into spin_when_armed state
2016-08-04 09:43:40 -07:00
Andrew Tridgell 388b7ad6bd Plane: fixed is_flying_vtol() for non-quadplane 2016-07-27 07:43:16 +10:00
Andrew Tridgell f65b46385c Plane: added engine cut on land final in quadplane 2016-07-25 15:46:17 +10:00
Andrew Tridgell 9602d208a2 Plane: fixed disarm by rudder in quadplane 2016-07-25 06:08:36 +10:00
Andrew Tridgell c926d7d41f Plane: fixed typo in quadplane landing detector
thanks to Paul for spotting this!
2016-07-08 18:38:43 +10:00
Andrew Tridgell 66e43bf6a2 Plane: start with low integrator on back quadplane transition
When changing to alt_hold controller in quadplane with significant
airspeed set the initial integrator to minus the hover throttle to
allow the accel controller to climb slowly
2016-06-27 10:18:20 +10:00
Leonard Hall f1bca63094 Plane: consolidate input_euler_angle calls to use smoothing gain 2016-06-24 17:17:19 +09:00
Randy Mackay ef1385c9ed QuadPlane: add comment that eeprom 28 and 41 were used for THR_MIN, MID 2016-06-18 11:55:49 +09:00
Randy Mackay b456a38432 QuadPlane: remove throttle_mid
motor's hover throttle is automatically updated
2016-06-18 11:55:49 +09:00
Randy Mackay 2523ba892b QuadPlane: set attitude vs throttle priority in attitude controller 2016-06-18 11:55:49 +09:00
Randy Mackay f2b0f09d6f QuadPlane: remove THR_MIN 2016-06-18 11:55:49 +09:00
Andrew Tridgell b1b73e2d99 Plane: improved quadplane landing detector
look for no vertical position change for 5s as well as low motors
2016-06-16 18:17:56 +10:00
Tom Pittenger 773962940c Plane: quadplane for fwd_throttle integrator inhibit reverse thrust and allow min>0 for petrol 2016-06-13 14:31:50 -07:00
Tom Pittenger b6196dfa92 Plane: compiler warning in print: float to double promotion 2016-06-13 14:03:40 -07:00
Andrew Tridgell 107691b7a7 Plane: fixed initial descent rate in quadplane auto land 2016-06-11 14:37:44 +10:00
Andrew Tridgell 19834c12e2 Plane: log start of quadplane transition 2016-06-10 17:48:32 +10:00
Andrew Tridgell 8156b3f7de Plane: fixed quadplane landing transition altitude 2016-06-10 17:48:32 +10:00
Andrew Tridgell 07564aa03f Plane: fixed an attitude control bug in quadplane transition
The motors would briefly spike at the end of the transition which
could cause a major pitch deviation
2016-06-10 17:48:32 +10:00
Tom Pittenger 69f29b51d1 Plane: new param Q_VFWD_ALT to disable VFWD motor below this altitude. Also uses rangefinder 2016-06-10 17:48:31 +10:00
Tom Pittenger b9cee76bbe Plane: fix quadplane integrator to always clip to at least 0 to throttle_max 2016-06-03 23:46:18 -07:00
Tom Pittenger 82763ec8a9 Plane quadplane to use relative_ground_altitude() to take advantage of rangefinder easier 2016-06-03 23:44:21 -07:00
Andrew Tridgell 77b7852ff0 Plane: adjust recommend ranges for quadplane Q_VFWD_GAIN and Q_WVANE_GAIN 2016-06-04 11:04:15 +10:00
Tom Pittenger f83a6ca1ff Plane: fixed variable misspelling 2016-06-02 15:10:51 -07:00
Andrew Tridgell 978a89efa6 Plane: added new ESC calibration method 2016-06-02 18:10:37 +10:00
Andrew Tridgell ba3576f027 Plane: added tuning error reporting for quadplanes 2016-05-28 17:33:30 +10:00
Andrew Tridgell b56d784ae4 Plane: limit to zero pitch in quadplane on initial transition 2016-05-28 15:08:46 +10:00
Andrew Tridgell 20cf326093 Plane: lower throttle threshold for quadplane is_flying 2016-05-28 07:10:13 +10:00
Andrew Tridgell 12e0012b16 Plane: allow for NAV_LOITER_UNLIM and NAV_LOITER_TIME in quadplane 2016-05-11 15:57:41 +10:00
Andrew Tridgell 3fc43b94f9 Plane: separate out auto and guided VTOL states
this prevents a switch to AUTO from using VTOL mode incorrectly
2016-05-11 15:14:43 +10:00
Andrew Tridgell 52ea443d65 Plane: added Q_THR_MIN 2016-05-11 05:55:26 +10:00
Andrew Tridgell a61d608915 Plane: fixed numerical error if starting VTOL landing at destination 2016-05-11 05:55:25 +10:00
Andrew Tridgell 357ed1f4b9 Plane: enable weathervaning in GUIDED and TAKEOFF quadplane modes 2016-05-11 05:55:25 +10:00
Andrew Tridgell 6b358a5618 Plane: added Q_GUIDED_MODE parameter
this allows you to do hybrid VTOL and fixed wing guided mode
2016-05-11 05:55:25 +10:00
Andrew Tridgell 3bd5b42c69 Plane: refactor quadplane land controller as general VTOL position controller 2016-05-11 05:55:25 +10:00
Andrew Tridgell 46bf2b83f5 Plane: use equal thrust in tiltrotors when over Q_TILT_MAX 2016-05-11 05:55:24 +10:00
Andrew Tridgell bbb5f68bb7 Plane: added initial support for tiltrotors and tiltwings 2016-05-11 05:55:23 +10:00
Andrew Tridgell 89a2a92885 Plane: support better build time selection of multicopter frame type
makes it possible to do "make sitl-tri"
2016-05-11 05:55:22 +10:00
skyscraper 7f29903287 ArduPlane: Fix up after refactoring RC_Channel class
Further to refactor of RC_Channel class which included
adding get_xx set_xx methods, change reads and writes to the public members
to calls to  get and set functionsss

old public member(int16_t)   get function -> int16_t     set function (int16_t)
(expression where c is an object of type RC_Channel)
c.radio_in                     c.get_radio_in()           c.set_radio_in(v)
c.control_in                   c.get_control_in()         c.set_control_in(v)
c.servo_out                    c.get_servo_out()          c.set_servo_out(v)
c.pwm_out                      c.get_pwm_out()            // use existing
c.radio_out                    c.get_radio_out()          c.set_radio_out(v)
c.radio_max                    c.get_radio_max()          c.set_radio_max(v)
c.radio_min                    c.get_radio_min()          c.set_radio_min(v)
c.radio_trim                   c.get_radio_trim()         c.set_radio_trim(v);

c.min_max_configured() // return true if min and max are configured

Because data members of RC_Channels are now private and so cannot be written directly
 some overloads are provided in the Plane classes to provide the old functionality

new overload Plane::stick_mix_channel(RC_Channel *channel)
which forwards to the previously existing
void stick_mix_channel(RC_Channel *channel, int16_t &servo_out);

new overload Plane::channel_output_mixer(Rc_Channel* , RC_Channel*)const
which forwards to
(uint8_t mixing_type, int16_t & chan1, int16_t & chan2)const;

Rename functions

 RC_Channel_aux::set_radio_trim(Aux_servo_function_t function)
    to RC_Channel_aux::set_trim_to_radio_in_for(Aux_servo_function_t function)

 RC_Channel_aux::set_servo_out(Aux_servo_function_t function, int16_t value)
    to RC_Channel_aux::set_servo_out_for(Aux_servo_function_t function, int16_t value)

 Rationale:

        RC_Channel is a complicated class, which combines
        several functionalities dealing with stick inputs
        in pwm and logical units, logical and actual actuator
        outputs, unit conversion etc, etc
        The intent of this PR is to clarify existing use of
        the class. At the basic level it should now be possible
        to grep all places where private variable is set by
        searching for the set_xx function.

        (The wider purpose is to provide a more generic and
        logically simpler method of output mixing. This is a small step)
2016-05-10 16:21:16 +10:00
Andrew Tridgell 2a7edfd3d1 Plane: fixed setting of failsafe for motors in quadplane 2016-05-07 07:25:33 +10:00
Andrew Tridgell 0fd044c1f7 Plane: added Q_RTL_MODE parameter
used to switch to VTOL landing on RTL
2016-04-30 14:34:47 +10:00
Andrew Tridgell 66d3668ac4 Plane: rapid climb in QRTL if below target altitude 2016-04-30 14:34:47 +10:00
Andrew Tridgell 4666b25258 Plane: initial implementation of QRTL for quadplane RTL 2016-04-30 14:34:47 +10:00
Andrew Tridgell 460885c478 Plane: refactored quadplane landing controller
allow use in other than AUTO mode
2016-04-30 14:34:46 +10:00
Andrew Tridgell ab5ca53e2f Plane: lower default VTOL ANGLE_MAX to 30 degrees
we don't really want a quadplane at 45 degrees or the wing drag gets
far too high
2016-04-29 10:23:26 +10:00
Andrew Tridgell 6f4d66f346 Plane: support building quadplane with forced motors class 2016-04-28 22:40:45 +10:00