扩展卡尔曼滤波器(EKF)

../_images/advanced-configuration-ekf.png

根据速率陀螺仪、加速度计、罗盘、全球定位系统、空速和气压测量结果,使用扩展卡尔曼滤波器(EKF)算法估算载具位置、速度和角度方向。

与更简单的互补滤波算法(即 "惯性导航 "或 DCM)相比,EKF 的优势在于通过融合所有可用的测量数据,能够更好地剔除误差较大的测量数据。这使得载具不易受到影响单个传感器的故障的影响。EKF 还能利用光流和激光测距仪等可选传感器的测量结果辅助导航。

ArduPilot 当前的稳定版本使用 EKF3 作为主要的姿态和位置估计源,DCM 在后台安静运行。如果(飞行)控制器有两个(或更多)可用的 IMU,则会并行运行两个 EKF "内核"(即 EKF 的两个实例),每个内核使用不同的 IMU。在任何时候,只使用一个 EKF 内核的输出,该内核报告的健康状况最好,这是由其传感器数据的一致性决定的。

大多数用户应该不需要修改任何 EKF 参数,但下面的信息提供了一些关于最常修改的参数的信息。更详细的信息可在 开发人员 EKF 维基页.

应该使用 EKF2 还是 EKF3?

一般来说,我们建议用户坚持使用 EKF3,它现在是默认设置。此外,由于空间限制,1MB (飞行)控制器只能使用该选项。EKF2 仍可使用,但不具备 EKF3 的许多增强功能,例如较新的传感器源(包括信标、车轮编码器和目视航位测量)。

选择 EKF 和内核数量

AHRS_EKF_USE设置为 "1 "可使用 EKF,设置为 "0 "可使用 DCM 进行姿态控制和惯性导航(Copter-3.2.1),或使用 ahrs 惯性推算(Plane)进行位置控制。在 Copter-3.3(及更高版本)中,该参数被强制设置为 "1",且不可更改。

AHRS_EKF_TYPE:设置为 "2 "时,使用 EKF2 进行姿态和位置估计;设置为 "3 "时,使用 EKF3 进行姿态和位置估计。

EK2_ENABLE, EK3_ENABLE:设置为 "1",分别启用 EKF2 和/或 EKF3。

EK2_IMU_MASK, EK3_IMU_MASK:一个位掩码,指定要使用的 IMU(即加速度计/测距仪)。将为指定的每个 IMU 启动一个 EKF "核心"(即单个 EKF 实例)。

  • 1: 使用第一个 IMU 启动单个 EKF 核心

  • 2: 仅使用第二个 IMU 启动单个 EKF 核心

  • 3: 使用第一和第二个 IMU 分别启动两个独立的 EKF 内核

EK3_PRIMARY:选择哪个 "核心 "或 "通道 "作为主通道。值为 0 时,将选择 IMU 中的第一个 IMU 通道。 EK3_IMU_MASK1,第二个,等等。确保所选主车道存在。请参阅下面的耦合性和车道切换。

备注

如果 EKF 不健康或 EKF 无法融合 GPS 数据(尽管 GPS 具有 3D 锁定功能),飞机和UGV无人车将从 EKF2 或 EKF3 回退到 DCM。不会从 EKF3 回退到 EKF2(或从 EKF2 回退到 EKF1)。

警告

使用上述参数可以同时并行运行多达 5 个 AHRS(DCMx1、EKF2x2、EKF3x2),但这会导致性能问题,因此如果并行运行 EKF2 和 EKF3,应设置 IMU_MASK,以减少内核总数。

耦合与车道切换

EKF3 提供传感器耦合性功能,允许 EKF 内核也使用非主要传感器实例,特别是空速、气压计、指南针(磁力计)和 GPS。这样,载具就能更好地管理优质传感器,并能相应地切换车道,使用性能最佳的传感器进行状态估计。有关详细信息和配置,请参阅 EKF3 耦合力和车道切换.

GPS / 非 GPS 转换

EKF3 支持在飞行中切换传感器,这对于在 GPS 和非 GPS 环境之间转换非常有用。参见 GPS / 非 GPS 转换 了解更多详情。

常见修改参数

EK2_ALT_SOURCE 使用哪个传感器作为主要高度源

  • 0:使用气压计(默认值)

  • 1 : 使用测距仪。 除非飞行器在地面平坦的室内飞行,否则请勿使用该选项。.关于以下地形,请参见 旋翼飞行器飞机特定地形以下说明 无需更改该参数。

  • 2 : 使用 GPS。当 GPS 质量很好而气压计漂移可能成为问题时,这种方法就很有用。例如,如果飞行器将执行高度变化为 100 米的长距离任务。

EK2_ALT_M_NSE:默认为 "1.0"。数字越小,对加速度计的依赖越小,对气压计的依赖越大。

EK2_GPS_TYPE:控制 GPS 的使用方式。

  • 0:使用 3D 速度&;2D 定位来自 GPS

  • 1 : 使用 2D 速度&;2D 定位(GPS 速度不用于高度估计)。

  • 2: 使用 2D 定位

  • 3:无 GPS(将使用 光流 仅当可用时)

EK2_YAW_M_NSE:控制计算航向时 GPS 和指南针的权重。默认值为 "0.5",数值越小,则越信任罗盘(即罗盘的权重越高)。

如上所述,有关 EKF 理论和飞行稳定调整参数的更详细概述,可在开发人员维基站点的 扩展卡尔曼滤波器导航概述和调整.