FlightTaskManualAltitude: valid altitude/climb-rate is required

This commit is contained in:
Dennis Mannhart
2018-07-20 09:26:18 +02:00
committed by Lorenz Meier
parent fc4fa169df
commit 72a213aff7
2 changed files with 8 additions and 3 deletions
@@ -40,6 +40,13 @@
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 ret = FlightTaskManualStabilized::activate();
@@ -47,9 +54,6 @@ bool FlightTaskManualAltitude::activate()
_position_setpoint(2) = _position(2);
_velocity_setpoint(2) = 0.0f;
_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;
}
@@ -47,6 +47,7 @@ public:
FlightTaskManualAltitude() = default;
virtual ~FlightTaskManualAltitude() = default;
bool activate() override;
bool updateInitialize() override;
protected:
void _updateSetpoints() override; /**< updates all setpoints */