Skip to content

Commit

Permalink
implemented feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
Claudio-Chies committed Aug 16, 2024
1 parent 20f6666 commit a65aa38
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
6 changes: 3 additions & 3 deletions src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -247,12 +247,12 @@ void FlightTaskAuto::_prepareLandSetpoints()
if (_type_previous != WaypointType::land) {
// initialize yaw and xy-position
_land_heading = _yaw_setpoint;
_stick_acceleration_xy.resetPosition(Vector2f(_triplet_target(0), _triplet_target(1)));
_initial_land_position = Vector3f(_triplet_target(0), _triplet_target(1), NAN);
_stick_acceleration_xy.resetPosition(Vector2f(_target(0), _target(1)));
_initial_land_position = Vector3f(_target(0), _target(1), NAN);
}

// Update xy-position in case of landing position changes (etc. precision landing)
_land_position = Vector3f(_triplet_target(0), _triplet_target(1), NAN);
_land_position = Vector3f(_target(0), _target(1), NAN);

// User input assisted landing
if (_param_mpc_land_rc_help.get() && _sticks.checkAndUpdateStickInputs()) {
Expand Down
16 changes: 12 additions & 4 deletions src/modules/navigator/land.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,18 @@ Land::on_activation()

/* convert mission item to current setpoint */
struct position_setpoint_triplet_s *pos_sp_triplet = _navigator->get_position_setpoint_triplet();
pos_sp_triplet->previous.valid = false;
// set current mission_item so that we can breake before reaching the landing waypoint
_navigator->calculate_breaking_stop(_mission_item.lat, _mission_item.lon);
mission_item_to_position_setpoint(_mission_item, &pos_sp_triplet->current);

if (_navigator->get_vstatus()->vehicle_type == vehicle_status_s::VEHICLE_TYPE_FIXED_WING) {
mission_item_to_position_setpoint(_mission_item, &pos_sp_triplet->current);
pos_sp_triplet->previous.valid = false;

} else {
// set current mission_item so that we can break before reaching the landing waypoint
_navigator->calculate_breaking_stop(_mission_item.lat, _mission_item.lon);
mission_item_to_position_setpoint(_mission_item, &pos_sp_triplet->current);
pos_sp_triplet->previous = pos_sp_triplet->current; // avoid getting into offtrack mode.
}

pos_sp_triplet->next.valid = false;

_navigator->set_position_setpoint_triplet_updated();
Expand Down

0 comments on commit a65aa38

Please sign in to comment.