Sign up for updates on our latest news and blog posts
This post dives into the differences between the three main types of sensor calibration, the pros and cons of each, and how dynamic calibration can help you account for sensor value deviations in real-world usage.
Calibration refers to the comparison of a sensor value against a standard of known accuracy, and an adjustment of the sensor output based on the detected difference in results. Calibration helps to account for anticipated sensor value differences as a result of changing situations. For example, sensor performance is known to vary with temperature and time. Maintaining calibration while the sensors are deployed in your application is important to ensure that your device doesn’t lose accuracy over time, as the device ages.
Per-device calibration: occurs at the individual sensor level and requires additional hardware and software to implement. At a minimum, this calibration can adjust for gain—for example, if you rotate a device exactly 90 degrees, but you read 99 degrees, you get a sense for the amount your device is adding artificially to the rotation. Do this with at least a few more points to get a pattern that you can adjust to. Per-device calibration requires an external truth to compare against in addition to the hardware and software needs, making it a more expensive process per part. However, this is the preferred approach for extremely precise applications, as it optimizes the performance of each individual sensor.
Nominal calibration: based on an average of expected calibrations from similar situations, which are implemented via code adjustments in the firmware. When a per-device calibration may be cost-prohibitive for your application, a nominal calibration can be used as an alternative to deliver a statistically improved level of performance for most situations. However, you will experience trade-offs on individual sensor performance.
Dynamic calibration: improves sensor performance while in use. It allows you to calibrate specific sensor values against their known values when stationary. For example, ZGO (zero gravity) and ZRO (zero rate) are offsets that can be measured this way. If your device is stationary and there is still a rotation reading or an incorrect gravity reading, you can be confident that the sensor is incorrect. This type of calibration can be done dynamically in the field, and it can be used to help account for sensor deviations caused by varying temperature conditions and aging.
Performing dynamic calibration well requires a large amount of data on real-world usage that shows how sensor outputs vary based on condition. As a result of our own extensive qualification testing, we know how temperature and age impact performance in very specific ways. Dynamic calibration lets you account for these types of environmental impacts. Let’s take a look at temperature as an example.
You can track a sensor’s thermometer and watch how ZRO and ZGO change across different temperature ranges. When you track and log this information consistently over time, you can create a model for how these changes affect your sensor output. As the sensor is used over time, you can update and corroborate your current estimates for offset based on its output in order to keep that information up to date.
At Hillcrest Labs, this is the type of work that we do with our sensor qualification test system, where we’re able to simulate both real-world usage and sensor fusion performance on more than 200 sensors at a time. That provides us with a statistically significant sample to log and analyze, and then adjust our sensor fusion algorithms based on the latest results.
This data also helps us decide which parameters get per-device calibration (such as gain) and which should use dynamic calibration (ZRO and ZGO offsets). If you’re looking to determine when or how to use dynamic sensor calibration, don’t try to go it alone. We have lots of data to draw from, and we’re happy to discuss your application and help you decide the best calibration approach. Just contact us today.