Commit Graph

28 Commits

Author SHA1 Message Date
Iampete1 a79fcdbfcd Plane: support DO_RETURN_PATH_START misison item and command 2024-12-03 10:31:02 +11:00
Peter Barker 2632e5b8a6 Plane: use enum class for VTOL approach stage
also namespace it with the state variable which uses this type
2024-08-07 17:52:25 +10:00
Bob Long 5824a12b2e Plane: remove altitude_error_cm variable
This variable updated unpredictably, and it was easy to introduce bugs.
It was not used in many places and is clearer to calculate the error
directly when needed.
2024-05-07 10:52:43 +10:00
Peter Barker 39c87c0b1b Plane: call update_loiter before determining whether to fly home or not
we are calling "reached_loiter_target" as part of our checks as to whether to fly home or not.

We need to call update_loiter so the L1 controller can update its internal state for the new waypoint which do_RTL has set.  Depending on location (but typically), that will mean that L1's reached_loiter_target() will then return false, so we fly home.

This bug was affected by f8d7be5e43 .  Any sort of altitude error greater than 10m would delay us entering the landing sequence, allowing the L1 controller to update its state.
2024-04-10 17:44:25 +10:00
Iampete1 afec757c33 Plane: pass current location to mission landing methods 2024-04-02 11:11:59 +11:00
Andrew Tridgell 8151647e04 ArduPlane: convert ALT_HOLD_RTL and ALT_HOLD_FBWCM 2024-01-23 15:00:30 +11:00
Henry Wurzburg b4c79c9105 Plane:add FlightOptions helper 2023-04-26 17:35:25 +10:00
Iampete1 a63a32d6f3 Plane: QRTL: combine threshold radius for QRTL and RTL 2023-01-31 10:57:21 +11:00
Tom Pittenger 9440e3c544 Plane: bugfix - RTL_AUTOLAND no longer overrides loiter direction 2023-01-10 08:58:15 +11:00
Iampete1 da0927b076 Plane: Quadaplane: remove RTL navigate incorrect comment and unnedded check 2022-12-27 11:26:16 +11:00
Iampete1 b957ef1289 Plane: QRTL if RTL is expecting to VTOL land and close home with VTOL motors active 2022-12-13 10:32:32 +11:00
Andrew Tridgell 86c2404654 Plane: increased safety of guided -> auto quadplane takeoff
when we arm in guided mode then enter a special guided_wait_takeoff
state. We keep motors suppressed until one of the following happens

  1) disarm
  2) guided takeoff command
  3) change to AUTO with a takeoff waypoint as first nav waypoint
  4) change to another mode

while in this state we don't go to throttle unlimited, and will refuse
a change to AUTO mode if the first waypoint is not a takeoff. If we
try to switch to RTL then we will instead use QLAND

This state is needed to cope with the takeoff sequence used by QGC on
common controllers such as the MX16, which do this on a "takeoff"
swipe:

  - changes mode to GUIDED
  - arms
  - changes mode to AUTO
2022-05-18 06:43:16 +10:00
Andrew Tridgell 680162cef0 Plane: added a value for RTL_AUTOLAND to disable arming check
set RTL_AUTOLAND=3 to get go-around but not RTL DO_LAND_START usage
2022-03-23 20:22:58 +11:00
Peter Barker 3d34e061fe ArduPlane: add and use HAL_QUADPLANE_ENABLED 2021-09-14 11:23:18 +10:00
Hwurzburg 4f48233b43 ArduPlane: add QRTL always as Q_RTL_MODE option 2021-06-14 09:08:20 +10:00
Andrew Tridgell 3bb840f794 Plane: implement slow descent in QRTL approach
this approaches in QRTL at ALT_HOLD_RTL alt, then descends to
Q_RTL_ALT close to the destination
2021-06-05 13:05:30 +10:00
Iampete1 e81dc36ed6 Plane: add option do do a VTOL approach RTL 2021-03-29 11:29:12 +11:00
Stavros Korokithakis 29043d62e9 Add FLIGHT_OPTION to climb before RTL 2021-03-16 11:58:47 +11:00
Iampete1 69275582fa QuadPlane: fix loiter to RTL instant QRTL switch 2021-03-03 15:07:22 +11:00
Peter Barker 1b74058842 Plane: recalculate glide slope after achieving rtl.done_climb 2021-02-13 19:34:52 +11:00
Iampete1 e600df680e Plane: instantly switch from RTL to QRTL if within radius 2021-02-03 18:53:54 +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
Samuel Tabor 836be4b4b4 Plane: Remove _navigate indirection in Mode. 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
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
Tom Pittenger 0270c57530 Plane: massive refactor and creation of Mode class 2019-04-02 16:28:52 +11:00