【量子位|长沙无人驾驶出租“轻车熟路”,Apollo仿真“训练有素”】( 二 )


一个个场景就是一个个的考题 , 自动驾驶算法需要在仿真中通过所有的“考题”测试 , 才能够认为是初步具备了上路的资格 。
首先我们要生成道路上车和障碍物所在的静态环境 , 这个被称为静态环境建模 。
静态环境的基础模型是高精地图所包含的地图语义要素 , 是场景语义分类的重要维度 。 百度仿真直接基于百度高精地图作为底图来构建整个静态环境 。 基于百度在高精地图领域深厚的技术以及经验 , 百度仿真中的静态环境构建精度可以达到厘米级 。
【量子位|长沙无人驾驶出租“轻车熟路”,Apollo仿真“训练有素”】
文章图片
△社会车辆危险行驶
道路上的车和障碍物不是静止不动的 , 他们存在一定的交互关系 , 比如大部分行人都会谨慎的过马路 , 先看看两边的车辆再走 , 只有少部分行人会在马路上乱串行;周围大部分车辆都会礼貌的切入 , 只有少部分车辆会快速切车或别车 。
这就需要进行动态环境建模 。
动态环境建模指的是在某个场景中 , 障碍物与车交互的合理性 。 在仿真环境中 , 人物和车辆的行为分布比率都要类似真实世界 , 在同一个场景中 , 横穿马路的人、正常行走的人、出了故障的停在路上的车、正常行走的车等 , 这些在真实环境中可能会同时存在的情况在仿真环境里也应当合理的分布 。
除了基于规则定义的多样化的障碍物行为 , 以及基于数据生成的模型来控制障碍物行为外 , 障碍物的行为还必须足够多样化、足够精细和合理 , 才可能令仿真的结论达到跟路测结论的一致 。
如何达到场景分布的合理性 , 解决这个问题必须基于海量的真实道路数据 。
海量的真实道路数据提供了覆盖更全 , 刻画更为精细的障碍物+无人车的交互模型 , 同时满足了障碍物行为的真实性以及多样性需求 。
为了满足算法需求 , 在Apollo的仿真场景集在构成上 , 在保证覆盖面全面的基础上 , 更细致的调整了场景集中场景数据的构成方式 , 使得仿真场景集中的场景出现频率与实际路上的场景频率保持一致 。 有且仅有趋同的场景分布 , 仿真结论与路测结论才能一致 。
【量子位|长沙无人驾驶出租“轻车熟路”,Apollo仿真“训练有素”】
文章图片
△主车障碍车同时向中间车道并道-碰撞风险
Apollo仿真的场景库的基础是百万公里级别的真实路测数据 。
一方面 , 百度的工程师们从大量真实道路数据中提取出更精确的“障碍车与主车的交互/博弈的行为模型” , 这样“真实在路上出现过的交互行为”保证了单个障碍物行为的真实性 。
另一方面 , 基于大量的真实道路数据 , 能够构造出足够丰富的场景种类 , 保证了Apollo自动驾驶“习题集”对路上多样化场景的高覆盖率 , 让Apollo无人车在上路前 , 已经完成了对于路上可能会发生的所有场景的充分验证 。
Apollo仿真就是一个对于自动驾驶算法的好的老师 。 Apollo仿真拥有一个广泛且精确的场景库 , 能够令算法在足够真实且足够覆盖率的环境下捶打自己的能力 , 以保证路上效果 。
其次 , 是无人车不可缺少的传感器仿真
无人车 , 在硬件层面与传统车辆的不同之处 , 除了AI芯片作为大脑之外 , 另外两处不同 , 一个是“传感器组” , 另一个是“控制单元” 。 前者作为无人车的眼睛 , 为大脑提供源源不断的对外部环境的感知 。 后者作为无人车的四肢 , 在大脑的指挥下控制车辆的行为 。
在仿真平台中 , 为了提升运行效率 , Apollo仿真需要对这两个“硬件”组件:“传感器”和“控制单元” 。 对它们进行“软件化变换” , 也就是在仿真器中用软件算法来模拟出这两组硬件 。
这就是无人车仿真中2个专有名词——传感器仿真 , 以及车辆动力学仿真 。
传感器仿真要让虚拟的传感器有真实的传感器一样的效果?我们不能凭主观感觉来定义传感器仿真的真实性 , 必须要找到一种客观的量化评估方案 。