Commit Graph

555 Commits

Author SHA1 Message Date
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
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
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
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 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
yaapu 141010ac39 ArduPlane: added virtual getters for waypoint info 2020-12-10 12:39:44 +11:00
Andrew Tridgell cd6ddf7d4f Plane: fixed disable of geofence on quadplane landing
fixes #15917
2020-12-02 18:33:07 +11:00
Hwurzburg 3cdcce2123 ArduPlane: add inflight airspeed cal rc switch 2020-11-25 21:30:15 +11:00
Andy Piper fa454da315 Plane: allow OSD for TX-only screens 2020-11-11 18:13:11 +11:00
Hwurzburg cf055fd1e0 Plane: add midposition to flare RC option sw 2020-10-27 10:47:07 +11:00
Hwurzburg b61ee34b6b ArduPlane: add RC option for landing flare 2020-10-13 11:36:19 +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
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
Andy Piper c057be8ed1 Plane: conditionally compile ADSB support 2020-09-22 09:33:51 +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 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
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
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 b2d63c5049 Plane: Refactor soaring.cpp. 2020-08-05 11:58:54 +10:00
Andy Piper b649afe9e5 Plane: make mount/gimbal inclusion configurable per-board 2020-08-04 09:18:14 +10:00
Henry Wurzburg 16a15f5450 ArduPlane: add CROW flaps mode select switch 2020-07-16 13:30:45 +10:00
Henry Wurzburg 4115603f13 ArduPlane: add terrain follow disable switch for CRUISE/FBWB 2020-07-08 13:39:42 +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
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
Iampete1 4b7d45e549 Plane: label and sort plane.h functions 2020-06-05 09:32:31 +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
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 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
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
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
Samuel Tabor 298088268a Plane: Soaring, don't wait for heading if too low, and add timeout otherwise. 2020-04-08 09:11:54 +10:00
Rishabh a76d0e3002 Plane: Remove SONR messages logging 2020-04-01 17:11:48 +11:00
Andrew Tridgell 9f92aad711 Plane: implement get and set target location 2020-03-12 08:36:40 +11:00
Peter Barker 5ff1630c63 ArduPlane: move initialisation of serial and gcs to AP_Vehicle 2020-02-25 11:50:55 +11:00
Peter Barker 58d45ef04a Plane: let AP_Vehicle handle loop() 2020-02-06 14:41:06 +11:00
Peter Barker a5a75e61da ArduPlane: move some common init_ardupilot code up to AP_Vehicle 2020-01-28 11:34:51 +11:00
Peter Barker a45abc7762 Plane: move setup method up to AP_Vehicle base class 2020-01-28 11:34:51 +11:00
Peter Barker 024c86bdab Plane: let AP_Vehicle base class worry about scheduler delay callback 2020-01-21 11:37:28 +11:00
Tatsuya Yamaguchi 1f9f84044c Plane: allow scripts to get modes 2020-01-14 11:16:29 +11:00
Peter Barker 71017cb288 Plane: vehicle parent class now instantiates AHRS 2019-12-02 09:16:22 +11:00
Andrew Tridgell d872ca27ce Plane: added dynamic harmonic notch support 2019-11-19 07:08:01 +08:00
Andrew Tridgell 2b27cd2ce9 Plane: Add EFI Support 2019-11-17 20:10:54 +11:00
Peter Barker 0626f1fc2f Plane: stop providing current location to mount 2019-11-05 19:55:45 +11:00
Michael du Breuil ee96ec7f0d Plane: Support new AP_Vehicle::set_mode 2019-10-25 08:48:22 +08:00
Andrew Tridgell ff400243e0 Plane: added a new TAKEOFF flight mode
takeoff then circle in direction of takeoff
2019-10-17 12:19:43 +11:00
Peter Barker 5d405896f8 Plane: move many members up to base class 2019-10-08 11:26:04 +11:00
Peter Barker a252aad39b Plane: become an AP_Vehicle 2019-10-08 11:26:04 +11:00
Michael du Breuil 562b155f63 Plane: Remove unused geofence enable reason 2019-09-23 17:31:33 -06:00
Michael du Breuil af0dfb6d8b Plane: Remove unneeded state from geofence 2019-09-23 17:31:33 -06:00
Andrew Tridgell 6572700baa Plane: fixed an issue with landing on rising ground
when landing on rising ground we don't want to use the terrain look
fwd correction for the flare calculation as otherwise we will flare
too early (and thus too high)
2019-09-16 12:52:00 +10:00
Michael du Breuil cf58f68e49 Plane: Rearrange header to save flash
Saves 392 bytes of flash on CubeBlack builds without increasing RAM
consumption at all. This also translates to a speed up as some of these
are looked up every loop multiple times.
2019-09-10 06:43:34 +10:00
Andrew Tridgell 296ce5a409 Plane: fixed throttle failsafe for FS_SHORT_ACTN=3
this is a replacement for #12043
many thanks to @Jaaaky for finding this issue
2019-08-26 17:20:24 +10:00
Andrew Tridgell 1b775c96f5 Plane: added rangefinder correction by terrain data
allows for landing approach with terrain changes
2019-08-06 09:36:02 +10:00
Peter Barker 7c88eb670c Plane: RangeFinder uses AP_SerialManager singleton 2019-07-16 09:29:48 +10:00
Peter Barker 38e303389b Plane: avoidance no longer takes ahrs in constructor 2019-07-16 09:29:48 +10:00
Peter Barker 769e862807 Plane: stop passing relay and ahrs into camera constructor 2019-07-09 09:32:39 +10:00
Andrew Tridgell ebe2278f5d Plane: reset rate controller integrators if not run for 2s
this prevents a bug where integrator buildup can happen from a
previous flight mode
2019-07-07 18:16:47 +10:00
Peter Barker 3ab266b751 Plane: ServoRelayEvents uses Relay singleton 2019-07-03 23:59:24 -07:00
Michael du Breuil 1d379dd0b3 Plane: Update for AFS interface 2019-06-18 10:02:05 +10:00
Andrew Tridgell 5076058459 Plane: added FENCE_AUTOENABLE=3 option
this enables the fence when arming. If the vehicle is outside the
fence or it can't be enabled then arming fails
2019-06-11 06:58:47 +10: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
Tom Pittenger 6970a66cad Plane: refactor stick_mixing to library 2019-05-03 13:14:11 -07:00
Vinicius Knabben 99ad94ec49 Plane: Added parachute release on critcal sink rate and battery failsafe actions
Signed-off-by: Vinicius Knabben <viniciusknabben@hotmail.com>
2019-04-30 10:04:58 +10:00
Peter Barker ad16f31e11 Plane: call compass cal routine directly from sched table 2019-04-23 10:06:17 +10:00
Peter Barker 3a4cbdd41f Plane: remove pointless update_notify shim 2019-04-11 05:31:43 -07:00
Michael du Breuil ea031d720a Plane: Fix RangeFinder init 2019-04-06 09:15:22 +11: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 ca40c7f2d5 Plane: create afs_plane.h to match copter and rover structure 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
Peter Barker 6c5c14381f Plane: move devo telemetry handling to GCS 2019-03-19 14:39:14 +11:00
Peter Barker 1a55f0ffab Plane: FrSky support has moved to GCS 2019-03-19 14:39:14 +11:00
Andrew Tridgell 3907466f9d Plane: added TKOFF_TIMEOUT parameter
this allows for a timeout on auto-takeoff. This can be combined with
other takeoff parameters to allow the user to abort a hand-launch
after the motor has started without GCS interaction.

The 4m/s threshold is a bit arbitrary. We could make that a parameter
in the future if it is needed
2019-03-18 14:48:08 +11:00
Peter Barker 0edba9070f Plane: move sending of RPM message up 2019-03-16 10:33:01 +09:00
Peter Barker ca7566fff9 Plane: use enum class for ArmingMethod and ArmingRequired 2019-03-12 19:48:14 +11:00
Peter Barker bd444d97dc Plane: move sending of airspeed_autocal into AP_AirSpeed 2019-03-06 11:32:52 +11:00
Peter Barker 94899bd2ed Plane: move sending of send_pid_tuning up 2019-03-05 10:41:56 +11:00
Andrew Tridgell cd1f21b806 Plane: removed some px4 specific code and docs 2019-02-27 20:32:37 +11:00
Peter Barker cdde2b7d64 Plane: Rally no longer takes ahrs in constructor 2019-02-20 18:03:38 +11:00
Peter Barker 34853fb1bf Plane: move update_sensor_status_flags into GCS subclasses 2019-02-19 14:09:59 +11:00
Peter Barker 33541dcbf6 Plane: GCS_MAVLink takes care of mavlink capabilities 2019-02-19 13:14:52 +11:00
Peter Barker 5690a0ea4a Plane: move try_send_message of nav_controller_output up 2019-02-19 10:08:00 +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
Peter Barker b6bf8d8368 Plane: make setting of home boolean in preparation for sanity checks 2019-02-15 08:28:45 +11:00
Peter Barker 5a19f447a7 Plane: devo telemetry no long requires singleton classes to be passed in 2019-02-13 19:24:07 +00:00
Peter Barker 30671a6743 Plane: move handling of command-int MAV_CMD_DO_SET_HOME up
Plane: eliminate set_home shim around AP_AHRS::set_home
2019-02-13 09:42:26 +11:00
Peter Barker cfb3dfc4e5 Plane: AP_Frsky_Telem uses singletons 2019-02-12 17:53:23 +00:00
Peter Barker b48cb1e367 Plane: move sending of sys_status message up 2019-02-05 11:07:39 +11:00
Andrew Tridgell 5dbf603450 Plane: separate out slew limit logic for left/right throttles 2019-02-03 05:06:37 -08:00
Peter Barker 68b9e64077 Plane: remove old, unfulfilled method declarations 2019-01-30 09:03:52 +09:00
Peter Barker 40856fef56 Plane: remove vestiges of old PX4_MIXER code 2019-01-19 19:31:03 +11:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00
Peter Barker 129762d3af Plane: APM_Control uses DataFlash singleton, stop passing it 2019-01-18 14:14:22 +11:00
IamPete1 eaed0a2d47 Plane: make rudder differnal thrust global 2019-01-15 10:19:19 +11:00
Peter Barker 5c90a2dab2 Plane: Terrain uses rally singleton 2019-01-09 10:14:16 +11:00
Michael du Breuil 09f6ec8a00 Plane: Remove unneeded AP_Buffer include 2018-12-31 11:41:43 +09:00
Michael du Breuil 47dfafd670 Plane: Ensure that the plane is an appropriate distance out before starting the approach 2018-12-18 10:11:22 +11:00
Michael du Breuil f1154a6e7c Plane: Pass the mission command around rather then fetching it 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
Peter Barker d1727d26a1 Plane: rename send_extended_status1 to send_sys_status 2018-12-10 12:52:41 +09:00
Peter Barker ba3a369651 Plane: remove update_events scheduler shim 2018-11-27 10:07:13 +11:00
Michael du Breuil 1e220d3d37 Plane: Add support for mode change to QLand as a failsafe 2018-11-24 14:37:04 -08:00
Peter Barker d4e88bc6ba Plane: remove pointless wrappers around RC_Channels functions 2018-11-23 10:56:17 +11:00
Peter Barker 03b71e1123 Plane: remove pointless wrappers around gcs functions 2018-11-23 10:56:17 +11:00
Andrew Tridgell 03f1deca9f Plane: support REVERSE_THROTTLE rc option
this provides a more convenient way to setup for reverse throttle
2018-11-16 08:33:35 +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
Peter Barker a5c34f6172 Plane: OpticalFlow takes care of its own logging 2018-11-13 10:40:23 +11:00
Peter Barker e53a009a35 Plane: do not pass ahrs to opticalflow constructor 2018-11-13 10:40:23 +11:00
Andrew Tridgell 432d786f82 Plane: pass height to landing gear update 2018-11-10 21:24:19 +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
Eugene Shamaev 01178a75e9 Plane: added landing gear support 2018-11-09 14:35:14 +11:00
Peter Barker 818bb8d56d Plane: don't pass ahrs to terrain constructor 2018-11-08 20:59:45 +11:00
Peter Barker 4b68ca79dc Plane: stop passing ahrs to Mission constructor 2018-11-08 10:01:16 +09:00
Andrew Tridgell a00e06ea13 Plane: added TKOFF_ACCEL_CNT for multi-shake to start
this allows you to setup shake to start with a lower accel threshold,
but with multiple fwd/back movements needed.

This implements https://github.com/ArduPilot/ardupilot/issues/2221
2018-10-31 18:53:36 +11:00
Peter Barker 27b444f4e8 Plane: move handling of gimbal messages up
Plane: move handling of mav_cmd_do_mount_control up

Plane: move handling of deprecated mount messages up

Plane: move handling of command_do_set_roi up

Plane: mount no longer takes ahrs in constructor
2018-10-30 17:19:14 +11:00
Peter Barker 7890fbeaa1 Plane: let AP_Mission handle common camera commands 2018-10-30 15:37:18 +11:00
Michael du Breuil 3aed07a83a Plane: Create a scripting object 2018-10-09 10:08:52 +11:00
Peter Barker 4ad1869f43 Plane: add arm/disarm on aux switch 2018-09-06 08:26:50 +10:00
Peter Barker 901664ce09 Plane: add support for RCn_OPTION (servorelay,camera)
Closes #7071
Closes #7666
2018-09-05 13:44:07 +10:00
Michael du Breuil 8417bcc7d5 Plane: Add flight options bitmask 2018-08-28 09:40:53 +10:00
Michael du Breuil e4bbcd5ee3 Plane: Don't initilize motors with a trim value 2018-08-23 13:19:08 +10:00
Alexander Malishev 001948d40c Plane: publish navigation info to OSD 2018-08-16 10:26:34 +10:00
Randy Mackay 903d00c4b2 Plane: remove compass accumulate 2018-08-06 11:05:34 +10:00
Peter Barker 9ce02bc504 Plane: minimal support for inheritting from RC_Channel 2018-08-01 12:11:30 +09:00
Andrew Tridgell 1d675390ab Plane: make soaring an optional build feature
this disables soaring on px4-v2, saving 5k of flash

This is needed to consider pr #9042, which takes a lot of flash space
2018-07-30 13:09:15 +10:00
Michael du Breuil f25726fbb1 Plane: Remove unused ADC include 2018-07-17 09:29:50 +10:00
Peter Barker 85f339caae Plane: remove annoying ice_update shim 2018-07-04 21:08:47 +01:00
Peter Barker e404562544 Plane: remove vexing button_update shim 2018-07-04 21:08:47 +01:00
Peter Barker c42fb6d797 Plane: remove pointless rangefinder_init shim function 2018-07-04 21:08:47 +01:00
Peter Barker 3bfa4c8678 Plane: use singletons in AP_Arming 2018-07-03 13:44:11 +10:00
Andrew Tridgell bc503cc600 Plane: moved OSD to top level params
this is to give lots of depth for OSD params (which will be very
complex)
2018-06-27 14:55:00 +10:00
Alexander Malishev 75bf6984f5 Plane: added OSD support 2018-06-27 14:55:00 +10:00
Michael du Breuil 1c276e6af7 Plane: Remove unneeded wrapper functions
Also removes unneeded battery failsafe flag clearing
2018-06-27 11:39:35 +10:00
Peter Barker f5e241af01 Plane: option to force arm, bypassing checks 2018-06-20 11:43:38 +10:00
Peter Barker 2b7f9247e8 Plane: use AP_FWVersion singleton 2018-06-18 19:10:37 +01:00