ArduPilot“最新版”默认切换为使用EKF3


一旦出现问题请立即报告,最好使用稳定版和Beta版(一旦发布)

直升机和飞机可以使用扩展卡尔曼滤波器(EKF)算法,基于速率陀螺仪,加速计,指南针,GPS,空速和大气压力测量值来估计车辆位置,速度和角度方向。

与简单的互补滤波器算法(即“惯性导航”)相比,EKF的优势在于,通过融合所有可用的测量,可以更好地拒绝出现重大误差的测量。这使得车辆不易受到影响单个传感器的故障的影响。EKF还使来自可选传感器(例如光流量和激光测距仪)的测量结果可用于辅助导航。

当前的ArduPilot稳定版使用EKF2作为其主要姿态和位置估计源,而DCM在后台安静地运行。如果自动驾驶仪有两个(或多个)IMU可用,则两个EKF“核心”(即EKF的两个实例)将并行运行,每个使用不同的IMU。在任何时候,仅使用单个EKF内核的输出,该内核是报告最佳运行状况的内核,这取决于其传感器数据的一致性。

EKF2和EKF3之间的区别包括:

  • EKF3更适合尾随者或其他花费大量时间直接指向上方或下方的车辆。这是因为EKF3估算所有3个轴的加速度计偏差,而EKF2仅估算垂直轴
  • EKF3支持一些其他传感器,包括beaconWheel Encoders
  • EKF3支持GPS for yaw
  • EKF3支持GPS到非GPS的过渡
  • EKF2可以更好更快地工作在设备上,因为它估计陀螺的比例因子而EKF3没有。但现代陀螺仪比例因子几乎始终为1.0,因此这可能不是问题。

即使更改为EKF3,较旧的EKF2仍可在大多数cube上使用,并且用户可以通过更改以下参数(并重新启动cube)在它们之间进行切换:

  • AHRS_EKF_TYPE = 2或3,具体取决于您要使用的EKF
  • EK2_ENABLE = 1以启用EKF2
  • EK3_ENABLE = 1以启用EKF3

最好不要同时启用EKF2和EKF3,因为这可能会使某些自动驾驶仪上的CPU过载。它不太可能坠毁,但可能会飞得不稳定。

此项更改是为ArduPilot-4.1 Beta版测试的开始做准备。很难准确预测4.1 beta测试何时开始,但是至少Rover会在下个月开始,然后是Plane和Copter。谢谢你的耐心!

具体的使用细则参阅:Extended Kalman Filter (EKF) — Copter documentation