{'fraction_non_alphanumeric': 0.024714828897338403, 'fraction_numerical': 0.004435994930291508, 'mean_word_length': 5.143968871595331, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
FPGA sensor fusion system design for IMU arrays

Different navigation systems have different requirements for attitude estimation, positioning, and control. To achieve high-accuracy at low-cost, several low-cost MEMS Inertial Measurement Units (IMU's) may be used instead of one high-performance but high-cost and power hungry mechanical IMU. The low-cost MEMS sensors require sensor fusion to aggregate several streams of low-quality sensor data into one high-quality data stream. Signal processing algorithms, such as the Kalman Filter (KF), are used to estimate and combine the output states of IMU arrays using matrix-based iterative techniques. Large IMU arrays are beneficial for estimating more than one type of physical quantities and reducing noise variance, but the underlying matrix dimensions of each KF variable increase drastically with array size. The brute force, iterative updating of these matrices using FPGAs or ASICs is not feasible due to the limitations on digital hardware resources. This paper addresses the scalability problem of IMU array sensor fusion using a specialized vector processor designed specifically to achieve real-time, high-throughput, IMU sensor array fusion based on the KF paradigm. The vector processor has been implemented in Artix-7 FPGA and shown to outperform a scalar processor by 100% in latency for a 100-component vector with the throughput being linear in the number of IMU sensors up to the limits of the FPGA resources. The tradeoffs between vector size, memory requirements, and sampling rates are also fully quantified.