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.