Commit Graph

4030 Commits

Author SHA1 Message Date
James O'Shannessy aae092b88f ArduPlane: Remove all unused geofence capability
ArduPlane: Remove missed geofence logic
2021-03-05 14:52:46 +11:00
James O'Shannessy 17fb585bf1 ArduPlane: Add support for AC_Fence
ArduPlane: Remove some geofence logic from ArduPlane

ArduPlane: Refactor action and mode return implementation

ArduPlane: Use polyfence to find the return point.
2021-03-05 14:52:46 +11:00
Paul Riseborough baea2c33bd Plane: remove unnecessary call to setTakeoffExpected
This is already set from inside Plane::set_servos_controlled when throttle up and or launch accel is detected.
2021-03-05 12:10:01 +11:00
Paul Riseborough 1dc79f0be8 Plane: Clarify calculation used to detect throw 2021-03-05 12:10:01 +11:00
Paul Riseborough 4e648734fa Plane: Fix takeoff pitch for hand launch 2021-03-05 12:10:01 +11:00
Paul Riseborough 39e1eb238d Plane: make detection of impending takeoff more likely 2021-03-05 12:10:01 +11:00
Paul Riseborough a1bde16abd Plane: Fix failure to disarm after landing in strong winds 2021-03-05 12:10:01 +11:00
Paul Riseborough ad582a90dd Plane: Don't set takeoff expected until vehicle is armed. 2021-03-05 12:10:01 +11:00
Paul Riseborough f5f13b9a47 Plane: Set default airspeed variance using airspeed range 2021-03-05 12:10:01 +11:00
Paul Riseborough 82f68464d4 Plane: Don't lower nose when hand launching 2021-03-05 12:10:01 +11:00
Peter Barker f85e55a611 Plane: override mission-changing-command to reset some state 2021-03-04 11:59:33 +11:00
Tom Pittenger 5c8d3a87db Plane: change SRx_ docs value 1 50 2021-03-03 18:17:22 +11:00
Iampete1 69275582fa QuadPlane: fix loiter to RTL instant QRTL switch 2021-03-03 15:07:22 +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
Andrew Tridgell ee2f7eac80 Plane: prepare for 4.0.9 2021-02-23 08:03:12 +11:00
Andrew Tridgell c913d8134d Plane: use ahrs.groundspeed() instead of gps call
this fixes a zero of integrator when dead-reckoning after GPS has died
2021-02-21 09:13:31 +11:00
Peter Barker 1b74058842 Plane: recalculate glide slope after achieving rtl.done_climb 2021-02-13 19:34:52 +11:00
Pierre Kancir 6062e4ee81 ArduPlane: use AUX_PWM_TRIGGER_LOW and AUX_PWM_TRIGGER_HIGH 2021-02-10 18:48:06 +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
Samuel Tabor db8aaeb63a Plane: During takeoff keep limit at LEVEL_ROLL_LIMIT until rotate speed is reached. 2021-02-09 10:08:41 +11:00
Andrew Tridgell 2e9b2fbc2b Plane: update release notes for 4.0.9beta1 2021-02-06 15:46:01 +11:00
Peter Barker af29f34f2c Plane: store previous_mode_reason only as a local
It's never used outside the mode-changing method.
2021-02-03 20:33:25 +11:00
Iampete1 e600df680e Plane: instantly switch from RTL to QRTL if within radius 2021-02-03 18:53:54 +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
Peter Barker eaa6b36077 ArduPlane: move control_mode_reason up to AP_Vehicle 2021-02-03 18:24:52 +11:00
Peter Barker b6d0208287 Plane: allow arming in all auto-throttle modes
... except QRTL and QLAND which are now universally denied for arming.
2021-02-03 18:22:10 +11:00
Peter Barker a9be4480b1 Plane: mark q modes as not having auto-throttle control
Reverts part of 6baaf03c8c

AvoidADSB was NOT marked as AutoThrottle before that commit but was
marked as such in that commit.
2021-02-03 18:22:10 +11:00
Samuel Tabor d2c8eb8ce9 Plane: Allow AP_Soaring to specify loiter radius in THERMAL mode. 2021-01-29 11:20:09 -08:00
Andrew Tridgell b20604bb59 Plane: update release notes for 4.0.8 2021-01-26 17:17:40 +11:00
Iampete1 004f873dc7 Plane: update Quadplane FRAME_CLASS description 2021-01-26 11:07:36 +09:00
Andrew Tridgell 5f4b5c4b94 Plane: prevent failsafe from changing mode during landing
this prevents RC or GCS failsafe from triggering a mode change during
a landing
2021-01-26 11:17:10 +11:00
Peter Barker 87486739d1 Plane: disallow changing to INITIALISING mode 2021-01-26 10:47:27 +11:00
Randy Mackay d487d6152e Plane: ahrs pre-arm always runs position checks 2021-01-26 10:46:49 +11:00
Peter Barker 95bc9cca79 ArduPlane: use ground_course in preference to ground_course_cd 2021-01-26 10:22:28 +11: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
Samuel Tabor d97a81bfea Plane: Re-order logic in soaring.cpp. 2021-01-13 18:35:53 +11:00
Samuel Tabor a8549f5e5f Plane: Use const method on modes classes to mark those that support auto switch to THERMAL mode. 2021-01-13 18:35:53 +11:00
Peter Barker b698546b70 ArduPlane: add do_disarm_checks boolean to disarm call
this creates symmetry between arming and disarming, at least as far as
the top-level arm() and disarm() calls are concerned.
2021-01-12 08:48:44 +09: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
Peter Barker f6cb1b5ad6 Plane: use a method on Mode for auto-navigation-mode
Avoids the state getting stale, which it will with a failed attempt to
go into qautotune, for example.
2021-01-10 16:04:30 +11:00
Peter Barker a1ea1306a1 Plane: use pure-virtual method for allows_throttle_nudging
In place of a state variable which could become stale
2021-01-10 16:04:30 +11:00
Andrew Tridgell 6a804c3a09 Plane: update release notes for 4.0.8beta1
# Conflicts:
#	ArduPlane/release-notes.txt
2021-01-06 09:37:39 +11:00
Peter Hall 0c68ec7b5c Plane: add limit to pid log metadata 2021-01-05 10:27:28 +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
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
Michael du Breuil 2909623057 Plane: Ensure that only one form of throttle nudging is active at once 2021-01-03 12:47:14 +11:00
Hwurzburg 913d1b81b2 Plane: correct bug that prevents QACRO rudder disarm 2021-01-02 08:59:31 +11:00
Tom Pittenger c653ff880a Plane: extend Stream rates param count to match MAVLINK_COMM_NUM_BUFFER 2020-12-29 07:52:09 -07:00
Peter Barker 9b2ef4f6f1 Plane: move rudder-arming arm checks into Plane's AP_Arming 2020-12-29 12:55:27 +11:00
Hwurzburg 5b471c4c0e Plane: move loiter,thermal out of auto fs group 2020-12-29 10:55:00 +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 54ee2c35fb Plane: rename tailsitter scailing max param to match min and update descriptions 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 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
Peter Barker 1307a2fea8 ArduPlane: add auxillary function to change to FBWA 2020-12-15 19:14:33 +11:00
Habibullah Oladepo 739fec001f Plane: Fix typos in Parameters.cpp 2020-12-13 10:51:38 -08:00
Tom Pittenger 04f6b2e26e Plane: remove unnecessary ::cork() in init 2020-12-11 17:48:11 +11:00
yaapu 141010ac39 ArduPlane: added virtual getters for waypoint info 2020-12-10 12:39:44 +11:00
Tom Pittenger 4a35159cba Plane: reset baro_takeoff_alt while disarmed 2020-12-09 18:17:53 +11:00
Andrew Tridgell cd2f2f96eb rename barometer parameters to BARO prefix 2020-12-08 13:22:17 +11:00
Peter Barker 719ca3f95f Plane: be consistent about strings in fence auto-enable/disable 2020-12-08 12:26:35 +11:00
Andrew Tridgell 2d0201855e ArduPlane: moved init_safety to AP_Vehicle 2020-12-08 11:14:24 +11:00
Peter Barker 5fae2652ab ArduPlane: let AHRS get the airspeed sensor from the singleton 2020-12-07 15:57:28 -08: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 52f61c7ac1 Plane: make FENCE_AUTOENABLE an AP_Enum 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
Hwurzburg 3cdcce2123 ArduPlane: add inflight airspeed cal rc switch 2020-11-25 21:30:15 +11:00
Gone4Dirt 70246059ed Plane: Move AP_Generator to AP_Vehicle 2020-11-24 12:54:52 +11:00
Iampete1 0e50023593 Plane: tailsitter: use true hover throttle in VTOL transision. 2020-11-18 19:33:21 +11:00
Iampete1 dd3ac893b3 Plane: dont use VTOL throttle percentage in tailsitter vtol transisiton 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 42887891be Plane: tailsitter: make sure alt target is abover current alt 2020-11-17 10:15:27 +11:00
Iampete1 f480f4e946 Plane: tailsitter: fix Qassist back - transision 2020-11-17 10:15:27 +11:00
Iampete1 c03de6bdbe Plane: log Qassist state 2020-11-17 10:15:27 +11:00
Andy Piper fa454da315 Plane: allow OSD for TX-only screens 2020-11-11 18:13:11 +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
giacomo892 9b4441011c ArduPlane: Fix throttle nudge reset due to wrong radio timing 2020-11-10 10:20:23 +11:00
Mark Whitehorn c054218568 Plane: report quadplane setup errors in config_error loop 2020-11-05 15:04:10 +11:00
Iampete1 2d80dcd937 Plane: remove tailsitter VTOL transition race condition 2020-11-04 18:34:00 +11:00
Iampete1 5f67f8130b Plane: tailsitters use Z stopping point on transition 2020-11-04 18:34:00 +11:00
Iampete1 024d2b7435 Plane: always output flaperons and dspoilers 2020-11-03 10:44:07 +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
Andrew Tridgell e5d580412e Plane: fixed usage of rangefinder in landing with RNGFND_LANDING=0
this fixes two places where rangefinder can affect landing when
RNGFND_LANDING=0
2020-11-03 10:08:00 +11:00
Iampete1 e6ba53856a Plane: tailsitter: ask for FW state don't check 2020-10-27 11:04:52 +11:00
Hwurzburg cf055fd1e0 Plane: add midposition to flare RC option sw 2020-10-27 10:47:07 +11:00
Mark Whitehorn 85480c8865 Plane: update frame_type parameter description 2020-10-27 10:24:20 +11:00
Randy Mackay 0362895720 Plane: integrate ahrs::get_variances change
offset is no longer returned
2020-10-21 08:58:45 +09:00
Iampete1 8885aa255d Plane: correct logger Message spelling error 2020-10-14 08:17:25 +11:00
Iampete1 916b35eec8 Plane: add EAS2TAS to CTUN 2020-10-13 15:18:36 +11:00
Hwurzburg b61ee34b6b ArduPlane: add RC option for landing flare 2020-10-13 11:36:19 +11:00
Samuel Tabor 9eef30294f Plane: Separate soaring update in mode_thermal to avoid loop rate issues. 2020-10-13 10:25:32 +11:00
Samuel Tabor 31c681c1cf Plane: Move soaring functions to mode_thermal. 2020-10-13 10:25:32 +11:00
Iampete1 2820228ad6 Plane: only do_change_speed within FBW min and max 2020-10-13 10:21:52 +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
Randy Mackay 60b4953751 Plane: integrate ahrs.pre_arm_check 2020-10-07 11:53:07 +11:00
Randy Mackay eeaf135cca AP_Arming: integrate ahrs.pre_arm_check 2020-10-07 11:53:07 +11:00
Randy Mackay 92f34a19d3 Plane: integrate parachute check_sink_rate
this was previously part of the update function.  It can be run before or after the update
2020-10-06 16:14:59 +11:00
Peter Barker 2783257aa4 Plane: correct compilation when logging disabled 2020-10-06 11:25:09 +11:00
Andrew Tridgell 9f3afe5434 Plane: update release notes for 4.0.7beta1 2020-10-02 15:16:40 +10:00
Iampete1 fb467da473 Plane: use Plane target yaw for ATT log 2020-09-30 18:15:42 +10: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
Iampete1 b61cf72b8c Plane: tailsitters in Qassist inherit motor state 2020-09-30 18:12:44 +10:00
Andrew Tridgell cfcd17f0d1 Plane: fixed bug in RC_Channel::has_valid_input
needs to go false when no RCIN and THR_FAILSAFE=2. This prevents ICE
library from using RC input
2020-09-29 10:43:41 +10:00
Samuel Tabor 589382cbb4 Plane: Add THERMAL mode to Parameters.cpp metadata. 2020-09-25 11:34:48 -07: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
Samuel Tabor 10111f92d5 Plane: Rename SOARING_ENABLED to HAL_SOARING_ENABLED and don't compare to ENABLED. 2020-09-24 07:30:48 +10:00
Samuel Tabor 0a738395fa Plane: Add THERMAL mode for thermal soaring. 2020-09-24 07:30:48 +10:00
Patrick José Pereira c19801d420 ArduPlane: Use new AP_FWVersionDefine header
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-09-23 20:58:35 +10:00
Peter Barker 15372e9213 ArduPlane: replace '@User: User' with '@User: Standard' 2020-09-22 14:56:04 +10:00
Tatsuya Yamaguchi c67a924801 Plane: replace message indicating that initialisation has completed 2020-09-22 09:52:52 +10:00
Andy Piper c057be8ed1 Plane: conditionally compile ADSB support 2020-09-22 09:33:51 +10:00
Iampete1 fc67c2c13b Plane: check AP_Motors has init correcly for Quadplanes 2020-09-22 09:12:14 +10:00
Tom Pittenger db10ad2e54 Plane: update USE_REV_THR param description to include landing pattern 2020-09-17 07:31:43 -07:00
Tom Pittenger c4ab7caa33 Plane: add reverse_thrust option when in landing pattern 2020-09-17 07:31:43 -07:00
Samuel Tabor e0f524d425 Plane: Soaring: Use circling time as timeout if less than 20s. 2020-09-10 09:18:52 -07:00
Samuel Tabor ad48394b50 Plane: Add comment to clarify additional 10m in soaring altitude target. 2020-09-10 22:21:41 +10:00
Samuel Tabor 87530c1b2b Plane: Soaring: Remove exit_mode argument from soaring_restore_mode. 2020-09-10 22:21:41 +10:00
Samuel Tabor 59f4c7a3c0 Plane: Allow auto climb back to SOAR_ALT_CUTOFF when soaring in FBWB or CRUISE modes. 2020-09-10 22:21:41 +10:00
Samuel Tabor 9f5b068d9e Plane: Handle EXIT_COMMANDED return status in soaring. 2020-09-08 16:54:45 -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
Hwurzburg 96f5e2a20a Plane: Update THR_FAILSAFE param metadata 2020-09-04 07:08:03 +10:00
Samuel Tabor 93bcfc4c3e Plane: Assign flap channel in set_control_channels() to avoid expensive call in set_servos_flaps(). 2020-09-03 07:55:51 +10:00
Samuel Tabor 590ebb180c Plane: Update airbrake channel assignment in set_control_channels() to avoid expensive call in airbrake_update() 2020-09-02 10:10:09 -07:00
Samuel Tabor f1290a2e17 Plane: Add use of airbrakes, used when throttle is negative OR via RC channel option. 2020-09-02 10:10:09 -07:00
Iampete1 abee62abc4 Plane: use throttle in for transition max comparison 2020-08-30 18:19:40 +10:00
Peter Barker 75aa8b7e6e Plane: log speed scaler into AETR 2020-08-29 18:52:46 +10:00
Andrew Tridgell bf0f359445 Plane: fixed LOITER_TO_ALT with terrain target
many thanks to Pompecukor for finding this!

Fixes #14951
2020-08-25 10:39:18 +10:00
Samuel Tabor 67c152cef2 Plane: Move cruise state into cruise flight mode. 2020-08-22 09:30:15 +10:00
Samuel Tabor 334fd4afbc Plane: Remove update_navigation() method. 2020-08-20 13:02:06 +10:00
Samuel Tabor 836be4b4b4 Plane: Remove _navigate indirection in Mode. 2020-08-20 13:02:06 +10:00
Samuel Tabor 6a27866df4 Plane: Call plane.update_loiter() rather than plane.mode_loiter.navigate(). 2020-08-20 13:02:06 +10:00
Samuel Tabor 06eea6ed9f Plane: Move navigation functions into flight mode classes. 2020-08-20 13:02:06 +10:00
Siddharth Purohit fb180fa431 Plane: move to using CANManager library 2020-08-19 17:31:09 +10:00
Peter Barker 306eaf4d03 ArduPlane: use an enumeration for the AP_Avoidance recovery action 2020-08-19 11:38:19 +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
Michael du Breuil 99ad126986 Plane: Fix redundant call to SpdHgt_Controller->get_land_airspeed() 2020-08-11 09:47:24 +10:00
Andrew Tridgell 3c705d1c60 Plane: added THR_FAILSAFE=2 option
this allows for RC inputs to be ignored at low throttle, but won't
trigger failsafe. It is meant for users flying BVLOS missions, where
they want GCS failsafe enabled, but don't want RC failsafe, and want
to be sure that RC inputs will be ignored at low RC throttle values

Thanks to suggestion from Pompecukor
2020-08-07 14:01:20 +10:00
Samuel Tabor aa776b06a4 Plane: Use sq() rather than powf() in soaring.cpp. 2020-08-05 11:58:54 +10:00
Samuel Tabor b2d63c5049 Plane: Refactor soaring.cpp. 2020-08-05 11:58:54 +10:00
Peter Barker ac85ec9924 Plane: log AHRS synthetic airspeed 2020-08-04 23:12:03 +10:00
Andrew Tridgell 6466912ac0 Plane: don't crosstrack after AUTO VTOL takeoff 2020-08-04 09:26:08 +10:00
Andy Piper b649afe9e5 Plane: make mount/gimbal inclusion configurable per-board 2020-08-04 09:18:14 +10:00
Tom Pittenger c7c9461fc0 Plane: update ModeReasons to not use UNKNOWN reason 2020-07-28 11:52:39 -07: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
Peter Hall cd46c5006a ArduPlane: remove duplicate fail-safe time check 2020-07-28 08:04:50 +10:00
Iampete1 62354527d4 Plane: zero throttle nudge in RC failsafe 2020-07-28 08:03:16 +10:00
Henry Wurzburg 3617e0c729 ArduPlane: fix airspeed messages for consistency 2020-07-21 09:41:05 +10:00
Samuel Tabor 419f7c9998 Plane: Convert SOAR_ENABLE_CH to RCX_OPTION. 2020-07-21 09:38:04 +10:00
Samuel Tabor 611217f63e AP_Soaring: Use RC aux function rather than read RC directly. 2020-07-21 09:38:04 +10:00
Samuel Tabor 455ebaadf2 RC_Channel: Add soaring aux function. 2020-07-21 09:38:04 +10:00
Michael du Breuil 6c6e4eff67 Plane: adhoc MAVLink DO_LAND_START changing mode to auto is known to be a GCS reason 2020-07-17 09:15:05 +09:00
Henry Wurzburg 16a15f5450 ArduPlane: add CROW flaps mode select switch 2020-07-16 13:30:45 +10:00
Mirko Denecke 10a85892cf ArduPlane: update_trigger() is now called in AP_Camera update() 2020-07-15 08:37:28 +09:00
Paul Riseborough 585a6a6967 Plane: Log D gain limit cycle gain scaler
Used by roll and pitch loops in APM_Control
2020-07-13 13:47:50 +10:00
TunaLobster aca70ffd34 ArduPlane: Update Log_Write_Fast comment for accuracy 2020-07-11 19:15:21 +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
Henry Wurzburg 4115603f13 ArduPlane: add terrain follow disable switch for CRUISE/FBWB 2020-07-08 13:39:42 +10:00
Paul Riseborough e5bd99a66f ArduPlane: Signal EKF to expect takeoff start to improve GSF yaw estimate 2020-07-07 15:33:58 +10:00
Michael du Breuil 955a05c4d5 Plane: Refactor mav_cmd_do_reposition to be consistent with copter 2020-07-07 10:34:19 +10:00
Mark Whitehorn 2af6e255d1 RC_Channel: add RC option for VTOL manual forward throttle
fix RC_OPTION metadata for 209: Forward Throttle
2020-07-07 08:37:46 +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 ee2118f93a Plane: add support for AP_Generator 2020-07-03 08:21:42 +09: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
Andrew Tridgell d9358b4ac2 Plane: don't allow a zero speed_scaler
this fixes an issue with yaw damper on quadplanes when at zero
airspeed

Thanks to Vladi Portnoy for reporting this
2020-06-29 20:09:41 +10:00
Andy Piper 9077d41df1 Plane: add support for tracking fft peaks and individual motor rpms with harmonic notches
log harmonic notch even if FFT is disabled. Fallback to throttle notch for BLHeli
move harmonic notch update to AP_Vehicle
2020-06-21 19:09:35 +10:00
Michael du Breuil 43526e718e Plane: Remove the use of RTL_RADIUS from LOITER_UNLIM mission items 2020-06-19 11:10:29 -07:00
Mark Whitehorn ab2eb6185f Plane: also limit throttle during quadplane transitions 2020-06-16 11:43:18 +10:00
Peter Barker 1206df6f0c ArduPlane: remove use of Vector2 as function 2020-06-16 11:00:44 +10:00
Paul Riseborough 97d7d563c4 ArduPlane: Improve parameter description for FWD_BAT_VOLT_MAX/MIN 2020-06-16 10:17:33 +10:00
Paul Riseborough fdb4f908bb ArduPlane: Fix bug in forward throttle voltage compensation
The existing code does not adjust the upper and lower throttle limits with the result that at and of discharge climb and reverse thrust performance is significantly degraded.
2020-06-16 10:17:33 +10:00
vierfuffzig 147ebb74f4 Plane Parameters: fix THR_MAX param description
makes clear that thr is constrained in stabilized modes too unless passthrough is set, aligns with THR_MIN description.
2020-06-12 10:23:41 +10:00
Peter Barker 6c4812e408 ArduPlane: rename 'enum aux_switch_pos_t' to 'enum class AuxSwitchPos' 2020-06-12 08:11:46 +10:00
Peter Barker f59d2fdbf4 ArduPlane: add and use accessor for last-RADIO_STATUS.remrssi-ms 2020-06-09 10:20:29 +10:00
Iampete1 2121ddf736 Plane: drop unneeded call to calc_pwm 2020-06-09 09:04:14 +10:00
Andrew Tridgell fbd774fde9 Plane: set pressure alt for vtol motors 2020-06-05 11:35:53 +10:00
Iampete1 4b7d45e549 Plane: label and sort plane.h functions 2020-06-05 09:32:31 +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
Michael du Breuil 911570e9f3 Plane: Protect against a divide by 0 when calculating the forward throttle compensation 2020-06-02 09:38:51 +10:00
Andrew Tridgell ebcbc6d449 Plane: update release notes for 4.0.6beta1 2020-05-27 13:27:27 +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 2467d7b5c7 Plane: add Qassist switch 2020-05-26 09:01:47 +10:00
Tom Pittenger 0a5021fdcf Plane: bugfix: never reset auto_state.sink_rate 2020-05-23 18:49:12 -07:00
Andrew Tridgell 26c2555c3c Plane: increased allowed time for mavlink send to 750us
this is to allow more time to get streams out at low loop rates
2020-05-23 11:54:41 +10:00
Buzz 0f5177b291 Plane: Support a set of offboard MAVLink guided controls with rates
+ 3 rounds of fixes
2020-05-20 15:03:21 +10:00
Buzz d4df145b4b ArduPlane: option to keep landing throttle at thr_min during flare and touchdown, not zero. 2020-05-20 11:29:45 +10:00
Iampete1 f9ff8e5f11 Plane: align GCS PID with logged 2020-05-19 09:04:16 +10:00
Andrew Tridgell 8b21f5117a Plane: implement RTL_CLIMB_MIN parameter
this allows for an initial climb on RTL where roll is limited to
LEVEL_ROLL_LIMIT
2020-05-18 13:04:04 +10:00
Paul Riseborough 0c9433873c ArduPlane: Modify ekf failsafe checks
Restore velocity check and make the logic closer to what ArduCopter does.
Remove unnecessary initialisation.
2020-05-14 10:40:48 +10:00
Paul Riseborough 85e53d53e1 ArduPlane: Don't use optical flow health when assessing EKF nav health
Plane currently doesn't use optical flow for navigation - it is used fo terrain height estimation.
2020-05-14 10:40:48 +10:00
Paul Riseborough 3a10838c65 ArduPlane: Don't check variances if not available 2020-05-14 10:40:48 +10:00
Paul Riseborough 70a02f31ab ArduPlane: More efficient type use 2020-05-14 10:40:48 +10:00
Paul Riseborough 5b312e9f09 ArduPlane: Fix logic error 2020-05-14 10:40:48 +10:00
Paul Riseborough cd5714d059 ArduPlane: Allow EKF dead reckoning to continue after loss of GPS 2020-05-14 10:40:48 +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
Peter Barker 8222b5db62 Plane: AP_Soaring no longer takes AHRS in constructor 2020-05-05 17:35:14 +10:00
Tom Pittenger 87c75332e7 Plane: ignore guided cmds from mavlink if we're in avoidADSB.
This change makes it behave like MAVLINK_MSG_ID_SET_POSITION_TARGET_LOCAL_NED
2020-05-05 10:51:16 +10:00
Peter Barker f17ea78a6c Plane: move sending of WIND message to GCS namespace 2020-05-05 10:29:13 +10:00
Peter Barker e75fa6fb15 Plane: move sending of AOA_SSA message to GCS namespace 2020-05-05 10:29:13 +10:00
Iampete1 3ded030fa8 Plane: compensate forward throttle for battery voltage drop 2020-05-05 09:46:41 +10:00
Peter Barker 86c765d8c9 ArduPlane: create and use INTERNAL_ERROR macro so we get line numbers 2020-04-30 13:21:36 +10:00
Andrew Tridgell d0a509eef1 ArduPlane: invalidate param count when changing param tree structure 2020-04-29 07:36:55 +10:00
Paul Riseborough 0efdb2b66b ArduPlane: Send default airspeed to estimators 2020-04-24 09:43:23 +10:00
Randy Mackay 9a43a31f24 Plane: do not send ahrs3 mavlink message 2020-04-22 14:11:17 +09: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
Mark Whitehorn bada075daa Plane: expand description of CTUN.Aspd to indicate when estimate or measurement is reported 2020-04-18 15:33:43 +10:00
Peter Barker f5f4576835 ArduPlane: remove comment for already-removed in-delay-callback function
These are now attached to completely unrelated functions, which is
pretty bad.
2020-04-16 15:11:35 +09: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
Rishabh 6989cb0131 Plane: Use AHRS for heading in mode loiter 2020-04-10 12:18:35 +10:00
Samuel Tabor b9daae062c AP_Soaring: Use enum class rather than typedef enum for states and hide details of these. 2020-04-08 09:11:54 +10:00
Samuel Tabor d7ce3ff72e AP_Soaring: Don't check throttle status on entry to loiter, because it is automatically set on first pass in update_soaring. 2020-04-08 09:11:54 +10:00
Samuel Tabor 36a90cf443 Plane: Remove unused isHeadingLinedUp function, and rename functions to avoid confusion. 2020-04-08 09:11:54 +10:00
Samuel Tabor 170b599469 Plane: Required changes for conditional soaring compilation (fmuv2). 2020-04-08 09:11:54 +10:00
Samuel Tabor e1f7122566 AP_Soaring: Improve tracking of enabled/disabled status. 2020-04-08 09:11:54 +10:00
Samuel Tabor e7418637ee Plane: In FBWB make target alt track current if soaring is enabled and suppressing throttle. 2020-04-08 09:11:54 +10:00
Samuel Tabor ed7e359f4d Plane: Make target altitude track current altitude when gliding. 2020-04-08 09:11:54 +10:00
Samuel Tabor 2260fda4ec AP_Soaring: Detect changes in active parameter/switch position. 2020-04-08 09:11:54 +10:00