GitHub日报 2026-03-14:vision_25 自瞄系统EKF+MPC大重构,仿真命中率达94%

📊 今日概览

📅 日期:2026年3月14日
📝 提交数:5次
📦 仓库:dkjsiogu/vision_25

指标 数值
新增代码 +1,655 行
删除代码 -859 行
净增代码 +796 行
修改文件 11 个

🎯 核心突破:EKF+MPC自适应调参,仿真命中率达94%

今日最大的成果是实现了EKF v1自适应参数MPC阻尼调优,通过8640次仿真测试,最终达到94%的最优命中率。

关键改进:

  • EKF v1自适应:v1 = v1_base + vel² * v1_k(可配置)
    静态v1=20(稳定),1m/s运动时v1=170(快速收敛,τ=77ms)
  • MPC Q_vel_yaw:1e4 → 8e4,关键的装甲板切换阻尼,防止过冲
  • MPC R_yaw/R_pitch:50 → 10,更激进的跟踪(K_yaw翻倍)
  • 发射容差:0.8° → 0.3°,仅在对齐良好时开火
  • 延迟时间:20ms → 8ms,减少预测偏差
  • 弹速上限:25 → 32(之前28m/s被静默截断到22!)

📝 提交详情

1. feat(ekf+mpc): 自适应v1 + MPC阻尼调优 → 仿真94%命中率

提交:0802775 | 时间:17:55 | 作者:dkjsiogu

变更:+456 / -845 行(7个文件)

文件 状态 变更
configs/5m.yaml 修改 +13/-11
scripts/full_chain_sim.py 修改 +431/-828
tasks/auto_aim/planner/planner.cpp 修改 +2/-2
tasks/auto_aim/target.cpp 修改 +5/-2
tasks/auto_aim/target.hpp 修改 +2/-1
tasks/auto_aim/tracker.cpp 修改 +2/-1
tasks/auto_aim/tracker.hpp 修改 +1/-0

2. fix(planner): 添加yaw速度阻尼防止装甲板切换过冲

提交:f74441b | 时间:04:21 | 作者:dkjsiogu

变更:+2 / -2 行

设置Q_yaw=[9e6, 1e4]、R_yaw=[50]来抑制顺时针装甲板切换时的左漂移(yaw和pitch同时过冲)

3. fix(planner): 装甲板锁定 + pitch MPC调优

提交:b2c9877 | 时间:03:43 | 作者:dkjsiogu

变更:+899 / -7 行(3个文件)

文件 状态 变更
configs/5m.yaml 修改 +3/-3
scripts/full_chain_sim.py 新增 +846/-0
tasks/auto_aim/planner/planner.cpp 修改 +50/-4

在get_trajectory()中添加装甲板锁定,消除装甲板交叉点的参考轨迹振荡(平均消除3.1° yaw跳变)

4. feat(ekf): 可配置过程噪声v1/v2 + 仿真脚本

提交:aecd73b | 时间:02:56 | 作者:dkjsiogu

变更:+291 / -2 行(6个文件)

仿真测试168组参数:v1=20将预测抖动从0.20°/帧降至0.09°(2.2倍改善)

5. fix(ekf): 距离自适应观测噪声

提交:79e65b3 | 时间:02:29 | 作者:dkjsiogu

变更:+7 / -3 行

R按max(1, dist²/4)缩放:2m→1x, 3m→2.25x, 5m→6.25x,使滤波器在远距离时更平滑

📈 技术亮点总结

  1. 自适应EKF参数:解决了5m距离下v1=100导致的0.20°/帧预测抖动问题
  2. MPC精细调优:通过调整Q/R矩阵实现装甲板切换时的平滑过渡
  3. 全链路仿真:8640次运行,8个随机种子,1080组参数组合
  4. 装甲板锁定:消除交叉点的轨迹振荡
  5. 距离自适应:根据目标距离动态调整观测噪声权重

Generated by GitHub Daily Report Bot

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注