본 포스팅은 논문 Visual-Inertial Odometry of Aerial Robots를 읽고 정리한 내용입니다. 

 

아는 것이 많이 없어서 부족한 부분이 많습니다. 혹여나 틀린부분 있다면 지적해주시길 바랍니다!

 

Definitions

Visual-Inertial Odometry (VIO)는 객체(로봇 같은 것)의 state (속도, 위치)를 추정하는 방법중의 하나

Overview

Camera와 IMU의 센서는 서로 상보적인 관계이다.

카메라는 공간을 인지하는데 매우 유용한 센서이지만 mono 카메라의 경우는 scale ambiguity 문제

가 있고, low texture나 motion blur에도 매우 취약함.

반면 IMU는 고속으로 정보를 받아오기 때문에 정보가 많지만 noise가 많이 타고 시간이 지날 수록 오차가 계속 누적됨

그래서 센서의 장점만을 모아 Camera와 IMU를 융합하여 robust한 state 추정이 가능


위의 그림을 보면 IMU 와 Camera는 measurement rate가 각각 다르다.

(Camera - 100Hz 미만, IMU-약 1000Hz )

이를 맞추기 위한 작업이 필요함

카메라가 받아오는 환경의 정보는 3D landmark $\mathbf{wP}$에서 2D image coordinate $\mathbf{u}$로 projection된다.


$\textbf{T}_{CW}$는 world coordinate에서 camera coordinate로 바꾸는 rotation+translation 행렬

IMU는 각속도 $\omega$와 외부 가속도 $\mathbf{a}$를 측정한다.


${ }{I} \boldsymbol{\omega}$는 IMU frame에서의 각속도 ${ }{W} \boldsymbol{\mathbf{a}}$는 외부 가속도이고 ${ }_{W} \boldsymbol{\mathbf{g}}$는 중력가속도 이다

$\mathbf{b}$와 $\mathbf{n}$은 각각 bias와 noise이다.


  • Tightly-coupled

Loosely-coupled 보다 좀 더 정확한 경향이 있음, 2D feature와 IMU measurement간의 퓨전

  • Loosely-coupled

camera와 position, IMU의 position 간의 퓨전

Key Research Findings

VIO에서는 크게 3가지 state 추정 방법이 있음

  • Filtering

이전 state로부터 추정하는 방법

  • Fixed-lag smoothing

적당한 시간의 state들을 이용해 추정하는 방법

  • Full smoothing

모든 시간의 state들을 이용해 추정하는 방법