Commit Graph

423 Commits

Author SHA1 Message Date
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