| Literature DB >> 29206187 |
Aurélien Valade1,2, Pascal Acco3, Pierre Grabolosa4, Jean-Yves Fourniols5.
Abstract
Over the last decade, smart sensors have grown in complexity and can now handle multiple measurement sources. This work establishes a methodology to achieve better estimates of physical values by processing raw measurements within a sensor using multi-physical models and Kalman filters for data fusion. A driving constraint being production cost and power consumption, this methodology focuses on algorithmic complexity while meeting real-time constraints and improving both precision and reliability despite low power processors limitations. Consequently, processing time available for other tasks is maximized. The known problem of estimating a 2D orientation using an inertial measurement unit with automatic gyroscope bias compensation will be used to illustrate the proposed methodology applied to a low power STM32L053 microcontroller. This application shows promising results with a processing time of 1.18 ms at 32 MHz with a 3.8% CPU usage due to the computation at a 26 Hz measurement and estimation rate.Entities:
Keywords: IMU; Kalman filters; algorithm complexity; compensation; smart sensors
Year: 2017 PMID: 29206187 PMCID: PMC5751614 DOI: 10.3390/s17122810
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1The Kalman filter recursive process.
Kalman filter processing steps.
| Step | Kalman Filter | Real System |
|---|---|---|
| Evolution | ||
| Prediction/measurement | ||
| Correction | ||
Figure 2Linear projection methods for: (a) linear system (Kalman projection); and (b) non-linear system local linearization (EKF projection).
EKF estimation steps.
| Step | EKF | Real System |
|---|---|---|
| Evolution | ||
| Prediction/measurement | ||
| Correction | ||
Figure 3Non-Linear projection methods for: (a) local linearization system (EKF projection); and (b) non-linear weighted projections (Unscented Transform projection).
Matrix operations complexity sum-up.
| Operation | ||
|---|---|---|
| Matrix multiplication | ||
| Adding two vectors of size | ||
| Adding two matrices of size | ||
| Transpose a matrix | 0 | 0 |
| Invert a matrix | ||
| Mean vector of a matrix | ||
| Mean value of a vector | ||
| Covariance de deux matrices |
Kalman filtering complexity depending on n, m and p.
| Algo | Opération | |
|---|---|---|
| (E)KF | ||
| ∼ | ||
| UKF | ||
| ∼ |
Kalman filters complexity.
| Algorithm | ||
|---|---|---|
| (E)KF | ||
| UKF |
Computing performances.
| Controller | Single Precision Float Operations | Fixed Point 32 Bits Operations |
|---|---|---|
| ATMega328 8 bits/16 MHz | ≈100,000 | ≈1.5 M |
| STM32L053 32 bits/32 MHz | ≈180,000 | ≈3.6 M |
| STM32F4x 32 bits/216 MHz/FPU | ≈1 M without FPU, ≈12 M | ≈100 M |
Example of use-case specification.
| Mode | Controlled/Known Parameters | Parameters to Estimate |
|---|---|---|
| Calibration | Main measurement parameters | System calibration parameters |
| Normal estimation | System calibration parameters | Main measurement parameters |
Figure 4Self-balancing robot orientation frame.
Figure 5Gravity vector projection into the plane.
Filter applied to Estimation Mode.
| Step | Used Equation |
|---|---|
| Evolution | |
| Prediction/measurement | |
| Correction | |
Measurement performances results.
| Parameter | Result |
|---|---|
| Start-up convergence time | ∼30 s @ |
| Still measurement noise | <0.1 |
| Measurement repeatability | <1 |
Figure 62D orientation estimation Kalman filter processing time.