This change is necessary to give the pilot the ability to switch VTOL state
even if for some reason no attitude sp are published anymore.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Extend the get_freefall_state() from MC land detector to have a VTOL-specific
one that just enables free fall detection if in rotary wing or transition mode.
This is done to prevent wrong free-fall detected warnings while doing low-G maneuvers
(parabolic flights). Land detection is anyway disabled in FW flight for VTOL so
no logic change.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Use yawrate setpoint from weather vane only if velocity setpoint is small
(smaller than half the cruise velocity)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
- remove gloabl variable and instead give back forward_thrust from function
- give back increased vertical thrust from fct thrust_compensation_for_tilt()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
-move pusher assist functionality into vtol_type class and adapt it to also
work for tiltrotor VTOLs (pitch rotors down to accelerate forward)
-for tiltrotor: compensate for lost lift due to tilt by increasing the throttle
-enable pusher / tiltassist also in altitude mode
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Prior this fix VTOL missions get rejected if they have a DO_LAND_START marker, but then do
not end with a LAND waypoint but a VTOL transition and land.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* Mavlink: subscribe to airspeed_validated instead of airspeed topic
This e.g. changes the way QGC displays the airspeed in case of an
airspeed failure (0 instead of the last valid airspeed). It will
always display the airspeed that's used currently in the control
modules.
* FW land detector: move to subscribe to airspeed_validated instead of airspeed topic
- the land detector checks further if the airspeed is NAN, in which case
it sets the airspeed to 0 (min groundspeed, vz and accel checks still
have to pass.
* Fixed-wing land detector use airspeed_vaidated: addressed review comments
- replaced ternary by conditional
- set airspeed to 0 if airspeed_validated stops publishing
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
- rename of flag in position sp: from allow_weather_vane to disable_weather_vane
- flag now doesn't have to be set for all auto modes, meaning that weather vane is also active outside of mission
- flag is set before front transition to align with wp, and unset after alignment is over
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* FW attitude controller, FW position controller and VTOL attitude controller subscribe to airspeed_validated topic
* add possibility to switch off the airspeed valid checks
* remove airspeed valid checks from commander
* clean up of VTOL transition logic
* Airspeed Selector: remove dynamic allocation of airspeed validators (depending on number of connected sensors) but do it statically for the maximum number allowed. Check for number of connected sensors not only during start up, but always when vehicle is disarmed.
* Airspeed Selector: change work queue from lp to att_pos_ctrl as this module is safety-critical
* add airspeed selector to px4_fmu-v2 defaults
This new airspeed module does:
-runns an airspeed validator for every airspeed sensor present, which checks measurement validity and estimates an airspeed scale
-selects another airspeed sensor if for the current one a failure is detected
-estimates airspeed with groundspeed-windspeed if no valid airspeed sensor is present
-outputs airspeed_validated topic
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
This validator takes measurements from a single airspeed sensor and:
-checks validity of measurement
-can estimate an airspeed scale factor (estimation enabled with parameter setting) to accout for errors in airspeed due due placement of sensor
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Updated the babyshark default parameters for improved flight performance,
as well as two MPC parameters in vtol_defaults for smoother hovering with VTOLS"
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>