mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-12 11:13:33 +08:00
Change to work more like mission.cpp
This commit is contained in:
@@ -122,6 +122,7 @@ void RtlDirectMissionLand::setActiveMissionItems()
|
||||
{
|
||||
WorkItemType new_work_item_type{WorkItemType::WORK_ITEM_TYPE_DEFAULT};
|
||||
position_setpoint_triplet_s *pos_sp_triplet = _navigator->get_position_setpoint_triplet();
|
||||
const position_setpoint_s current_setpoint_copy = pos_sp_triplet->current;
|
||||
|
||||
// Climb to altitude
|
||||
if (_needs_climbing && _work_item_type == WorkItemType::WORK_ITEM_TYPE_DEFAULT) {
|
||||
@@ -205,7 +206,6 @@ void RtlDirectMissionLand::setActiveMissionItems()
|
||||
_mission_item.time_inside = 0.0f;
|
||||
}
|
||||
|
||||
pos_sp_triplet->previous = pos_sp_triplet->current;
|
||||
|
||||
if (num_found_items > 0) {
|
||||
mission_item_to_position_setpoint(next_mission_items[0u], &pos_sp_triplet->next);
|
||||
@@ -213,6 +213,12 @@ void RtlDirectMissionLand::setActiveMissionItems()
|
||||
|
||||
mission_item_to_position_setpoint(_mission_item, &pos_sp_triplet->current);
|
||||
|
||||
// Only set the previous position item if the current one really changed
|
||||
if ((_work_item_type != WorkItemType::WORK_ITEM_TYPE_MOVE_TO_LAND) &&
|
||||
!position_setpoint_equal(&pos_sp_triplet->current, ¤t_setpoint_copy)) {
|
||||
pos_sp_triplet->previous = current_setpoint_copy;
|
||||
}
|
||||
|
||||
// prevent lateral guidance from loitering at a waypoint as part of a mission landing if the altitude
|
||||
// is not achieved.
|
||||
const bool fw_on_mission_landing = _vehicle_status_sub.get().vehicle_type == vehicle_status_s::VEHICLE_TYPE_FIXED_WING
|
||||
|
||||
Reference in New Issue
Block a user