In AHRS Mode, split the single message to an IMU packet and an AHRS packet; in EKF Mode, split the two messages into an IMU message, an EKF packet, and a GNSS packet.
Simplify message header definition to consolidate and eliminate the need for static asserts
Update healthy logic and use to represent new packet structure
Replace EAH3 message with messages per-packet
Add Ypr as configured output in the EKF message
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.
These concern the TAKEOFF flight stage and address #27147.
* Logging metadata fixes
* Disabled continuous TECS reset during takeoff
* Fixed bug in reached_speed_takeoff calculation
* Limited SPDWEIGHT=2 to only first part of takeoff climb
* _post_TO_hgt_offset set to constant
* Takeoff I-gain now defaults to 0 and is used
* Use at least TRIM_THROTTLE during the climb
* Updated description of TECS_TKOFF_IGAIN with new behaviour
* Forced max throttle while below TKOFF_LVL_ALT
* Added throttle constraints in no-airspeed mode
Additionally, set_min_throttle() has been created, that allows one to
set the minimum TECS throttle for the next update_pitch_throttle() loop.
Additionally, the throttle limits system has been reworked. TECS will
receive external throttle limits from Plane and will always take them
into account and respect them.
Autotests for takeoffs have been added for Plane, covering AUTO and
TAKEOFF mode takeoffs.
An auxiliary `set_servo` method has been added to `vehicle_test_suite.py`.
autotest: tidy PosHoldTakeoff heli test
autotest: tidy StabilizeTakeoff heli test
autotest: tidy SplineWaypoint heli test
autotest: tidy ManAutoRotation heli test
autotest: tidy AirspeedDrivers heli test
autotest: tidy PIDNotches heli test
autotest: clean MotorVibration test for new infrastructure
autotest: clean VisionPosition test for new infrastructure
autotest: clean MotorFail test for new infrastructure
autotest: clean OpticalFlowLimits test for new infrastructure
autotest: tidy OpticalFlow test for new infrastructure
autotest: tidy SetModeViaModeSwitch test for new infrastructure
autotest: tidy SetModesViaAuxSwitch test for new infrastructure
autotest: tidy SplineLastWaypoint test for new infrastructure
autotest: tidy PIDNotches test for new infrastructure
autotest: tidy ThrottleGainBoost test for new infrastructure
autotest: tidy PrecisionLoiterCompanion test for new infrastructure
autotest: tidy BeaconPosition test for new infrastructure