FlightTask manual acc: handle ekf position reset properly

This commit is contained in:
bresch
2025-07-29 14:29:19 +02:00
committed by Mathieu Bresciani
parent b740a43b3d
commit 61e741e7d0
3 changed files with 7 additions and 1 deletions
@@ -106,7 +106,7 @@ bool FlightTaskManualAcceleration::update()
void FlightTaskManualAcceleration::_ekfResetHandlerPositionXY(const matrix::Vector2f &delta_xy)
{
_stick_acceleration_xy.resetPosition();
_stick_acceleration_xy.addToPositionSetpoint(delta_xy);
}
void FlightTaskManualAcceleration::_ekfResetHandlerVelocityXY(const matrix::Vector2f &delta_vxy)
@@ -55,6 +55,11 @@ void StickAccelerationXY::resetPosition(const matrix::Vector2f &position)
_position_setpoint = position;
}
void StickAccelerationXY::addToPositionSetpoint(const matrix::Vector2f &delta)
{
_position_setpoint += delta;
}
void StickAccelerationXY::resetVelocity(const matrix::Vector2f &velocity)
{
if (velocity.isAllFinite()) {
@@ -56,6 +56,7 @@ public:
void resetPosition();
void resetPosition(const matrix::Vector2f &position);
void addToPositionSetpoint(const matrix::Vector2f &delta);
void resetVelocity(const matrix::Vector2f &velocity);
void resetAcceleration(const matrix::Vector2f &acceleration);
void generateSetpoints(matrix::Vector2f stick_xy, const float yaw, const float yaw_sp, const matrix::Vector3f &pos,