We currently fuse 0 as airspeed rate measurement, and thus simply low-pass
filter the airspeed measurements. Testing has shown that the current default
on the airspeed rate measurement noise is set to low, and thus the airspeed
mesurement is filtered too much.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
A VTOL plane in MC mode has no yaw setpoint during takeoff because of
weather-vane. To align for the front transition, the yaw target jumps
and caused a step in the controller, making it reach saturation.
With this commit, the previous yaw setpoint is set to the current yaw
when no yaw setpoint is sent in order to create a smooth yaw trajectory
starting at the current orientation when yaw target is suddenly finite.
The yawspeed filter also now contains the yaw speed instead of dyaw in
order to prevent chattering due to dt jitter.
The API is cleaner if the control_data is const reference and the device
compid is an explicit output argument.
Signed-off-by: Julian Oes <julian@oes.ch>
The resets in the modes (eg Loiter mode) are not active yet, so manually
set rep->current.cruising_speed = -1.f if not already in the same flight mode.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
It turns out that I had omitted implementing the gimbal_device_id which
is the component ID of the gimbal device that the gimbal manager (in
this case PX4) is responsible for.
Signed-off-by: Julian Oes <julian@oes.ch>
Once passed the transition and in FW mode, it takes some ms unitl the FW att sp is updated
by the FW att controller. During this time the last published attitude sp is kept bein used,
which is the one that was published during transition. So let's fill the thrust[0] of it.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
This adds the ability to manually set who has primary control over a
gimbal and also adds printing it as part of the status.
This is helpful, especially while working on the QGC gimbal v2
implementation.
Signed-off-by: Julian Oes <julian@oes.ch>
A default of 10s makes more sense compared to the old 4s, as this is only the
max time of a back transition and it's also decleared completed if the
speed drops below the hover cruising speed (MPC_XY_CRUISE).
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
with the goal to make it more clear and the error only appear when
armed but every time the running task doesn't actually match
the mapping inside the start_flight_task() function.
* Navigator: on_mission_landing() only can return true if currently in mission mode
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* RTL: reset RTL state when not in RTL nav_state
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* Navigator: fix mission vs. normal RTL
- remove extra state _should_engange_mission_for_landing from rtl and have
this logic outside of RTL where Navigator decides on running mission RTL or normal RTL
- fix logic in Navigator to decide mission RTL vs normal RTL
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* Mission: land_start(): fix decision if already on mission landing
Simply checking landing() is not enough, as that is not reset until
set_current_mission_index(get_land_start_index()) later in the function.
Instead ask Naviator about it (on_mission_landing()).
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* Navigator: only update _shouldEngangeMissionForLanding once, to not set it to false after VTOL backtansition
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
---------
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>