闫 浩 刘小珠 石 英
(武汉理工大学自动化学院 武汉430070)
不安全的变道行为是导致交通事故的原因之一,因此控制无人驾驶车辆安全变道成为了无人驾驶技术的研究目标之一[1]。为了使无人驾驶车辆的变道行为更规范、更准确、更安全,前人在无人驾驶车辆变道控制技术领域付出了很多努力并取得了一定数量的研究成果。
无人驾驶车辆变道控制策略研究多是基于传统控制算法的研究。邱少林等[2]基于“预瞄-跟随”控制理论和“车辆-道路”模型提出了最优预瞄轨迹跟踪控制模型,并使用LQR算法设计出基于最优预瞄的变道控制器,实验证明其控制器良好的精度和鲁棒性;林小宁等[3]基于MNC 非线性轮胎模型,设计约束条件下快速变道轨迹规划算法和隶属度函数在线自整定的模糊控制器,实验证明其对车辆快速变道场景的适用性;Peng 等[4]使用高斯分布来描述轨迹模型,定义1 种新的车辆安全变道含义,设计1 种四级自动驾驶模型和考虑安全性和人体工程学的决策机制,并构建基于反馈线性化的控制器,通过半实物仿真实验证明其控制器的有效性和可行性;Hu 等[5]结合车道检测设计模型预测控制器,并采用基于偏航角和偏航率的模糊控制器进行前轮修正,在双变道情况下进行仿真实验以证明其鲁棒性和自适应性;Wu 等[6]设计1 种面向安全性和舒适性的车辆变道控制器,设计灰色预测模型来估计周围车辆状态,并在轨迹规划时采用时变安全裕度,在不同安全裕度的情况下进行仿真实验验证其算法的有效性;聂枝根等[7]提出了基于轨迹预瞄的智能汽车变道动态轨迹规划与跟踪控制策略,在硬件环试验台验证了所提控制策略的正确性;蔡英凤等[8]将基于预瞄偏差的PID 控制器和基于道路曲率的PID 控制器结合,在连续2 次变道实验中达到了良好的控制效果;白成盼等[9]基于微分平坦理论和模型预测控制对无人驾驶车辆变道控制技术展开研究,通过仿真实验证明其安全性和高效性;刘洋[10]基于预瞄理论和模糊PID 技术对无人驾驶车辆变道控制技术开展研究,在仿真和实车上实验证明其研究的可行性;张家旭等[11]提出1 种结合Radau 伪谱法与离散滑模控制的变道控制算法,并通过仿真实验验证其控制策略的有效性和可行性。虽然前人对无人驾驶车辆变道控制策略进行了研究并取得了成效,但是上述传统控制算法的局限性,它们或是基于车辆的模型设计控制器,使得控制器设计过程复杂(如LQR和MPC);或是需要进行控制器参数调节才能适应不同工况的控制任务,自适应性差(如PID和模糊控制)。因此,需要研究1种不依赖于模型,控制器设计难度低,有自适应性的无人驾驶车辆变道控制策略。
随着人工智能的发展,强化学习(reinforcement learning,RL)算法,尤其是无模型(model-free)的强化学习算法,在无人驾驶领域得到了应用,这些算法不依赖于被控对象的模型只通过学习的方式就能满足控制任务甚至是多工况任务。赵师涛等[12-13]采用2 个深度神经网络实现演员批评家(actor-critic)结构设计AGV 控制器,并采用确定梯度策略算法(deterministic policy gradient)进行训练,通过与PID和模糊控制对比实验证明其控制器的可行性和自适应性,同时使用预训练的自编码器进行状态特征提取,缩短训练时间和提高可迁移性;Andrea等[14]采用DDPG 算法设计欠驱动船舶控制器,并提出边界奖励函数和高斯奖励函数,同时与视线法进行对比实验,证明其对控制精度的影响;Wang 等[15]结合PID 和q-learning 算法设计移动机器人轨迹跟踪控制器,降低q-learning 反馈函数的计算复杂度,并通过仿真实验验证其有效性;由于计算机算力的提高,近年来基于无模型强化学习的无人驾驶控制技术在AUV、AGV和水面船舶等应用研究方面取得进展,但目前尚未发现学者基于强化学习技术针对无人驾驶车辆变道控制技术开展研究,因此本文将基于无模型强化学习算法研究无人驾驶车辆变道控制技术。
本文采用无模型强化学习算法中的REINFORCE算法和神经网络技术,对无人驾驶车辆变道控制策略进行研究。通过车辆动力学模型,确定系统状态量和控制量,设计控制器及其训练方案,优化控制器训练方案以解决样本数值和方差过大问题,结合无人驾驶车辆运行场景分析奖励分布稀疏问题并提出1种基于对数函数的奖励塑造解决方案,最后通过实验以证明本研究的可行性。
首先建立车辆动力学模型,为仿真环境的建立提供前提,设定车辆模型的固定参数,确定状态反馈量和控制量,根据魔术轮胎公式[16]对后续控制器设计提出输出限幅的要求。
采用使用前轮转向车辆单轨模型作为车辆动力学模型[17],见图1。OXY 代表地面坐标系,oxy 代表车体坐标系,x 方向为车体正方向,y 方向为与x 方向垂直的车体左方向,o在车身重心位置,δf为轮胎侧偏角,φ为地面坐标系OXY与车体坐标系oxy的夹角。
图1 车辆单轨模型图Fig.1 Monorail model of vehicle
式中:sf为车体前轮滑移率;sr为车体后轮滑移率;lf为车轮前轴到重心的距离,m;lr为车轮后轴到重心的距离,m;Ccf为车体前轮侧偏刚度,N/rad;Ccr为车体后轮侧偏刚度,N/rad;Clf为车体前轮纵向刚度,N/rad;Clr为车体后轮纵向刚度,N/rad;m为车体质量,kg;Iz为车体以过重心o与oxy平面垂直直线为轴的转动惯量,kg·m2。上述系数皆为固定参数,具体取值见表1。
表1 车辆固定参数表Tab.1 Fixed parameters of vehicles
由于车辆单轨模型由魔术轮胎公式仿真结果简化而来[17],受其仿真中的小角度线性化结果影响,需要对轮胎侧偏角δf定义域限幅,约束到[-5°,5°],约为弧度制[-0.087,0.087]。
选取控制量为轮胎侧偏角δf,反馈量为车速ẋ、车头朝向φ及其微分φ̇、误差e及其微分ė,其中误差e的定义见式(2)。
式中:Yd为Y坐标的当前给定值,m。
设计控制系统并确定控制器的输入量和输出量,确定神经网络控制器的结构并搭建轻量级神经网络,将强化学习流程与无人驾驶工况结合并确定控制系统各部分在强化学习过程中的分工,结合带有基线的REINFORCE 算法确定神经网络的训练方式,针对样本数值和方差过大的问题提出1 种经验池预处理方式,针对奖励分布稀疏问题设计1 种可以改变奖励分布的奖励塑造方式。
采用传统的反馈控制系统结构,但与传统控制控制系统不同的是本文采用神经网络作为控制器,控制系统结构见图2。
图2中,车辆模型反馈量包括当前时刻的纵向车速ẋ、车头朝向φ和Y坐标,反馈量经过误差计算、微分和向量合成得到状态向量s=[ẋ,φ,φ̇,e,ė]作为神经网络的输入向量。神经网络进行分类任务,将状态向量s 的状态空间映射到控制量δf的动作空间,根据当前状态向量s 的特征求得对不同动作a的偏好程度,再根据对动作a的偏好程度使用分类器求得最合适的动作a并将其换算为对应的控制量δf。
可选动作越少,网络越小,算法实时性越高,算法收敛速度也越快,但是动作执行的精密度也越低,控制效果也随之变差;反之,提升控制效果需要增加可选动作数量,但算法的实时性和收敛速度就会降低[18],因此综合算法收敛速度、实时性和控制效果考虑,将动作空间均分为50 份。根据第1 部分提出对控制量δf限幅要求,将控制量δf限制在弧度[-0.08,0.08]并均分为50份,因此包括0在内,可选的控制量δf对应51个动作,动作a取值范围为[0,50]的整数。
需要注意的是,强化学习算法本身不直接参与控制任务,强化学习的任务是训练神经网络控制器的参数。神经网络控制器的参数由强化学习算法根据其目标函数和参数更新方式进行训练,以保证神经网络通过历史样本学习到控制策略。
采取2 层结构的BP 神经网络作为神经网络控
图2 车辆变道控制系统结构图Fig.2 Structure of vehicle lane-change control system
表2 神经网络参数表Tab.2 Parameters of the neural network
神经网络学习率为0.002,使用Adam优化器。
选取BP 神经网络仅有2 层结构,计算量小,有利于迁移至轻量级计算硬件,并在一定程度上保证控制策略的实时性;又由于2层结构过于简单,将神经元数量定义为200个,虽然计算量偏大,但是保证网络的拟合质量。
神经网络可视为关于状态向量s 、动作a和网络参数θ的偏好值计算函数h(s,a,θ)。对于多分类问题,采用softmax函数对不同动作的偏好值进行处理,将其限制于[0,1],从而得到所有动作的相对偏好情况的分布
在得到动作的偏好分布后,分类器就可以实现分类功能,从而通过分类选择合适的动作a。
最后将动作a对应到控制量δf,转换公式为
式中:a为[0,50]整数。
首先引入强化学习示意图,用于描述强化学习过程,见图3。
图3 强化学习过程示意图Fig.3 Process of reinforcement learning
智能体首先根据环境当前的状态St结合自身的策略函数π(At|St,θ)进行动作At的选择,环境根据动作At进入下1 个状态St+1,并根据当前状态计算产生奖励Rt+1。智能体的任务是通过以往的经历,包括状态动作及其对应的奖励,调整自身的策略,从而达到累计奖励最大化的目的。环境的状态反馈功能由车辆模型提供,智能体的全部功能和环境的奖励计算功能由神经网络控制器提供。
本研究采用在带有基线的REINFORCE 算法,该算法是1 种基于策略的方法,这一类方法可以由当前系统的状态直接映射到动作,而不依赖于价值函数来选择动作,这样可以避免价值函数的错误估计带来错误动作选择的结果[18],该算法具体更新方式为
式中:α为学习率;b为基线,Gt为累计回报,累计回报Gt可由多个单步即时奖励Rk计算
式中:γ为折扣率取0.99,T为终止时刻。
在REINFORCE 算法中由累计回报Gt构成累计回报序列[G0,G1,G2,…,GT-1],当该序列样本的数值和方差较大时,影响策略的收敛速度和收敛结果[18],下面将通过1个例子说明该问题。
假设目前的累计回报序列为[1,2,3,4,5,6,7,8,9,10],从单步更新的角度来看,累计回报绝对值的最大值10 数值可能偏大,根据式(5)可知参数θ的更新幅度也会偏大,而过大的参数更新幅度有可能导致算法在学习过程中发散;从多步更新的角度来看,整个样本序列的方差为8.25,该方差也偏大,大方差会导致算法的学习过程中出现大的波动,使得学习过程不平稳,收敛质量差,过大的方差也会导致算法的发散[18]。因此,所以需要1种对经验池中累计回报Gt进行预处理的方式来降低样本的绝对值和方差,从而保证策略收敛速度和结果。
式中:std函数为标准正态化函数。这样处理回报有3 个优势:①引入均值基线和标准正态化都可以抑制过大的参数更新,从而抑制智能体在学习过程中出现的波动,保证策略平稳更新;②当累计回报都为正值时,引入基线会使数值较低的累计回报变为负值,从而使算法可以从较优的策略中学习最优的策略,而不是学习最优策略,当回报都为负值时,也可以从这些较差的策略中“择优”学习;③当累计回报序列的绝对值都很小时,比如:[-2·10-5,-1·10-6,1·10-6,2·10-5],该预处理方式也可以适当地放大累计回报值,从而避免发生因更新幅度太小而导致的无效学习。
在强化学习的奖励设置中,大多使用“0-1”设置(“零一”设置),即目标状态的奖励值为1,非目标状态的奖励值为0;或者目标状态的奖励值为0,非目标状态的奖励值为-1。但是这种奖励设置方式不适合跟踪控制任务,下面将以图4和图5这2个例子说明该问题。
在图4中,实线为理想跟踪轨迹图中target,2条虚线分别上下偏离理想跟踪轨迹0.1 m,用于表示目标状态范围(奖励值为1 的空间,图中reward borderline),虚线包括空间以外的区域奖励值为0,车辆在原点开始从左向右行驶。根据强化学习的运行机理,智能体只有收到奖励才能学习如何控制车辆到达目标状态,而车辆的行为方式依赖于神经网络的参数初始化结果,这个结果是随机的,当车辆的行为方式使其无法到达目标状态来获取奖励,那么智能体将什么也学不到。在图4 中,奖励的空间只有0.2 m的宽度,即使在起步时处于目标状态,也很快驶入非目标状态,尤其是在神经网络初始化后只会控制车辆直走和右转的情况,这使得有奖励的样本数量太少,不足以使算法收敛,强化学习学界将此类的问题称之为奖励稀疏(reward sparse)。另外,无论偏离目标状态多远,奖励都为0,这使得智能体甚至不能学习次优解。
图4 “0-1”设置例1Fig.4 “0-1”setting in case 1
图5 “0-1”设置例2Fig.5 “0-1”setting in case 2
图5和图4相同,唯一的区别在于虚线的偏离值为1 m,即大幅度增加目标状态范围。在图5中,车辆比图4中的情况更容易到达目标状态从而获取奖励以训练神经网络,而且奖励的样本数量更多,算法更容易收敛。但是,由于误差在不大于1 m 的时候奖励都为1,那么智能体很有可能会学习到控制车辆到达1 m误差的方式或是在这2 m的区间内震荡行驶的方式,而不是尽可能的跟踪理想轨迹。此外,增加目标状态的范围并非长久之计,在整体状态空间较小的时候增加目标状态范围或许有用,但在整体状态空间庞大甚至是无穷大的情况下,目标状态区域在整体状态空间的占比还是很小,奖励稀疏问题仍然存在。
针对上述问题,提出1 种可以调节奖励分布稀疏程度奖励塑造方式
式中:et为当前误差,m;c为可调节参数,用于调节奖励分布的稀疏程度;ε为截断项,以防在误差为0时函数值无意义,本文取ε为0.000 1。使用-ln函数进行奖励塑造优势有2点:①-ln函数由于其在正数域的单调连续性,在偏离目标轨迹不同的位置反馈的回报也不一样,即便车辆未到达最优轨迹,也能通过当前的样本的奖励值较大的部分学习到次优解,并通过多次学习和探索逐渐收敛到目标轨迹;②控制误差越小,控制难度越大,也越值得奖励,误差越接近0,-ln函数数值越激增,符合该要求。
另外,该奖励塑造方式可以调节奖励分布的稀疏程度,从而加速算法收敛或提高控制精度。在学习初期,可以将参数c调小从而使高数值奖励的分布范围更大,高数值奖励信号更容易获得,加速神经网络收敛;在学习后期,逐渐增加参数c,收缩奖励分布范围,提高控制精度。
首先仿基于sin函数规划给定变道路径,然后在10,15,20,25 m/s的车速下将基于REINFORCE算法的神经网络控制器进行仿真实验以证明其可行性。此外,记录在不同平台下基于REINFORCE 算法的神经网络控制器的运行时间并与仿真实验的采样时间对比以证明算法实时性和迁移至轻量级硬件平台的可行性。
仿真实验中的被控对象根据式(1)在matlab/simulink 环境中进行搭建;PID 对照组仿真实验在matlab/simulink 环境中进行;REINFORCE 算法实现和神经网络搭建使用tensorflow框架,并和matlab/simulink 环境中的被控对象进行交互以完成仿真实验。仿真实验电脑配置:i7-4710HQ,16G 内存,GTX980M。实时性测试实验使用该计算机、TX2和Jetson nano,其中后2者为轻量级平台。
采用基于sin 函数的变道轨迹所为无人车的给定轨迹[2],其公式见式(11)。
式中:S为车辆变道的横向距离,m;d为车辆变道的纵向距离,m。另外,为了验证控制器在变道后仍能够保持稳定,在变道完成后续接长度为d的直道,即给定轨迹纵向总长度为2d,前半段路径为变道超车,后半段路径为直线行驶。
分别选取不基于模型的PID控制和文献[2]中基于模型的LQR 控制作为对照组进行实验。为了排除干扰,假设给定变道轨迹绝对安全,所有控制器的参数固定不变。
设定采样周期为0.01 s且控制器在每个采样点都生成控制量,车辆变道横向距离S为4 m,在10 m/s,15 m/s,20 m/s,25 m/s的匀速条件下分别跟随车辆变道纵向距离d为60 m,90 m,120 m,150 m的变道轨迹,保证所有实验时间统一。实验结果见图6~13,图中target表示给定路径,REINFORCE表示在基于REINFORCE算法的神经网络控制器作用下车辆的运行轨迹,PID表示PID控制器作用下车辆的运行轨迹。同时记录不同工况下的3种控制器作用下车辆的变道完成后误差和变道过程中最大误差,见表4。
图6 车速为10 m/s时对照PID实验结果图Fig.6 Experimental result compared to PID when the vehicle speed is 10 m/s
图7 车速为15 m/s时对照PID实验结果图Fig.7 Experimental result compared to PID when the vehicle speed is 15 m/s
图8 车速为20 m/s时对照PID实验结果图Fig.8 Experimental result compared to PID when the vehicle speed is 20 m/s
图9 车速为25 m/s时对照PID实验结果Fig.9 Experimental result compared to PID when the vehicle speed is 25 m/s
图10 车速为10 m/s时对照LQR实验结果图Fig.10 Experimental result compared to LQR when the vehicle speed is 10 m/s
图11 车速为15 m/s时对照LQR实验结果图Fig.11 Experimental result compared to LQR when the vehicle speed is 15 m/s
图12 车速为20 m/s时对照LQR实验结果图Fig.12 Experimental result compared to LQR when the vehicle speed is 20 m/s
图13 车速为25 m/s时对照LQR实验结果图Fig.13 Experimental result compared to LQR when the vehicle speed is 25 m/s
表3 变道完成后误差和变道过程中最大误差记录表Tab.3 Errors after lane change and the maximum error during lane change
结合图6~13和表4的数据,基于REINFORCE算法的神经网络控制器虽然在变道完成进入直行工况后出现较小的误差,无人车在25 m/s车速时出现该误差最大值为0.08 m,但在直行工况下,对于标准车道宽度来说偏离中心线0.08 m完全可容忍(标准车道宽度为3.5 m或3.75 m[19])。
与不基于模型的PID控制器相比,基于REINFORCE算法的神经网络控制器在变道过程中(0~6s 过程)的误差更小,无人车在25 m/s车速时出现误差最大值,最大误差为0.1 m,而相同条件下PID 最大误差为0.17 m。在给定变道轨迹绝对安全的前提下,基于REINFORCE 算法的神经网络控制器在变道过程中因其控制误差更小,出现与周围车辆碰撞和刮擦的风险更小,所以能够控制车辆更加安全地完成变道任务。此外,REINFORCE算法具有自适应性,可自行调节参数,无需像PID 算法一样需要人工参数整定过程。因此,在无人驾驶车辆变道控制任务中,基于REINFORCE 算法的神经网络控制器可以在一定程度上替代PID控制器。
与基于模型的LQR控制器相比,基于REINFORCE算法的神经网络控制器在车速为10 m/s和15 m/s时控制效果相对较差,最大误差大于LQR;但在车速为20 m/s 和25 m/s 时控制效果相对较好,最大误差小于LQR。令人意外的是,在车速为25 m/s时LQR控制器的控制效果甚至不如PID控制器,这可能是控制器参数固定而导致的结果。虽然,基于REINFORCE算法的神经网络控制器的控制效果没有完全优于LQR 控制器,但是性能接近,并没有表现过差,最大误差只比LQR 控制器多0.04 m 和0.02 m,根据文献[19]的标准,还是可以安全完成变道任务。而且,与基于模型且同样需要人工参数整定的LQR 控制器相比,REINFORCE 算法不依赖模型,在控制器设计过程中可以省去建模、简化模型、解耦、参数调节等过程,对控制器设计者更加友好。因此,在无人驾驶车辆变道控制任务中,基于REINFORCE算法的神经网络控制器可以在一定程度上替代LQR控制器。
此外,进行实时性测试实验。记录在10 m/s工况下,基于REINFORCE 算法的神经网络控制器在实验计算机、TX2和Jetson nano平台的实验仿真总用时、实验仿真总步数、平均单步所用时间,见表5。
表4 神经网络控制器运行时间记录表Tab.4 Running time of the neural-network controller
根据表5,仿真实验的单步运行时间均值都远小于采样时间0.01 s,且本文实验为仿真实验,单步实验中即包括车辆模型运行又包括神经网络控制器运算,表5 所示的时间比神经网络控制器实际运算用时长,实际的控制器单步用时会更短,因此基于REINFORCE算法的神经网络控制器对控制量生成的实时性和迁移至轻量级计算平台的可行性有一定的保障。
综合上述分析,与PID相比,基于REINFORCE算法的神经网络控制器在控制车辆变道过程中拥有更小的误差,变道过程更加安全;与LQR相比,基于REINFORCE算法的神经网络控制器的整体表现也不算差,算法实时性有保障,满足无人驾驶车辆安全变道要求,是1种不依赖于模型,控制器设计过程友好,有自适应性的无人驾驶车辆变道控制器。
但是,基于REINFORCE 算法的神经网络控制器也有一定的缺陷。PID 和LQR 的稳态误差都为0,但基于REINFORCE 算法的神经网络控制器存在稳态误差,且车速越高稳态误差越大。因此,如何降低该稳态误差将作为下一步的研究内容之一。
本文基于无模型强化学习REINFORCE 算法和神经网络技术,对无人驾驶车辆变道控制技术展开研究。
1)采用车辆单轨模型为被控对象,确定控制系统的反馈量和控制器的控制量,并根据单轨模型中魔术轮胎公式的要求对控制量进行限幅。
2)根据REINFORCE 算法和神经网络技术设计控制器结构和训练方式,针对样本数值和方差过大的问题,提出1种经验池数据预处理的方法。
3)结合无人驾驶车辆运行场景,分析强化学习过程中的奖励稀疏问题,并针对该问题提出1 种奖励塑造的解决方案。
4)在不同车速下进行对比实验,控制效果表明基于REINFORCE 算法的无人驾驶车辆变道控制策略的适用于无人驾驶车辆变道任务;在不同硬件平台上进行实验,表明算法实时性和迁移至轻量级平台的可行性。
下一步研究将对基于REINFORCE 算法的神经网络控制器的稳态误差开展研究,寻找降低该误差的方法。另外,本文实验的前提是给定轨迹绝对安全,但在实际情况中因给定路线上出现障碍物而导致给定轨迹不安全的情况时有发生,因此,下一步还将结合避障控制技术开展研究。