FlightTaskManualPosition: valid position/velocity in xy required

This commit is contained in:
Dennis Mannhart
2018-07-20 09:26:18 +02:00
committed by Lorenz Meier
parent 72a213aff7
commit 4713f47668
2 changed files with 11 additions and 4 deletions
@@ -41,6 +41,16 @@
using namespace matrix;
bool FlightTaskManualPosition::updateInitialize()
{
bool ret = FlightTaskManualAltitude::updateInitialize();
// require valid position / velocity in xy
return ret && PX4_ISFINITE(_position(0))
&& PX4_ISFINITE(_position(1))
&& PX4_ISFINITE(_velocity(0))
&& PX4_ISFINITE(_velocity(1));
}
bool FlightTaskManualPosition::activate()
{
@@ -59,10 +69,6 @@ bool FlightTaskManualPosition::activate()
// for position-controlled mode, we need a valid position and velocity state
// in NE-direction
ret = ret && PX4_ISFINITE(_position(0))
&& PX4_ISFINITE(_position(1))
&& PX4_ISFINITE(_velocity(0))
&& PX4_ISFINITE(_velocity(1));
return ret;
}
@@ -49,6 +49,7 @@ public:
virtual ~FlightTaskManualPosition() = default;
bool activate() override;
bool updateInitialize() override;
protected:
void _updateXYlock(); /**< applies position lock based on stick and velocity */