-
Notifications
You must be signed in to change notification settings - Fork 29
IMU Sensor Model Instructions
This work was initially completed because it is desirable to properly model the stochastic nature of the sensors in an inertial measurement unit (or IMU). This is done by using data from an IMU (sitting stationary for several hours) to generate Allan variance and power spectral density plots. From these plots we can extract information that is used by our model to replicate the Allan variance and power spectral density of the data. That model can then be used in simulation (either in Matlab or in C++). The sections below walk you through how to do this. Our simulation also has the ability to include certain types of deterministic-based errors (in particular a scale factor and fixed bias).
To generate an Allan variance plot with data collected at a roughly fixed frequency, simply use the allan.m function in the Matlab Data Analysis Tools folder. Then simply input the entire set of measurements, the frequency at which the data was collected, and the number of discrete points desired on the Allan variance plot. To plot simply generate a log-log plot of the time window and square of the standard deviation output. See the example below and the first few lines of main.m under the Matlab Example folder.
[T,sigma] = allan(meas,fs,pts);
figure(1)
loglog(T,sigma.^2)
xlabel('Time Window, \tau (sec)')
ylabel('Allan Variance')
grid on;
To generate a one-sided power spectral density plot with data collected at a roughly fixed frequency, simply use the computePowerSpectralDensities.m function in the Matlab Data Analysis Tools folder. The simply input the entire set of measurements and the frequency at which the data was collected. To plot simply generate a log-log plot of the frequency and power spectral density output. See the example below and the first few lines of main.m under the Matlab Example folder.
[Pxx,f] = computePowerSpectralDensities( meas,fs );
figure(1)
loglog(f,Pxx)
xlabel('Frequency (Hz)')
ylabel('Power')
title('PSD Plot')
grid on;
The Allan deviation plot provides quite a bit of information about the stochastic noise of a sensor. Those contributors to the noise in the sensor and their manifestation on the Allan deviation plot are shown in the figure below [1]. Our model considers only the angle random walk, bias instability, and rate random walk.
Ultimately, we say that:
noise = Angle Random Walk + Bias Instability + Rate Random Walk.
B
K
T
bias
sig_meas
rrw
sig_w
[1] H. Hou. "Modeling Inertial Sensors Errors Using Allan Variance." M.S. Thesis. Department of Geomatics Engineering. University of Calgary. Calgary, AB. 2004.
[2] P. Petkov and T. Slavov. "Stochastic Modeling of MEMS Inertial Sensors." Cybernetics and Information Technologies. Vol. 10. No. 2. pp. 31-40. 2010.
[3] D. H. Titterton and J. L. Weston. Strapdown Inertial Navigation Technology. Institution of Engineering and Technology. 2nd Edition. 2004.