Simplify code using angularRatesBetweenVectors

This commit is contained in:
Oleg Kalachev
2023-12-13 08:25:11 +03:00
parent 24b62e5145
commit 4fcf2109ce
3 changed files with 9 additions and 10 deletions

View File

@@ -36,12 +36,10 @@ void applyAcc()
// calculate accelerometer correction
Vector up = attitude.rotate(Vector(0, 0, -1));
Vector accCorrDirection = Vector::angularRatesBetweenVectors(acc, up);
accCorrDirection.normalize();
Vector accCorr = accCorrDirection * Vector::angleBetweenVectors(up, acc) * dt * WEIGHT_ACC;
Vector correction = Vector::angularRatesBetweenVectors(acc, up) * dt * WEIGHT_ACC;
// apply correction
attitude *= Quaternion::fromAngularRates(accCorr);
attitude *= Quaternion::fromAngularRates(correction);
attitude.normalize();
}