一、前言
当前自动驾驶技术的研究可以分为两大类。
第一类为所有的车辆都为自动驾驶车辆,通过车辆到车辆(V2V Vehicle to Vehicle)或车辆到基础(V2I Vehicle to infrastructure)设施来实现,该场景下所有车辆的位置信息、运动状态等发送数据到云端进行汇总,云端根据优先级(交叉路口复杂场景)在分发给不同任务给车辆;车端控制器接收到云端任务后,按照指令执行油门、刹车和方向盘等的控制任务。
第二类为只有自己车辆为自动驾驶车辆,各种道路信号采集装置只装在自车上,接收到感知信号后自身进行决策规划,根据决策结果再进行控制执行任务。
该类自动驾驶技术可分为环境感知层+决策规划层+控制执行层。
在运行过程中,大致遵循,
首先,环境感知子系统对驾驶时的外部环境进行感知,将外部环境信息传输至决策规划子系统,
然后,决策规划子系统根据既定的决策算法,选取需要的环境信息,进行驾驶决策,
最后,控制执行子系统根据决策规划子系统得出的决策结果执行硬件驱动,通过控制油门、方向盘等驾驶设施间接控制车辆前行,的过程。
在这个过程中,环境感知是完成自动驾驶的基础,决策规划是完成自动驾驶的核心,控制执行是完成自动驾驶的保障。
二、决策规划层的任务目标
在自动驾驶技术中, 决策规划是起到“承上启下”作用,上接收感知层通过激光雷达、毫米波雷达、视觉传感器输入的各种信号,下发送给车辆控制模块执行目标。
决策规划站在车辆的角度去分析感知数据,得到车辆下一步行动的决策(将感知到的信息换砖为车辆运动信息)相当于人的大脑,由此可见决策规划层是非常重要的,没有决策规划层,感知预测的结果失去输出对象,执行控制可能也会做出错误的动作。
因此需要统计交通情况,总结驾驶者的驾驶特性,设计自动驾驶准则,
在我国,城市范围交通情况大致有几个特征,
1. 市区人口众多,车辆急剧上涨,交通拥堵,道路的通行能力较低,
2. 车流混杂,道路过程中存在各类的交通参与者,
3. 驾驶者琢磨不透,“马路杀手”众多,随心所欲行驶,心里没有交通规则这回事,马路是他家,
4. 有些道路建设年代久远,各类标线模糊不清,使得决策结果变得不可控。
在这种环境中,自动驾驶车辆输入端数据的多样性、随机性和不确定性会造成决策层很难决策出准确舒适的决策结果,因此可以以人类驾驶员面临交通过程中,所做出的决策行为来进行锚定,整理出决策系统设计过程中应当遵行的一定设计准则。
驾驶员在行驶过程的主要任务,
1. 制定行车路线,明确目的后,会通过大脑内存储的目的地信息,生成最优行车路线;在驾驶决策中,对应者全局路径规划过程,
2. 会遵守交通法规,行驶在规定车道线内;
3. 根据限速或其他交通标识,路面情况控制车速;对不同的标识进行决策,
4. 会根据路面交通情况保持车距;
5. 面对复杂未知路况会减速慢行,必要时让行,避免碰撞,缓慢通过;规划下一步运行轨迹。
所设计决策规划应当遵循的准则,
1. 自主规划能力,根据提出的目的地,合理规划出行驶路线,
2. 在实际行驶过程中,外部环境不可预估,必须实时针对外部环境来进行决策上的变化,
3. 在道路行驶时,自动驾驶车辆应当遵行右侧同行原则,
4. 除发生转弯、超车、避障等情形外应保持车道内行驶,
5. 应保持在最大和最小车速范围内(在阻塞状态或有停车让行标识时,应可以识别到并做出合理判断),
6. 在面对前方车辆和障碍物时,可以通过转向、减速等保护措施避免碰撞发生,在紧急或意外发生时,能够实现紧急制动。
eg,众多国内外文献中,将全局路径规划也放在了决策层中。它依赖完整环境,是一种宏观范畴的决策。
全局路径规划是指在给定车辆当前位置和行驶终点之后,结合地图信息,通过搜索算法选择出一条路径最短、时间最快或成本最少等条件的最优路径。
三、决策规划的分类
如上文可知,决策规划是实现汽车实现智能化、自主化的关键组成部分。
决策规划层中通常由两个模块组成,模块一为行为决策模块,负责通过上层感知层感知到的各中信息,推导判断下一个单位时刻的情况,来做出高层次的决策(在交叉路口车道变换,左右转弯,直行和避让);
模块二为车辆轨迹的规划,在接收到行为决策根据上层感知到的信息做出的决策后,规划出下一个单位时刻范围内的平滑轨迹。
1. 行为决策方法
行为决策算法是相对来说较多,大致属于以下两类算法,
a. 基于规则的自动驾驶决策
由于自动驾驶车辆处于复杂多变的实际交通环境中,外部事件发生的事件无法估计,需要在未知事件间隔内,实时响应异步发生的外部物理事件,在机器人系统,将这种离散事件系统描述为有限状态机,
有限状态机(FiniteStateMaechine,FSM),是一种离散输入输出系统的数学模型,也是一种强大的支持动态建模的工具。
行为决策模块由有限个驾驶行为(状态)组成,每种行为对应于不同的车辆操控方式,当有外部事件输入时,行为决策模块便转换驾驶行为来响应相应的驾驶环境。(在行为决策模块设计中,详尽的状态设计会提高系统的智能程度,但如果系统设计过于复杂,就会使得状态触发条件产生重叠现象,同时增加了系统的设计难度)
因此,首先主要根据驾驶环境对顶层状态进行划分,然后根据驾驶员的驾驶行为特征,来设计底层状态空间。
这样,行为决策模块每次进行决策时就可以将问题投射至状态空间的子空间内,提高了系统的实时性,同时,逻辑更加简明。
无人驾驶车辆在城区道路中行驶时,根据感知系统发送的实时感知地图与自身状态信息,实时推理出符合交通规则的合理驾驶行为。
例,当车辆处于不同驾驶环境中,其所关注的传感器信息有所不同,例如,当车辆在城区主干道中行驶时,其不用去关注红绿灯检测模块的处理结果;
当车辆在交叉口中行驶时,车道线检测相机的检测结果也可以忽略。并且,当车辆处于不同的驾驶环境中,行为决策模块的下层运动规划模块所采用的方法也有所不同,
因此,基于城区环境中不同的驾驶环境,
顶层状态机的触发条件主要可以分为以下集中:
E1:车辆的位置信息与路口入口点距离大于100m,
E2:车辆的位置信息与路口入口点距离小于100m大于0m,
E3:车辆的位置信息与路口入口点距离小于0m,
E4:下一个任务点的属性是区域行驶并且车辆的位置信息与其距离小于100m,
E5:下一个任务点的属性是型转弯并且车辆的位置信息与其距离小于100m,
E6:...........
a. 基于学习的自动驾驶决策
基于学习的驾驶决策方法可以根据学习对象不同分为模仿学习方法和强化学习方法,
基于强化学习是从动物学习、强化学习是从动物学习、参数扰动自适应控制等领域发展而来,强化学习将决策主体抽象为一个智能体,智能体根据当前观测生成动作作用于环境,并从环境得到回报,智能体的目标是最大化回报,并为了实现此目标而不断更新其策略。
模仿学习是指从示教者提供的范例中进行学习,学习的目标是尽量逼近示教者的状态-动作轨迹分布。
因为篇幅原因,本文以模仿学习中的行为克隆决策方法进行简单说明,
行为克隆方法是最传统的模仿学习方法,通过对监督数据进行离线学习,最小化与示教数据之间的误差,即优化神经网络参数使得与示教策略逐步逼近。
利用行为克隆方法,在 《End to end Learing of Driving Models form Large-scale Video Datasets》 一文中在一个大范围驾驶数据集中进行了驾驶行为学习,同时其通过图像分割任务作为网络附加任务,在BDDV(伯克利大规模自动驾驶视频数据集)数据集上进行测试,动作映射准确率达到了72.4%。考虑到驾驶过程中常常存在多解问题,即在十字路口时,车辆可能向三种行驶,单纯的行为克隆无法解决多解情况下的策略学习。
基于行为克隆的方法通常存在“域偏移”问题。因为学习对象是专家策略,而专家策略通常不会出现负样本,例如专家的驾驶示教数据通常不会覆盖距离前方车辆极近、偏离车道角度极大等情况,
因此在进行学习时,这些较差的情况没有被纳入学习范围中。一旦测试过程中由于控制的误差或异常情况造成偏离训练域,网络输出将无法预测。
为了克服这一问题,在 《End to End learning for Self - Driving Cars》(英伟达团队)一文中采用了数据增广的方式提供更多的负样本。在其自动驾驶方案中,只用到了位于车辆中间的前视相机,但在数据采集时,他们在前视相机左右两侧分别安装了两个采集负样本的相机。在车辆行驶过程中,左视相机数据被标注了右转的标签,同理右视相机被标注了左转标签,这样在采集正样本的同时增广出大量的纠偏样本,并最终在实车上验证了他们的方法。
尽管数据增广的方法可以解决一部分行为克隆方法中负样本不足的问题,但数据增广并不是万能的,其只能在提前设计的一些情况下定向地增广数据,无法真正做到学习数据的分布完全服从当前神经网络的分布期望。
过于依赖示教数据,一方面对于驾驶行为决策问题,示教数据需要从采集到的底层控制数据结合观测与时序信息进行精炼提取,因此面向决策的示教数据通常难以获得。另一方面,示教数据通常与驾驶员的主观判断相关,因此从示教数据中不一定可以学到最优的决策策略。
1. 轨迹规划
基于轨迹规划的决策算法是通过规划车辆的最优行驶路线来间接进行行为决策,在根据车辆自身的状态、外部驾驶环境特征以及交通规则计算一系列的路径,构成一个路径集合 P = { P1 , P2 , P3, ... , PN } ,对于序列中的每个项,Pi = { p1 , p2, p3 , ... pm } , (i = 1,2,3,...,N),对于序列中每项,pi =(xj,yj ,zj)表示车辆的行为姿态,描述车辆的位置朝向,且每个姿态序列的第一个行为姿态P1为当前车辆的位置和朝向,最后一个行为姿态的位置固定为车辆的目标终点,
轨迹规划的轨迹是在曲线在 C1,C2处车辆运动方向发生跃变。
具体表现为由行车姿态 p2 =(xj,yj ,zj)跳转到 行车姿态 p10 =(xj,yj ,zj)。
行车姿态 p 越详细,轨迹越圆滑。
行车轨迹规划的决策算法中,较为成熟的主要有基于图搜索、曲线插值、 人工势场等算法。
基于图搜索的算法的核心思想为,在以图的形式表示的状态空间中搜索车辆当前状态和目标状态之间的最佳路径。
此算法将搜索空间以网格的方式离散化,并将每一个网格中心视为图的一个节点。
相邻的网格空间对应的节点互为邻居节点,最终构成一个道路空间图。
接下来,基于常见的图搜索算法,可以在道路空间图中搜索出最优节点路径,从而确定车辆的轨迹。
用于行车轨迹规划的图搜索算法包括Dijkstra算法、A - * 算法等。Dijkstra算法曾被用作生成智能驾驶车辆的行车路径、停车路径以及从停车位驶出的路径。
在普通图搜索算法的基础上,基于A * 算法的变种,缩小网格单元的面积,忽略道路空间图的分辨率,能够创建出更为平滑的行驶路径,提高乘车体验。
四、总结
最大程度的“拟人化”是自动驾驶的目标,人类在驾驶过程中,通过眼睛、耳朵等感知气关实时获取道路交通信息,本车状态、行车标识等多源信息,并传入中枢神经系统,提取行车过程中的关键信息,通过与大脑中存储经过认知正确的驾驶模式进行对比,在交通规则的约束下,推出最优驾驶行为。
决策层的设计就是为了借鉴驾驶员处理复杂交通场景的决策过程,实现“拟人化”决策。
在自动驾驶运行的过程中,是会面临者一些潜在的问题的,
城市的交通环境是具有显著的结构化道路特征的,比如说交通标识线,交通信号灯,车辆行人建筑物等外部环境因素等,
虽然道路种类较多且数据信息量大,增加了复杂程度,这是可以通过技术解决的,但若在没有交通标识线和交通信号灯的情况下,自动驾驶车辆该如何行驶,也是一个需要注意的点;
因此自动驾驶车辆的决策层设计时候需要考虑这些因素的约束,并能从人、车、路及环境等多源信息中及时提取有效信息。
在动态多变的外部环境中,如何满足规划路径的安全性,实时性与自适应的要求,这是接下来自动驾驶研究的重点,也是研究的一个难点。
meko@mekorp.com
Tel: +86-512-57176128
Fax:+86-512-57176129