Commit Graph

68 Commits

Author SHA1 Message Date
George Zogopoulos 9a5f81aa95 Plane: Added check for takeoff level-off timeout
When an airspeed sensor is not used, during a takeoff, the pitch angle
is asymptotically driven to 0 as the takeoff altitude is approached.
Some airplanes will then stop climbing and fail to reach altitude.

To prevent an indefinite wait for the takeoff altitude to be reached, a
dedicated level-off timeout has been introduced.
2024-12-04 18:07:30 +11:00
George Zogopoulos 6ce6ef8fff Plane: Takeoff improvements
- TAKEOFF and AUTO flight modes now should have identical takeoff
- Prevent behaviour switching past climb altitude in TAKEOFF mode.
- Refactor set_pitch_min/max methods.
  Max was already there, now renamed.
  Min is newly introduced.
  behaviour.
- Remove enforcement of min takeoff throttle logic from servos.cpp.
  It is now handled only by takeoff.cpp.
- Take TKOFF_LVL_ALT into consideration in AUTO as well.
- Fixed pitch setpoint when TKOFF_ROTATE_SPD>0.
- Roll navigation in mode TAKEOFF during climb should now work again.
- Now the TAKEOFF loiter waypoint is set by the bearing of the
aircraft while on TKOFF_LVL_ALT, as in the last stable release, instead
of TKOFF_ALT.
- Using TRIM_THROTTLE in takeoffs, when TKOFF_THR_MIN==0
2024-10-02 17:09:07 +10:00
Peter Barker 77067edd91 Plane: correct the ability to disable the takeoff atititude checks 2024-09-24 11:50:17 +10:00
George Zogopoulos ae6f41f414 Plane: Fixed unhandled TKOFF_THR_MAX=0 case 2024-07-31 18:23:40 +10:00
George Zogopoulos c213ee2ef8 Plane: Converted paramter TKOFF_MODE into TKOFF_OPTIONS 2024-07-29 15:50:32 +10:00
George Zogopoulos 773c91cec1 ArduPlane: Added minimum throttle during TAKEOFF mode
This is a rework so that servos.cpp is responsible for setting the
throttle limits under more circumstances and always notifies TECS when
it does so.

Additionally, the TAKEOFF mode has been improved with a new parameters
TKOFF_MODE and TKOFF_THR_MIN that extend the throttle behaviour.
2024-07-29 15:50:32 +10:00
Henry Wurzburg 3973c28f15 Plane:add TKOFF_TIMEOUT to MODE TAKEOFF 2024-01-30 11:02:53 +11:00
Andrew Tridgell a4302e5fb8 Plane: tidy 2 comments 2024-01-23 15:00:30 +11:00
Andrew Tridgell 94edcc4654 ArduPlane: change TRIM_ARSPD_CM to AIRSPEED_CRUISE 2024-01-23 15:00:30 +11:00
Iampete1 a6206bde3c Plane: move to new `using_airspeed_sensor` ahrs method 2023-10-31 10:39:21 +11:00
Mykhailo Kuznietsov b7c040e8bc ArduPlane: Fix some typos
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
Henry Wurzburg e1d91e3007 Plane:add taildrag holdown to TAKEOFF mode 2023-09-11 09:16:02 +10:00
Henry Wurzburg b4c79c9105 Plane:add FlightOptions helper 2023-04-26 17:35:25 +10:00
Henry Wurzburg 1415418d6e Plane:Takeoff on rudder arm only after return to neutral 2023-04-25 09:28:45 +10:00
Tom Pittenger 96ee3651d2 Plane: Auto takeoff roll-limits to use TKOFF_LVL_ALT 2023-03-02 09:24:13 +11:00
Tom Pittenger 7a6f398668 Plane: add TKOFF_GND_PITCH 2023-02-23 11:12:39 +11:00
Andrew Tridgell a57e6455ab Plane: use is_armed_and_safety_off()
this no longer sets soft_armed false when safety is on, and instead
uses is_armed_and_safety_off() when appropriate
2023-02-21 07:44:09 +11:00
Peter Barker 0cf56ea320 ArduPlane: make and use AP_LANDINGGEAR_ENABLED 2022-12-14 18:30:23 +11:00
Peter Barker de4dda2d17 ArduPlane: change namespace of MultiCopter and FixedWing params
this stops the libraries knowing anything about AP_Vehicle
2022-11-09 19:04:37 +11:00
Iampete1 b9d240460b Plane: remove SpdHgt and use TECS direct 2021-11-13 08:05:39 +11:00
Peter Barker 3d34e061fe ArduPlane: add and use HAL_QUADPLANE_ENABLED 2021-09-14 11:23:18 +10:00
Iampete1 0eab3faf32 Plane: use new tailsiter class 2021-07-27 09:08:34 +10:00
Hwurzburg 0eb5369543 Plane: allow max auto pitch in hand launch takeoffs 2021-03-23 09:56:22 +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 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 4e648734fa Plane: Fix takeoff pitch for hand launch 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 82f68464d4 Plane: Don't lower nose when hand launching 2021-03-05 12:10:01 +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
Tom Pittenger 4a35159cba Plane: reset baro_takeoff_alt while disarmed 2020-12-09 18:17:53 +11:00
Andrew Tridgell 52f61c7ac1 Plane: make FENCE_AUTOENABLE an AP_Enum 2020-12-02 18:33:07 +11:00
Paul Riseborough e5bd99a66f ArduPlane: Signal EKF to expect takeoff start to improve GSF yaw estimate 2020-07-07 15:33:58 +10: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
Michael du Breuil 562b155f63 Plane: Remove unused geofence enable reason 2019-09-23 17:31:33 -06:00
Peter Barker b12f620233 Plane: fix format string warnings 2019-09-02 21:00:59 +10:00
Tom Pittenger 0270c57530 Plane: massive refactor and creation of Mode class 2019-04-02 16:28:52 +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
Andrew Tridgell 432d786f82 Plane: pass height to landing gear update 2018-11-10 21:24:19 +11:00
Andrew Tridgell 5ce418b4ea Plane: added FLIGHT_OPTIONS bit for disabling pitch up check in takeoff
some takeoff procedures use high pitch angles
2018-10-31 18:53:36 +11: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
Andrew Tridgell 4124d371c9 Plane: fixed minacc and delay for launch
See
https://discuss.ardupilot.org/t/tkoff-thr-minacc-and-tkoff-thr-delay-doesnt-work-together/19928
2017-08-29 07:35:04 +10:00
Peter Barker 5a8f01c19c Plane: use send_text method on the GCS singleton 2017-07-09 17:17:29 -04:00
André Kjellstrup 21b8d3cb3d Plane: Removed scary autotakeoff message.
This message does not provide anything useful, but is rather scary to
get moments before launch.
If it's somehow meant to provide useful information, or an action "Timer
interrupted AUTO" should be replaced by something else.
2017-05-04 22:37:32 -07:00
Andrew Tridgell 5a57aafb98 Plane: reduce pitch demand on takeoff on roll error 2017-04-28 16:34:33 +10:00
Andrew Tridgell c787f4c56f Plane: initial support for tailsitter transitions 2017-02-18 17:26:43 +11:00
Andrew Tridgell 4e4f5a7ac9 Plane: allow tailsitters to takeoff with any attitude 2017-02-18 17:26:43 +11:00
Andrew Tridgell 287614b415 Plane: fixed auto-takeoff throttle trigger for inverted launch
quite an unusual setup, but has been done :-)
2017-02-01 16:31:49 -08:00
Tom Pittenger c286ceba43 Plane: move enum FlightStages to AP_Vehicle::FixedWing 2016-12-30 23:50:03 -08:00