artivis/manif

A small C++11 header-only library for Lie theory.

What it solves

manif はロボティクスの状態推定のために設計された Lie 理論ライブラリです。2D および 3D 空間における回転、平行移動、速度を取り扱う数学的に厳密な方法を提供し、ロボットの姿勢と動作の計算に不可欠です。

How it works

このライブラリは、さまざまな運動と空間を表す複数の Lie 群を実装しています。

  • Euclidean space (ℝ(n)):n 次元空間での基本的な加算。
  • SO(2) and SO(3):2D と 3D 空間での回転。
  • SE(2) and SE(3):2D と 3D の剛体運動(回転と平行移動)。
  • SE_2(3):回転、平行移動、速度を含む拡張姿勢(3D)。
  • SGal(3):特殊ガリレオ群(回転、平行移動、速度、時間)— 3D 用。
  • Bundle<>:流形バンドルを単一の Lie 群として扱う方法。

接空間はデカルト表現を使用し、接ベクトルは $ mathbb{R}^n$ の通常ベクトルとして扱われます。また、局所接空間上の摂動に対する右ヤコビアンの解析的計算も提供します。

Who it’s for

状態推定、制御、学習アルゴリズムに取り組むロボティクス研究者や開発者向けで、3D 動作と幾何学の正確な数学表現が必要です。

Highlights

  • Header-only C++11 library with Python 3 wrappers.
  • Comprehensive Lie group support: Covers everything from simple rotations to complex Galilean groups.
  • Analytical Jacobians: Provides built-in computation of Jacobians for all core operations.
  • Auto-diff compatible: Works with ceres::Jet, autodiff::Dual, and autodiff::Real for non-linear solvers.
  • Rigorous mathematical foundation: Based on a specific academic paper tailored for roboticists.