feat(navigator): support MAV_FRAME_GLOBAL_INT and MAV_FRAME_GLOBAL_RELATIVE_ALT_INT for RTL safe points (#26901)

* navigator:  support MAV_FRAME_GLOBAL_INT and MAV_FRAME_GLOBAL_RELATIVE_ALT_INT for RTL safe points

* Fix descriptive comment

* refactor(rtl): consolidate frame cases that are duplicate

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
This commit is contained in:
Anil Kircaliali 2026-03-30 10:33:46 -07:00 committed by GitHub
parent 45659d36aa
commit d4e60cb1dc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -558,12 +558,14 @@ void RTL::setSafepointAsDestination(PositionYawSetpoint &rtl_position, const mis
// TODO: handle all possible mission_safe_point.frame cases
switch (mission_safe_point.frame) {
case 0: // MAV_FRAME_GLOBAL
case 5: // MAV_FRAME_GLOBAL_INT
rtl_position.lat = mission_safe_point.lat;
rtl_position.lon = mission_safe_point.lon;
rtl_position.alt = mission_safe_point.altitude;
rtl_position.alt = mission_safe_point.altitude; // alt of safe point is relative to MSL
break;
case 3: // MAV_FRAME_GLOBAL_RELATIVE_ALT
case 6: // MAV_FRAME_GLOBAL_RELATIVE_ALT_INT
rtl_position.lat = mission_safe_point.lat;
rtl_position.lon = mission_safe_point.lon;
rtl_position.alt = mission_safe_point.altitude + _home_pos_sub.get().alt; // alt of safe point is rel to home