作者 | Ismiracle 编辑 | 汽车人
原文链接:https://zhuanlan.zhihu.com/p/353327313
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【规划控制】技术交流群
后台回复【规划控制综述】获取自动驾驶、智能机器人规划控制最新综述论文!
看前须知
先前投稿了一篇自动驾驶决策控制的泛化综述(ISmiracle:自动驾驶决策控制及运动规划史上最详细最接地气总览现状),在后续的几个月里收到了许多人的咨询或讨论消息,其中大部分是关于无人驾驶行为预测与径规划领域的内容,并且我发现网络上关于这方面的较为系统的介绍几乎没有。因此,我想用本文为大家进一步科普一下路径规划领域所包括的内容,以及当前的侧重点,供大家参考。
鉴于本人性格,本文行文风格偏向于大白话,喜欢科研风的请直接阅读相关文献即可。
1.介绍
![729b8c4660a35f2ed0d463009ce44d06.png](https://i-blog.csdnimg.cn/blog_migrate/e2cfb0b4cb0224f5740622e686b84136.png)
首先需要说明的是:路径规划(本文不严格区分轨迹规划与路径规划的定义,一律按照路径规划称呼)并不止属于单车自动驾驶,在车队列协同控制、交通流车辆协同规划、人机共驾等等各个领域中路径规划普遍存在。单车自动驾驶中,规划算法可与预测类算法结合提高车辆安全性;车队列协同控制中,不论车队列控制形式为leader-following还是predecessor-following等等,总要有某个智能体进行规划,后续车辆跟随并保证队列稳定性;人机共驾中,在车辆控制权的动态平衡过程中,控制权倾向于人还是机取决于驾驶员的控制量与已规划出的控制量的偏差。
上述三类只是简单的分类,路径规划以不同的形式存在于其中,如图1所示。限于篇幅,本文主要针对第一种进行讲解,即单车自动驾驶下与预测类算法相结合的路径规划,后两种看情况再次投稿细说。
2.行为预测与路径规划
![bd796160d1e987e641cffb6b631a9b21.png](https://i-blog.csdnimg.cn/blog_migrate/7a57d37962432b5111012ba76edd1d3c.png)
单车决策控制一般可分解为行为预测、轨迹规划、风险评估三大子类,如图2所示。本文主要针对前两个问题。研究行为预测的方法又可分为Probability based approaches and Learning-based approaches,本节将按照以上两种方法进行细化讨论,并给出发展趋势如图4所示,其中横坐标为方法反应车车交互的能力,纵坐标为方法还原场景复杂度或真实度的能力,表格给出各方法在预测时域这一定量指标下的大概趋势。标中所列文献均保证了一定条件下相差不多的精确度,区分标准除了预测时域也可以用预测距离。
![f4773d76c7b501555927e9797c1b92f5.png](https://i-blog.csdnimg.cn/blog_migrate/1ba3269c0880b1cba47376bc177cafce.png)
2.1 Probability based approaches
2.1.1 Physics-based approaches
早期(2000-2010)针对上述三大问题的解决方案主要是基于运动学与动力学原理对ego-vehicle或者other vehicles进行建模,对于其运动状态带来的不确定性常被假设为正态分布[1-4],由此引入“高斯噪声”的概念。
有关假设不确定性为正态分布的应用最成熟的便是kalman filter[66][67],基于kalman filter的方法应用时的模式大致为在t时刻通过对外部事物的运动学以及动力学模型进行向前迭代,得到t+1时刻初步预测状态,而后在t+1时刻由车辆自带的传感器如GPS等获取位置等状态信息,两种状态信息进行融合后得到最终预测状态。由此过程得到外部车辆的预测轨迹,进而根据预测轨迹之间碰撞的可能性来进行风险预估是进行风险预估的一种常用方法[1]。
同样拥有此模型迭代-状态信息采集-状态信息融合更新过程的方式还有基于蒙特卡洛方法的粒子滤波[5-7],与基于kalman fliter的方法不同的是,此方法不仅可以根据t时刻的状态来预测未来状态,还可以根据t时刻之前的某一距离窗或时间窗内的状态来预测未来,如Christoph Hermes等人在[7]中利用t时刻30m的距离窗内的状态进行轨迹预测,预测时域可达到3s。
然而其距离窗长的特点也意味着要花费更多的时间进行状态采集,这直接限制了这一方式的实车应用,针对这一问题,Stefan Hoermann在[5]中通过使用雷达其他车辆的加速度,借此判断其driving style,并且在此基础上直接利用粒子滤波进行向前传播,不仅解决了距离窗的问题,还获得了2~5s的预测时域。
以上的所有方法虽然具有解释性强、算法相对轻便的优点,但是其最高的预测时域低的缺点使得其不能够单独出现在轨迹规划或风险评估模块中,现如今通常是将其与其他预测时域更长的算法结合进行使用,如BP-Network、LSTM-Network等等将在下文记叙。
2.1.2 Maneuver based approaches
![93ca434f65110daed8cd0d67e5b05e26.png](https://i-blog.csdnimg.cn/blog_migrate/9c72ac62a7aa3061d4e22610b3d8d7d2.png)
![3c139c52eac315725876ae9e81dac909.png](https://i-blog.csdnimg.cn/blog_migrate/0a6dfdce92562f591347936e99d51506.png)
这类方法中主要包括基于Hidden Markov Model(HMM)的方法,以及基于Dynamic Bayesian Network(DBN)的方法,上述两种方法在使用形式与内在本质上有着极大的相似性。关于HMM模型本身的详细介绍可参考文献[8],本节重点介绍其在DMAP上的应用。
相比于Physics-based approaches,基于HMM的方法特点在于不需要动力学或者运动学建模,预测时域更长并且更加稳定。HMM与Markov Model相比,除了一条显性状态序列以外,还有一条隐形状态序列,在其应用到DMAP上后,显性状态序列一般指的是可通过车辆传感器观测到的外部车辆的状态,例如速度、加速度等等,隐形状态序列一般指的是HMM输出的被检测物体的驾驶意图。
例如Thomas Streubel 等人在[9]利用外部车辆的速度、加速度以及前轮转角预测其打算拐弯还是直行,预测时域可达到7s,而显性状态与隐形状态之间的表现概率(emitting probability),以及隐形状态与隐形状态之间的传递概率(transition probability)的获取主要通过learning-based的方法,因此 HMM的预测准确性与所使用的数据集有很大依赖性[9]。
Xiaoxia Xiong等人在[10]中利用HMM与SVM结合构建碰撞预警系统,他将检测到的外部车辆的运动状态当作显性状态,将车辆安全性当作隐形状态,配合SVM给出的换道决策,根据周围场景进行风险预估,但是他在构建HMM时仅将外部车辆的状态纳入了决策,除了车辆以外,诸如行人或宠物等也应该纳入监测范围。
同样是针对HMM的构建问题,为了提高车辆之间的“交互性”,除了[10]中考虑的问题以外,Wei Liu等人在[31]中将外部车辆的“reaction”纳入建模,该reaction指的是外部车辆的四种状态:stopping、hesitating、normal and aggressive,具体通过外部车辆的速度的变化情况来判断,HMM构建完成后通过DESPOT算法进行求解,达到了在线运行的目的。
随着所考虑事物的多样化,模型便会愈加复杂,求解便愈发困难,HMM问题本身的复杂性就已经很高,在其问题求解上无法得到解析解,只能通过数值方法进行最优解逼近,而这种方法就很容易导致局部最优问题,为此Shai Shalev-Shwartz等人在[11]中利用无参数的强化学习的方法进行求解并且达到了比较好的效果,其泛化能力还有待提高。
单独一层HMM只是进行做外部车辆的行为预测,例如上文提到的外部车辆的转弯直行,或者是一段加速度序列[12],以上HMM输出结果便可以作为输入控制下层控制器进行轨迹规划或者轨迹追踪[13]。Ning Ye 等人在[14]中首先利用外部车辆的一段历史轨迹信息更新HMM的参数,然后利用Viterbi算法结合这段历史轨迹信息以及HMM模型,解码得到HMM的两组隐状态,其中一组隐状态便是所预测的轨迹。
为了提高HMM预测的准确性,Fang Li等人[15]对HMM模型进行了一点修改,提出了Auto-regression (AR) based HMM,目的是将所预测车辆过去的驾驶信息纳入考虑,其Observable states之间也出现关系,其余不变,其结构如图5所示,随后通过普通换道场景与紧急换道场景的仿真证明了AR-based HMM的预测准确性要高于一般的HMM。
在对HMM的结构进行变化的方向上,[15]从考虑历史信息的出发点进行修改,除此之外,同样是为了提高预测准确性,以及更好的增加各辆车之间的interaction能力,还可以从将各辆车之间可能出现的互动,即某辆车对其他辆车的反应纳入考虑,而拥有上述这一属性的方法则是基于DBN的方法,DBN通过允许状态空间以被分解的形式表达而推广了HMM,从表现形式上来看,可以理解为用DBN模型进行预测时,状态空间中可出现多辆车[16],也可以将本车驾驶员的状态纳入考虑[17],其结构形式与HMM的异同点如图5所示。
但是本质上其实不论是AR-based HMM或者是DBN都与HMM是类似的,在使用形式上乃至注意事项上也是类似的,DBN由于能够更好的表达环境事物之间的interaction,其准确性一般也要高一点,但是这也提高了求解难度
![cb4f71ff10e9e41e0d905f9a31ddb26a.png](https://i-blog.csdnimg.cn/blog_migrate/1d576eebe8fd0e1a133ba97111f093f8.png)
在基于概率的方法中,基于HMM、DBN的方法对于intention prediction更加稳定准确,但是其模型的复杂度高,在线求解更困难,并且应用在DMAP中时也需要与下层控制器或者路径规划模块结合,Physics based approaches虽然可以直接预测出轨迹,但是出于对安全性的要求,该方法通常作为下层路径规划模块与其他intention prediction算法结合使用,例如下文会提到的LSTM以及BP网络等等。
2.2 Learning based approaches
Learning-based的方法与前文所提到的HMM-based的方法相比,该方法同样需要根据外部车辆的状态数据,或者其他环境物体的状态数据进行参数确定,一般只用来判断驾驶意图,要想进行轨迹预测则需要配合其他算法,但是该方法可以通过调节网络结构深度以及网络类型来适应不同的环境,获得更长的预测时域以及更高的准确度。关于使用Learning-based的方法进行轨迹规划,其形式上基本上大同小异,区别主要在选取的网络结构的特点,具体情况见下文。
2.2.1 LSTM based approaches
Long Short-term Memory Network(LSTM)属于Recurrent Neural Network(RNN)的其中一种,在解决包含时间序列特性的问题上有很好的效果,比如语音分析等等,近年来LSTM应用到DAMP上之后也有很好的效果。相比于一般的RNN来说,LSTM解决了gratitude loss的问题并且还增加了网络的深度,在结构上核心的区别在于cell的不同,关于其具体的结构特点可以阅读文献[18]。
Alex Zyner等人在[19]利用LSTM进行intersection处的车辆意图识别,其使用的数据集为Naturalistic Intersection Driving Dataset[20],该数据集包含着外部车辆的速度、位置和heading等状态信息,诸如此类的更常用数据集为Next Generation Simulation (NGSIM)[21],这些信息通过extended Kalman filter进行滤波后进入一个三层的LSTM网络,最后通过softmax classifier输出预测的行为结果。
利用LSTM进行行为预测的方法大部分都是上面的模式,Long Xin等人在[22]中利用两个单层的LSTM进行意图识别与轨迹规划,第一层LSTM进行车辆意图识别,其大致模式与[19]中相同,第一层LSTM输出的预测结果如换道等等直接输入到第二层LSTM,随后输出的结果便是大致的预测轨迹,该大致的轨迹还会通过一个fully-connected曾进行优化输出最终的确定结果。
与[22]的轨迹预测模式类似的还有[23],但是在[23]中,Wenchao Ding等人将第二层LSTM替换为基于最优化的轨迹预测模块,在轨迹预测过程中不仅考虑了速度跟道路形状约束,还考虑了交通规则以及动态障碍物的约束,这样虽然可读性更好,但是仿真结果证明,算法的大部分时间都消耗在以上的约束确定上。
2.2.2 Other network based approaches
本节所指的网络主要是那些基于Deep neural network(DNN)做适当结构调整的网络。
例如:Chen Chen等人在[24]中利用一层input layer、一层output layer以及一层hidden layer构建Back Propagation(BP) Network,该BP Network会输出ego-vehicle的行为,并且通过V2I技术获取的附近车辆的状态、驾驶意图信息,并将数据作为协方差矩阵输入给下层的kalman filter模块进行轨迹预测,并且通过对预测的轨迹进行分析来获取风险估计。
但是该方法的结果并不是很好,主要表现为在交叉路口实施此算法要求路口的车辆速度必须低,我认为导致这一问题的主要原因还是其建立的DNN不够多样化,其hidden layer所能表现的特征太少,但是其利用V2I技术获取信息并且融合和以信息进行轨迹规划以及风险估计的方法属于这类方法的一个发展趋势,因为这样可以很便捷地提高ego-vehicle与other-vehicles的interactive能力,为了提高这类方法的鲁棒性,之后的研究中还应将V2I传播的packet-loss问题以及communication delay纳入考虑。
同样是为了提高算法“interactive”能力,Wenchao Ding等人在[25]中也使用了fully-connected层做最后输出,但是该层之前,首先使用RNN对两辆互为“neighborhood“的车运行轨迹进行encoding,此处“neighbourhood”可以简单理解为离得最近的两辆车,随后RNN输出结果至neighborhood interaction unit,其输出的两辆车之间的interaction情况将会与RNN输出的轨迹encoding结果一起被输送至fully-connected层,随后得到的结果便是外部车辆的行为预测。
该方法并没有采取直接通过neural network分析外部车辆的轨迹得到所预测的行为,而是考虑了车辆之间的互相影响,并且在fully-connected layer之前单独分析车辆之间的interaction情况,其方式结果与之前所用的考虑车辆之前的互相影响关系的方法,比如Social LSTM[26]、Convolutional social pooling LSTM(a modification of SLSTM)[27]相比,在预测准确性上有所提高,并且属于一种全新的方法。这种类似于“解耦”的方法既提高了算法的可解释性,又提高了算法的效果,也是一个很好的研究方向。
2.3 V2X based approaches
这一阶段的智能车通过V2X技术获取外部信息,配合Probability-based或者Learning-based的方法进行控制决策,但是一般只考虑了V2V或者V2I其中一种技术,前者的亮点主要是通过V2X技术改变信息获取的渠道,使得前文的方法可以应用在更多地方,并且改进这些方法。
在前文中提到的方法使用大致过程是先识别驾驶意图,再根据意图规划路径,例如[23]中通过LSTM预测车辆驾驶意图,然后通过基于最优化的规划路径,而在V2X技术引进之后,完全可以通过V2X获取外部车辆的驾驶意图,并进一步进行路径规划[28][29]。例如:Chen Chen 等人[24]通过V2I获取外部车辆的速度、加速度、驾驶意图等信息,结合Back Propagation Network对ego-vehicle进行驾驶意图预测,随后利用Kalman Filter进行轨迹预测并且根据轨迹进行碰撞风险估计。
Laleh Makarem等人在[28]中同样是针对十字路口时的路径规划,通过V2V获取通信范围内所有车辆的位置、速度等信息然后将其作为约束条件纳入模型,随后通过linear quadratic optimal方法进行求解,既保证了求解效率,使得算法可以在线运行,又保证了运行的安全性,各辆车碰撞概率最低。
以上对V2X技术的应用,即车辆状态或驾驶意图的获取,还并没有到完全可以取代传统方法的地步,在对安全性要求更高的场景,如车辆跟随场景等,这时的驾驶意图若通过传统的方法如LSTM或HMM获取,其车辆只能低速运行并且车间安全距离还要大才能保证安全,这时V2X技术的应用便有着不可比拟的优势。
Jean-Nicola Russo等人在[17]针对车辆跟随时的rear-end collision问题提出了结合V2V技术的基于Bayesian Network(BN)的碰撞概率分析方法,该方法通过V2V获取前车的状态信息以及刹车意图,配合rain sensor、eye tracking sensor等环境、驾驶员传感器的数据一同输入BN进行碰撞概率预估,而在没有通过V2V获取刹车意图这一步时,通常所预测的概率偏高[32]。
前文所提到的驾驶意图识别的方法如LSTM、HMM等,虽然也可以比较好的识别出刹车意图,但是其预测结果可能不准,最关键的是,其算法运行时间较长,对于跟车工况时的安全性问题来说无法使用。而利用V2V获取前车的刹车意图这一步直接并且简洁的解决了这一问题。
3.待解决的问题
日后需要考虑的问题除了一直都存在的算法的效率与建模的完备性以外,还有对驾驶安全的考虑,具体如下:
本文提到的Maneuver based approaches与Learning based approaches均需要从驾驶数据集中学习转移概率值或参数,因此如何使得算法对于不同的场景可以保持较高的泛化能力尤为重要
多智能体之间的特性需要被反映在算法中,例如:合流路口相遇的车辆在决定谁先进道时,两辆车可能会同时刹车又同时加速,即表现出互相影响的交互特性。
若用V2X技术,丢包问题与传输延迟问题对预测结果影响巨大,若联合V2X通信与传统的预测方法,则如何数据融合才能获得最高的结果置信度。
亘古存在的效率问题,目前直接从算法本身做效率优化需要较大创新力,更常见的是针对某一问题用不同复杂度的预测、规划方法结合解决
写在最后
自动驾驶行为预测与路径规划涵盖了大量专业知识(但是同类别的方法相似性很强,也就是说学明白HMM那么离DBN也就不远了),例如隐马尔可夫、长短期记忆网络等等,网上的学习资源很多但是水平参差不齐。
建议大家在了解这方面内容时,可以通过CSDN等博客上的介绍对这些方法有个感性认知,但是要想深入了解诸如HMM等方法的底层细节,不要将学习面只停留在博客博主的感性讲解上,多看看老师讲的底层数学细节。
(一)视频课程来了!
自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、多传感器标定、传感器部署、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知、决策规划、轨迹预测等多个方向学习视频,欢迎大家自取(扫码进入学习)
(扫码学习最新视频)
视频官网:www.zdjszx.com
(二)国内首个自动驾驶学习社区
近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、Occpuancy、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
(三)【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称