Commit Graph
13 Commits
Author SHA1 Message Date
Roman Bapst b765769f50 Navigator: Set altitude acceptance radius to infinity when moving to land point after transition (#24115)
* Navigator: set alt acceptance radius to infinity
for land waypoint after backtransition -> avoid
vehicle with depleted battery from not reaching the alt
setpoint and getting stuck

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-12-20 09:21:32 +01:00
3b0dac6840 RTL: fix RTL time estimation (#23807)
* 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>
2024-10-24 17:22:19 +02:00
Roman BapstandAlvaro Fernandez c94c1ce4d2 Navigator: Support straight line mission landings (#23576)
* introduced altitude acceptance radius in position setpoint for fixed
wing guidance
- allows navigator to explicitly set the altitude acceptance radius
- needed for staright line landing support

* added ignore_alt_acceptance to position setpoint message to allow guidance
logic to ignore altitude error on waypoint
- can be useful to prevent loitering at a waypoint within a mission landing sequence

* only set altitude acceptance radius to infinity for a waypoint inside a mission landing
for fixed wing vehicles

* navigator: return altitude acceptance radius from triplet if it's valid

* FixedWingPositionControl: check if alt acceptance radius provided in position setpoint
is larger 0

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Alvaro Fernandez <alvaro@auterion.com>
2024-09-10 17:44:24 +02:00
Silvan Fuhrer b74e46b1ac SITL airframes/Navigator: remvoe reference to removed param MIS_LTRMIN_ALT
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-30 17:50:54 +02:00
Silvan Fuhrer 7fe5ee64fe rtl_direct: fix on_inactive()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-12 11:27:49 +01:00
Silvan Fuhrer 86c074378f rtl_direct_mission_land: fix abs/rel usage of item.altitude
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-11 14:04:02 +01:00
Konrad 91d1342f20 rtl_direct_mission: rtl_estimate for fixedwing land is diagonal 2024-03-11 14:04:02 +01:00
Konrad fde71cd15e rtl_direct_mission_land: add time estimation for RTL mission land 2024-03-11 14:04:02 +01:00
Konrad dfa56d474a mission: renaming dataman_id to mission_dataman_id 2024-01-30 11:25:37 -05:00
Matthias Grob 9bed8f48c7 Remove LNDMC_ALT_MAX
This should be replaced with the maximum geofence
altitude GF_MAX_VER_DIST. I'm not aware anyone is using
this functionality as is.
2023-11-20 14:52:35 +01:00
Konrad c1214c847f rtl+mission: remove do_need_move_to_land and handleLanding duplicated code to reduce flash 2023-10-31 14:16:02 +01:00
Konrad 5c021d8fa4 RTL: Keep only the selected RTL type in memory. 2023-09-29 14:25:03 +02:00
Konrad 007ed11bbe Mission+RTL: Refactoring mission and RTL to keep them separate. RTL does all its mission related computation in its own class.
Dataman: Add write function to dataman cache.

RTL and mission have a new common base class mission_base. Both inherit from them and mission, RTL mission, and rtl reverse mission inherit from them and implement their desired functionalities. This simplifies the logic in mission as well as make the logic in rtl mission reverse and mission more readable.
Rtl mission reverse now functional again for VTOL flying back the mission and transitioning to MC at the home position.
Dataman cache has new write functionality to write to dataman while updating write item in its cache if necessary.
Dataman cache is now only updated when the respective module is active. Leads to a higher computation time once on activation, but decreases unnecessary cache updates when inactive.
2023-09-29 14:25:03 +02:00