1. 位置空间还是速度空间
RVO2、HRVO、RVO_Py_MAS、rl_rvo_nav 都把问题转成“哪些速度会导致未来碰撞”。采样学习版虽然是评分,但最关键的预测碰撞项也已经进入速度空间。
当前阶段先忽略复杂玩法状态,只压测局部避障算法在理想和极端条件下的表现。主线收束为两项:RVO2 原版作为成熟 ORCA 基准,基于 RVO2 思想的自研版作为项目可控方案。
如果当前目标是忽略实际玩法状态,只验证理想与极端条件下的局部避障性能,那么建议压测对象收束为: RVO2 原版 和 基于 RVO2 思想的自研版。RVO2 是稳定基准,自研版负责验证项目可控性、可调参空间和性能上限。
| 环境 | 必须输出 | 不要做 | 推荐实现 |
|---|---|---|---|
| Unity 编辑器 | 算法、场景、数量、分辨率、平均 FPS、1% Low、模拟耗时、最大耗时、GC、XZ/3D 重叠对。 | 不要每帧 `Debug.Log`,不要在热路径拼接字符串,不要每帧写文件。 | 内存环形缓冲 + 固定间隔采样;单轮结束后一次性导出 CSV/JSON,并在 Console 只打印摘要。 |
| 百元机真机 | 同一套指标,加设备型号、Unity 图形 API、目标帧率、分辨率 1080x1920、温度/降频观察备注。 | 不要开详细 HUD、不要高频日志、不要连接调试器长期采样导致额外开销。 | Release/Development 分开测;真机默认静默聚合,测试结束或手动按钮导出日志文件。 |
| 性能公平性 | 日志开销要对两个算法一致,最好能统计采样写入耗时。 | 不要让某个算法额外输出调试明细,导致对比不公平。 | 所有算法只写结构化数值样本,统一由 benchmark runner 收集和导出。 |
如果当前阶段只做算法压测,RVO2 原版 + RVO2 思想自研版 就是最小有效对照组。 其他方案暂时不必进入压测主线,可以作为解释来源或后续扩展参考。
| 方案 | 核心抽象 | 最终如何选速度 | 安全性来源 | 最擅长 | 主要风险 | FishROV 定位 |
|---|---|---|---|---|---|---|
| RVO2 / ORCA | 速度空间半平面约束 把每个邻居变成 ORCA 线性约束。 |
在所有安全半平面内,求最接近期望速度的新速度。 | 显式几何约束和低维优化,理论性最强。 | 大规模多动态 agent 的实时局部避障。 | 不做全局规划,2D 投影,参数不当会保守、停滞或碰撞。 | 最适合作为局部避障工程基准和对照组。 |
| HRVO | 速度空间混合 VO/RVO 把 VO 与 RVO 的几何边界混合。 |
排除危险速度,再选择接近期望速度且更稳定的速度。 | 速度障碍几何,加上减少 reciprocal 振荡的边界设计。 | 对称对冲、互相避让时减少左右横跳。 | 仍是局部 2D 方法,不处理地图和动力学约束。 | 适合作为处理振荡问题的设计参考。 |
| RVO_Py_MAS | 速度空间采样过滤 把动态体和静态障碍都转成速度禁区。 |
采样候选速度,先过滤禁区,有安全速度就选最接近期望速度的;没有安全速度则选折中。 | 禁区过滤加碰撞时间折中,不是严格 ORCA 求解。 | 学习 RVO 建模方式,快速改造原型。 | 没有空间索引时规模变贵,采样可能错过好速度。 | 适合作为可读的 RVO 原理参考,不建议直接当大规模生产方案。 |
| 采样避障学习版 | 候选速度评分函数 候选速度由期望速度、偏转、减速、停止等组成。 |
对每个候选速度计算目标偏差、平滑、预测碰撞、当前重叠、边界等惩罚,选最低分。 | 启发式风险函数和权重调参,不保证无碰撞。 | 项目内自研、调参、验证新评分项。 | 权重依赖场景,高密度可能局部最优或卡住。 | 最适合作为 FishROV 自研避障算法的实验骨架。 |
| rl_rvo_nav | 学习策略RVO 先验 把 VO/RVO 风险编码进状态和奖励。 |
PPO actor 根据自身状态和 VO/RVO 序列输出速度增量。 | 训练经验、RVO 区域奖励、预计碰撞时间塑形。 | 复杂多机器人场景下学习更灵活的风险权衡。 | 训练成本高,泛化依赖仿真覆盖,工程可控性较弱。 | 建议先吸收风险表达和 reward/score 思想,不急着引入完整 RL 链路。 |
RVO2、HRVO、RVO_Py_MAS、rl_rvo_nav 都把问题转成“哪些速度会导致未来碰撞”。采样学习版虽然是评分,但最关键的预测碰撞项也已经进入速度空间。
ORCA 是约束求解,危险速度直接被半平面排除。RVO_Py_MAS 是采样后过滤禁区。采样学习版是给风险加惩罚,危险速度未必完全禁止。RL 是把风险变成训练信号。
VO 偏“我躲别人”;RVO/ORCA 假设双方共同承担;HRVO 在 reciprocal 基础上减少来回换边。采样版需要靠评分项或通行偏置来塑造行为。
当前主压测只保留 RVO2 原版和自研版。HRVO、RVO_Py_MAS、RL-RVO 只作为思想参考,不进入编辑器选择项。
RVO2 理论清晰但实现复杂。自研版最容易改权重和新增评分项。RVO_Py_MAS 最适合读懂速度障碍。RL 灵活但可解释性和复现实验成本更高。
这些方案多数原生是 2D 或平面导航。FishROV 里如果只看 XZ,会把不同高度层的对象误判为冲突,也可能漏掉真实 3D 体积风险。核心决策必须明确水平避障、高度分层和体积碰撞的关系。
把 RVO2 / ORCA 当成标准基线,确认理想、拥挤、对冲、初始重叠等场景下的耗时和重叠率。
自研版可以先吸收 RVO2 的速度空间思想,但保留可调评分、鱼群权重和性能优化入口。
HRVO、RVO_Py_MAS、RL-RVO 暂时不用进编辑器主压测。先把 RVO2 和自研版两条主线测准。
依据文档:rvo2-core-principles.md、unity-navmesh-core-principles.md、sampling-local-avoidance-core-principles.md、hrvo-core-principles.md、rvo-py-mas-core-principles.md、rl-rvo-nav-core-principles.md。