Browse Source

AP_NavEKF2: Down to 12 from 14 usec for perf test[8]

mission-4.1.18
Paul Riseborough 9 years ago committed by Andrew Tridgell
parent
commit
b5e43288d4
  1. 16
      libraries/AP_NavEKF2/AP_NavEKF2_MagFusion.cpp

16
libraries/AP_NavEKF2/AP_NavEKF2_MagFusion.cpp

@ -496,21 +496,17 @@ void NavEKF2_core::FuseMagnetometer() @@ -496,21 +496,17 @@ void NavEKF2_core::FuseMagnetometer()
// correct the covariance P = (I - K*H)*P
// take advantage of the empty columns in KH to reduce the
// number of operations
for (uint8_t i = 0; i<=stateIndexLim; i++) {
for (uint8_t j = 0; j<=2; j++) {
for (unsigned i = 0; i<=stateIndexLim; i++) {
for (unsigned j = 0; j<=2; j++) {
KH[i][j] = Kfusion[i] * H_MAG[j];
}
for (uint8_t j = 3; j<=15; j++) {
for (unsigned j = 3; j<=15; j++) {
KH[i][j] = 0.0f;
}
for (uint8_t j = 16; j<=21; j++) {
if (!inhibitMagStates) {
KH[i][j] = Kfusion[i] * H_MAG[j];
} else {
KH[i][j] = 0.0f;
}
for (unsigned j = 16; j<=21; j++) {
KH[i][j] = Kfusion[i] * H_MAG[j];
}
for (uint8_t j = 22; j<=23; j++) {
for (unsigned j = 22; j<=23; j++) {
KH[i][j] = 0.0f;
}
}

Loading…
Cancel
Save