Radically accelerate your roadmap with Tangram Vision's perception tools and infrastructure.

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form.

Table of Contents

So, you’ve purchased an IMU for a couple bucks and you’re not sure how to do anything useful with it? Your IMU state estimates seem to fly off beyond the horizon leaving you wondering what good is an IMU? You can’t seem to figure out how to read an IMU datasheet — I mean what is a \(\sqrt{Hz}\) anyway? It seems like you either have to hire an expert state-estimation engineer or pay thousands of dollars for a tactical-grade IMU?

Well, you’ve come to the right place. We are here to cure all your IMU woes and provide some insight into these confusing sensors. In this five part blog series, we’ll cover:

- IMU sensing fundamentals
- Deterministic IMU error modeling
- Stochastic IMU error modeling
- The Allan Deviation and IMU error modeling
- IMU preintegration basics

If you’d like to be notified of when that next post drops, just follow us on LinkedIn, X, or subscribe to our newsletter. Don't have an IMU yet? Consider pre-ordering our upcoming HiFi depth sensor, for high-resolution 3D sensing...with a built-in IMU!

In a previous posts, we discussed the basic sensing fundamentals of a 6 DOF IMU and some common deterministic sources of error in our simple IMU model. In this post, we will explain the stochastic sources of error on our simple model and how to characterize IMU noise.

💡 An alternate title for this blog post could be “How to Read an IMU Datasheet Part 2” as you’ll see many of the terms in this post in IMU datasheets. You may want to reference an IMU data sheet as you read this post to develop some intuition of the errors of a typical MEMS IMU.

In the next post, we’ll give you some secret tips for IMU evaluation that go beyond what many IMU datasheets provide.

Again, let’s dive into some modeling assumptions of the continuous-time accelerometer model - repeated here for convenience

\(f^a(t) =a_{a/i}^a(t) + b_a^a(t) - R^a_i(t) g^i + \eta^a_a(t)\)

Upon inspection of this model, we can see see a few more assumptions that we missed last time, namely

- The bias of the accelerometer is known
- The noise on the accelerometer output is known

First, we’ll take a step back and analyze noise more generally.

It is well known that every electronic circuit has some amount of unwanted disturbances in its operating voltage and current. This phenomenon is commonly referred to as electronic noise. Noise can be characterized by analyzing its power spectral density. Essentially, the power spectral density describes the distribution of power in a signal per frequency.

💡 It may seem confusing as to why we would care about the power spectral density here. There are many connections between the power spectrum of a signal and its autocovariance. By this point, it should be obvious that properly characterizing the covariance in our system is incredibly important to us at Tangram Vision.

For more information on covariance and how it relates to the power spectrum of a signal, we’ll refer the reader to a book on stochastic processes.

The power spectral density of the noise \(S_{\eta}(f)\) greatly decreases with frequency, so the spectral density is typically modeled with the truncated series

\(S_{\eta}(f) = N^2 + \frac{B^2}{2 \pi f} + \frac{K^2}{(2 \pi f)^2}.\)

If we assume that these frequency components are driven by statistically independent sources of noise, we can model the noise signal as

\(\eta(t) = \eta_N(t) + \eta_B(t) + \eta_K(t).\)

With this derivation, we’ve reduced our task from characterizing the noise signal to

- Finding the coefficients \(N, B, K\)
- Finding a noise model for our individual noise terms that has a power spectral density \(S_{\eta}(f)\) that matches our terms.

But before we show how that is done in practice, let’s gain some intuition for these noise terms.

In audio engineering, we describe the terms identified above as different types of colored noise. The color naming of noise actually originates from our experience with the visual spectrum of electromagnetic radiation. White light is composed of equal power in all frequencies in the visual portion of the electromagnetic spectrum and analogously white noise has equal power in all frequencies.

💡 At this point in the post, you should absolutely take a break from the math and treat yourself to some nice, relaxing noise. I say this completely seriously. Listening to audio of different colors of noise really helps develop some intuition here.

If you’d like a more in-depth explanation on the colors of noise, we also recommend this video.

The noise signal we’ve modeled is composed of three terms:

- A white noise term: \(\eta_N(t)\)
- A pink noise term: \(\eta_B(t)\)
- A brown (red) noise term: \(\eta_K(t)\)

Now if you go looking for these terms in your IMU datasheet, you most certainty will not find them. IMU manufacturers have their own terms for these noise sources.

⚠️ The naming here may be a bit unintuitive. \(B\) represents pink noise, but \(K\) represents brown noise? Here we follow the IEEE Standard Specification for Gyroscopes in our terminology. You’ll have to ask them why they chose confusing variable names.

Let’s start with the white noise term \(\eta_N(t)\). This term, when integrated, induces a random walk. For gyroscopes, we call this an angular random walk (ARW) and for accelerometers we call this a velocity random walk (VRW). The nomenclature here is a bit imprecise since the random walk is the artifact of the integration of the noise, but there is a simple correspondence between the noise and the phenomenon it induces.

⚠️ Sometimes ARW and VRW are not given in datasheets and the datasheets instead give a value for noise density measured at a specific frequency. The noise density is typically measured at a frequency of around \(50 Hz\) in a bandlimited fashion.

At these higher frequencies, the white noise dominates the other terms. As such, it is a common and well-advised practice to take these noise density values from the datasheets as the ARW and VRW coefficients \(N\), but they are not strictly the same quantity. We’ll dive into this more in our next post.

ARW has units of \(\text{rad}/s/\sqrt{Hz}\) or equivalently \(\text{rad}/\sqrt{s}\). Similarly VRW has units of \(m/s^2/\sqrt{Hz}\) or \(m/s^{3/2}\). Pay careful attention to how this information is given in a datasheet, however, because it is very common to list these quantities in units such as \(^{\circ}/hr / \sqrt{Hz}\) or \(\mu g / \sqrt{Hz}.\) Appropriate conversions will need to be applied to convert these values into standard units.

Now, you may be thinking to yourself “you just wrote some nonsense to us, what is a \(\sqrt{Hz}\) anyway?” This is something we’ve also scratched our heads about quite a bit. Fractional units are very difficult to intuitively reason about! There are proofs about why these units make sense and there is even a stochastic calculus and stochastic differential equations defined with these quantities.

However, we think the best way to intuitively reason about these units is to simply state that the noise density (the power spectral density) scales with the square root of time. Recall also that the noise density is very closely related to the covariance of a signal, so an equivalent statement is that the covariance of the effect of the noise scales with the square root of time.

Furthermore, how we scale by the square root of time depends on the context in which we use the noise density. As an example, multiplying ARW by \(\sqrt{dt}\) will give units of radians which may be useful when trying to predict the error bounds of the angular random walk. However, since we are adding this term to the ideal angular velocity, we will want to divide by \(\sqrt{dt}\) to get units of \(\text{rad}/s\).

Now, let’s look at the brown noise term \(\eta_K(t)\). This term, when integrated, induces a random walk on the biases of the angular velocity or specific force measurement. As such, this term is called the rate random walk (RRW) and the same terminology is used for both gyroscope and accelerometer. Again, this naming of rate random walk is a bit imprecise but there is a simple correspondence between this noise itself and the effect it causes.

⚠️ Typically values for rate random walk are not given for consumer grade IMUs and so you may not find them on your datasheet. Fear not, however, for we will show you a way to estimate these values in our next post.

RRW has units of \(\text{rad}/s^2/\sqrt{Hz}\) for gyroscopes and \(m/ s^3/ \sqrt{Hz}\) for accelerometers. As stated previously, these values may be given in different units in the datasheet so be sure to convert to standard units.

As mentioned earlier, this noise induces a random walk on the biases of IMUs and as such, we introduce a new model for the dynamics of the IMU bias

\(\dot{b}^a_{a,K}(t) = \eta_{a,K}^{a}(t)\)

where \(\eta_{a,K}^a(t) \sim \mathcal{N}(0, K)\). It is easily verified, using the Fourier transform, that now the bias signal has a power spectral density of \(K^2/(2\pi f)^2\). We can use this bias evolution equation as a parameter in a filtering or optimization context to infer the biases of the IMU.

Lastly, let’s take a look at the pink noise term \(\eta_B(t)\). This term is called the bias instability or the in-run bias stability. This is the most important specification to review when selecting an IMU for your application. In the literature, it’s described as the drift of the bias at a constant temperature in ideal operating conditions and it represents the noise floor for an IMU.

⚠️ Typically values for bias instability are not given for consumer grade IMUs and so you may not find them on your datasheet. Fear not, however, for we will show you a way to estimate these values in our next post.

The bias instability has units of \(\text{rad}/s\) for gyroscope and \(m/s^2\) for accelerometer. As stated previously, these values may be given in different units in the datasheet so be sure to convert to standard units.

At this point, we wish we could give you a simple linear state-space model for bias instability and send you on your way, but this is mathematically impossible. Since the bias instability has a spectral density of \(B^2 / 2\pi f\), it’s provably impossible to perfectly describe this noise term and its contribution to the bias with a finite-dimensional linear state-space model! This is essentially because the transfer function would require a \(f^{-1/2}\) term, which does not correspond to a linear operator like the derivative or integral.

In order to incorporate bias instability into your IMU processing pipeline, you have to fit some imperfect model to this pink noise spectrum. Fitting a model to this bias instability noise can be a tricky task indeed! If you need some help here, we at Tangram Vision would be eager to help you tame your wild IMU.

If you’d like to be notified of when that next post drops, just follow us on LinkedIn, X, or subscribe to our newsletter. Don't have an IMU yet? Consider pre-ordering our upcoming HiFi depth sensor, for high-resolution 3D sensing...with a built-in IMU!

In the next part of the series, we are going to show you how to characterize the noise of your IMU if your IMU’s datasheet is lacking these values.

Tangram Vision helps perception teams develop and scale autonomy faster.