FPGA-Based Real-Time Sensor Fusion for Inertial Navigation Using IMU and GPS Data
This paper presents a low-latency, real-time FPGA implementation of an IMU/GPS Extended Kalman Filter for inertial navigation, achieved by optimizing a reduced 16-state model through High-Level Synthesis on a Xilinx Kintex-7 platform to deliver high-precision estimation with minimal resource utilization.
Original paper licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer
Imagine you are trying to find your way through a dense, foggy forest without a map. You have two tools to help you. The first is a super-fast, super-accurate pedometer and a spinning top strapped to your wrist (an IMU). These tell you exactly how fast you are moving and which way you are turning, but they are a bit "drifty." If you use them for too long, they slowly start to lie to you, making you think you're walking in a straight line when you're actually spiraling. The second tool is a satellite phone (GPS). It tells you exactly where you are on the map, but it's slow to connect and only gives you a fix once in a while. If you rely only on the satellite, you might miss a sudden turn; if you rely only on the pedometer, you'll eventually wander off the path.
To solve this, engineers use a clever math trick called a "sensor fusion" algorithm, specifically something called an Extended Kalman Filter (EKF). Think of this filter as a super-smart referee that constantly listens to both the fast pedometer and the slow satellite. It guesses where you are, checks the satellite to see if the guess was right, and then corrects the pedometer's drift. The problem is that doing this math fast enough to keep up with the pedometer's high speed is incredibly heavy lifting for a standard computer chip. This is where Field-Programmable Gate Arrays (FPGAs) come in. If a normal computer chip is a single chef cooking a meal one step at a time, an FPGA is a massive kitchen with hundreds of chefs working in perfect sync, all at the exact same time. This paper explores how to build that super-kitchen to run the navigation referee in real-time.
The Paper's Mission: Building a Super-Fast Navigation Brain
This paper by Abbas Fadavi presents a new way to build that "super-kitchen" for navigation. The author took a complex navigation algorithm that usually runs on a computer and successfully translated it into a design that lives directly on a Xilinx Kintex-7 FPGA chip. The goal was to make the "referee" (the EKF) fast enough to handle the high-speed data from the IMU while waiting for the slow GPS updates, all without getting bogged down by the heavy math.
The Challenge: From Math Class to Hardware
The journey started with a big hurdle: the original algorithm was written in MATLAB, a software tool full of fancy "toolbox" features that hardware chips can't understand. It was like trying to cook a recipe written for a high-tech molecular gastronomy lab using a campfire. The author had to strip away the fancy software dependencies and rewrite the code so it could be synthesized (translated) into hardware logic.
One major change involved the "state vector," which is just a list of all the things the computer is trying to guess about your position (like where you are, how fast you're going, and which way you're facing). The original MATLAB model tried to guess 22 different things, including magnetic field data. The author realized that for this specific GPS/IMU setup, the magnetic data wasn't strictly necessary. By cutting the list down to 16 key items, they reduced the amount of math the chip had to do by about 65%. It's like realizing you don't need to track the temperature of every single leaf in the forest to know you're lost; you just need to track your path and speed.
The Magic Tricks: How They Made it Fast
To make the math fly, the author used a few clever tricks:
- Analytical Formulas: Instead of letting the computer guess and check (iterative methods) to solve complex math problems, they used exact, pre-calculated formulas. It's the difference between guessing the answer to a riddle by trying every word in the dictionary versus just knowing the answer.
- Cholesky Factorization: For the heavy lifting of matrix math (which is like organizing a giant spreadsheet of probabilities), they used a specific, efficient method called Cholesky factorization. This is like using a shortcut to solve a puzzle instead of trying to fit every piece in every possible spot.
- Pipelining: They used special instructions called "PIPELINE" and "ARRAY_PARTITION." Imagine a factory assembly line where every worker does one tiny step and passes the work to the next person immediately. This allows the chip to process data continuously without stopping to wait for the previous step to finish.
The Results: Speed and Accuracy
The team tested their design on a Xilinx Kintex-7 FPGA. The results were impressive. The chip ran at a clock speed of 50 MHz. Every time it needed to update its guess of your location, it took between 1.12 milliseconds and 1.21 milliseconds. That is incredibly fast—fast enough to keep up with the high-speed IMU sensors.
In terms of resources, the design was surprisingly efficient. It used only 191 "DSP slices" (the chip's math engines), which is just 12% of the total available power on the chip. This leaves plenty of room for other tasks.
Most importantly, the author compared the chip's output to the original computer model. The difference was tiny—less than 0.001% error. This proves that even though they simplified the math and changed the code to fit the hardware, the chip is still telling the truth. The paper concludes that by using High-Level Synthesis (HLS) tools and smart simplifications, it is possible to build a real-time, low-latency navigation system on a mid-range chip that is both fast and accurate.
Drowning in papers in your field?
Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.