Use optimized VQFParams for ICM45, disable TempGradientCalibration by default (#462)

* Use optimized VQFParams for ICM45, disable TempGradientCalibration by default

* thanks clang-format i love you clang-format
This commit is contained in:
Meia
2025-06-20 02:17:26 +03:00
committed by GitHub
parent 23632581e7
commit d45bbddb73
2 changed files with 14 additions and 7 deletions

View File

@@ -50,5 +50,6 @@ private:
bool magEnabled = !USE_6_AXIS;
bool calibrationEnabled = true;
bool tempGradientCalibrationEnabled = true;
bool tempGradientCalibrationEnabled
= false; // disable by default, it is not clear that it really helps
};

View File

@@ -32,7 +32,7 @@ namespace SlimeVR::Sensors::SoftFusion::Drivers {
// and gyroscope range at 4000dps
// using high resolution mode
// Uses 32.768kHz clock
// Gyroscope ODR = 409.6Hz, accel ODR = 204.8Hz
// Gyroscope ODR = 409.6Hz, accel ODR = 102.4Hz
// Timestamps reading not used, as they're useless (constant predefined increment)
struct ICM45686 : public ICM45Base {
@@ -40,11 +40,17 @@ struct ICM45686 : public ICM45Base {
static constexpr auto Type = SensorTypeID::ICM45686;
static constexpr VQFParams SensorVQFParams{
.motionBiasEstEnabled = true,
.biasSigmaInit = 0.5f,
.biasClip = 1.0f,
.restThGyr = 0.5f,
.restThAcc = 0.196f,
.tauAcc = 7.171490,
.biasSigmaInit = 0.337976,
.biasForgettingTime = 352.235500,
.biasClip = 5.0,
.biasSigmaMotion = 0.985346,
.biasVerticalForgettingFactor = 0.007959,
.biasSigmaRest = 0.028897,
.restMinT = 4.648680,
.restFilterTau = 1.900166,
.restThGyr = 2.620598,
.restThAcc = 2.142593,
};
ICM45686(RegisterInterface& registerInterface, SlimeVR::Logging::Logger& logger)