📊 今日概览
📅 日期: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,使滤波器在远距离时更平滑
📈 技术亮点总结
- 自适应EKF参数:解决了5m距离下v1=100导致的0.20°/帧预测抖动问题
- MPC精细调优:通过调整Q/R矩阵实现装甲板切换时的平滑过渡
- 全链路仿真:8640次运行,8个随机种子,1080组参数组合
- 装甲板锁定:消除交叉点的轨迹振荡
- 距离自适应:根据目标距离动态调整观测噪声权重
Generated by GitHub Daily Report Bot
发表回复