SparkFun ICM-20948 IMU Accelerometer, gyroscope, magnetometer noise variance

Hi,

I am trying to do sensor fusion on 2 ICM-20948 IMUs (1 placed on the shank and 1 on the thigh) to get the roll, pitch and yaw angles of the IMUs using the ahrsfilter on Matlab, which will allow me to get knee angles in all 3 planes of motion (knee flexion/extension, internal/external rotation, and varus/valgus). I am able to configure the accelerometer noise variance, gyroscope noise variance, magnetometer noise variance, gyroscope drift noise, linear acceleration noise, magnetic disturbance noise, and process noise covariance matrix of the ahrsfilter, however, I have not been able to find those values anywhere online or in the datasheet for the ICM-20948 IMU. Would someone be able to help me in providing these values?

Thanks!

The best approach is to simply measure the sensor noise, while it is at rest. Just record values and calculate the means and variances from the data stream.

Thanks for the reply! The Matlab function requires me to input, for example, the accelerometer noise as a single value. How would I get a single value for accelerometer noise when it has 3 axes (X, Y, and Z)? Would I have to get the noise variance for each of the 3 axes and then average them?

Review propagation of errors. For example the estimated error dl in the the length l of the acceleration vector is given by

dl = sqrt((x*dx/l)^2 + (y*dy/l)^2 + (z*dz/l)^2) 

where dx is the estimated error of the X component, etc.

To get the variance in l, an approximation that may be acceptable in your application is to simply sum the x, y and z variances.