Project 2 - Integrate following sensors to the Dev Board
Many embedded systems need to track their own location or position and heading, and designers often turn to GNSS (Global Navigation Satellite Systems) as a first resort (see, “Design location tracking systems quickly using GNSS Modules”). However, GPS cannot always be used exclusively for position and heading information for several reasons, starting with power consumption.
GPS systems draw significant amounts of power. Many embedded systems, especially battery powered, cannot afford the power budget needed to maintain a GPS position 100 percent of the time. In addition, GPSs suffer from signal blockages, slow update rates, and an accuracy of 1 meter (m) that might not be sufficient for some applications.
These problems can be overcome by using inertial measurement units (IMUs) to complement GNSS position data.
A previous IMU article discussed the use of relatively inexpensive IMUs based on MEMs technology for determining position and heading, see “Use IMUs for precise location data when GPS won't suffice”. However, IMU sensor data alone cannot provide absolute position. While GNSS receivers simply provide location data, a significant amount of software is required to convert an IMU’s relative motion data into an absolute position and heading using sensor filtering, fusion, and double integration.
This article discusses the embedded use of IMUs, sources of error in the data from various IMU sensors, and the software needed to calculate precise location and heading information from IMU sensors. In addition, this article discusses the STMicroelectronics MotionFX library and how to use this software to transform IMU sensor data into position and heading within an embedded system.
How IMUs complement GNSS receivers
The problems with GNSS are fourfold:
- GNSS signals are very directional and are easily blocked by buildings. Therefore, GNSS operation indoors or deep within urban concrete canyons can be problematic.
- GNSS receivers have warm and cold startup times measured in the tens of seconds or more. If the GNSS receiver is not operated continuously, to save energy for example, then each new position reading can take multiple seconds.
- GNSS’ position update rate is limited to once per second. This update rate is not sufficiently frequent for embedded applications involving quick movement. There’s a long list of such applications ranging from virtual reality to materials handling and robotics.
- GNSS accuracy is measured in meters. That resolution is far too coarse for use in many embedded applications.
IMUs provide the finer positioning resolution and faster update rates that are required by many embedded applications. Also, IMUs provide relative position data from a known starting point as opposed to the absolute positioning information from a GNSS receiver, so the two types of position sensors complement each other. These IMU characteristics make them quite useful for augmenting the positioning information obtained directly from GNSS receivers, see “Design Location Tracking Systems Quickly Using GNSS Modules”.
IMUs have existed in the aerospace industry for many decades. However, these precision aerospace IMUs are based on expensive gyroscopes and other large sensors, and are difficult to apply to more cost-sensitive systems.
Modern electronic IMUs are highly integrated and can contain a mix of sensor types—accelerometers, gyroscopes, and magnetometers—which are based on microelectromechanical systems (MEMS) technology so they’re small, light, and relatively rugged. These new generations of IMUs are available as board mountable components and are proving to be ideal for embedded applications.
IMUs come with varying capabilities in terms of degrees of freedom (DOF), and unlike GNSS receivers, IMUs do not depend upon radio signals for position data. They also consume very little power and they’re available from a variety of sources with a wide range of resolution and accuracy specifications.
With these characteristics, IMUs can be used to augment positioning information from GNSS receiver modules (see, “Design Location Tracking Systems Quickly Using GNSS Modules”), but not without a significant amount of software to filter the IMU sensor data, to fuse sensor data from the several types of sensors inside the IMU, and to calculate a position from that fused sensor data using double integration.