Commit Graph
426 Commits
Author SHA1 Message Date
Thomas Watson 0bf55084a6 Plane: make flight mode parameters into array
This removes the need for the pointer to the first flight mode, and
removes the undefined behavior resulting from indexing past that first
flight mode and hoping the others follow (though this is unlikely to
pose a problem in practice).

Saves a few bytes of RAM and flash as the pointer is no longer needed
and code is no longer necessary to set it up.
2026-04-13 12:50:48 +01:00
rubenp02 5c7ee4000b Plane: add rngfnd. engagement distance parameter
Introduces the RNGFND_LND_DIST parameter, which defines the horizontal
distance to the landing point at which the rangefinder engages when
RNGFND_LANDING is enabled. This is useful for landing on platforms or
small plateaus, and to avoid interference from uneven terrain or
obstacles during the approach.

When set to the default value of 0, the rangefinder engages as soon as
it is within range, matching existing behavior.

Key changes:
- Adds RNGFND_LND_DIST parameter to control rangefinder engagement
  horizontal distance during landing.
- Updates rangefinder logic to engage only when within the specified
  distance.
- Requires rangefinder_state.in_use for rangefinder correction to be
  applied.
- Requires both in_use and in_range for rangefinder_active to be true.
2026-03-18 15:42:11 -07:00
TharakaUJ 32b5eae799 ArduPlane: increase throttle slew rate parameter width
Increase the storage width of throttle slew rate parameters from AP_Int8
to AP_Int16 to allow higher values.

Affected parameters:
 - THR_SLEWRATE
 - TKOFF_THR_SLEW
 - Landing THR_SLEW

The parameter range is increased from 127 to 500 (%/s). This increases the
maximum allowed slew rate but does not change the parameter resolution.

Existing parameters are migrated using convert_parameter_width(AP_PARAM_INT8)
to preserve stored values.

Fixes #2024
2026-03-09 23:37:10 +00:00
Henry Wurzburg fafaa0a1a5 Plane:expand flightmode bit 15 description 2025-10-28 00:12:47 +00:00
Bob Long 853db0e2df global: add Range to batt idx param doc 2025-10-23 08:13:22 +11:00
Bob Long 9ff7b9c346 global: add Range to EKF failsafe param doc 2025-10-23 08:13:22 +11:00
Ep Pravitra 347f1a2b34 Plane: timeout for external guided command 2025-09-30 09:39:03 +10:00
Rubén Pérez Alonso f5c0877854 Plane: Fix CLIMB_SLOPE_HGT DisplayName typo 2025-09-29 16:50:37 +10:00
JazhiandHenry Wurzburg 5f70687b55 Plane: fix short failsafe
Co-Authored-By: Henry Wurzburg <hwurzburg@yahoo.com>
2025-08-12 09:32:38 +10:00
rubenp02 313c0cbf0a Plane: Use accurate roll limits if airspd. sensor
Aerodynamic load factor-based roll demand limits were only applied down
to ±25º to keep the aircraft maneuverable with a bad airspeed estimate.
However, with the addition of the AIRSPEED_STALL parameter, this is
unsafe if the aircraft is actually flying very close to its stall speed,
and can result in a spin.

This commit adds a FLIGHT_OPTION to make it possible for the roll demand
limits to go all the way down to LEVEL_ROLL_LIMIT if an airspeed sensor
is fitted and in use and the AIRSPEED_STALL parameter is set, since
under these conditions, the airspeed estimate is accurate and there is
very little bank angle overhead to prevent a stall.
2025-08-06 17:48:10 +10:00
Peter Barker 549e40ae7b Plane: add comment on speed scalar calculation
it needs to be a constant so that when the user changes TRIM_THROTTLE (eg. via DO_CHANGE_SPEED or via the parameter) that it doesn't change the tuning of their PID loops by changing the speed scaler. The aircraft could either start oscillating badly or could become very sluggish in control
2025-07-31 10:06:39 +10:00
rubenp02 8d3c52ccb2 Plane: Add climb slope minimum height parameter
Slope treatment for a flight leg was conditioned to a minimum height of
20m (which was a hardcoded value and only documented in a comment in the
code), below which an immediate altitude change was performed for that
leg. This caused unpredictable results for flight plans with waypoints
at exactly 20m followed by a climb, as the aircraft could, depending on
chance, be above or below the height demand, resulting in very different
trajectories.

This commit addresses that issue with the following changes:
- Added a parameter to control the minimum height at which a gradual
  climb slope can be performed. This documents the original feature and
  retains the safety aspect of it.
- Changed the behavior when below said minimum height to only
  immediately climb up to the safe height, regaining the intended climb
  slope afterwards. This leverages existing code for recalculating climb
  slopes, provides a good balance between safety and following the
  flight plan as intended, and fixes the core issue of different
  trajectories being taken based on random external factors.
2025-07-31 10:06:12 +10:00
Iampete1 066c07553f ArduPlane: move RPM lib to vehicle 2025-07-22 10:33:55 +10:00
Henry Wurzburg eedcecd71c Plane:correct description of FBWB_ELEV_REV parameter 2025-07-17 08:13:28 +10:00
Andrew Tridgell 1c6a2aea34 Plane: make RNGFND_LANDING a bitmask
this gives greater control of when the rangefinder will be used. A
particularly important one is the ability to disable it for VTOL
assist as false positives can be quite common and drains the battery
2025-07-14 20:01:10 +10:00
Andrew Tridgell 8d34fabce0 Plane: added an option to enable flaps by actual speed
this allows auto flaps in manual throttle modes, and when speed drops
in an uncommanded fashion

this needs to be used with caution and carefully tested on an aircraft
as it could result in an oscillation, as adding flaps can change the
airspeed
2025-07-14 19:31:01 +10:00
Iampete1 ba42092ee7 Plane: rework allow_reverse_thrust to allow reverse thrust in manual modes with USE_REV_THRUST 0 2025-07-08 10:05:27 +10:00
rubenp02 aca86915bb Plane: Add roll-only stick mixing
The current implementation of pitch stick mixing is unsafe, as it
introduces an attitude override that is decoupled from the TECS, and
also lacks any stall and overspeed prevention mechanisms. This means
that if a pitch nudge is held long enough, an overspeed or a stall will
occur.

This commit introduces a "FBW style (no pitch)" setting to the
STICK_MIXING parameter. It behaves like the current "FBWMixing" option
for roll and yaw, but doesn't provide any pitch mixing. A warning about
the lack of flight envelope protections in "FWB style" mode has also
been added to the description.
2025-06-27 09:30:59 +10:00
Peter Barker dc65e9ac7f ArduPlane: add and use AP_ADSB_AVOIDANCE_ENABLED
this gates the "ADSB" avoidance feature used for macro-level avoidance.  It's not actually limited to ADSB as input...
2025-06-26 16:32:22 +10:00
Peter Barker 0b20a973f0 Plane: extend ONESHOT_MASK documentation out to 32 servos 2025-06-18 22:57:27 +10:00
Simon Hancock 11400f703f ArduPlane: Add info for quadplane to RTL_RADIUS description
colcon build/test / build-test (push) Has been cancelled
Cygwin Build / build (push) Has been cancelled
ESP32 Build / build (esp32buzz, 10) (push) Has been cancelled
ESP32 Build / build (esp32s3empty, 10) (push) Has been cancelled
Macos Build / build (CubeOrange) (push) Has been cancelled
Macos Build / build (sitl) (push) Has been cancelled
QURT Build / build (push) Has been cancelled
test chibios / build (CubeOrange-EKF2, 10, chibios) (push) Has been cancelled
test chibios / build (CubeOrange-ODID, 10, chibios) (push) Has been cancelled
test chibios / build (CubeOrange-PPP, 10, chibios) (push) Has been cancelled
test chibios / build (CubeOrange-bootloader, 10, chibios) (push) Has been cancelled
test chibios / build (CubeRedPrimary-bootloader, 10, chibios) (push) Has been cancelled
test chibios / build (MatekF405-Wing, 10, chibios) (push) Has been cancelled
test chibios / build (Pixhawk6X-PPPGW, 10, chibios) (push) Has been cancelled
test chibios / build (SOHW, 10, chibios) (push) Has been cancelled
test chibios / build (build-options-defaults-test, 10, chibios) (push) Has been cancelled
test chibios / build (configure-all, 10, chibios) (push) Has been cancelled
test chibios / build (fmuv2-plane, 10, chibios) (push) Has been cancelled
test chibios / build (fmuv3, 10, chibios) (push) Has been cancelled
test chibios / build (fmuv3-bootloader, 10, chibios) (push) Has been cancelled
test chibios / build (iofirmware, 10, chibios) (push) Has been cancelled
test chibios / build (new-check, 10, chibios) (push) Has been cancelled
test chibios / build (periph-build, 10, chibios) (push) Has been cancelled
test chibios / build (revo-bootloader, 10, chibios) (push) Has been cancelled
test chibios / build (revo-mini, 10, chibios) (push) Has been cancelled
test chibios / build (signing, 10, chibios) (push) Has been cancelled
test chibios / build (stm32f7, 10, chibios) (push) Has been cancelled
test chibios / build (stm32h7, 10, chibios) (push) Has been cancelled
test chibios / build (stm32h7-debug, 10, chibios) (push) Has been cancelled
test dds / build (sitl) (push) Has been cancelled
test dds / build (stm32h7) (push) Has been cancelled
test Linux SBC / build (bbbmini, armhf) (push) Has been cancelled
test Linux SBC / build (bebop, armhf) (push) Has been cancelled
test Linux SBC / build (bhat, armhf) (push) Has been cancelled
test Linux SBC / build (canzero, armhf) (push) Has been cancelled
test Linux SBC / build (erlebrain2, armhf) (push) Has been cancelled
test Linux SBC / build (linux, base) (push) Has been cancelled
test Linux SBC / build (navigator, armhf-musl) (push) Has been cancelled
test Linux SBC / build (navigator64, aarch64) (push) Has been cancelled
test Linux SBC / build (navio, armhf) (push) Has been cancelled
test Linux SBC / build (navio2, armhf) (push) Has been cancelled
test Linux SBC / build (pxf, armhf) (push) Has been cancelled
test Linux SBC / build (pxfmini, armhf) (push) Has been cancelled
test scripts / build (astyle-cleanliness) (push) Has been cancelled
test scripts / build (check_autotest_options) (push) Has been cancelled
test scripts / build (logger_metadata) (push) Has been cancelled
test scripts / build (param_parse) (push) Has been cancelled
test scripts / build (python-cleanliness) (push) Has been cancelled
test scripts / build (validate_board_list) (push) Has been cancelled
test plane / build (base) (push) Has been cancelled
test plane / build (clang) (push) Has been cancelled
test plane / autotest (sitltest-plane-tests1a) (push) Has been cancelled
test plane / autotest (sitltest-plane-tests1b) (push) Has been cancelled
test plane / autotest (sitltest-quadplane) (push) Has been cancelled
test unit tests and sitl building / build (examples, base) (push) Has been cancelled
test unit tests and sitl building / build (examples, clang) (push) Has been cancelled
test unit tests and sitl building / build (sitl, base) (push) Has been cancelled
test unit tests and sitl building / build (sitl, clang) (push) Has been cancelled
test unit tests and sitl building / build (unit-tests, base) (push) Has been cancelled
test unit tests and sitl building / build (unit-tests, clang) (push) Has been cancelled
2025-06-07 10:47:01 +01:00
Oleksiy Protas 55bdf2909f Plane: Explanation of an FS_GCS_ENABL edge case
The heartbeat failsafe only becomes active after contact with SYSID_MYGCS. Until it issues a first heartbeat, the failsafe is never triggered.
2025-06-07 10:44:17 +10:00
Peter Barker 057f96da9a Plane: add comment on when fence parameter conversion added 2025-05-20 11:59:34 +10:00
Peter Barker d5da32f1e7 ArduPlane: use enum class for AC breach action enumeration 2025-05-20 11:59:34 +10:00
rubenp02 63642b7711 Plane: Update AIRSPEED_STALL parameter description
Updated the AIRSPEED_STALL parameter description to explain its effects
on the landing final
2025-05-14 16:42:12 +01:00
co63oc 50b8551ccc ArduPlane: correct typos and mis-spellings 2025-05-04 23:36:45 +10:00
Ryan Friedman 229bcaacd5 ArduPlane: Clarify behavior with small WP_LOITER_RAD
Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com>
2025-05-01 14:01:47 +10:00
Peter Barker 2bd34dc1ca ArduPlane: tweak MAV parameter names 2025-04-07 10:58:41 +10:00
Peter Barker c40ce7d0e4 ArduPlane: add parameter conversion for MAV parameters 2025-04-07 10:58:41 +10:00
Peter Barker f7e47741bb ArduPlane: move telem_delay up into MAV_TELEM_DELAY 2025-04-07 10:58:41 +10:00
Peter Barker 2d95018568 ArduPlane: SYSID_MYGCS and enforce move up to GCS, change to MAV_MYGCS_ENFRCE 2025-04-07 10:58:41 +10:00
Peter Barker 8ec9afa5e4 ArduPlane: move streamrate parameters to GCS_MAVLINK base class 2025-04-07 10:58:41 +10:00
Peter Barker fe58c922c0 ArduPlane: create and use MAV_ parameter namespace
Move serveral parameters in
2025-04-07 10:58:41 +10:00
bnsgeyer 18a9c5bddb Plane: add system ID to quadplane
enable as an AUX switch
2025-03-21 13:01:43 +11:00
rubenp02 74127caee3 Plane: Use stall speed for roll stall prevention 2025-03-12 18:56:33 +11:00
rubenp02 cf68e52a99 Plane: Change glide slope to altitude slope
Smooth altitude changes were always referred to as "glide slopes"
despite this not being the appropriate aviation term in the case of a
climb. A better option is "altitude slope", which encompasses both
smooth climbs and descents.

Changed all references to glide slopes, except those that specifically
refer to a single kind (like those used for landings), to the more
general term. This also includes changing the GLIDE_SLOPE_MIN and
GLIDE_SLOPE_THR parameters to ALT_SLOPE_MIN and ALT_SLOPE_MAXHGT,
respectively.
2025-03-04 10:55:06 +11:00
Henry Wurzburg 89c46e3515 ArduPlane:add AUTOLAND metadata to FS_LONG_ATCN
colcon build/test / build-test (push) Waiting to run
Cygwin Build / build (push) Waiting to run
ESP32 Build / build (esp32buzz, 10) (push) Waiting to run
ESP32 Build / build (esp32s3empty, 10) (push) Waiting to run
Macos Build / build (CubeOrange) (push) Waiting to run
Macos Build / build (sitl) (push) Waiting to run
QURT Build / build (push) Waiting to run
test chibios / build (CubeOrange-ODID, 10, chibios) (push) Waiting to run
test chibios / build (CubeOrange-PPP, 10, chibios) (push) Waiting to run
test chibios / build (CubeOrange-bootloader, 10, chibios) (push) Waiting to run
test chibios / build (CubeRed-EKF2, 10, chibios) (push) Waiting to run
test chibios / build (CubeRedPrimary-bootloader, 10, chibios) (push) Waiting to run
test chibios / build (MatekF405-Wing, 10, chibios) (push) Waiting to run
test chibios / build (Pixhawk6X-PPPGW, 10, chibios) (push) Waiting to run
test chibios / build (SOHW, 10, chibios) (push) Waiting to run
test chibios / build (build-options-defaults-test, 10, chibios) (push) Waiting to run
test chibios / build (configure-all, 10, chibios) (push) Waiting to run
test chibios / build (fmuv2-plane, 10, chibios) (push) Waiting to run
test chibios / build (fmuv3, 10, chibios) (push) Waiting to run
test chibios / build (fmuv3-bootloader, 10, chibios) (push) Waiting to run
test chibios / build (iofirmware, 10, chibios) (push) Waiting to run
test chibios / build (new-check, 10, chibios) (push) Waiting to run
test chibios / build (periph-build, 10, chibios) (push) Waiting to run
test chibios / build (revo-bootloader, 10, chibios) (push) Waiting to run
test chibios / build (revo-mini, 10, chibios) (push) Waiting to run
test chibios / build (signing, 10, chibios) (push) Waiting to run
test chibios / build (stm32f7, 10, chibios) (push) Waiting to run
test chibios / build (stm32h7, 10, chibios) (push) Waiting to run
test chibios / build (stm32h7-debug, 10, chibios) (push) Waiting to run
test dds / build (sitl) (push) Waiting to run
test dds / build (stm32h7) (push) Waiting to run
test Linux SBC / build (bbbmini, armhf) (push) Waiting to run
test Linux SBC / build (bebop, armhf) (push) Waiting to run
test Linux SBC / build (bhat, armhf) (push) Waiting to run
test Linux SBC / build (canzero, armhf) (push) Waiting to run
test Linux SBC / build (erlebrain2, armhf) (push) Waiting to run
test Linux SBC / build (linux, base) (push) Waiting to run
test Linux SBC / build (navigator, armhf-musl) (push) Waiting to run
test Linux SBC / build (navigator64, aarch64) (push) Waiting to run
test Linux SBC / build (navio, armhf) (push) Waiting to run
test Linux SBC / build (navio2, armhf) (push) Waiting to run
test Linux SBC / build (pxf, armhf) (push) Waiting to run
test Linux SBC / build (pxfmini, armhf) (push) Waiting to run
test scripts / build (astyle-cleanliness) (push) Waiting to run
test scripts / build (check_autotest_options) (push) Waiting to run
test scripts / build (logger_metadata) (push) Waiting to run
test scripts / build (param_parse) (push) Waiting to run
test scripts / build (python-cleanliness) (push) Waiting to run
test scripts / build (validate_board_list) (push) Waiting to run
test plane / build (base) (push) Waiting to run
test plane / build (clang) (push) Waiting to run
test plane / autotest (sitltest-plane-tests1a) (push) Blocked by required conditions
test plane / autotest (sitltest-plane-tests1b) (push) Blocked by required conditions
test plane / autotest (sitltest-quadplane) (push) Blocked by required conditions
test unit tests and sitl building / build (sitl, base) (push) Waiting to run
test unit tests and sitl building / build (sitl, clang) (push) Waiting to run
test unit tests and sitl building / build (unit-tests, base) (push) Waiting to run
test unit tests and sitl building / build (unit-tests, clang) (push) Waiting to run
2025-02-12 11:01:23 +11:00
Henry WurzburgandIamPete1 3093532d78 ArduPlane: add climb before turn to AUTOLAND
Co-authored-by: IamPete1 <iampete@hotmail.co.uk>
2025-02-11 11:16:33 +11:00
rubenp02 a1a0fc4a70 Plane: Add fwd. throttle cutoff voltage parameter
Updated the forward throttle battery voltage compensation feature to
disable the throttle entirely when the sag-compensated voltage drops
below the new parameter FWD_THR_CUTOFF_V.

Key changes:
- Added new parameter FWD_THR_CUTOFF_V to control the voltage threshold
  for this feature. The default value of 0 matches the original behavior
  of never cutting the throttle due to low voltage.
- Modified forward throttle battery voltage compensation logic in the
  servos code to cut off the throttle in auto-throttle modes if the
  resting voltage estimate of the FWD_BAT_IDX battery is under
  FWD_THR_CUTOFF_V.
2025-02-11 10:53:49 +11:00
Henry Wurzburg 1774bd9ef9 ArduPlane:add missing flight mode metadata 2025-02-09 14:21:25 +00:00
Peter Barker 1ed2e54269 ArduPlane: adjust for AP_Arming file rename 2025-01-28 10:56:26 +11:00
Peter Barker fadc293867 Plane:remove stale conversion code
these lines are all present in 4.0.0.

Past this PR we won't convert PIDS correctly if someone attempts to upgrade to 4.7+ from 3.x
2025-01-14 11:46:35 +11:00
Henry Wurzburg 32f5afb22a ArduPlane: add AutoLand fixed-wing mode 2024-12-31 09:18:49 +11:00
Peter Barker edc812d7f5 ArduPlane: adjust for renaming of RC_Channel and GCS_MAVLink headers 2024-12-26 11:01:22 +11:00
Henry Wurzburg 223d683441 ArduPlane: update FS actions metadata with DO_RETURN_PATH_START 2024-12-17 09:34:49 +11:00
Iampete1 a79fcdbfcd Plane: support DO_RETURN_PATH_START misison item and command 2024-12-03 10:31:02 +11:00
Michelle Rossouw 43fdc9ce19 Plane: Added Quicktune
replaces QAUTOTUNE in default build
2024-11-27 14:07:38 +11:00
Bob Long a69b777d17 Plane: add missing AccZ bit from GCS_PID_MASK doc 2024-11-15 11:40:07 +11:00
George Zogopoulos d149150a45 Plane: Added parameter TKOFF_THR_IDLE 2024-11-13 19:32:00 +11:00
Peter Barker 2bbf1a63a7 ArduPlane: re-order initialiser lines so -Werror=reorder will work 2024-09-24 22:50:28 +10:00