Browse Source

MulticopterPositionControl: allow offboard takeoff also when not landed

main
Matthias Grob 3 years ago
parent
commit
843c814fb8
  1. 6
      src/modules/mc_pos_control/MulticopterPositionControl.cpp

6
src/modules/mc_pos_control/MulticopterPositionControl.cpp

@ -419,8 +419,8 @@ void MulticopterPositionControl::Run()
if (_vehicle_control_mode.flag_control_offboard_enabled) { if (_vehicle_control_mode.flag_control_offboard_enabled) {
bool want_takeoff = _vehicle_control_mode.flag_armed && _vehicle_land_detected.landed const bool want_takeoff = _vehicle_control_mode.flag_armed
&& (vehicle_local_position.timestamp_sample < _setpoint.timestamp + 1_s); && (vehicle_local_position.timestamp_sample < _setpoint.timestamp + 1_s);
if (want_takeoff && PX4_ISFINITE(_setpoint.z) if (want_takeoff && PX4_ISFINITE(_setpoint.z)
&& (_setpoint.z < states.position(2))) { && (_setpoint.z < states.position(2))) {
@ -536,7 +536,7 @@ void MulticopterPositionControl::Run()
_vehicle_attitude_setpoint_pub.publish(attitude_setpoint); _vehicle_attitude_setpoint_pub.publish(attitude_setpoint);
} else { } else {
// an update is necessary here because otherwise the takeoff state doesn't get skiped with non-altitude-controlled modes // an update is necessary here because otherwise the takeoff state doesn't get skipped with non-altitude-controlled modes
_takeoff.updateTakeoffState(_vehicle_control_mode.flag_armed, _vehicle_land_detected.landed, false, 10.f, true, _takeoff.updateTakeoffState(_vehicle_control_mode.flag_armed, _vehicle_land_detected.landed, false, 10.f, true,
vehicle_local_position.timestamp_sample); vehicle_local_position.timestamp_sample);
} }

Loading…
Cancel
Save