Open Source Robotics

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

Visual-Inertial Odometry

  • 다른 이름: VIO, visual-inertial navigation
  • 카테고리: State estimation & navigation › Localisation
  • 태그: state-estimation, odometry, imu, computer-vision, drones

카메라 영상과 IMU 측정을 융합해 로봇의 위치, 자세, 속도를 추정하는 것으로, IMU는 프레임 사이의 공백을 메우고 미터 스케일을 관측 가능하게 한다.

정의

시각 관성 주행거리계(VIO)(visual-inertial odometry)는 관성 측정 장치(IMU)와 함께 강체로 장착된 카메라의 운동을 추정한다. 카메라는 프레임 사이에서 시각 특징점이나 영상 밝기를 추적하는데, 이는 회전과 병진 방향을 잘 제약하지만 천천히 드리프트하며, 카메라가 하나뿐이면 미터 단위의 스케일을 복원할 수 없다. IMU는 각속도와 비력을 훨씬 높은 주기로 측정한다. 이를 적분하면 단기 운동을 얻고 중력 방향과 미터 스케일이 관측 가능해지지만, IMU만으로는 적분 오차가 빠르게 커진다. 둘을 결합하면 어느 한 센서만 쓸 때보다 더 정확하고 강인한 추정을 얻으며, VIO는 드론, AR 헤드셋, 그리고 많은 보행 로봇에서 표준 상태 추정기이다.

시스템은 두 가지 축에서 갈린다. Mourikis와 Roumeliotis(2007)의 다중 상태 제약 칼만 필터(MSCKF)와 ROVIO 같은 필터 기반 방법은 IMU로 상태를 전파하고 시각 측정으로 갱신한다. OKVIS와 VINS-Mono 같은 최적화 기반 방법은 최근 키프레임들에 걸친 슬라이딩 윈도 비선형 최소제곱 문제를 풀며, 보통 키프레임 사이에 IMU 사전적분 팩터를 둔다. 어느 쪽이든 특징점 관측을 추정기에서 직접 사용하는 강결합 방식일 수도 있고, 시각 파이프라인이 따로 계산한 자세를 융합하는 약결합 방식일 수도 있다. 특징점 기반 프런트엔드는 코너나 기술자를 추적하고, 직접 방법은 픽셀 밝기를 다룬다.

VIO는 여전히 주행거리계이다. 위치와 중력 축에 대한 요는 관측 불가능하므로 루프 클로저나 외부 기준 없이는 드리프트하며, 롤과 피치는 IMU가 중력을 감지하기 때문에 유계로 유지된다. 정확도는 보정(카메라 내부 파라미터, 카메라-IMU 외부 파라미터, 두 센서 사이의 시간 오프셋)과, 중력, 스케일, 속도, 바이어스를 추정해야 하는 초기화에 크게 좌우된다. 빠른 운동은 모션 블러와 큰 특징점 변위를 일으키고, 텍스처가 적거나 조명이 나쁘면 프런트엔드가 쓸 정보가 부족해지며, 등속 운동에서는 스케일과 바이어스가 약하게만 관측된다. 시각 주행거리계(visual odometry) 항목은 카메라만 쓰는 경우를 다룬다. VIO는 IMU를 선택적인 보조 수단이 아니라 추정기 안의 완전한 측정으로 취급한다는 점에서 다르다.

중요한 이유

VIO는 가볍고 값싸며 전력 효율이 좋은 센서 한 쌍에게 GPS나 외부 모션 캡처 없이 미터 단위의 고주기 자세 추정을 제공한다. 민첩한 드론, 모바일 AR 기기, 많은 필드 로봇이 이에 의존하며, 그 실패 양상(드리프트, 스케일 오차, 빠른 운동 중 추적 상실)이 그런 로봇이 얼마나 공격적으로 움직일 수 있는지의 한계를 정한다.

주요 응용

  • 실내, 수관 아래, 구조물 근처에서 GPS 없는 드론 비행
  • 증강 현실 및 가상 현실을 위한 머리와 기기의 추적
  • 보행 로봇과 휴대형 매핑 장치의 상태 추정
  • 시각 관성 SLAM 시스템의 프런트엔드
  • 위성 측위를 쓸 수 없는 비행체와 착륙선의 내비게이션

실제 사례

자율 레이싱 쿼드로터를 만드는 한 팀은 글로벌 셔터 스테레오 카메라와 IMU를 같은 강체 판에 장착한 뒤, 보정 타깃과 Kalibr 같은 도구로 카메라 내부 파라미터, 카메라-IMU 외부 파라미터, 시간 오프셋을 보정한다. 기체에서는 슬라이딩 윈도 추정기가 카메라 주기로 특징점을 추적하고 프레임 사이에서 IMU를 적분하며, 자세와 속도를 IMU 주기로 제어기에 발행한다. 빠른 선회 중에는 모션 블러 때문에 특징점 추적 길이가 짧아지고 코스를 도는 동안 위치 추정이 드리프트하므로, 팀은 대략적인 위치가 알려진 레이스 게이트의 검출 결과를 융합해 누적된 드리프트를 보정한다. 특징점 수가 줄어드는 것이 대개 다가오는 실패의 첫 신호이므로, 팀은 매 비행마다 추정기의 바이어스와 특징점 수 출력을 기록한다.

흔한 오해

  • VIO는 절대 위치를 준다 — VIO는 주행거리계이다. 루프 클로저, 지도, 외부 기준으로 보정하지 않으면 위치와 방향이 거리에 따라 드리프트한다
  • IMU를 추가하면 시각 주행거리계의 모든 실패가 해결된다 — IMU는 짧은 공백을 메워 주지만, 추적할 수 있는 특징점이 없는 긴 구간은 여전히 드리프트를 일으키며 초기화를 깨뜨릴 수 있다
  • 어떤 카메라와 IMU든 신경 쓰지 않고 결합할 수 있다 — 정확한 외부 파라미터 보정과 시간 동기화가 추정기가 작동할지 발산할지를 결정하는 경우가 많다

알아야 할 사람

  • 상태 추정 및 SLAM 엔지니어
  • 드론 및 공중 로봇 개발자
  • AR 및 VR 추적 엔지니어
  • 보행 로봇 및 모바일 로봇 내비게이션 엔지니어

관련 기술

  • VINS-Mono
  • OKVIS
  • MSCKF
  • ROVIO
  • ORB-SLAM3
  • Kalibr

관련 용어

  • Visual Odometry
  • IMU
  • IMU Preintegration
  • Tightly Coupled Sensor Fusion
  • Sensor Fusion
  • SLAM

관련 프로젝트

  • ArduPilot: World's most trusted open-source autopilot for drones, planes, rovers, and submarines
  • PX4 Autopilot: Open-source flight control software for drones and other unmanned vehicles
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • OpenCat: An open-source Arduino and Raspberry Pi-based quadruped robot pet framework
  • QGroundControl: Cross-platform ground control station for mission planning and drone flight monitoring
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO

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