Browse Source

FlightTaskManualAltitude: valid altitude/climb-rate is required

sbg
Dennis Mannhart 7 years ago committed by Lorenz Meier
parent
commit
72a213aff7
  1. 10
      src/lib/FlightTasks/tasks/FlightTaskManualAltitude.cpp
  2. 1
      src/lib/FlightTasks/tasks/FlightTaskManualAltitude.hpp

10
src/lib/FlightTasks/tasks/FlightTaskManualAltitude.cpp

@ -40,6 +40,13 @@
using namespace matrix; using namespace matrix;
bool FlightTaskManualAltitude::updateInitialize()
{
bool ret = FlightTaskManualStabilized::updateInitialize();
// in addition to stabilized require valid position and velocity in D-direction
return ret && PX4_ISFINITE(_position(2)) && PX4_ISFINITE(_velocity(2));
}
bool FlightTaskManualAltitude::activate() bool FlightTaskManualAltitude::activate()
{ {
bool ret = FlightTaskManualStabilized::activate(); bool ret = FlightTaskManualStabilized::activate();
@ -47,9 +54,6 @@ bool FlightTaskManualAltitude::activate()
_position_setpoint(2) = _position(2); _position_setpoint(2) = _position(2);
_velocity_setpoint(2) = 0.0f; _velocity_setpoint(2) = 0.0f;
_setDefaultConstraints(); _setDefaultConstraints();
// altitude-mode requires to have a valid position and velocity state in D-direction
ret = ret && PX4_ISFINITE(_position(2)) && PX4_ISFINITE(_velocity(2));
return ret; return ret;
} }

1
src/lib/FlightTasks/tasks/FlightTaskManualAltitude.hpp

@ -47,6 +47,7 @@ public:
FlightTaskManualAltitude() = default; FlightTaskManualAltitude() = default;
virtual ~FlightTaskManualAltitude() = default; virtual ~FlightTaskManualAltitude() = default;
bool activate() override; bool activate() override;
bool updateInitialize() override;
protected: protected:
void _updateSetpoints() override; /**< updates all setpoints */ void _updateSetpoints() override; /**< updates all setpoints */

Loading…
Cancel
Save