Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

IMU Preintegration

  • 다른 이름: preintegrated IMU factor, on-manifold preintegration
  • 카테고리: State estimation & navigation › Localisation
  • 태그: imu, state-estimation, factor-graphs, sensor-fusion, slam

두 키프레임 사이의 많은 IMU 샘플을 그 절대 상태에 의존하지 않는 하나의 상대 운동 측정으로 합쳐, 추정치가 바뀌어도 최적화기가 다시 적분할 필요가 없게 하는 것.

정의

IMU는 카메라나 LiDAR가 프레임을 내는 것보다 훨씬 자주 가속도계와 자이로스코프 샘플을 낸다. 최적화 기반 추정기에서 IMU 샘플마다 상태를 하나씩 추가하면 문제가 지나치게 커지지만, 샘플을 단순히 적분해 자세로 만드는 데에도 다른 문제가 있다. 그 결과가 시작 시점의 방향, 속도, 바이어스에 의존하는데, 이것들 자체가 추정되는 중이라는 점이다. 최적화기가 그 값들을 바꿀 때마다 해당 구간의 IMU 데이터 전체를 다시 적분해야 할 것이다. IMU 사전적분(IMU preintegration)은 두 상태 사이의 측정을 첫 번째 상태의 몸체 좌표계에서 적분하여, 시작 자세와 속도에 의존하지 않는 회전, 속도, 위치의 상대적 변화를 만들어 냄으로써 이를 피한다.

Lupton과 Sukkarieh가 시각 관성 내비게이션을 위해 사전적분을 도입했고(2012), Forster, Carlone, Dellaert, Scaramuzza가 이를 회전 다양체 위에서 재정식화했다(2015, 2017년에 확장). 오늘날 대부분의 팩터 그래프 시스템이 쓰는 것이 이 정식화이다. 중력은 따로 처리하여, 사전적분된 항을 두 상태와 비교할 때 다시 더해 준다. 바이어스 의존성은 1차 보정으로 처리한다. 적분하는 동안 이 방법은 자이로스코프와 가속도계 바이어스에 대한 사전적분량의 야코비안도 누적하므로, 바이어스 추정치가 조금 바뀌면 측정을 저렴하게 갱신할 수 있다. 결합된 측정의 공분산도 함께 전파되며, 이것이 팩터의 가중치가 된다. 바이어스 추정치가 적분 때 사용한 값에서 크게 벗어나면 적분을 다시 한다.

그 결과는 팩터 그래프(factor graph)에서 연속한 키프레임 사이에 놓이는 하나의 IMU 팩터로, 키프레임들의 자세, 속도, 바이어스를 연결하며, 보통 느린 바이어스 랜덤 워크를 모델링하는 팩터와 함께 쓰인다. 이것이 VINS-Mono, ORB-SLAM3의 관성 모드, LIO-SAM, LVI-SAM 같은 슬라이딩 윈도 추정기와 전체 평활화 추정기 안에 IMU 데이터를 두는 것을 실용적으로 만든다. 정확도는 여전히 팩터에 주어진 IMU 잡음 및 바이어스 파라미터, 다른 센서와의 시간 동기화, 그리고 측정값이 샘플 사이에서 일정하거나 단순하게 변한다고 가정하는 이산 적분 방식에 좌우된다.

중요한 이유

사전적분이 없다면 강결합 시각 관성 최적화와 LiDAR 관성 최적화는 너무 느려서 로봇에 탑재해 실행할 수 없을 것이다. 사전적분 덕분에 IMU 데이터가 하나의 팩터 그래프 안에서 카메라, LiDAR, 기타 측정과 나란히 놓일 수 있다.

주요 응용

  • 시각 관성 주행거리계와 SLAM 백엔드
  • LiDAR 관성 주행거리계와 매핑
  • IMU 데이터와 GPS, 레이더, 휠 주행거리의 팩터 그래프 융합
  • 가속도계와 자이로스코프 바이어스의 온라인 추정
  • 카메라-IMU 및 LiDAR-IMU 보정

실제 사례

GTSAM을 사용하는 한 개발자가 데이터시트나 기록된 데이터의 앨런 분산 분석에서 얻은 IMU의 잡음 밀도와 바이어스 랜덤 워크 값으로 사전적분 객체를 만든다. 두 키프레임 사이의 모든 IMU 샘플이 여기에 입력되고, 다음 키프레임이 도착하면 누적된 결과가 두 키프레임의 자세, 속도, 바이어스 변수를 잇는 IMU 팩터가 된다. 나중에 최적화기가 바이어스를 갱신하면 팩터는 샘플을 다시 처리하는 대신 저장된 야코비안을 사용한다. 지표 투과 레이더 같은 다른 센서로 위치를 추정하는 시스템도 같은 팩터를 써서 상대적으로 드문 레이더 측정 사이의 자세들을 연결한다.

흔한 오해

  • 사전적분은 IMU 드리프트를 없앤다 — 사전적분은 적분을 재구성할 뿐이다. 잡음과 바이어스 오차는 그대로 남으며 다른 센서로 제약해야 한다
  • 사전적분된 측정은 한 번 계산하면 고정된다 — 이는 바이어스 추정치에 의존하며, 1차까지 보정되고 바이어스가 크게 바뀌면 재적분이 필요하다
  • 사전적분은 속도를 위한 요령일 뿐이다 — 제대로 전파된 공분산도 제공하며, 이것이 최적화기가 IMU 데이터와 다른 센서 사이에 가중치를 정할 수 있게 해 준다

알아야 할 사람

  • SLAM 및 시각 관성 주행거리계 개발자
  • 상태 추정 엔지니어
  • 드론 및 보행 로봇 내비게이션 엔지니어
  • 팩터 그래프 라이브러리로 추정기를 구축하는 연구자

관련 기술

  • GTSAM
  • 앨런 분산(Allan Variance)
  • 리 군(Lie Groups)
  • VINS-Mono
  • LIO-SAM
  • 관성 항법 시스템(Inertial Navigation Systems)

관련 용어

  • IMU
  • Factor Graph
  • Visual-Inertial Odometry
  • Tightly Coupled Sensor Fusion
  • Keyframe
  • LiDAR Odometry

관련 프로젝트

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenCat: An open-source Arduino and Raspberry Pi-based quadruped robot pet framework
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.