Tuning of 9-DOF GBY Kalman Constanst for Sensor Noise Variances

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Tuning of 9-DOF GBY Kalman Constanst for Sensor Noise Variances

Jump to solution
1,778 Views
venkidravid
Contributor II

michaelestanley

Hi, i Have few queries in Sensor fusion algorithm,

1. How, below noise variances are calculated from FXAS21002, FXOS8700CQ sensor data sheets...? Since these are not mentioned in data sheets. Is there any calculations to get these values from Magnetometer output noise -  1.2 uT @ 400 Hz and  Accelerometer output noise -  99 ug/sqrtHZ?

FQVY_9DOF_GBY_KALMAN           200        Gyro sensor noise variance in units of (deg/s)2

FQVG_9DOF_GBY_KALMAN         1.2E3     Accelerometer sensor noise variance units g2

FQVB_9DOF_GBY_KALMAN         5.0            Magnetometersensor noise variance units uT2defining minimum deviation from geomagnetic sphere

FQWB_9DOF_GBY_KALMAN        2E2        Gyro offset random walk units (deg/s)2

FMIN_9DOF_GBY_BPL                  7.0        Minimum permissible power on gyro offsets(deg/s)

FMAX_9DOF_GBY_BPL                +7.0         Maximum permissible power on gyro offsets(deg/s)

2. I am using 9 DOF sensor fusion. Is it required to configure sensor internal low pass and high pass filters or Kalman  filter algorithm will take care? Looks like sensor noise parameters modeled in filter algorithm through above parameters mentioned in Query -1.  The one shouldn't configure low pass and high pass filters. Am i right.?

3. I am taking sensor samples at 400 Hz and fusion rate is 100 Hz.. Again same question .. Is it required to do average of these 4 samples (= 400/100 ) or Filter will take care of sensor noise?  (Of course for Gyro one should not do average as it is required find the change in angles for each sample.)

Thanks in advance.

Regards,

Venkat.

Labels (1)
1 Solution
1,686 Views
AmitPurohit
NXP Employee
NXP Employee
  1. How, below noise variances are calculated from FXAS21002, FXOS8700CQ sensor data sheets...? Since these are not mentioned in data sheets. Is there any calculations to get these values from Magnetometer output noise -  1.2 uT @ 400 Hz and  Accelerometer output noise -  99 ug/sqrtHZ?

FQVY_9DOF_GBY_KALMAN           200        Gyro sensor noise variance in units of (deg/s)2

FQVG_9DOF_GBY_KALMAN         1.2E–3     Accelerometer sensor noise variance units g2

FQVB_9DOF_GBY_KALMAN         5.0            Magnetometersensor noise variance units uT2defining minimum deviation from geomagnetic sphere

FQWB_9DOF_GBY_KALMAN        2E–2        Gyro offset random walk units (deg/s)2

FMIN_9DOF_GBY_BPL                  –7.0        Minimum permissible power on gyro offsets(deg/s)

FMAX_9DOF_GBY_BPL                +7.0         Maximum permissible power on gyro offsets(deg/s)

[Ans.]: These are compile time constants for kalman filtering. The main purpose is to prevent the gyroscope zero rate offset being initialized to a nonsensical value if the sensors are being rotated rather than held stationary when the sensor fusion is initialized. These are tuning parameters o tune default filter settings e.g. increasing covariance values can result in rapid convergence to estimates but more prone to noise. Tradeoff can be adjusted by sensor variance constants.

  1. I am using 9 DOF sensor fusion. Is it required to configure sensor internal low pass and high pass filters or Kalman  filter algorithm will take care? Looks like sensor noise parameters modeled in filter algorithm through above parameters mentioned in Query -1.  The one shouldn't configure low pass and high pass filters. Am i right.?

[Ans.]: Yes you are right no need to configure sensor internal low-pass and high-pass filter. You can refer to sensor fusion reference example driver_<sensor>.c file to check sensor configurations.

  1. I am taking sensor samples at 400 Hz and fusion rate is 100 Hz.. Again same question .. Is it required to do average of these 4 samples (= 400/100 ) or Filter will take care of sensor noise?  (Of course for Gyro one should not do average as it is required find the change in angles for each sample.)

[Ans.]: It is recommended to apply sensor data conditioning before applying sensor fusion algorithm. After reading sensor data, transform raw data to be consumed by sensor fusion algorithm, this includes averaging and applying calibrations etc. Please refer to sensor fusion reference example source file "sensor_fusion.c -> conditionSensorReadings()" for more details.

View solution in original post

0 Kudos
1 Reply
1,687 Views
AmitPurohit
NXP Employee
NXP Employee
  1. How, below noise variances are calculated from FXAS21002, FXOS8700CQ sensor data sheets...? Since these are not mentioned in data sheets. Is there any calculations to get these values from Magnetometer output noise -  1.2 uT @ 400 Hz and  Accelerometer output noise -  99 ug/sqrtHZ?

FQVY_9DOF_GBY_KALMAN           200        Gyro sensor noise variance in units of (deg/s)2

FQVG_9DOF_GBY_KALMAN         1.2E–3     Accelerometer sensor noise variance units g2

FQVB_9DOF_GBY_KALMAN         5.0            Magnetometersensor noise variance units uT2defining minimum deviation from geomagnetic sphere

FQWB_9DOF_GBY_KALMAN        2E–2        Gyro offset random walk units (deg/s)2

FMIN_9DOF_GBY_BPL                  –7.0        Minimum permissible power on gyro offsets(deg/s)

FMAX_9DOF_GBY_BPL                +7.0         Maximum permissible power on gyro offsets(deg/s)

[Ans.]: These are compile time constants for kalman filtering. The main purpose is to prevent the gyroscope zero rate offset being initialized to a nonsensical value if the sensors are being rotated rather than held stationary when the sensor fusion is initialized. These are tuning parameters o tune default filter settings e.g. increasing covariance values can result in rapid convergence to estimates but more prone to noise. Tradeoff can be adjusted by sensor variance constants.

  1. I am using 9 DOF sensor fusion. Is it required to configure sensor internal low pass and high pass filters or Kalman  filter algorithm will take care? Looks like sensor noise parameters modeled in filter algorithm through above parameters mentioned in Query -1.  The one shouldn't configure low pass and high pass filters. Am i right.?

[Ans.]: Yes you are right no need to configure sensor internal low-pass and high-pass filter. You can refer to sensor fusion reference example driver_<sensor>.c file to check sensor configurations.

  1. I am taking sensor samples at 400 Hz and fusion rate is 100 Hz.. Again same question .. Is it required to do average of these 4 samples (= 400/100 ) or Filter will take care of sensor noise?  (Of course for Gyro one should not do average as it is required find the change in angles for each sample.)

[Ans.]: It is recommended to apply sensor data conditioning before applying sensor fusion algorithm. After reading sensor data, transform raw data to be consumed by sensor fusion algorithm, this includes averaging and applying calibrations etc. Please refer to sensor fusion reference example source file "sensor_fusion.c -> conditionSensorReadings()" for more details.

0 Kudos