CollisionLoss 设计与实现原理说明

📅 2026/7/25 3:13:55 👁️ 阅读次数 📝 编程学习
CollisionLoss 设计与实现原理说明

1. 概述

CollisionLoss是一个自车预测轨迹 vs GT 周车的软碰撞惩罚损失。核心思想:

  • 把每个有朝向的矩形车体框(OBB,Oriented Bounding Box)用**若干个沿车身纵轴排列的圆盘(disk)**来近似;
  • 对自车圆盘与周车圆盘之间逐对计算距离,当距离小于"安全间距 + 两圆盘半径"时按平方 hinge 施加惩罚;
  • 只监督自车,周车轨迹当作固定 GT(detach,不回传梯度)。

它返回一个未加权的标量,权重由调用方(diffusion_model_ego_planning.py)乘上collision_weight后写入loss_dict["loss_ego_collision"]


2. 设计思路(为什么这么做)

设计选择原因
圆盘近似 OBB矩形-矩形精确碰撞(分离轴定理)不可微、分支多;圆盘-圆盘碰撞只需点距,处处可微,适合做训练损失的梯度回传。