mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-03 12:48:53 +08:00
EKF: Fix sign error in increaseQuatYawErrVariance function
This commit is contained in:
committed by
Daniel Agar
parent
a0b9cb002e
commit
911d4d8f49
+5
-4
@@ -1661,7 +1661,8 @@ void Ekf::get_ekf2ev_quaternion(float *quat)
|
||||
// Argument is additional yaw variance in rad**2
|
||||
void Ekf::increaseQuatYawErrVariance(float yaw_variance)
|
||||
{
|
||||
// See DeriveYawResetEquations.m for derivation
|
||||
// See DeriveYawResetEquations.m for derivation which produces code fragments in C_code4.txt file
|
||||
// The auto-code was cleaned up and had terms multiplied by zero removed to give the following:
|
||||
|
||||
// Intermediate variables
|
||||
float SG[3];
|
||||
@@ -1683,8 +1684,8 @@ void Ekf::increaseQuatYawErrVariance(float yaw_variance)
|
||||
P[0][2] += yaw_variance*SQ[0]*SQ[2];
|
||||
P[1][2] += yaw_variance*SQ[0]*SQ[1];
|
||||
P[2][2] += yaw_variance*sq(SQ[0]);
|
||||
P[0][3] += yaw_variance*SQ[2]*SQ[3];
|
||||
P[1][3] += yaw_variance*SQ[1]*SQ[3];
|
||||
P[2][3] += yaw_variance*SQ[0]*SQ[3];
|
||||
P[0][3] -= yaw_variance*SQ[2]*SQ[3];
|
||||
P[1][3] -= yaw_variance*SQ[1]*SQ[3];
|
||||
P[2][3] -= yaw_variance*SQ[0]*SQ[3];
|
||||
P[3][3] += yaw_variance*sq(SQ[3]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user