阮仕峰,惠 飞,于建游,张志刚,杜绎如,郭 星
(1.长安大学信息工程学院,陕西 西安 710064; 2.河北省高速公路延崇筹建处,河北 张家口 075400)
我国双向车道公路里程占公路总里程的比例超过80%[1],而双向车道的交通特性是有别于单向车道的,在双向车道上,必须借用对向车道完成超车,这种驾驶行为被称为逆向超车。在复杂的交通环境下,逆向超车时会受到其他车辆的干扰,如前车和后车会遮挡驾驶员的视野,使驾驶员难以察觉其他车辆的潜在威胁,尤其与对向来车发生碰撞的风险极高,威胁着驾驶人的生命财产安全。相关研究表明,逆向超车所引发的交通事故占双向车道所有事故的60%[2],逆向超车存在的安全问题亟待解决。现有研究已经给出了多种实现超车的具体方法,Dixit等人[3-4]分析了现有的超车策略,给出了高速超车轨迹规划与跟踪的可行方法,并在此基础上进一步提出了在结构化的高速道路环境中自行识别道路安全区域的框架,通过鲁棒预测控制器(Robust MPC)生成可行的超车轨迹。Brunke[5]设计了基于学习的模型预测控制器(LMPC),通过在预定车道上多代理竞争来确定局部最优轨迹。张家旭等人[6]提出了基于人工势场法的路径规划算法以及线性鲁棒控制理论最优成本控制策略,为最优路径的判断提供了一种量化的方法。Chen等人[7]采用双向快速随机扩展树法(bi-RRT),在状态空间中构建连通图,从初始状态到最终状态的路径中通过碰撞检测算法寻找最优路径。Asaithambi等人[8]通过分析各种类型车辆的超车行为特征,建立了复杂场景下的交通流模型。以上研究对于超车过程中所存在的超越、交错、追尾等交通冲突[9]都进行了充分考虑,其有效性也已得到了验证,但是这些算法并不适用于逆向超车场景,尽管逆向超车与一般超车的过程是大致相似的,但是逆向超车还存在车辆相会的交通冲突[10],在超车之前需要额外考虑对向来车的行驶状况,这在上述研究中并未涉及。车联网技术的成熟为解决逆向超车的问题提供了解决思路[11],通过车车通信共享对向来车信息,可以克服视线遮挡所造成的信息不足的问题。但是现有车联网应用中仅对对向来车进行预警,并未给出具体的超车策略,针对这一问题,本文从全局信息获取以及驾驶员信息获取2个角度出发,将对向来车的影响因素引入到决策方法中,并最终实现逆向超车的轨迹规划和跟踪控制。
逆向超车场景中需要将对向来车的影响纳入到超车决策中,因此必须找到一种可以判断其对主车的威胁程度大小的指标。在现有研究中,通常会将环境车辆对主车所造成的影响进行抽象或者量化,使用数学模型或者物理指标对其进行描述,例如势场法[12]。本章将给出超车决策中具体的衡量指标和参考依据。
全局信息主要包括速度、加速度、两车间距,在现有车联网技术的研究成果下,已经能够保证传输的低时延和可靠性[13],因此可以依托车车通信来获取决策所需的全局信息。通过速度、加速度等全局信息环境车辆的驾驶行为和位置信息进行预测,可以得知该路径点有车或者无车的概率,这一概率即可视作该区域发生碰撞的概率。如图1所示,如果在当前时刻C1选择超车,预测时段内,C1在超车过程中会与C2、C3发生碰撞,于是则可以认为预测中C2、C3所在的区域不安全。对当前道路段的所有离散路径点进行风险评估,最终生成整个路段的碰撞热图,从而将交通环境对智能车所构成的风险进行量化,为决策和规划提供直观依据。
图1 安全评估方法示意图
与车辆的位置相关程度最高的参数为车辆的加速度,经过大量的数据验证及实际测试后证实,车辆行驶过程中的加速度变化情况近似服从特定数学分布[14-16],如果加速度的变化是可以预知的,那么借助现有智能车技术的信息交换来获取其他车辆的信息,并依托于结构化道路[17]的特性,可以对环境车辆位置的变化情况进行预测,下面将从横向和纵向对车辆的位置进行预测。
1.1.1 位置预测
在逆向超车场景下,超车能否成功很大程度取决于对向来车的位置,如果掌握了对向来车纵向位移的分布情况,那么对向来车的实时位置就可以得到预测。记车辆纵向加速度ax∈[ax,min,ax,max],在实际行驶过程中,车辆总体上是趋于保持匀速行驶的,即纵向加速度集中分布在0点附近,因此一般认为ax近似服从正态分布,其取值概率为:
(1)
车辆的纵向位置si与速度、加速度关系如下:
(2)
其中,s0、v0是车辆当前的纵向位移和速度,Δti=ti-t0,ay为加速度。故纵向位移取值概率可表示为:
(3)
横向位置预测实际就是对车辆变道的预测,车辆如何行驶取决于驾驶员的驾驶意图,在驾驶行为意图研究领域,可以采用sigmoid函数[18]来描述驾驶员的行为特征分布情况,因此通过sigmoid函数描述驾驶员做出变道行为的概率为:
(4)
其中,m为斜率,λ定义为:
(5)
其中,l是前后两车的间距,vf是前车的速度,vb是后车的速度。在驾驶员做出决策后,车辆的换道情况可以用向左或者向右的加速度进行描述,记ay∈[ay,min,ay,max],经过大量的数据分析后得出,ay的概率密度函数为:
(6)
其中,u和α是形状参数,β为速率参数,Γ(α)为伽马函数。在上述公式的基础上,可以得出车辆在特定时刻的横向加速度的具体情况。可以判断此时车辆的3种状态,即向左换道、向右换道、直行,仍然以概率来描述加速度取值的情况:
(7)
事实上,加速度与位移互为反函数,于是进一步得到车辆横向位置的预测概率为:
(8)
其中,lmin、lmax是横向位移的最小值和最大值,其值取决于道路宽度的大小。
1.1.2 碰撞热区图
车辆的实际运动中,横向和纵向上的加速度可能同时存在,因此将纵向和横向运动的概率整合为车辆的真实运动预测:
P=[1-P(λ)]Px+P(λ)PxPy
(9)
概率P表示车辆在在特定时间节点位于某一位置的概率。根据这一公式对所有离散道路采样点进行评估,智能车可以根据路段的安全状况规划轨迹。
在多车场景下,所有车辆构成了一个动态变化、相互影响的系统,每一辆车的状态变化都会反馈给系统从而影响系统的状态,因此在考察道路区域安全性时,将所有可对该区域产生影响的车辆按照如下公式纳入计算:
(10)
道路评估结果如图2所示,图中各区域值的分布反映了道路不同区域的碰撞概率大小。
图2 安全评估结果
1.1.3 最小安全距离
在占用对向车道时容易发生碰撞事故,因此在进行逆向超车决策时,必须考虑从开始超车到并入原来车道的整个期间是否会与对向来车发生碰撞,下文将对逆向超车的最小安全超车距离进行研究,只需确保超车距离大于最小安全距离,即可避免碰撞事故的发生。
图3展示了逆向超车的具体过程,L0、L1、L2为各车间距,d1、d2分别为主车完成变道及并道所行驶的路程,L为主车开始超车时与对向来车的距离,即超车视距[19],主车一旦开始超车,必须确保有足够的时间超越前车并完成并道,避免与对向来车发生碰撞,因此超车前必须考虑会车间距是否满足安全要求。L计算方法为:
图3 逆向超车过程
(11)
式(11)中,v0为主车的初始速度,a为主车的加速度,主车的超车速度为道路最大限速vm;v2、v3分别为前车和对向来车的速度;L0为主车与前车的车头间距。
在时间节点t主车与对向来车的预测间距为:
Lt=|s-sopp|
(12)
其中,s表示智能车的实时位置,sopp表示在预测中对向来车将会到达的位置。由于下文的路径选择算法所选路径点发生碰撞的概率并不总是为0,因此当Lt 上文的决策方法依赖于对加速度、行车间距等全局信息的快速获取,从而预测车辆的状态,因此对于车联网通信有着时延和稳定性等方面的要求。但实际也会存在离开服务基站服务范围而失效等异常情况,加之目前车联网未得到大规模普及,仍然以驾驶员手动驾驶为主,为了降低算法对车车通信的依赖程度,保证算法在非车联网场景下仍然有效,本节提出一种基于驾驶员视觉信息以及车载传感器的决策方法。 就目前市面的主流汽车产品而言,驾驶员的信息来源除了自身获取的视觉信息外,还包括车载传感器提供的一些信息。在自动驾驶取代手动驾驶之前,由于驾驶员的判断主导车辆的行为,因此车辆并不是简单做机械运动的物体,驾驶员的个人风格会切实影响到行车过程。假定所有驾驶员都希望在安全范围内将驾驶行为的收益最大化,那么各车之间存在着相互竞争关系,驾驶员要利用已有的信息来使得自身赢得竞争。这种互相竞争的局面正好符合博弈论[20-21]的应用场景。 驾驶员获取的视觉信息大致可以划分为2类:1)对于其它车辆位置的判断,如两车间距的拉近、车辆行驶方向的改变等,基于这一类信息驾驶员可以初步判断其它车辆的行为意图;2)车辆的信号灯(转向灯和尾灯)的信息对于驾驶员来说至关重要,是驾驶员判断其他车辆行为意图的主要依据。视觉信息的获取也会影响博弈中双方的收益对比,假设车辆A和车辆B进入同一行驶区域,双方将会观察对方的行为,并估算对方到达期望位置所需要的时间,车辆会根据估算的时间行动,在自身快速通过的同时确保双方通过同一区域的时间差能够安全。车辆A决策并实施之后会观察车辆B对本车行为的反应,车辆B采取的反应行为将会影响车辆A下一次的决策,两车之间的这种决策可以看作从两车进入路口区域第一次决策时间点T0到使用场图判断两车冲突关系[22]结束时的最后一次决策时间点T1内的动态重复博弈,如图4所示。 图4 两车博弈示意图 博弈论的关键点在于参与方都在寻求自身收益的最大化。对于超车过程来说,可以将收益划分为2个部分,一部分是位置收益,可以理解为位置领先的车辆收益更大;另一部分则是安全收益,承受的风险越小则安全收益越大。这2个部分收益在一定程度上是互相冲突的。下面用收益函数来描述2种收益的变化状态。收益函数定义为: (13) 其中,F( )表示归一化计算,α和β分别表示安全因素和时间因素的权重系数,且α+β=1,ΔT为博弈双方通过冲突区域的时间差,计算方法为: (14) 轨迹规划的目的在于引导智能车按照既定策略行驶,必须考虑轨迹会对智能车产生的影响。路径规划要考虑曲线的平滑,这对车辆行驶的安全性以及驾驶的舒适性来说非常重要,同时还要保证拟合曲线与路径点足够接近。得到合适的路径后,将路径与预期的时间序列信息相互结合,可以进一步得到速度分布。 h(n)=Pc(ti,tj)+G(t)+|k(i,j)|+W(i,j) (15) 其中,k(i,j)表示顶点Vi、Vj之间的边的斜率,斜率绝对值越大则表示变道越急促。W(i,j)表示顶点Vi、Vj的边偏离道路中心线地程度,其计算方式为: W(i,j)=(dj-dc)2-(di-dc)2 (16) 其中,di、dj为i、j点处的横向位置,dc为道路中心线的横向位置。 搜索过程如图5所示,搜索算法会对当前顶点的每个邻近顶点进行检查,边的估值被累计到当前的路径中,通过总估值的大小来判断可达性。首次搜寻出的路径虽然是代价最低的,但是在轨迹规划时未必是最优选择,因此图搜索算法完成后,将所选路径添加到参考路径的集合中,并将路径已经包含的边进行标记,然后开始新的搜索。参考路径的可达性直接反映了其风险程度的大小。 图5 路径搜索过程 轨迹规划采用了基于多项式曲线拟合的方法,根据车辆初始时刻和超车完成时的状态,在指定时间序列内完成相应操作。基于多项式的轨迹规划的一般方法是分别在车辆行驶的横纵方向上构建如下多项式函数[25]: (17) 其中,x(t)、y(t)分别是智能车横向和纵向的行驶曲线,ai、bj为各自的待定系数。 由于车辆实际驾驶过程中,其控制需要满足运动学和动力学约束,加速度约束需曲线二阶连续,因此本文采用四次多项式进行路径拟合。根据安全路径点[(xi,yi)1,(xi,yi)2,…,(xi,yi)n],i=1,2,…,k,分别计算为: (18) 其中,(xi,yi)为路径点坐标,r=4,之后建立正规方程组: (19) 对上式进行求解以得到多项式函数的各系数[m0,m1,…,mk]T,之后得到智能车的拟合路径曲线为: 微课的授课时间短,要想在10 min内把要讲的知识点讲完,就必须做到精炼,就必须做到重难点突出,学生看完就能很快知道授课的重点和难点,就能很快掌握所学的知识点.相反,如果微课做的不精炼,杂乱无章,学生看后不知所云,更是摸不着头脑,那么这样的微课是失败的,不但浪费了教师制作时付出的时间和精力,而且浪费了课堂上的授课时间,浪费了学生的精力和时间,降低了教学效率,给学生的学习添加更多的困难和阻力. y=m0+m1x+m2x2+…+mkxk (20) 速度规划必须满足2个要求:首先是速度分布必须在允许范围之内,不应超速或者速度过低;其次速度的变化能够保证车辆平稳地完成超车,车辆之间不会相互造成干扰甚至发生冲突。因此可以在已经规划完成的路径的基础上,添加时间序列信息,对速度进行规划,根据时间序列信息得到的指定时间和预期位移,计算目标速度,这样得到的速度分布必定满足超车过程中任意时刻的速度要求。 如图6所示,将规划所得的路径近似表示为不光滑的多段直线,在此针对i、j之间的路径进行研究。记i、j间的位移为Sij,i点处的速度记为vi,加速度记为ai,j点的速度记为vj,则有: 图6 速度规划 vj=vi+aitw (21) 其中,tw表示从i点到达j点的预期时间,可以表示为: (22) 于是式(21)可以进一步表示为: (23) 本章将设计一种模型预测控制器来对智能车的轨迹跟踪进行控制,其主要方法是根据算法规划出的轨迹数据,不断地进行滚动优化和更新,并最终输出车辆可用的信号从而对智能车进行控制。这也是模型预测控制的基本思想,即利用已有的模型系统当前的状态和下一个时域的控制量去预测系统下一个时域的输出,通过求解带有边界条件的优化问题来实现控制目的。 (24) 该模型能够比较详细地反映车辆各项状态变量之间的非线性关系,其一般形式可表示为: λ=f(ξ,u) (25) λ=A(t)[ξ-ξref]+B(t)[u-uref] (26) 通过前向欧拉法对其进行离散化处理,处理后的状态方程为: (27) 预测时域内的参考值记为r(k),k时刻的预测误差记为z(k),则根据上式可以得到整个预测时域Np内的误差: (28) 为了找到最佳的控制量Uk,使得预测时域内的状态向量与参考值尽可能接近,从而系统的状态能准确跟踪期望的轨迹,根据预测状态向量与参考值之间的累计误差定义优化目标函数,并对Uk添加约束[27]: (29) 由于本文选用的是动力学模型,其约束条件较多,为了确保控制器能够在计算时间内得到最优解,在目标函数中添加松弛因子[28]。综合目标函数及约束条件,得到基于动力学模型的优化问题如下: (30) 其中,yhc、ysc分别为模型预测控制器的硬约束和软约束,Q、R、ρ为权重系数,ε为松弛因子,软约束可以通过松弛因子进行调节。在进行优化求解之后,可以得到控制时域内一系列控制输入量,在接下来的控制周期,序列中的元素将实际作用于系统,从而实现对期望轨迹的跟踪。 为了验证本文所提出的控制算法对整个逆向超车过程的实际控制效果,本文搭建一个仿真平台用于测试。在CarSim中完成对仿真工况、车辆、道路及车辆参数的配置,借助MATLAB/Simulink完成转向系统路径规划与跟踪控制策略的搭建,如图7所示。本模型将根据规划层中优化求解得到的路径曲线和参考速度作为模型预测控制器的参考轨迹输入,模型预测算法作为控制器,在预测时域内对参考轨迹进行跟踪,控制时域内输出前轮转向角及加速度,并将数据注入被控车辆,以此实现对车辆的实时控制。 图7 Carsim/Simulink联合仿真界面 仿真验证过程如图8所示,图中分别展示了跟随、变道、超越、并道4个阶段的情况,主车顺利完成了超车。轨迹跟踪效果如图9、图10所示,从图中可以看出,直行时的横向跟踪误差接近于0,由于转向所带来的误差最大不超过0.1 m,跟踪效果良好,而车辆从起步到完成超车的整个过程,速度的跟踪误差不超过3 km/h。图11为超车过程中的车辆参数,从上而下分别为方向盘转角、前轮转角、轮胎滑移角、方向盘转角和前轮转角,直观地体现了模型预测控制器对车辆的控制过程,轮胎滑移角则反映出了轨迹满足车辆实际行驶的要求。 图8 仿真实时动画 图9 跟踪效果 图10 跟踪误差 图11 车辆动力学参数 并道阶段与变道阶段的试验方法完全类似。上文先对变道阶段进行了跟踪测试,在确定了模型预测控制器的性能后,进一步对整个超车过程进行跟踪试验。图12展示了轨迹跟踪效果以及误差,跟踪过程的最大误差约为0.15 m,误差率不超过4%,跟踪误差主要发生在转向阶段,这是由车辆的动力学因素所决定的。实验结果表明本文算法规划的轨迹平滑,轨迹跟踪的结果准确,性能达到了预期要求。 图12 超车轨迹 为了进一步验证模型的控制性能,将本模型与预瞄最优曲率驾驶员模型[29]进行对比试验,结果如图13所示,可以看出,本文模型的最大误差约为0.12 m,而预瞄最优模型最大误差约为0.15 m,相较于对比模型误差下降了约20%,并且跟踪误差的波动更小,说明跟踪过程更加平稳。 图13 模型性能对比 本文针对智能车逆向超车所存在的安全性问题提出了超车策略,该策略通过全局信息预测和基于博弈论的协作控制进行决策,对智能车的行车环境进行了直观的参数化描述,并且实现了轨迹规划与跟踪控制,仿真结果验证了算法在逆向超车场景下的有效性。本文所提出的方法充分考虑了近年的相关研究工作[30-32]所具备的优点,并在现有研究的基础上进一步补充了以下工作内容: 1)提出的超车控制方法考虑了多车场景下车辆之间的相互作用,不但将当前的交通状况作为判断依据,还考虑了车辆未来的潜在运动趋势。换而言之,环境车辆的运动预测和主车的运动规划是有机结合的,这使得决策的可靠性得到了提高。 2)发挥了车联网所具有的优势,相较于其他依赖于传感器的超车策略,车联网能更加可靠地提供环境感知信息,这从根本上确保了算法的正确运行,因此本文的方法对于车联网场景是完全适用的。 3)除了对车联网场景的研究外,本文还兼顾了非车联网场景下的应用,借助现在已经颇具规模的车载传感器,发挥驾驶员自身的主导作用,采用了基于博弈论的超车方法,降低了算法对于车联网的依赖性,使得本文对于非车联网场景同样适用,这是其他车联网相关研究尚不具备的优势。 4)本文在采用博弈论的方法时,考虑了驾驶员的主观判断对于车辆的主导作用,把多车场景下的所有实体视作一个动态变化的交通系统,相较于其他研究,不再把环境车辆视作机械的障碍物体,这其实更加贴合真实行车过程的特点。 本文同样存在局限性,首先是对于车联网相关设施的普及有一定要求,只有在相对完整的车联网环境下,本文中的方法才能发挥最佳性能。此外为了降低算法对车车通信的依赖程度,使算法能充分利用驾驶员的视觉信息,本文采用了非合作博弈的方法,但是博弈的过程还局限于2个参与者之间,在真实场景中,交通参与者并不是孤立的个体,而是相互影响,彼此博弈,因此,未来笔者的研究还需要进一步向多方博弈的方向进行完善。1.2 基于博弈论的决策方法
2 轨迹规划
2.1 路径规划
2.2 速度规划
3 轨迹跟踪控制
4 仿真实验结果分析
5 结束语