Kalman filter is presumably one of the most important and extensively used filtering techniques in modern control systems. Yet, nearly all current variants of Kalman filters are formulated in the Euclidean space $\mathbb{R}^n$, while many real-world systems (e.g., robotic systems) are really evolving on manifolds. In this paper, we propose a method to develop Kalman filters for such on-manifold systems. Utilizing $\boxplus$, $\boxminus$ operations and further defining an oplus operation on the respective manifold, we propose a canonical representation of the on-manifold system. Such a canonical form enables us to separate the manifold constraints from the system behaviors in each step of the Kalman filter, ultimately leading to a generic and symbolic Kalman filter framework that are naturally evolving on the manifold. Furthermore, the on-manifold Kalman filter is implemented as a toolkit in $C$++ packages which enables users to implement an on-manifold Kalman filter just like the normal one in $\mathbb{R}^n$: the user needs only to provide the system-specific descriptions, and then call the respective filter steps (e.g., predict, update) without dealing with any of the manifold constraints. The existing implementation supports full iterated Kalman filtering for systems on any manifold composed of $\mathbb{R}^n$, $SO(3)$ and $\mathbb{S}^2$, and is extendable to other types of manifold when necessary. The proposed symbolic Kalman filter and the developed toolkit are verified by implementing a tightly-coupled lidar-inertial navigation system. Results show that the developed toolkit leads to superior filtering performances and computation efficiency comparable to hand-engineered counterparts. Finally, the toolkit is opened sourced at https://github.com/hku-mars/IKFoM to assist practitioners to quickly deploy an on-manifold Kalman filter.
翻译:Kalman 过滤器大概是现代控制系统中最重要和广泛使用的过滤技术之一。 然而, 几乎所有目前 Kalman 过滤器的变体都在 Euclidean 空间中制定 $\ mathb{R ⁇ n$, 而许多真实世界系统( 如机器人系统) 正在真正地在管道上演进。 在本文中, 我们建议了一种方法来开发 Kalman 过滤器, 用于这种配置式系统。 利用 $\boxplus, $\boxus 操作, 进一步定义各个管道上的 Oblus 过滤器。 我们建议用 completeal 表示 Kalman 过滤器的功能。 在 $\ box_R ⁇ _n$ 的正常操作中, 我们建议用 com- kalternetlex 格式让我们把系统中的多重限制与系统行为分开, 最终地将Kalmarman 过滤器的性能自动更新。 此外, 将手持的 Kalfriterflex Kalbbbral- sal lademental lade, 在任何系统上, comdeal- deal deal deal deal detaild.