add RunwayControl messge to pass wheel steering controls to wheel controller
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Runway takeoff: specify that RWTO_TKOFF is directly applied during takeoff
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
msg/RateCtrlStatus: remove unused wheel_rate_integ field
The wheel rate controller is not run in the moduels that are now
running the MC/FW rate controllers, so thsi field canot be filled.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
wheel rate controller: use speed scaler quadratically on integrator
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
wheel yaw controller: use a time constant of 0.1
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
FW Attitude Controller: lock heading setpoint for wheels to initial heading
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Params that are used by FW Mode Manager
- FW NPFG: NPFG params, should be renamed to FW Lateral Control once moved to the lat/lon controller
- FW Auto Takeoff
- FW Auto Landing
Params used by Fw Lat/Long Controller:
- FW Lateral Control
- FW Longitudinal Control
Params used by both:
- FW General
Params used by Performance model:
- FW Performance (could be moerged with FW General?)
Signed-off-by: Silvan <silvan@auterion.com>
- only use data from airspeed_validated topic if source is SENSOR
- add 1s timeout (set to NAN if older)
- use FW_USE_AIRSPD consitently (treat the same as CAS=NAN)
Signed-off-by: Silvan <silvan@auterion.com>
The rotational speed threshold on fixed-wing vehicles is triggering easily
if the plane is lifted prior to takeoff (hand-launch), and can cause issues
for the auto takeoff state machine. Thus if either airspeed or groundspeed is valid,
it's better to rely on these for land detection, and only use the rotational
speed if they're invalid.
Signed-off-by: Silvan <silvan@auterion.com>
Signed-off-by: Silvan <silvan@auterion.com>
boards: increase max mission items for boards with >=1kb RAM to 1000
Signed-off-by: Silvan <silvan@auterion.com>
boards: increase NUM_MISSION_ITMES_SUPPORTED for SITL to 10000
Signed-off-by: Silvan <silvan@auterion.com>
Since we have SYS_DM_BACKEND, the user has to option on all boards
to store the mission on the RAM, thus thus define got obsolete.
Signed-off-by: Silvan <silvan@auterion.com>
* MissionBase: replay change speed on resume immediately if not going to previous
This fixes an issue where the speed was not correctly set at the beginning of a
survey (with first wp having a DO_CHANGE_SPEED attached) when the user paused
and resumed the mission prior to reaching the first waypoint.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* Update src/modules/navigator/mission_base.cpp
Co-authored-by: Stefano Colli <45536733+StefanoColli@users.noreply.github.com>
---------
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Stefano Colli <45536733+StefanoColli@users.noreply.github.com>
Previously, when requesting a mode switch to Position without a valid
position estimate through an RC button, the mode change to Position mode
was not rejected if COM_POSCTL_NAVL was set to 1 and instead the system
switched to Altitude mode.
If the mode request instead came in through MAVLink it was rejected.
This commit aligns the two ways of changing a flight mode.
Signed-off-by: Silvan <silvan@auterion.com>
Internal combustion engine control module.
New actuator functions and RPM based start/restart logic.
Not enabled by default.
---------
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Pernilla <pernilla@auterion.com>
Remove yaw_acceptance and altitude_acceptance_radius fields as they were only
filled by now removed avoidance controller.
Signed-off-by: Silvan <silvan@auterion.com>
We want to align the default over all vehicle types for
this param. There are still some thresholds that are
increased for FW.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* RTL Direct: fix rlt time prediction in final lanidng phase
It was previously checking if RTL was already running through
active(), which though actually is coming from the mission mode
that rtl_direct inherits from.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* RTL Direct: remove unnecessary active() check
As the method setRtlPosition() is anyway not called when RTL is active,
plus it checks the wrong thing, as it is the active() method from
the Mission mode.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* RTL Direct: remove unnecessary land_detector_sub.update()
It is already getting updated just before the .get()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* RTL time estiate: do not distinguish land from sink for MC
To avoid rtl time prediction jump when entering LAND phase due
to no correct handling of loiter altitude (LAND phase doesn't
have to start only when lower then RTL_DESCND_ALT).
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* Revert "RTL Direct: remove unnecessary active() check"
This reverts commit d5165ba902e65839e792cc13197761c7f77748f9.
* Revert "RTL Direct: fix rlt time prediction in final lanidng phase"
This reverts commit 5af7c928fbf86d560dcd35dd9aea3e38f1e4c735.
* RTL: Make sure to call the initialilze function of the Navigator RTL modes
* RTL: use the navigator_mode run function instead of the on_xxx function directly
* RTL: Make sure that for vtol the right vehicle type is used for each RTL state
* RTL: move to loiter distance estimate should substract the loiter radius for fixed wing
* RTL: time prediction: do not assume VTOL is in FW at start of RTL
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* RTL: time estimation: fix is_in_climbing_submode
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* RTL: time estimation: subtract loiter radius from distance in rtl_direct_mission_land
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* RTL direct: poll important topics also on_inactive such that time estimate is correct
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* navigator rtl: fix setter spacing
* navigator rtl: check pointer before dereferencing
* RTL: only subract loiter radius when in FW
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
---------
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Konrad <konrad@auterion.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
Airspeed sensor failures are crucial to catch early during catapult/hand launches,
as otherwise the large airspeed error can lead to the vehicle diving. Thus the
_in_takeoff_situation flag, which tells the validator when to enable the checks,
is already set to false when !landed and launched.
For runway takeoffs the logic in unchanged.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>