Project Introduction: Rednose - Kalman Filter Framework
The Rednose project showcases a sophisticated Kalman filter framework aimed at solving optimization problems, especially within the fields of visual odometry, sensor fusion localization, and SLAM. This framework is designed to deliver highly precise results and operates effectively in both online and offline modes. Additionally, it is known for its computational efficiency and ease of creating filters using Python.
Extended Kalman Filter with Symbolic Jacobian Computation
The framework employs an Extended Kalman Filter, ideal for systems described as Hidden Markov Processes with noisy measurements. Extended Kalman Filters stand out by linearizing non-linear systems at each step, offering a near-optimal estimation when the linearization is sufficiently accurate. Although there are more advanced filters like the Iterated Extended Kalman Filter or the Unscented Kalman Filter, they often bring extra complexity and computational demands.
Typically, implementing an Extended Kalman Filter involves painstakingly calculating Jacobians manually, which is error-prone and time-consuming for complex systems. However, the Rednose framework uses sympy to compute Jacobians symbolically, simplifying the process and eliminating potential calculation errors.
Error State Kalman Filter
In three-dimensional localization, orientation estimation is crucial and can be represented using Euler angles or quaternions. Euler angles, however, face issues like gimbal lock and non-linear behavior when errors are large. Quaternions, though immune to these issues, require normalization and contain a redundant fourth dimension.
The Rednose framework resolves these complications by allowing the state and its error to be represented in different spaces. The system's attitude can be represented by quaternions, while Euler angles describe the error in attitude. This approach is supported in the framework, facilitating robust 3D orientation estimation.
Multi-State Constraint Kalman Filter
Integrating feature-based visual odometry with a Kalman filter presents challenges due to the need to assimilate 2D image-space features into a 3D localization model. This involves determining the depth of features tracked across frames. The MSCKF (Multi-State Constraint Kalman Filter) approach, supported by the Rednose framework, addresses this, preventing feedback loops that inaccurately boost filter confidence in its position.
Rauch–Tung–Striebel Smoothing
In offline estimations, initial state estimations can be inaccurate. Global estimators bypass this issue, but the Rednose framework competes by offering RTS smoothing, which can make multiple forward and backward data passes, aligning performance closer to global optimization solutions.
Mahalanobis Distance Outlier Rejector
Not all measurements align neatly into a Gaussian distribution, leading to potential outliers that can disrupt filter performance. The Rednose framework incorporates a Mahalanobis distance statistical test to identify and manage such outliers, although precise initialization is key to ensure valid measurements aren't mistakenly rejected.
Through these sophisticated features, the Rednose project provides an advanced framework for tackling complex optimization challenges, leveraging the power of Kalman filtering with enhanced capabilities and precision.