Kalman Filter Sensor Fusion
- Extended Kalman filter sensor fusion
- Quaternion coordinate system
- Gyroscopic, acceleration, and magnetic field measurements
- 3kHz algorithm rate on a 150MHz embedded processor
- Wireless data connection, battery operation
Traditional mechanical inertial measurement systems developed in the 20th century achieve excellent performance that enabled the advancement of the aviation industry and were essential in the evolution of space flight. These demanding applications place stringent requirements on the inertial sensors that justify their complexity, cost, and maintenance provisions. Less critical and more fiscally constrained applications rely on solid state inertial sensors that trade off performance in exchange for economy. Various physical principles have been exploited and technologies developed for the measurement of angular rate, linear acceleration, and magnetic field. However, signal noise and bias drift limit the accuracy of the estimate of the orientation and motion in three dimensional space from these sensors. By combining information from different types of sensors, it is possible to reduce the overall error in attitude determination. This project focuses on the development of an efficient algorithm for fusing sensor data from gyroscopes, accelerometers, and magnetic sensors.
By integrating angular velocity measurements obtained from gyroscopes into orientation representation, random noise present in the signals accumulates into a drifting error over time, even with a perfectly calibrated sensor and zero initial bias. Information from additional sensors is necessary to offset the effect of random walk and extend the validity of the orientation estimate. A three-axis accelerometer can be used to measure the gravity vector and determine the orientation of the sensor with respect to the Earth. Aside from not being able to distinguish between gravity and acceleration related to dynamic motion, the orientation estimate is limited to two degrees of freedom — rotation around the axis in the direction of the gravity vector cannot be determined. The left figure below illustrates this ambiguity, where the same gravity vector (red) represents three different sensor orientations (green) with respect to the Earth coordinate frame (blue). Alternatively, a three-axis magnetometer can be used to measure the magnetic field of the earth with the same missing degree of freedom ambiguity, as shown on the right plot below.
By combining the information about the gravity and magnetic field vectors, a complete three-dimensional attitude representation can be obtained as shown below.
There are several ways in which information from complementary sensors can be used to construct a more accurate representation of a physical quantity. One approach is by using a Kalman filter, which has the benefit of weighing the contributions from the individual sensors based on the quality of the measurements determined from the difference between the expected and actual measurement and the statistical distribution of the sensor error and the dynamics of its movement. The Extended Kalman filter developed in this project operates in quaternion coordinates, which overcomes the limitations of Euler representation of orientation. The algorithm is implemented on a digital signal processor and executes with a 3kHz update rate.
Extended Kalman filter inertial measurement unit fusing data from three solid-state sensors provides orientation feedback in this platform stabilization demonstration. A high-frame-rate video camera was used to capture slow motion sequences for closer analysis.