ArduPilot的EKF(扩展卡尔曼滤波器)可以在无需空速传感器的情况下估计多旋翼飞行器所处环境的风速。这对飞行员来说是有用信息,也可用于补偿与风相关的气压计干扰。当自动驾驶仪暴露在开放空气中时,这种干扰可能发生,并可能导致飞行器爬升或下降数米,尤其是在从快速前飞减速之后。
【视频】带风力估计的无人机惯性导航


EK3_DRAG_BCOEF_X = 质量(kg) / 正面面积(m²)EK3_DRAG_BCOEF_Y = 质量(kg) / 侧面面积(m²)对于上图中所示的IRIS无人机:
EK3_DRAG_BCOEF_X = 1.45kg / 0.0203 m² = 71.4EK3_DRAG_BCOEF_Y = 1.45kg / 0.0217 m² = 66.8EK3_DRAG_MCOEF 参数的值应按照视频中描述的方式,在执行飞行测试后计算。
EK3_DRAG_MCOEF 的最终值通常在0.1到1.0之间。启用后,估计的风速会通过WIND mavlink消息实时发送到地面站。如果使用Mission Planner,在“数据(Data)”页面,选择“快速(Quick)”选项卡,双击显示的任何数字,然后选择“wind_dir”或“wind_vel”。

EKF的风速估计值记录在机载日志的XKF2消息的VWN和VWE字段中。

启用风速估计后,它可用于补偿风对每个气压计在四个方向(前、后、左、右)上的影响。计算每个参数值的方法在视频中讨论。
BARO1_WCF_ENABLE = 1 以启用,然后重新启动自动驾驶仪。BARO1_WCF_FWD: 正X方向(向前)的压力误差系数BARO1_WCF_BCK: 负X方向(向后)的压力误差系数BARO1_WCF_RGT: 正Y方向(向右)的压力误差系数BARO1_WCF_LFT: 负Y方向(向左)的压力误差系数BARO1_WCF_UP: 正Z方向(爬升)的压力误差系数BARO1_WCF_DN: 负Z方向(下降)的压力误差系数其机制和设置方法如下视频所述:
【视频】多旋翼飞行器中的风速估算——Dr Paul Riseborough
参考链接:https://ardupilot.org/copter/docs/airspeed-estimation.html