MissionBase did not initialize its mission data, thus could enter an
infinite loop in updateDatamanCache() if the initMission() failed to
read the mission off, for example, due to the SDCard storage task taking
longer than the timeout to respond.
This change constrains the loading loop and resets the mission data even
if the data write failed.
The setpoint.yaw can be NAN, and this made the calculated land point NAN
as well. Looking at the current yaw is anyway a better way to approximate
the course over ground that fundamentally should be used.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
ADd a new misison feasiblity checker option to check if a proper landing approach is defined when in air. There must be at least a mission landing or a VTOL approach defined in order for the mission to be accepted. Else, use the same logic as in MIS_TKO_LAND_REQ=4
* publish the global groundtruth from the navsat callback and rearrange the local groundtruth as the altitude reference now has a dependency on the global groundtruth being initialized
---------
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
-remove RTL_HDG_MD
-only set heading setpoint in Navigator::RTL once above landing point,
or when RTL is triggered close to it
-never set a heading during RTL if weather vane is enabled
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
After smoothing the linera velocity setpoint, the EKF has trouble initializing, becuase the acceleration is too smooth, to combat this issue, there is a 1 second delay when initializing the mission mode
Instead of directly setting the attitude setpoint for usage inside the same module
only publish it to the uorb topic, which is subscribed to in the same module.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* battery: make time remaining estimation dependent on level flight characteristis for FW
* battery: fix that FW flight is also correctly detected when vehicle_status is not updated
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* FixedwingPositionControl: Move constant to header file
* flight phase estimation: use tecs height rate reference to check for level flight
---------
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
When the CPU load monitor is started while already running, then the
idle thread last_times[0] is reset to the last 1 second, rather than
since when the CPU load monitor was last started. The remaining threads
are not impacted, since their last_times[i] is reset to zero here.
This results in the idle thread having a lower than real CPU load, with
the remaining CPU time being wrongly attributed as scheduler load.