This changes the enums used for various VTOL states to enum classes
which makes them type-safe and should avoid shadowing.
This change was motivated by a Clang warning about shadowing of the
enum const TRANSITION_TO_FW which was declared twice, once in
vtol_type.h and once in standard.h.
This change only removes the shadowing but presumably these enums could
be cleaned up and consolidated further.
* VTOL trans: changed that now in transition for both MC and FW the corresponding (correct) attitude controller is running
* attitude setpoint for stabilized mode is generated by tailsitter.cpp
* reset yaw setpoint during transition to avoid big yaw errors after
transition back to hover
* VT_TYPE parameter: added "reboot required" metadata
Mark V19_VT_ROLLDIR @category system
Throttle down mavlink critical msg
Send 0 actuator_output for safety
VTOL: unset v1.9 roll direction safety check param for builtin airframes
* attitude and rate setpoint message: use 3D array for thrust demand
* FixedWingAttitudeControl: rework airspeed scaling
* move airspeed and scaling calculation into separate method
* if vtol in hover and airspeed disabled use minimum airspeed instead of trim airspeed
- do not set zero throttle during the entire back-transition because otherwise
we need to make the back-transition really short
- added ramping up of throttle setpoint during backtransition to avoid
step inputs
- back-transition ends after back-transition time and not when motors are fully
rotated updwards. previously the vehicle would enter hover mode at high speed
which was not handled well by the mc position controller
Signed-off-by: Roman <bapstroman@gmail.com>
- the mc pos controller will decrease throttle during the transition
and thus the vehicle will not pick up enough airspeed to complete the
transition
Signed-off-by: Roman <bapstroman@gmail.com>
- moved methods used to modify channel maximum pwm value to VtolType
class so that the can be shared by the differnt vtol types
Signed-off-by: Roman <bapstroman@gmail.com>
Since assertions lead to crashes, we need better failure handling. In all
the cases in this patch, the assert is not required.
All the ones with the task id should be replaced with the module base
class.
Ah yes, and this reduces flash space, since the ASSERT macro will expand to
a printf that contains the source file name.