视觉制导拦截 · 实时仿真(浏览器内运行)

本页把 ROS1 + PX4 SITL + Gazebo 仿真中的制导节点 vision_tracker_controller_ros1.py 逐式移植为 JavaScript,参数全部来自 intercept_params.yaml
点「运行」即可在浏览器里实时复现:低空悬停 → 仰视盲爬 → YOLO 锁定 → 对中 → COMMIT 爬升撞击。
制导律:软化 PNG(速度制导) 相机:朝天 120° FOV 目标:100 m 盘旋 r=12 m 参数源:intercept_params.yaml
实时仿真
蒙特卡洛统计
源码逐式对照
倍速
风速 0.0 m/s YOLO 漏检 10%

拦截机上视相机 FOV(120°)NO SIGNAL

STATE
DET
FPS
RANGE(视觉)
BBOX
AIM
ALIGN
NO TARGET

剖面图 · 高度 vs 水平距离

俯视图 · FOV 覆盖锥

作战事件流

状态机FSM

WAIT
SEARCH
ACQUIRE
COMMIT
IMPACT

本步制导解(_compute_upward_velocity 输出)

斜距/脱靶量为演示真值,仅用于对照;算法全程不订阅目标位姿(源码注释:目标真值属现实不可得信息)。
判据 R < 0.55 m(与整机仿真实测判据一致) 风速 0.0 m/s 样本 300
%
本页 JS 复现模型 · 命中率
对比:队伍 Gazebo 半物理仿真实测 n=300 → 命中率 72.7%(平均撞击偏差 μ≈0.45 m / 0.18 m)
本页模型不含真机 YOLO 在真实纹理/光照下的失检与云台抖动,故两组数字仅作量级互证,不可互相替代
交会最小间距分布(真值统计,判据 R<0.55 m 以左竖线标出)
移植原则:所有系数、限幅、滤波系数、门限逐条照搬,未做任何"为了好看"的调整。 仅三处做了替代建模并在代码注释中标明:① PX4 速度环用一阶惯性环节 vel_tau; ② YOLO 用几何投影 + 漏检率/抖动代替神经网络推理;③ 机体加速→倾斜→朝天光轴偏转的耦合用 tilt_coupling

Python 原函数(真机源码节选)vision_tracker_controller_ros1.py

JavaScript 移植(本页运行的就是这段)sim_core.js

关键参数intercept_params.yaml

目标与场景target_uav_controller / launch

网页替代模型非 yaml 项,已标注