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 以高得多的频率测量角速度和比力;对其积分可以得到短时运动,并使重力方向和度量尺度变得可观,但单靠积分,误差会迅速增长。把两者结合起来,得到的估计比任何一种传感器单独使用时都更准确、更鲁棒,VIO 是无人机、AR 头显和许多腿足机器人上的标准状态估计器。

各系统在两个方面有所不同。基于滤波的方法,例如 Mourikis 和 Roumeliotis(2007)的多状态约束卡尔曼滤波器(MSCKF)以及 ROVIO,用 IMU 传播状态,并用视觉测量更新状态。基于优化的方法,例如 OKVIS 和 VINS-Mono,在近期关键帧上求解一个滑动窗口非线性最小二乘问题,关键帧之间通常使用 IMU 预积分因子。两类方法都可以是紧耦合的,即在估计器中直接使用特征观测;也可以是松耦合的,即融合由视觉流程单独计算出的位姿。基于特征的前端跟踪角点或描述子;直接法则作用于像素强度。

VIO 仍然是里程计。位置以及绕重力轴的偏航角是不可观的,因此如果没有回环或外部参考,它们会漂移;而横滚角和俯仰角保持有界,因为 IMU 能感知重力。精度在很大程度上取决于标定(相机内参、相机与 IMU 之间的外参,以及两个传感器之间的时间偏移)和初始化,初始化必须估计重力、尺度、速度和偏置。快速运动会造成运动模糊和较大的特征位移,低纹理和光照不良会使前端缺乏输入,而匀速运动会使尺度和偏置只能被弱观测。视觉里程计条目介绍的是仅用相机的情形;VIO 的不同之处在于,它把 IMU 当作估计器内部的一个完整测量,而不是一个可有可无的辅助。

为何重要

VIO 让一对轻便、廉价且省电的传感器无需 GPS 或外部动作捕捉,就能给出具有度量尺度的高频位姿估计。敏捷无人机、移动 AR 设备和许多野外机器人都依赖它,而它的失效模式(漂移、尺度误差以及快速运动时跟踪丢失)限制了这类机器人能够多激进地运动。

主要应用

  • 在室内、树冠下方和建筑结构附近进行无 GPS 的无人机飞行
  • 增强现实和虚拟现实中的头部与设备跟踪
  • 腿足机器人和手持建图设备的状态估计
  • 作为视觉惯性 SLAM 系统的前端
  • 在无法使用卫星定位的场合为飞行器和着陆器导航

实际应用

一个打造自主竞速四旋翼的团队把一台全局快门双目相机和一个 IMU 安装在同一块刚性板上,然后借助标定板和 Kalibr 等工具标定相机内参、相机与 IMU 之间的外参以及时间偏移。在飞行器上,一个滑动窗口估计器以相机帧率跟踪特征,并在帧间对 IMU 积分,以 IMU 频率向控制器发布位姿和速度。在快速转弯时,运动模糊会缩短特征轨迹,位置估计在整条赛道上逐渐漂移,因此团队融合对竞速门的检测(门的大致位置已知)来校正累积漂移。他们在每次飞行中都记录估计器输出的偏置和特征数量,因为特征数量下降通常是即将失效的第一个征兆。

常见误解

  • 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 以浏览我们的开源机器人项目。