Browse Source

AP_Compass: make internal compasses use a higher cal threshold

they tend to be a lot noisier
master
Andrew Tridgell 9 years ago
parent
commit
f7ac6c8d86
  1. 5
      libraries/AP_Compass/AP_Compass_Calibration.cpp

5
libraries/AP_Compass/AP_Compass_Calibration.cpp

@ -50,9 +50,12 @@ Compass::start_calibration(uint8_t i, bool retry, bool autosave, float delay, bo @@ -50,9 +50,12 @@ Compass::start_calibration(uint8_t i, bool retry, bool autosave, float delay, bo
if (!is_calibrating() && delay > 0.5f) {
AP_Notify::events.initiated_compass_cal = 1;
}
if (i == get_primary()) {
if (i == get_primary() && _state[i].external != 0) {
_calibrator[i].set_tolerance(_calibration_threshold);
} else {
// internal compasses or secondary compasses get twice the
// threshold. This is because internal compasses tend to be a
// lot noisier
_calibrator[i].set_tolerance(_calibration_threshold*2);
}
_calibrator[i].start(retry, autosave, delay);

Loading…
Cancel
Save