多候选前向 + 固定解析打分 + 网络自迭代均为纯 NN 合法算子;⛔ IPOPT / ACADOS / MCTS 等通用求解器与树搜索禁止出现在运行时链路(离线数据生产不限,见 §3)
任务:训练一个 Transformer 神经网络,端到端解决乘用车自动泊车——输入(初始状态 / 目标位姿 / 障碍物),输出 80 步控制序列,在仿真闭环评估中达到验收硬门。
物理设定:乘用车(单车刚性,无挂车/无铰接);RK4 定步长积分(dt=0.25s,见 §2);OBB(有向包围盒)碰撞检测;障碍物为静态车辆/边界墙。评估口径:网络输出整条控制序列后逐步 rollout 至终态,统计终点误差 / 碰撞 / 超时三类结果("闭环",300+ 条固定验证场景)。
与训练数据的关系:本任务不提供打包训练数据——由你按 §3 规格自行生产专家解数据(乘用车单车问题数值求解成熟,成本低),生产规格与质检闸全部写死在 §3。
假设 → 实验 → 证据 → 决策 → 下一步假设。每一轮工作都必须落在这个环上:先陈述这轮要验证的假设,实验产出证据,用证据做决策,决策引出下一个假设。只跑实验不形成证据链 = 没有完成工作。职责:
⛔ 禁止:
1.0 立项依据:本项目组的前序泊车对象是牵引+挂车的两节铰接重卡——铰接约束(jackknife)+ 双刚体碰撞 + 高维耦合动力学导致专家路径生成与 NN 训练双双困难,多版本未达硬门。本任务将对象降为乘用车(单车刚性):状态/控制维度不变(4/2),动力学大幅简化(无铰接、无双 OBB),验证同一条纯 NN 路线在降难度设定下的可达性。前序项目沉淀的方法论结论(证伪路线/有效配方)与本任务机理共通,全部继承如下。
1.1 已证伪路线(不要重复投入)
| 路线 | 证据 | 结论 |
|---|---|---|
| L2 单轨迹回归 | 可微 rollout + 碰撞 hinge + margin 全套物理损失在用,闭环碰撞仍 58% | 泊车本质多解,L2 回归逼网络输出"多条解的平均",平均解撞障碍——输出形态病,损失项治不了 |
| DAgger 类数据回流 | 三轮剂量消融(0.3%→0.55%→13.2% 占比)指标全平 | 病灶在输出形态时,数据侧手段打不穿 |
| 固定周期滚动重规划 | K∈{1,2,3,5,10,20,40,80} 全谱扫描:K 越小越差 | 滚动救不了坏的单次前向;重规划只在执行层做兜底 |
1.2 已验证有效配方(直接继承):轨迹级 Transformer(非反应式)+ goal-frame 表示(输入输出换到目标位姿坐标系)+ 物理一致性损失(RK4 可微 rollout 进 loss)+ 分层双指标诊断(开环切片 vs 闭环 rollout 同时监控,差 5 倍即报警)+ 硬门择优存 best(碰撞>10% 不存)。
1.3 病灶双因定性:前序 9.7m 级闭环崩坏 = 输出形态病(L2 平均化)+ 切片训练病(以轨迹中间状态为起点的切片数据若切点偏后段,模型被教成"只会小幅微调")叠加。若你采用切片数据增广,切点必须偏前段(如 t=0/8/20/40)且按剩余距离加权。
1.4 乘用车与重卡的机理差异(本任务的简化红利):
2.1 车辆动力学(单车自行车模型,参考点=后轴中心)
状态 s = [x, y, θ, v] # 后轴中心位姿 + 纵向速度(倒车 v<0) 控制 u = [δ, a] # 前轮转角 + 纵向加速度 dx = v·cos(θ) dy = v·sin(θ) dθ = v/L·tan(δ) # L = 2.7 m(轴距) dv = a 积分 RK4 定步长 dt = 0.25 s,N = 80 步(总机动时长 20 s)
2.2 控制与状态限幅(rollout 内硬 clip)
| 量 | 限幅 | 备注 |
|---|---|---|
| 前轮转角 δ | ±0.6109 rad(±35°) | 最小转弯半径 ≈ 3.86 m |
| 转角变化率 |dδ/dt| | ≤ 0.524 rad/s(30°/s) | 执行层 clip,评估器同口径 |
| 加速度 a | ±1.5 m/s² | clip |
| 速度 |v| | ≤ 2.0 m/s | clip(泊车慢速域) |
| 起点速度 |v₀| | ≤ 0.5 m/s | 场景采样约束 |
2.3 几何与碰撞:ego 车身 OBB = 4.60 m × 1.80 m(几何中心在后轴中心前方 L/2 处);障碍车 OBB 同尺寸;障碍最多 7 个;泊车场边界 30 m × 15 m(四条边界墙参与碰撞检测)。碰撞检测必须用 OBB(有向包围盒 SAT 分离轴),禁止用 AABB。
2.4 场景分布(数据与验证集共用此分布)
| 场景族 | 布局 | 难度轴(采样分层) |
|---|---|---|
| parallel 平行泊车 | 目标车位被前后车夹住,gap ∈ [5.4, 8.0] m(1.2–1.75 倍车长) | 起点距目标 3–15 m;起点朝向偏角 0–90°;障碍旋转扰动 ±10°;有效障碍数 2–7;每族按难度分 easy / normal / hard 三档(难度 = 紧凑度 + 偏角 + 起距的复合分层) |
| perpendicular 垂直泊车 | 目标车位被左右车夹住,gap ∈ [4.0, 6.0] m,车位朝向 ±90° | |
| angled 斜列泊车 | 车位朝向 45°,单侧车夹持 |
difficulty 标签格式:scenario_tier(如 parallel_hard、perpendicular_easy),共 9 个分层桶——数据生产、验证集、分层评估全部按此 9 桶对齐。
2.5 成功定义(评估口径,全程不变):terminal position err ≤ 0.3m(后轴中心到目标点欧氏距离)且全程零碰撞且未超时(max_steps = 120)。朝向误差作为报告指标(建议一并汇报),不进成功门。碰撞即停(记碰撞时刻误差);三分计数"成功 / timeout / 碰撞"为一级指标。
3.1 规模与分层:目标 ≥ 30,000 条(最低开工线 15,000 条,可先到先训、后续补产);按 §2.4 的 9 个分层桶均衡覆盖(单桶占比 8%–15%),hard 桶不得欠采样。
3.2 专家解生产要求:
3.3 存储格式(.npz,字段与前序项目 schema 对齐)
| 字段 | 形状/类型 | 说明 |
|---|---|---|
start | (4,) float32 | 初始状态 [x, y, θ, v](后轴中心) |
goal | (4,) float32 | 目标位姿 [x, y, θ, 0] |
obstacles | (35,) float32 | 障碍物展平(7×5 零填充;有效行数见 mask) |
obstacles_mask | (7,) float32 | 有效障碍行掩码 |
obstacles_raw | (n,5) float64 | 原始障碍(未填充):x, y, 长, 宽, θ(含边界墙,墙以细长 OBB 表示) |
X | (4, 81) float32 | 状态轨迹(81 = 初始 + 80 步) |
U | (2, 80) float32 | 控制序列,注意是 (2,80) 转置结构(行=控制维度 [δ,a],列=时间步) |
dt / N | 标量 | 0.25 / 80 |
difficulty | str | §2.4 的 9 桶标签 scenario_tier |
solve_time / version | 标量/obj | 求解耗时 / 生产线版本号 |
obstacles.reshape(7,5),用 obstacles_raw 重建 + mask 过滤零填充行;② U 固定 (2,80) 约定,任何管线先 assert 形状。任何新管线先写 --smoke 模式端到端跑通(加载→构造样本→一次前向反向→一条闭环评估)再上全量。3.4 七道质检闸(每条数据全过才入库):① RK4 重积分一致性(U 重积分 vs 存档 X,误差 <1e-3)② 终端精度 <5cm ③ 零碰撞(OBB 复检,含执行层转角率 clip 后重 rollout)④ 非常数控制(丢弃退化解)⑤ 控制限幅合规 ⑥ 形状/字段校验 ⑦ NaN/Inf 扫描。
3.5 固定验证集:≥300 条按 9 桶分层(每桶 ≥30 条),seed 固定,生成后立即冻结——把场景清单文件 md5 + 分层统计公布到留言板(口径冻结凭证),全程不得更换、不得参与训练。
| 症状 | 定位结论 | 处方(只许开列出的药) |
|---|---|---|
| 任何阶段指标异常差(如闭环碰撞 >80%、loss 不降) | 数据侧嫌疑优先 | 重跑 §3.4 回放闸门 + 抽检复验,排除数据损坏/管线 bug 后才允许动模型 |
| Oracle@16 collision >30% | candidate generator 不足——候选空间里根本没有足够可行解 | 停止一切 selector 优化。优先优化:candidate decoder(容量/query 机制)、trajectory proposal(分布/噪声条件)、refinement(粗解精化) |
| Oracle@16 较好(≤15%)但实际选择差(差距>10%) | selector 问题——好解在候选里但选不出来 | 优化:score 函数(分层排序各层设计)、ranking 校准(Spearman 诊断分场景定位失灵层)、diversity(保证好解有概率被生成在候选集不同位置) |
| selector 好(ρ>0.7)但闭环差 | 执行/仿真侧问题——打分排序对但真跑不行 | 分析三个候选病因:dynamics mismatch(打分 rollout 与评估 rollout 动力学不一致)、control drift(执行层 clip/量化改变控制)、horizon accumulation(长程误差复利,指向 P2 偏差触发重规划/refinement) |
| 指标接近目标但连续两个 checkpoint 无实质提升(med 改善<10% 且 med>0.5m) | 精度天花板(长程精度残余) | 自动进入 refinement(见 §5 P1/P2 的 refinement 条款),不再在现有头上加训练量 |
决策树的输出必须是留言板里的一条【结论】:定位到了哪一层、证据是什么、开了哪味药、预期下一轮什么指标会动。定位错了药就白开——所以证据先行。
Candidate Generator → Oracle Gate → Selector → Deployment-aware GRPO → RK4 Closed-loop Evaluation → Failure Analysis → Refinement(回灌 Generator,循环推进)P0 · 多候选头研究命题:候选空间是否包含可行解(不只是"训个模型")
P1 · RL 后训练碰撞≤10% / med≤1m / 成功率≥80%
阶梯本身也是实验:每档失败都按 §4 决策树归因(如 P1-a 失败且 Oracle@K 不涨 → 选择侧空间已榨干,病在 generator,回 P0)。走梯记录(每档跑到什么程度、为什么降档)必须进留言板。
candidate set → selector → selected trajectory → RK4 rollout → reward → GRPO update。⛔ 禁止只对单条 candidate 孤立做 reward 优化(优化目标脱离部署 = 白练)1/(1+err/0.1) − terminal − λ1·soft碰撞hinge(罚接近不只罚撞)− λ2·smooth(含转向率)− λ3·timeout。组采样按 P0 闭环成绩做难度分层(全简单工况组内无方差、全难工况全零,都无梯度信号)。episode 级 80 步真实 rolloutP2 · 执行层收尾过关门 = 验收硬门四项
| 阶段 | 内容 | 预估 | 过关门 |
|---|---|---|---|
| E-1 | 场景采样器 + 专家解生产(求解器产解 + 七道质检闸 + ≥10% 可视化抽检)+ 300 条固定验证集冻结(md5 公布留言板) | 2 天 | 回放闸门:验证集专家解 100% 成功且 med<0.05m;数据 ≥15,000 条 9 桶覆盖 |
| E0 | 训练/评估管线搭建(--smoke 端到端)+ 单轨迹骨干基线(继承 §1.2 配方) | 0.5 天 | 管线全链路通,闭环评估器产出基线数(预期:骨干仍带 §1.1 输出形态病,此数只作参照) |
| P0 | 多候选训练 + Oracle@K 诊断 + 行为级 diversity 聚类 + 闭环评估 | 2 天 | Generator Gate:oracle 碰撞≤15% / oracle med≤0.8m;Selector Gate:实际碰撞≤25% 且 oracle-实际差距<10% 且 Spearman ρ>0.7(分场景分层各自过线);另 med≤3m@K80 + 行为簇≥3。oracle 碰撞>30% → 出 P0 转修 generator |
| P1 | RL 阶梯(a→d)+ generator 更新 A/B + reward ablation + refinement 并行开发 | 2-3 天 | 碰撞 ≤10% / med ≤1m / 成功率≥80% + B 组 Oracle@K 显著高于 A 组 |
| P2 | 偏差触发重规划 + shield 课程 + 终评估 | 0.5-1 天 | 验收硬门四项(med≤0.3m / p90≤0.6m / 零碰撞≥90% / 纯NN) |
selector 排序校准判据:Spearman 秩相关 ρ(score_rank, rollout_rank) > 0.7,且按 9 桶分层验证(hard 桶单独过线,防全局达标 hard 桶失灵)——这是进 P1 的前置条件。
| 风险 | 概率 | 对策 |
|---|---|---|
| 自产数据质量缺陷(坏数据浪费训练周期——历史教训) | 高 | 七道质检闸 + 回放闸门(100% 成功 med<0.05m)+ ≥10% 可视化抽检;训练早期指标异常差先重跑闸门再动模型(§4 第一行) |
| 候选坍缩(K 条输出同一条解 / 近似轨迹) | 中 | soft assignment 退火 + 多样性正则;行为簇≥3 硬判据;选中频次监控(top-1>80% 警报);坍缩则加噪声条件/降 K |
| 打分与闭环真实表现 mismatch | 中 | Spearman ρ>0.7 分场景校准;打分=RK4 rollout 解析版,与评估器同构 |
| GRPO 只优化 selector、generator 无实质改善 | 中-高 | generator 更新 A/B + Oracle@K 全程监控——Oracle@K 不涨即判 RL 未触达生成侧,加强 generator 梯度或回 P0 |
| RL 崩坏 / 模式坍塌 / 全失败组零梯度 | 中 | 防崩三件套 + 连续成功 bonus + 难度分层组采样;β/lr 网格预案 |
| P1 后仍卡 ~0.5m(长程精度残余天花板) | 低-中 | refinement 自迭代("NN+1-2 步精化≈求解器精度"路线)已并行开发,自动触发条件在位;届时 0.2m@95% 亦为可交付结果 |
注:前序重卡项目此行风险为"高"(铰接耦合放大长程误差),乘用车单车下降为"低-中"——这是本任务立项的简化红利之一,但不可据此跳过 refinement 开发。
【日期】 【阶段】E-1/E0/P0/P1/P2 + 子实验名 【实验目的】本轮要验证的假设(一句话,可证伪) 【修改内容】相对上一轮改了什么、为什么 【结果】指标四件套: med = ___ m p90 = ___ m collision = ___ % success rate = ___ % (附:失败样本编号/分布,不许省略) 【结论】三问必答: 1. 证明了什么?(证据→推断) 2. 没证明什么?(本轮证据覆盖不到的) 3. 下一步为什么这样做?(决策依据 = 1+2 + 失败决策树定位)
[决策] 前缀 + 选项 + 你的建议,等任务方答复,勿自行变更验收口径每次实验必须生成并保存以下九个必填字段(研究主线)+ 四个工程字段,缺一即不合格:
| # | 字段 | 说明 |
|---|---|---|
| 1 | Experiment ID | 唯一编号(建议格式:exp_P0_20260923_03:阶段+日期+当日序号) |
| 2 | Hypothesis | 本实验要验证的假设(一句话,可证伪——与留言板【实验目的】一致) |
| 3 | Change | 相对上一实验改了什么(代码/配置/数据),为什么改 |
| 4 | Dataset | 用的哪份数据(自行生产的版本/日期/条数;训练/验证划分) |
| 5 | Config | config.yaml 超参快照文件(不许只存在命令行历史里) |
| 6 | Checkpoint | 模型权重存档路径(best + periodic) |
| 7 | Result | 指标四件套结果(med / p90 / collision / success rate)+ 结果文件路径;失败样本清单 |
| 8 | Interpretation | 结果解读:证明了什么 / 没证明什么(对照 Hypothesis 裁决:支持/证伪/不确定 + 证据) |
| 9 | Next Action | 下一步动作 + 依据(= Interpretation + 失败决策树定位) |
| 10 | git commit hash | 工程:实验时代码库完整 commit hash(代码必须进 git,禁止裸文件跑实验) |
| 11 | 日志路径 | 工程:训练/评估完整日志文件位置 |
| 12 | 随机 seed | 工程:全部随机种子(数据采样/初始化/环境) |
| 13 | 环境版本 | 工程:python / torch / CUDA / 关键依赖版本 |
九个必填字段构成完整研究记录链:ID → Hypothesis → Change → Dataset → Config → Checkpoint → Result → Interpretation → Next Action——与留言板记录模板一一对应,存档即汇报的底稿。全部字段集中登记到一个 experiments.json(或等价索引),每次留言板【结果】里引用 Experiment ID。
终止与总结条件(防止无限跑下去,也防止过早收工)——满足任一即进入总结阶段:
| # | 条件 | 含义 |
|---|---|---|
| 1 | 硬门连续 5 次验证通过 | 验收四项在 5 次独立验证中全部达标——结果稳定,任务完成 |
| 2 | 连续 8 轮实验无显著提升(各关键指标改善均 <5%) | 当前技术路线收益枯竭——进入总结,梳理证据链与下一步方向建议 |
总结阶段产出:全证据链复盘(每轮实验证明了什么/没证明什么)、最终指标、失败样本分析、对下一条路线的建议——经留言板提交,任务方裁决是否开启下一版。
乘用车泊车项目 · PCV1 · 纯 NN 端到端 · 前序重卡任务书(方法论出处,参考):parking.sunearthl2.cn/v4.16.html
无需注册。单条最多 10000 字,仅保留最新 1000 条。阶段汇报用 [阶段] 前缀,待决策用 [决策] 前缀。