DYLAN / LABWU · WHT / 飞行实验室
WHT / BROWSER SIMULATION

DYLAN’S FLIGHT LAB / CODE TO SKY

把看不见的误差,放到眼前。

Dylan 的飞控与嵌入式试验场。从一行代码,到一段航迹,让每一次探索都看得见。

Wu
DylanWHT / PERSONAL LABPX4 · EMBEDDED · FLIGHT
沿参考航线自动飞行

正在准备试验场…

仿真运行中DYLAN’S TEST FIELD / WHT-01
ALT 12.0 mHDG 090 °SPD 0.0 m/sGNSS · 10 Hz
E / NLOCAL · m
00:00.0

拖动旋转 · 滚轮缩放

飞行真值KF 融合位置GNSS 观测参考航线3D VISUALIZATION
定位误差 融合 → 真值0.00 m
观测偏差 GNSS → 真值— m

包含噪声与传输延迟

跟踪误差 真值 → 参考点0.00 m

与定位误差分开观察

01

误差的时间切片

最近 30 s / m

THE MOMENT THAT MATTERS

位置对了,时间呢?

观测的是过去的位置,融合的却可能是现在。
移动两个时间点,看看误差发生在哪一步。

过去 1 秒当前 IMU 时刻
GNSS 采样
融合时刻
GNSS 采样 → 传输 → 融合 → 当前预测Δt = 0 ms

DYLAN / WHT · MODEL NOTES

实验的边界,也是理解的起点。

这是面向飞控感知与时序的浏览器实验。画面为三维展示,动力学只计算二维水平运动,高度固定 12 m;机体大小和航迹高度经过视觉夸张。

这里模拟了什么

自定义航线

在俯视地图点选 2–24 个航点,可拖动或输入坐标调整。航点位于 E ±40 m、N ±28 m 范围内,相邻点至少相距 1 m;选择终点悬停、闭合循环或往返。应用会切换为自动飞行并重置实验。默认跟踪按时间推进的折线参考,也可在“控制与航点任务”中选择到达后推进;需进入到达半径且速度低于 0.5 m/s,连续满足停留时间后进入下一点。拐角自动减速,仍可能超调。长航线会自动延长实验时限,以覆盖最低目标速度下的一次完整遍历;只保留最近 180 秒数据。自定义航线保存在本浏览器,未上传服务器;A/B 对照也使用这条航线。

手动飞行

WASD、方向键或长按触屏方向盘,按机头方向控制前后左右:W 前进、S 后退、A 左移、D 右移;Q/E 控制机头左/右转(60°/s),松开停止转头。侧移和倒飞不改变机头方向。速度由目标速度滑块设定;按键直接给定水平速度;松开后先制动,低速时锁定实际停留位置。E ±45 m、N ±32 m 附近提前减速,真值可能有短暂超调。高度保持 12 m,航向采用简化运动学,不模拟完整姿态动力学、油门或升降。WASD 可从滑块或下拉框直接接管;方向键在参数控件上保留调参功能。H / Esc、暂停、窗口失焦及打开弹窗会清除操纵输入。手动模式第三项指标显示速度误差。切回自动后会接回离开时的航线进度;对照实验始终使用所选自动航线。

如何读结果

默认使用真值反馈,便于隔离定位问题;选择估计反馈后,自动飞行的位置和速度控制使用上一时步估计,定位误差将影响真实航迹。手动模式保持真值反馈。三种误差分别相对于真值或参考点计算,不能混为一谈。

噪声 σ 是每个水平轴的标准差;图中误差是二维欧氏距离。对照实验固定种子、航线、风场和噪声,只改变补偿量,统计 2–40 s 中 GNSS 有效时段的定位 RMSE。估计反馈下两组真实航迹可能不同;定时故障沿用当前设置。回放是每 0.1 秒记录的显示快照,不会修改当前物理状态;仅保留最近 180 秒。

PX4 EKF 模式

使用官方 PX4 v1.15.4 的 C++ EKF 核心,编译为 WebAssembly,在浏览器独立线程计算。切换会重置飞行记录,保留当前参数;开始前输入 12 秒静止传感器数据完成初始对准(不计入实验时间)。初始失锁场景也从已对准状态开始。

输入为 200 Hz 机体系 FRD 的角增量与比力增量、10 Hz GNSS 位置和速度、模拟双天线航向以及固定高度气压观测。滤波按 100 Hz 更新,使用 PX4 延迟融合与输出预测器;页面展示输出预测器的当前位置。自动机头转速限为 60°/s;真值姿态保持水平,只改变航向。IMU 水平加速度计带固定机体系偏置和噪声,陀螺仪为理想角增量。

这与 KF 的传感器输入不同:KF 只使用世界系水平加速度和 GNSS 位置,因此两个模式的误差不能直接作为算法优劣排名。A/B 比较在同一个模式内进行。CSV 的 sigma 来自滤波协方差;EKF 中为延迟融合时域的水平位置标准差合成,不能当作输出预测器当前位置的严格置信界。

核心版本与构建来源 · 开源许可

与真实飞控的区别

这里运行的是估计算法实验,不是完整 PX4 SITL:没有飞控调度、uORB、传感器驱动、完整六自由度动力学或实机输入;补偿范围与增益均为演示设置,不能直接当作实机调参结论。黄色机头箭头、HDG 读数与操纵方向共用同一个航向;跟随视角位于机尾后上方。3D 图形使用本地托管的 Three.js。

WU / WHT · ROUTE DESIGNER

下一段航迹,由你来画。

点击地图添加航点,拖动调整位置。北向上、东向右,单位 m;飞机按编号顺序飞行。

N ↑E →E ±40 m / N ±28 m
0 / 24 航点

    曲线预设复制时简化为最多 24 个航点。应用后保存在当前浏览器;再次打开编辑器可继续修改。

    A / B EXPERIMENT

    只改变时间,结果会怎样?

    正在运行相同条件下的两组实验…

    未补偿 · 定位 RMSE—
    正确补偿 · 定位 RMSE—

    所选自动航线;固定随机种子;GNSS 始终开启;统计 2–40 s;这是简化模型的实验结果。