dsh-sim-telemetryv0.2.5
jingjie43/dsh-sim-telemetry
dsh plugin --profile web add github:jingjie43/dsh-sim-telemetry#71be74f921a96b8cf426374ce20978cf75f19d08
介绍
给 DeepSeek Harness 的 F1 25 遥测插件:跑完几圈自动出比赛工程师报告 —— 逐弯定位哪里慢了、为什么慢、该往哪个方向改。
标签
概述
dsh-sim-telemetry
给 DeepSeek Harness 的赛车遥测插件:跑完几圈,它像比赛工程师一样告诉你「哪儿慢了、为什么慢、怎么改」。
不用装第三方遥测软件,不用上传数据 —— 采集和分析全在你自己的电脑上跑。
它是什么
跑赛车的时候,你知道自己慢,但往往说不清慢在哪 —— 是刹车踩早了?出弯给油太晚?还是方向盘打多了?
游戏只给你一个圈速,不给你答案。
这个插件把游戏的 UDP 遥测抓下来,按赛道距离对齐多圈,用曲率识别弯道、检测失控、归因时间损失,然后输出:
- 圈速与一致性:三圈差多少秒,稳不稳
- 逐弯对比:第几弯、每圈 apex 速度差多少
- 失误定位:哪一圈、哪个位置 spin 了,速度掉了多少
- 时间损失归因:每 100 米丢了多少秒
- 该改什么:先改哪个弯、怎么改
分析全在本地 Python 里完成,模型只读结论那几行 —— 省 token 也省心。
核心能力
采集
- F1 25 UDP 遥测(端口可配置,和游戏里的设置保持一致即可)
- 玩家完整数据 + 全部 22 辆车摘要
- Motion 包:世界坐标、三轴 G、车头朝向
yaw - 方向盘转角
- 赛道位置(
m_lapDistance,0 ~ 赛道全长) - 原始数据落盘,可反复分析
分析
- 多圈按赛道距离对齐:圈速差几秒也不会错位,逐弯对比是真在比同一个弯
- 曲率识别弯道:由车头朝向变化率求弯的曲率,不依赖「减速」—— 高速全油弯也能认、S 弯不会粘成一段;弯道数量 = 官方弯数
- 多圈平均曲率:单圈走线差异和 yaw 噪声互相抵消,弯位更稳
- 自动检测 spin / 打滑:速度断崖 且 横向 G 塌陷才算失控,正常刹车不会误报
- 时间损失按 100 米归因
- 逐弯操作对比:apex 速度 / 方向盘峰值 / 出弯给油点 / 刹车点
产出(跑完自动全出)
- 工程师报告:圈速、失误、时间损失、逐弯表(第 N 弯)、改进建议
- 轨迹诊断图:你自己的实跑轨迹 + 弯位编号 + 颜色分级 + 带方向性的调整建议 (
方向 多打 −0.36表示打多了要收,给油 晚 −125 m表示晚了要提前) - 速度曲线图 / 油门刹车图
- CSV 表格 + 完整明细 md
主动引导
报告检出失误后会直接问:「想知道这一下到底怎么发生的、下次怎么避免吗?」 你说想,它就把这一圈和最快圈逐秒拉出来对比 —— 告诉你第几弯、哪一脚刹车踩重了、哪一次方向打多了。
安装
三种输入都支持:包名(npm)、本地 tgz 安装包、本地目录路径。推荐用包名。
方式一:npm 包名(推荐)
dsh plugin --profile web add dsh-sim-telemetry
装完重启 DSH → 设置左侧出现「赛车遥测」。
(profile 名按你的实际情况,桌面版一般是 desktop)
方式二:Release 安装包(离线 / 内网用)
- 打开 Releases,下载最新的
dsh-sim-telemetry-0.2.5.tgz - 安装:
dsh plugin --profile web add ./dsh-sim-telemetry-0.2.5.tgz
- 重启 DSH
方式三:本地目录路径(开发者)
源码已经在本地(clone 或解压)时,直接指向目录:
dsh plugin --profile web add file:C:你的路径dsh-sim-telemetry
Linux / macOS 用 file:/path/to/dsh-sim-telemetry。实测可用,不需要任何授权。
方式四:GitHub 源码(不推荐,仅开发者)
在 DSH「设置 → 插件」里填仓库地址:
https://github.com/jingjie43/dsh-sim-telemetry
⚠️ 这条路有两个坑:
- pnpm 默认拒绝执行 git 来源包的构建脚本,要手动加
allowBuilds白名单 - 即使加了白名单,pnpm 还要跑
npm install准备源码 —— 而 DSH 只内置 node + pnpm、没有 npm,大概率失败
普通用户别走这条,用方式一 / 二 / 三。
环境依赖
- Python 3.10+(3.11 / 3.12 / 3.13 都行)
Pillow(只有画图需要)
第一次用不用自己折腾:面板会自动检测 Python,没装会出现「一键安装 Python 3.12」按钮。
使用方法
游戏里先开遥测
F1 25 → 设置 → 遥测设置:
| 项目 | 值 |
|---|---|
| UDP 遥测 | 开 |
| UDP 广播 | 关 |
| 端口 | 和插件设置里填的一样(默认 20777,两边保持一致就行) |
| 发送频率 | 20Hz |
| 格式 | 2025 |
三步搞定
- 设置里选圈数(1 / 3 / 5 圈)
- 点「开始记录」,然后正常跑
- 跑满自动停,全部结果自动生成 —— 不用再点任何东西
数据在哪
~/.dsh/sim-telemetry/
├── frames_*.jsonl # 原始遥测
├── laps_*.csv # 每圈汇总
├── summary_full_*.md # 完整明细
├── plots/ # 速度图 / 油门图 / 轨迹诊断图
└── settings.json # 面板设置
已知限制
⚠️ 弯位校准进度:3 / 24 条赛道(都含官方弯名)
- ✅ 银石(Silverstone):18 个弯,
validated—— 2026-10-28 重建:旧表用「取曲率最强的 18 个峰」凑弯数,同一赛道两份数据最多差 870 米; 现改为「转角法找弯段 + 三份数据三取二」。官方弯名:Abbey / Farm Curve / Village / The Loop / Aintree / Brooklands / Luffield / Woodcote / Copse / Maggotts ×2 / Becketts ×2 / Chapel / Stowe / Vale / Club ×2 - ✅ 蒙扎(Monza):11 个弯,
validated—— 三份数据交叉验证 + 官方弯名:Prima Variante / Curva Grande / Seconda Variante / Lesmo 1 / Lesmo 2 / Ascari / Parabolica(来源:F1 官方《How every corner at Monza got its name》) - ✅ 斯帕(Spa-Francorchamps):19 个弯,
validated(2026-11-03)—— 三份实跑数据三取二 + 官方弯名:La Source / Eau Rouge ×2 / Raidillon / Les Combes ×2 / Malmedy / Bruxelles / Jacky Ickx Curve / Pouhon ×2 / Fagnes ×2 / Campus / Curve Paul Frere / Blanchimont ×2 / Bus Stop ×2 (来源:F1 官方《How every corner at the Circuit de Spa-Francorchamps got its name》) ⚠️ 校准中修掉一个关键 bug:DEFAULT_LEN=5890 被所有赛道共用,Spa 7007 米后段(Blanchimont/Bus Stop)被整段丢弃; 现在按数据里的 trackLen 检测实际长度 - ⚠️ 其余 22 条赛道:还没填官方弯数,弯道识别会不准
为什么:弯位必须用实跑数据校准,不能凭空填 —— 公开资料只有弯名和赛道全长, 游戏内的赛道资源是加密的私有格式。唯一可靠的数据源就是玩家实跑一圈的遥测。 弯名可以从公开资料拿,但「哪个弯对应哪段距离」只能靠实跑数据(用转角、半径、apex 速度的形状特征去匹配)。
会怎么解决:一条一条来,哪条赛道跑过就能校准。现在的流程是:
scripts/corners_by_angle.py用累计转角找弯段(比曲率峰值稳,大半径长弯也不会漏)scripts/calibrate_track.py <赛道key> <官方弯数>生成 tracks.py 条目- 多份数据交叉验证(三取二),再按 F1 官方弯名文章对名字
scripts/make_track_map.py <赛道key>出赛道图(弯号 + 弯名)和弯位表
其他
- 同时只能跑一个采集任务,只能监听一个端口
- 只支持 F1 25 的「2025 赛制」UDP 格式;F2、经典模式未适配
- 弯位误差量级 几十米(算的是你的实际走线,不是赛道中心线)
- 银石、蒙扎已对应官方弯名;其他未校准赛道只有「第 N 弯」+ 轨迹图
未来展望
目标不是「F1 专用」,而是通用赛车遥测助手。
| 优先级 | 游戏 | 状态 |
|---|---|---|
| 1 | F1 25 | 已支持(持续打磨) |
| 2 | 神力科莎竞速(ACC) | 计划中 |
| 3 | 神力科莎(AC) | 计划中 |
| 4 | 其他大众赛车游戏 | 视需求 |
架构上「采集」和「分析」是分开的:每个游戏一个适配器(lib/py/collect_<game>.py),
分析管线(切圈 / 弯道 / 对比 / 报告 / 图)全部共用 —— 加新游戏只是加一个文件。
远期想做:
- 理想圈:把各段最好表现拼起来,看理论上能跑多少
- 与 AI 车手遥测对比(「AI 在这个弯比你快多少」)
- 圈速进步曲线(跨场次记录)
- 更多赛道的弯位校准
License
MIT
星级评价
基本信息
插件信息来自公开 GitHub 仓库与 SkillHub,版权归原作者所有;安装前请自行审查仓库代码。