mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-17 05:23:34 +08:00
EKF trivial code style cleanup
This commit is contained in:
+6
-6
@@ -207,7 +207,7 @@ void Ekf::fuseMag()
|
||||
Kfusion[22] = SK_MX[0]*(P[22][19] + P[22][1]*SH_MAG[0] - P[22][2]*SH_MAG[1] + P[22][3]*SH_MAG[2] + P[22][0]*SK_MX[2] - P[22][16]*SK_MX[1] + P[22][17]*SK_MX[4] - P[22][18]*SK_MX[3]);
|
||||
Kfusion[23] = SK_MX[0]*(P[23][19] + P[23][1]*SH_MAG[0] - P[23][2]*SH_MAG[1] + P[23][3]*SH_MAG[2] + P[23][0]*SK_MX[2] - P[23][16]*SK_MX[1] + P[23][17]*SK_MX[4] - P[23][18]*SK_MX[3]);
|
||||
} else {
|
||||
for (uint8_t i=0; i<16; i++) {
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
Kfusion[i] = 0.0f;
|
||||
}
|
||||
Kfusion[22] = 0.0f;
|
||||
@@ -261,7 +261,7 @@ void Ekf::fuseMag()
|
||||
Kfusion[22] = SK_MY[0]*(P[22][20] + P[22][0]*SH_MAG[2] + P[22][1]*SH_MAG[1] + P[22][2]*SH_MAG[0] - P[22][3]*SK_MY[2] - P[22][17]*SK_MY[1] - P[22][16]*SK_MY[3] + P[22][18]*SK_MY[4]);
|
||||
Kfusion[23] = SK_MY[0]*(P[23][20] + P[23][0]*SH_MAG[2] + P[23][1]*SH_MAG[1] + P[23][2]*SH_MAG[0] - P[23][3]*SK_MY[2] - P[23][17]*SK_MY[1] - P[23][16]*SK_MY[3] + P[23][18]*SK_MY[4]);
|
||||
} else {
|
||||
for (uint8_t i=0; i<16; i++) {
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
Kfusion[i] = 0.0f;
|
||||
}
|
||||
Kfusion[22] = 0.0f;
|
||||
@@ -315,7 +315,7 @@ void Ekf::fuseMag()
|
||||
Kfusion[22] = SK_MZ[0]*(P[22][21] + P[22][0]*SH_MAG[1] - P[22][1]*SH_MAG[2] + P[22][3]*SH_MAG[0] + P[22][2]*SK_MZ[2] + P[22][18]*SK_MZ[1] + P[22][16]*SK_MZ[4] - P[22][17]*SK_MZ[3]);
|
||||
Kfusion[23] = SK_MZ[0]*(P[23][21] + P[23][0]*SH_MAG[1] - P[23][1]*SH_MAG[2] + P[23][3]*SH_MAG[0] + P[23][2]*SK_MZ[2] + P[23][18]*SK_MZ[1] + P[23][16]*SK_MZ[4] - P[23][17]*SK_MZ[3]);
|
||||
} else {
|
||||
for (uint8_t i=0; i<16; i++) {
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
Kfusion[i] = 0.0f;
|
||||
}
|
||||
Kfusion[22] = 0.0f;
|
||||
@@ -523,9 +523,9 @@ void Ekf::fuseHeading()
|
||||
[ cos(pitch)*sin(yaw) + cos(yaw)*sin(pitch)*sin(roll), cos(roll)*cos(yaw), sin(pitch)*sin(yaw) - cos(pitch)*cos(yaw)*sin(roll)]
|
||||
[ -cos(roll)*sin(pitch), sin(roll), cos(pitch)*cos(roll)]
|
||||
*/
|
||||
float yaw = atan2f(-_R_to_earth(0, 1) , _R_to_earth(1, 1)); // first rotation (yaw)
|
||||
float yaw = atan2f(-_R_to_earth(0, 1), _R_to_earth(1, 1)); // first rotation (yaw)
|
||||
float roll = asinf(_R_to_earth(2, 1)); // second rotation (roll)
|
||||
float pitch = atan2f(-_R_to_earth(2, 0) , _R_to_earth(2, 2)); // third rotation (pitch)
|
||||
float pitch = atan2f(-_R_to_earth(2, 0), _R_to_earth(2, 2)); // third rotation (pitch)
|
||||
|
||||
predicted_hdg = yaw; // we will need the predicted heading to calculate the innovation
|
||||
|
||||
@@ -812,7 +812,7 @@ void Ekf::fuseDeclination()
|
||||
Kfusion[23] = -t4*t13*(P[23][16]*magE-P[23][17]*magN);
|
||||
|
||||
// calculate innovation and constrain
|
||||
float innovation = atan2f(magE , magN) - _mag_declination;
|
||||
float innovation = atan2f(magE, magN) - _mag_declination;
|
||||
innovation = math::constrain(innovation, -0.5f, 0.5f);
|
||||
|
||||
// apply covariance correction via P_new = (I -K*H)*P
|
||||
|
||||
Reference in New Issue
Block a user