# 计算机视觉 (光流,MoCap, VIO,避障)

计算机视觉 (opens new window) 技术使计算机能够使用视觉数据来理解他们的环境。

PX4使用计算机视觉系统(主要在机载计算机上运行)以支持下列功能:

  • 光流提供 2D 速度估计(使用向下的相机和向下的距离传感器)。
  • 运动捕捉使用载具_外部_的视觉系统进行3D姿态估计。 它主要用于室内导航。
  • 视觉惯性测距 (VIO) 使用机载视觉系统和 IMU 来提供 3D 姿态和速度估计。 用于在GNSS位置信息不存在或不可靠时的导航。
  • 避障 为飞行计划路径时,提供完整的障碍绕行导航(支持当前任务)。 这将使用运行在同伴计算机上的PX4/PX4-avoidance (opens new window)
  • 防碰用于载具在撞到障碍物之前刹车(主要是在手动模式下飞行时)。

提示

PX4 Vision Autonomy Development Kit (Holybro) 是一个健壮且不贵的工具包,供开发者在 PX4 上使用计算机视觉技术。 它提供了无需预先安装的软件,且包含一个为展示平台能力而实现的避障实例。

# 运动捕捉

运动捕捉(MoCap)是一种利用载具_外部_定位设备估计载具3D 姿态(位置和方向)的技术。 MoCap 系统最常使用红外相机检测运动,但也可以使用其他类型的相机,激光雷达或者超宽带 (UWB)。

注解

MoCap 通常用于无GPS的情况下进行载具的导航(例如室内),并提供在本地坐标系下的相对位置。 它通常用于在GPS不存在(例如室内)或不可靠的情况下(例如在桥下飞行时)导航载具。

有关 MoCap 的信息,请参阅:

# 视觉惯性里程计(VIO)

视觉惯性里程计(VIO)被用于估计运动载具相对于本地起始位置的3D_姿态_(位置和方向)和_速度_。 它通常用于在 GPS 不存在(例如室内)或不可靠的情况下(例如在桥下飞行时)给载具导航。

VIO使用视觉里程计 (opens new window)从视觉信息估计载具的_姿态_,融合来自IMU的惯性测量(以校正载具快速移动导致不良图像捕获)。

VIO

MoCap 之间的一个区别是,VIO 照相机/IMU 是基于载具的,并且还提供了速度信息。

关于在 PX4 上配置 VIO 的信息,请参阅:

# 光流

光流提供 2D 速度估计(使用向下的相机和向下的距离传感器)。

有关光流的信息,请参阅:

# 比较

# 本地位置估计 光学流 对 VIO

这两种技术都使用照相机并测量帧之间的差异。 光学流使用向下照相机,而VIO则使用立体照相机或45度跟踪照相机。 假定两者的校准都很好,哪个对本地地位置估计更好?

的共识似乎是 (opens new window)

Optical flow:

  • 向下光学流使得你能够通过陀螺仪的角速度来校正角平面速度。
  • 需要准确的地面距离并假定地面为平面。 在这种情况下,它可能与VIO一样准确可靠(例如室内飞行)
  • 它比VIO更健壮,因为它的状态较少。
  • 更便宜和更容易设置,因为它只需要一个流传感器,一个范围探测器。 并设置几个参数(可以连接到飞行控制器)。

VIO

  • 购买更加昂贵,设置更加困难。 它需要一台单独的配套计算机、校准、软件、配置等等。
  • 如果没有可跟踪的点特征(实际上现实世界一般有点特征),效果将会减弱。
  • 较为灵活,可以增加诸如避免障碍和制图等其他功能。

组合(两者兼用)可能是最可靠的,但在大多数现实世界的情景中并不必要。 通常您将选择适合您的运行环境、所需功能和成本限制的系统:

  • 如果您打算在没有GPS的情况下在室外飞行(或室外和室内飞行),请使用 VIO 或者如果您需要支持避障碍和其他计算机视觉特性。
  • 如果您只计划在室内飞行(不使用 GPS),且成本是一个重要的考虑因素,使用Optical Flow。

# 外部资源