Get a personalized demo and find out how to accelerate your time-to-market
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:
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!
So, without further ado, let's jump into Part 2: Deterministic IMU Error Modeling.
In the first post from this series, we discussed the basic sensing fundamentals of a 6 DOF IMU and some basic models for acceleration and angular velocity of an IMU. In this post, we will explain where those models are wrong and how to estimate how wrong they are.
💡 An alternate title for this blog post could be “How to Read an IMU Datasheet Part 1” 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.
First, 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 the following (non-exhaustive) list of assumptions
In reality, all of these are false to some degree. Whether or not they are good assumptions to make depends on the IMU you are using, the quality of your estimates and your operating environment.
Let’s investigate some of the errors caused when these assumptions are invalid and how to compensate for them.
The model we’ve given associates units of acceleration to units of specific force in a one-to-one fashion. However, this may not hold true. For example, the IMU may be experiencing a proper acceleration of \(1m/s^2\) in a direction but may only report a specific force of \(0.95 m/s^2\). In order to compensate for these scale deficiencies, some scale factors could be added to the state and estimated. Such a model may look like
\(f^a(t) =\begin{bmatrix}s_x & 0 & 0 \\0 & s_y & 0 \\0 & 0 & s_z\end{bmatrix}\left(a_{a/i}^a(t) + b_a^a(t) - R^a_i(t) g^i + \eta^a_a(t) \right)\)
A similar model may only estimate the scale-factor perturbations away from unity
\(f^a(t) =\begin{bmatrix}1 + s_x & 0 & 0 \\0 & 1 + s_y & 0 \\0 & 0 & 1 + s_z\end{bmatrix}\left(a_{a/i}^a(t) + b_a^a(t) - R^a_i(t) g^i + \eta^a_a(t)\right)\)
At the end of the production line, many IMUs will go through a process to calibrate these scale factors and remove any scale factor errors during device operation. If given in the datasheet, scale factor errors will often be described in parts-per-million, which further emphasizes how small these errors often are.
In many IMU systems, the 3 axes of the accelerometer (or gyroscope) are not positioned to be perfectly orthogonal. In such cases, an acceleration in one principal direction may actually register on multiple axes of the accelerometer. Sometimes, this is also called shear error. A model for compensating for non-orthogonality errors is
\(f^a(t) =\begin{bmatrix}1 & \sigma_{xy} & \sigma_{xz} \\0 & 1 & \sigma_{yz} \\0 & 0 & 1\end{bmatrix}\left(a_{a/i}^a(t) + b_a^a(t) - R^a_i(t) g^i + \eta^a_a(t) \right)\)
This model specifically assumes that the z vector remains unchanged between the orthogonal frame and the non-orthogonal frame. There are other models with different assumptions. Additionally, this model can be combined with the scale error model above to model both scale and non-orthogonality of axes.
Like the scale factor errors, these non-orthogonalities are typically very small (on the order of tenths of a percent even for the cheapest MEMS IMUs).
Even if we compensate for scale and shear factors, our model may still be inaccurate in certain operating conditions. This is because there is some nonlinearity associated with the measurement device. This could be caused by some type of deformation in the MEMS system, mechanical or electrical saturation of MEMS components or many other effects. There are essentially infinite ways for a system to exhibit nonlinearities and another infinite ways to try to model these nonlinearities.
Although there have been papers to suggest models compensating for nonlinear sensing effects, it’s typically not worth worth developing a model to try to model these phenomena. Nonlinearity error is typically given as a percentage of the full sensing range (%FS) and are in the hundredths of a percent even for the cheapest MEMS IMUs.
For gyroscopes, there is some coupling between the specific force experienced by the gyroscope and measured angular velocity. In other words, a specific force will induce a measured angular velocity. This is due to the proof mass in a MEMS gyroscope having some inertia and resisting changes in motion. This inertia registers as a force on the gyroscope’s force sensor and essentially gets folded in with the Coriolis force. This phenomenon is called \(g\)-sensitivity.
In systems with low bias instability, this is probably the most important specification in determining model errors. These sensitivity values can be calibrated but are typically only estimated for very high-quality MEMS IMUs. For the cheapest MEMS IMUs the \(g\) sensitivity is on the order of a tenth of a degree per second per \(g\).
\(g^2\) sensitivity is similar in that a change in specific force will induce a measured angular velocity on the gyroscope. This can be a major source of rotation drift in vibrating systems.
It’s very common to treat the IMU as having a single coordinate frame. Explicitly, we assume that all the IMU’s constituents (accelerometer, gyroscope and potentially magnetometer) produce measurements in the same frame. However, in many cases there may be up to \(0.5^{\circ}\) misalignment between the actual frames of any two components within an IMU.
We have assumed to know the gravity in our inertial frame \(g^i\). How are we actually determining that value though? Are we using standard gravity? Are we using some some gravitational model like EGM96? Are we estimating the gravity as part of our state estimation process? All of these will have some associated error which will impact both our angular velocity model and our specific force model.
Lastly, there are a whole bunch of other errors that are encountered in a MEMS IMU system. There are temperature-dependent errors, there are quantization errors, there are analog to digital conversion errors, and time-discretization and sampling errors. We could go on all day listing and analyzing the list of model deficiencies our simple model has.
So now that we’ve discussed some possible sources of error, the natural question arises “why don’t we just make the highest fidelity parametric model that includes all these errors?” Here are a few reasons why this approach is ill-advised.
In the end, deciding the fidelity of the model is an engineering decision filled with tradeoffs (and a tough decision too). Fortunately, we at Tangram Vision are here to help you make those tough decisions. Need help? Just get in touch.
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 post in this series, we’ll dive deeper into characterizing the noise on IMU measurements.