第 3 节 仿真系统 自动驾驶的虚拟训练场-《无人驾驶面面观:从单车智能到车联网智慧交通》

第 3 节 仿真系统 自动驾驶的虚拟训练场(第1页)

()

如果一个成年人想开车上路,就必须先去驾校经过一系列的严格训练,然后通过多项科目考试之后才能取得正式上路的资格。

那么对于自动驾驶汽车来说,是不是也要经历类似的过程呢?

答案是肯定的。

在上一讲我们提到,自动驾驶系统是一环扣一环,从目标检测到行为规划再到控制系统,任何一环出现问题都有可能导致车毁人亡的事故,因此在进行大量的测试前,自动驾驶汽车是绝对不可以上路的。

那么自动驾驶系统的测试是如何进行的呢?

看到这里肯定有人会说,你把汽车放到无人的测试场地里去验证不就好了吗?

不错,这的确是一种办法,但因其较高的研发成本并不适合初期团队。

首先,租用场地本身就是一笔昂贵的花费,拿美国著名的测试场地TransportationResearchCenter来说,一天的租赁费用高达数千美金。

其次,测试需要投入相关的测试人员与安全人员,这一步也是需要相当客观的费用。

在产品初期可能每天都会有许多重大问题的发现,若每次都到实际场地去测验解决,恐怕资金会快就会捉襟见肘。

所以为了能在初期高效、低廉地测试自动驾驶系统,工业界与学术界往往都采用自动驾驶的虚拟训练场——仿真软件系统,一个可以低廉地模拟困难测试场景?,解决路测单一变量控制问题的大杀器。

一、这个「仿真系统」究竟是何方神圣?

仿真软件系统,顾名思义,就是模仿真实世界所构造的虚拟软件系统。

它是从软件层面对无人驾驶的软件架构研发、软件功能测试和路前测试的重要工具。

各位看过《黑客帝国》的观众们一定都还记得,主角尼欧在开始真正冒险之前,先被放入了一个虚拟创建的道馆和墨菲斯进行了一场酣畅淋漓的训练,这个道馆所处的世界在一定程度上就可以被当作仿真系统。

如下图所示,一辆黑色的虚拟的无人汽车通过游戏引擎的渲染被构造了出来,进行跟车测试。

它与真实世界的无人车一样,装备着各种各样的传感器,拥有全套的智能驾驶系统。

工程师们可以像搭积木一般在其内有针对性地构建出罕见、困难的测试场景(例如图中所示,在狭窄的道路上,我们的无人车要高效、安全地与前方的红车保持好距离)。

与真实世界不一样的是,在仿真系统里,无人汽车所有接受的信息都来自游戏引擎渲染出来的虚拟世界,而且它的测试几乎是不需要任何财力投入的——毕竟只需要敲几行代码便可搞定一切。

图片来源:CARLA官网

正是因为仿真软件系统高度的模拟性与效率,它甚至已经成为了重要的法律合规工具。

在2017年,美国宣布不同级别的自动驾驶车辆在进行路测前,需要满足在仿真系统里积累一定的安全行驶里程数?。

现在我们对仿真系统有了一个大概的认知,那么在仿真里构建一个测试场景需要哪些模块步骤呢?

二、再探仿真软件系统

大致来讲,一套完整的仿真测试可以划分为场景仿真、交通流仿真、传感器仿真与驾驶系统耦合几大子模块。

我们要想无人车可以在仿真中跑起来,就要先给它设计好道路。

所以第一步就是生产一组符合高精地图的路网数据,常用的一个软件是Mathoworks旗下的RoadRunner.

RoadRunner示意图

该软件会制定好道路的拓朴结构、标定道路线与3D物体,然后再放到常见的渲染引擎例如UE4里进行场景渲染。

如下图所示,原本「朴素」的道路设计图在渲染引擎的作用下变得更接近真实世界的场景。

UE4下渲染出的道路

道路创建好之后,我们需要赋予道路一个趋近真实的交通车流,毕竟我们的无人汽车需要学会与周围汽车安全交互。

不同的仿真软件系统产生仿真交通流的方式与模式是不同的,但整体来说交通流可以分为两类。

第一类是服从随机分布生成的大规模车流,比如我规定好车道1每小时会生成100辆类似人类驾驶行为的汽车,它们可能会随机变道、加速减速,以次来测试无人汽车系统的鲁棒性。

第二类是具有特定行为的动态障碍,这一类主要是为了测试无人汽车是否能在特定的困难场景做出合理的反应。

如下图所示,我们的无人车正打算正常左转,这时前方一辆白色的汽车硬闯红灯,挡在了我们的行驶路线上,无人车必须检测到该车并对该异常情况做出安全反应。


(第1页)

请关闭浏览器阅读模式后查看本章节,否则将出现无法翻页或章节内容丢失等现象。