1.本发明涉及自动驾驶
技术领域:
:,具体涉及一种基于分层强化学习的端到端驾驶方法。
背景技术:
::2.自动驾驶是智能交通的核心技术之一,其中,自动驾驶的核心包括感知预测、决策规划和运动控制。目前自动驾驶的解决方案有两种:基于规则式(rulebased)和基于端到端(end-to-end)。基于规则式具有存在大量的不确定性边界问题、复杂场景的规则构建复杂、多模型累积偏差问题、需依赖于高精度地图等缺点。3.基于端到端的驾驶解决方案是自动驾驶的一个新分支,有望通过从数据中学习潜在的机制来简化驾驶建模。基于端到端的驾驶主要由深度学习和强化学习构成,其中,强化学习(reinforcementlearning)作为基于端到端的实际技术方案之一,适用于求解具有时序性的决策问题,这正与自动驾驶的决策过程相契合。强化学习由于其自身具有应对外部环境改变而产生进化的能力,使得当未知的极端情况产生时,能够通过改变自身的驾驶策略来适应并探索学习到解决该问题的方法。4.申请人发现,实际的自动驾驶问题采用强化学习时的reward很稀疏,再加上庞大的状态空间和动作空间组合,使得强化学习的训练效率低下,甚至没有效果。也就是说,现有的一些强化学习方案只能使用在设定好的环境变量或者是与训练环境相似的情况下才有效果,使得端到端驾驶决策的准确性低且泛化性较差。因此,如何设计一种能够适用于复杂应用场景和实际应用场景的方法是亟需解决的技术问题。技术实现要素:5.针对上述现有技术的不足,本发明所要解决的技术问题是:如何提供一种基于分层强化学习的端到端驾驶方法,以能够适用于复杂应用场景和实际应用场景,从而能够提高端到端驾驶决策的准确性和泛化性。6.为了解决上述技术问题,本发明采用了如下的技术方案:7.一种基于分层强化学习的端到端驾驶方法,包括以下步骤:8.s1:获取预先给定的车辆行驶路径;9.s2:基于强化学习分别建模得到路径跟随模型和动态避障模型;10.s3:基于车辆行驶路径,部署强化学习网络求解路径跟随模型得到对应的路径跟随决策;11.s4:基于车辆行驶路径,部署强化学习网络结合对应的路径跟随决策求解动态避障模型得到对应的动态避障决策;12.s5:基于车辆行驶路径、路径跟随决策和动态避障决策实现车辆的端到端驾驶。13.优选的,步骤s1中,通过快速扩展随机树算法生成一条从起始点至目标点的车辆行驶路径。14.优选的,步骤s2中,通过如下步骤建模路径跟随模型:15.s201:初始化路径跟随模型的状态空间和动作空间,设定车辆起始点姿态;16.s202:以车辆起始点作为坐标系原点,沿着车辆行驶路径移动,通过车辆周围环境状态以及车辆自身状态组成路径跟随模型的状态空间;17.s203:通过当前时刻车辆的速度和转向角组成路径跟随模型的动作空间;18.s204:通过速度奖惩、靠近目标点奖惩、行驶方向奖惩以及到达目标点、终点的奖惩组成路径跟随模型的奖励函数。19.优选的,步骤s2中,路径跟随模型的状态空间表示为sg=[vt,st,yt,dt];[0020]式中:vt表示当前时刻的车辆速度;st表示当前时刻的车辆转向角;yt表示当前时刻行驶方向与目标点方向的夹角;dt表示当前时刻车辆与车辆行驶路径的垂直距离;[0021]路径跟随模型的动作空间表示为ag=[vt,st];[0022]式中:vt表示当前时刻的车辆速度;st表示当前时刻的车辆转向角;[0023]路径跟随模型的奖励函数表示为rg=rv ry rc rw;[0024]其中,rv=(vs-vm/2)/vm;[0025][0026]rc=(past_dist-dist);[0027][0028]式中:rv表示速度奖惩;rc表示靠近目标点奖惩;ry表示行驶方向奖惩;rw表示到达目标点以及终点的奖惩;vs表示当前时刻的车辆速度;vm表示根据设定场景下的任务速度v0设置的速度;yaw表示当前车辆与下一个路径点的相对角度与局部路径中两个路径点之间的相对夹角之差;abs(yaw)表示对应角度的绝对值;dist表示当前时刻车辆位置与路径点的相对距离;past_dist表示上一时刻车辆位置与路径点的相对距离;time_step表示当前训练阶段剩下的时间;waypoint和goal分别表示路径点和终点设定的到达半径。[0029]优选的,步骤s2中,通过如下步骤建模动态避障模型:[0030]s211:初始化动态避障模型的状态空间和动作空间;[0031]s212:通过激光雷达获取的障碍物的距离信息,以及路径跟随模型的状态和输出的路径跟随决策组成动态避障模型的状态空间;[0032]s213:通过当前时刻车辆的偏移转向角组成动态避障模型的动作空间;[0033]s214:通过转向偏移奖惩和碰撞奖惩组成动态避障模型的奖励函数。[0034]优选的,动态避障模型的状态空间表示为sb=[vt,st,yt,dt,vout,sout,l1,l2,…,l120];[0035]式中:vt表示当前时刻的车辆速度;st表示当前时刻的车辆转向角;yt表示当前时刻行驶方向与目标点方向的夹角;dt表示当前时刻车辆与车辆行驶路径的垂直距离;vout表示当前时刻的路径跟随模型输出的速度;sout表示当前时刻的路径跟随模型输出的速度转向角;l1,l2,...,l120表示激光雷达对应扫描角度的距离经离散化后的信息;[0036]动作空间表示为ab=sct;[0037]式中:sct表示当前时刻车辆的偏移转向角,sct=[-1,1];[0038]奖励函数表示为rb=rz rc;[0039]其中,[0040]式中:rs表示转向偏移奖惩;rc表示碰撞奖惩;abs(sct)表示车辆偏移转向角的绝对值;b表示衡量偏移转向角的系数;c表示衡量碰撞部分重要性的系数。[0041]优选的,步骤s3和s4中,均通过sac算法作为部署的强化学习网络,分别用于求解路径跟随模型和动态避障模型。[0042]优选的,sac算法基于actor-critic网络结构实现,包括一个actor网络以及两个vcritic网络和qcritic网络;其中,actor网络以对应的状态作为输入,以动作概率密度函数作为输出;vcritic网络和qcritic网络均以对应的状态作为输入,以对应的v值和q值作为输出;[0043]求解路径跟随模型和动态避障模型时,将状态空间作为sac算法的输入部分,经sac算法计算得到对应的动作空间作为输出。[0044]优选的,sac算法的策略函数表示为π(s,a)=p(a=a|s=s);[0045]式中:s表示状态;a表示动作;[0046]sac算法的目标函数表示为:[0047][0048]优选的,sac算法的更新流程包括:[0049]1)qcritic网络更新:[0050]采用mseloss作为loss函数:[0051][0052]式中:len(batch)表示批处理的大小;rt γv(s′)表示当前时刻真实价值估计;q(st,a)表示当前时刻预测价值估计;[0053]2)vcritic网络更新:[0054]采用mseloss作为loss函数,加入了熵进行v值的真实价值估计δt:[0055]δt=∑π(a′|st;θ)[minq(st,a′)-αlnπ(a′|st;θ)];[0056][0057]式中:π(a′│st;θ)表示actor网络输出的动作概率密度函数;minq(st,a’)表示两个qcritic网络中较小的q值;[0058]3)actor网络更新:[0059]计算loss函数:[0060][0061]式中:α表示熵的奖励系数,α越大,代表熵的重要性也就越大。[0062]本发明的端到端驾驶方法与现有技术相比,具有如下有益效果:[0063]本发明通过强化学习建模路径跟随模型和动态避障模型,并通过两个模型直接输出路径跟随决策和动态避障决策,即直接输出具体的动作行为,而不对其进行路径规划;并且,输出的路径跟随决策和动态避障决策是车辆的微观决策,是一种从传感器输入到动作输出的直接映射,使得能够有效的处理未知的极端情况,进而能够更好的适用于复杂应用场景和实际应用场景(尤其是动态避障场景),从而能够提高端到端驾驶的准确性和泛化性。[0064]本发明通过建模路径跟随模型和动态避障模型,将端到端驾驶分解成了两层子任务,即路径跟随任务和动态避障任务,这简化了端到端驾驶的状态空间,使每个子任务能够在规模较小的子问题空间求解,从而能够分解降低每个单独任务的复杂性;同时,本发明通过将路径跟随决策应用于求解动态避障决策,使得生成的动态避障决策的稳定性和可解释性更强,从而能够进一步提高端到端驾驶的准确性。附图说明[0065]为了使发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:[0066]图1为基于分层强化学习的端到端驾驶方法的逻辑框图。具体实施方式[0067]下面通过具体实施方式进一步详细的说明:[0068]实施例:[0069]本实施例中公开了一种基于分层强化学习的端到端驾驶方法。[0070]如图1所示,基于分层强化学习的端到端驾驶方法,包括以下步骤:[0071]s1:获取预先给定的车辆行驶路径;本实施例中,通过快速扩展随机树算法(rrt)生成一条从起始点至目标点的车辆行驶路径。[0072]s2:基于强化学习分别建模得到路径跟随模型和动态避障模型;[0073]s3:基于车辆行驶路径,部署强化学习网络求解路径跟随模型得到对应的路径跟随决策;[0074]s4:基于车辆行驶路径,部署强化学习网络结合对应的路径跟随决策求解动态避障模型得到对应的动态避障决策;[0075]s5:基于车辆行驶路径、路径跟随决策和动态避障决策实现车辆的端到端驾驶。[0076]本发明通过强化学习建模路径跟随模型和动态避障模型,并通过两个模型直接输出路径跟随决策和动态避障决策,即直接输出具体的动作行为,而不对其进行路径规划;并且,输出的路径跟随决策和动态避障决策是车辆的微观决策,是一种从传感器输入到动作输出的直接映射,使得能够有效的处理未知的极端情况,进而能够更好的适用于复杂应用场景和实际应用场景(尤其是动态避障场景),从而能够提高端到端驾驶的准确性和泛化性。其次,本发明通过建模路径跟随模型和动态避障模型,将端到端驾驶分解成了两层子任务,即路径跟随任务和动态避障任务,这简化了端到端驾驶的状态空间,使每个子任务能够在规模较小的子问题空间求解,从而能够分解降低每个单独任务的复杂性;同时,本发明通过将路径跟随决策应用于求解动态避障决策,使得生成的动态避障决策的稳定性和可解释性更强,从而能够进一步提高端到端驾驶的准确性。[0077]本实施例采用微软的airsim作为环境模拟器,airsim具有支持用户设计的场景创建的功能,包括场景的变化(城市、山脉、室内等)、天气影响、一天的时间、交通遵守(城市环境可以跟踪交通违规)、附加传感器附件等。本实施例选取的场景是airsim中的landscapemountains地图,将使用强化学习的基本要素对环境进行建模封装,进而将airsim相关api结合封装为gym环境。[0078]具体实施过程中,通过如下步骤建模路径跟随模型:[0079]s201:初始化路径跟随模型的状态空间和动作空间,设定车辆起始点姿态;是训练过程中一个eposide的入口。[0080]s202:以车辆起始点作为坐标系原点,沿着车辆行驶路径移动,通过车辆周围环境状态以及车辆自身状态组成路径跟随模型的状态空间;[0081]s203:通过当前时刻车辆的速度和转向角组成路径跟随模型的动作空间;[0082]s204:通过速度奖惩、靠近目标点奖惩、行驶方向奖惩以及到达目标点、终点的奖惩组成路径跟随模型的奖励函数。[0083]路径跟随模型的状态空间表示为sg=[vt,st,yt,dt];[0084]式中:vt表示当前时刻的车辆速度;st表示当前时刻的车辆转向角;yt表示当前时刻行驶方向与目标点方向的夹角;dt表示当前时刻车辆与车辆行驶路径的垂直距离;[0085]本实施例中,车辆速度和车辆转向角分别由对应的传感器采集得到;垂直距离d是车辆与rrt规划路径的几何距离;夹角α通过如下公式计算得到:[0086][0087]即计算当前行驶方向与下一个目标路径点的角度与rrt规划生成的两个路径点之间的角度的差值。[0088]路径跟随模型的动作空间表示为ag=[vt,st][0089]式中:vt表示当前时刻的车辆速度;st表示当前时刻的车辆转向角;本实施例中,vt和st的取值为vt=[0,v0],st=[-1,1],其中,v0表示设定场景下的任务速度,选取v0=6m/s。[0090]路径跟随模型的奖励函数表示为rg=rv ry rc rw;奖励函数用于衡量当前状态s,采取动作a的优劣。[0091]其中,rv=(vs-vm/2)/vm;[0092][0093]rc =move_dist/2;[0094]rc=(past_dist-dist);[0095][0096]式中:rv表示速度奖惩;rc表示靠近目标点奖惩;ry表示行驶方向奖惩;rw表示到达目标点以及终点的奖惩;vs表示当前时刻的车辆速度;vm表示根据设定场景下的任务速度v0设置的速度;yaw表示当前车辆与下一个路径点的相对角度与局部路径中两个路径点之间的相对夹角之差;abs(yaw)表示对应角度的绝对值;dist表示当前时刻车辆位置与路径点的相对距离;past_dist表示上一时刻车辆位置与路径点的相对距离;time_step表示当前训练阶段剩下的时间;waypoint和goal分别表示路径点和终点设定的到达半径。[0097]本实施例中,v0设置为6m/s,vm设置为3m/s。[0098]若dist《=waypoint,即当前时刻车辆到下一个路径点的欧氏距离已经处于下一个路经点半径范围之内,则认为到达该路径点,给予奖励;若dist《=goal,即当前时刻车辆到达终点半径范围之内,奖励为10*time_step,此处用于鼓励车辆以更快更优的路径到达终点。[0099]本发明通过上述步骤建模路径跟随模型,使得能够有效的将端到端驾驶分解成了两层子任务,即路径跟随任务和动态避障任务,这简化了端到端驾驶的状态空间,使每个子任务能够在规模较小的子问题空间求解,从而能够分解降低每个单独任务的复杂性。[0100]具体实施过程中,通过如下步骤建模动态避障模型:[0101]s211:初始化动态避障模型的状态空间和动作空间;[0102]s212:通过激光雷达获取的障碍物的距离信息,以及路径跟随模型的状态和输出的路径跟随决策组成动态避障模型的状态空间;[0103]s213:通过当前时刻车辆的偏移转向角组成动态避障模型的动作空间;[0104]s214:通过转向偏移奖惩和碰撞奖惩组成动态避障模型的奖励函数。[0105]具体的,动态避障模型的状态空间表示为sb=[vt,st,yt,dt,vout,sout,l1,l2,…,l120];[0106]式中:vt表示当前时刻的车辆速度;st表示当前时刻的车辆转向角;yt表示当前时刻行驶方向与目标点方向的夹角;dt表示当前时刻车辆与车辆行驶路径的垂直距离;vout表示当前时刻的路径跟随模型输出的速度;sout表示当前时刻的路径跟随模型输出的速度转向角;l1,l2,…,l120表示激光雷达对应扫描角度的距离经离散化后的信息;[0107]其中,将激光雷达获得点云信息经过转换求得激光雷达在扫描半径内距离障碍物的距离信息;激光雷达获取的障碍物状态用360个维度表示,每一个维度由激光扫描的1度范围之内的障碍物表示。若点云信息中存在数据、取出、与当前激光雷达位置进行欧式距离的计算,且计算当前点相对激光雷达的位置(用角度表示),将计算得到的角度作为下标,计算的距离作为该下标对应的值,其它未计算的角度对应的距离取lidar最大的感知范围20m。[0108]此后,进行离散化操作,提高探索效率,将360°按20°等分为24份,每一份按照[1,3,7,12,20]划分为不同的区域,一共为120份;然后把获得的lidar距离信息做判断,判断划分是否处于对应区域,若对应区域相应的障碍物距离值,将该区域的值设定为1(0表示无障碍物,1表示有障碍物)。[0109]动作空间表示为ab=sct;[0110]式中:sct表示当前时刻车辆的偏移转向角,sct=[-1,1];本实施例中,偏移转向角表示在之前的路径跟随任务输出的转角的基础上,为了应对障碍物所需的修正的转向角。[0111]奖励函数表示为rb=rz rc;[0112]其中,rc=c;[0113]式中:rs表示转向偏移奖惩;rc表示碰撞奖惩;abs(sct)表示车辆偏移转向角的绝对值;b表示衡量偏移转向角的系数,b设置为0.2,代表不超过原始转向角的左右0.2转向角之内不会给予较大的惩罚;c表示衡量碰撞部分重要性的系数,c设置为-100,比第一部分路径跟随任务大了两个数量级,比转向偏移任务部分大了一个数量级,目的是使得车辆把避障放在首要任务。[0114]本发明通过上述步骤建模动态避障模型,使得能够有效的将端到端驾驶分解成了两层子任务,即路径跟随任务和动态避障任务,这简化了端到端驾驶的状态空间,使每个子任务能够在规模较小的子问题空间求解,从而能够分解降低每个单独任务的复杂性;同时,本发明通过将路径跟随决策应用于求解动态避障决策,使得生成的动态避障决策的稳定性和可解释性更强,从而能够进一步提高端到端驾驶的准确性。[0115]具体实施过程中,通过sac算法作为部署的强化学习网络,分别用于求解路径跟随模型和动态避障模型。[0116]具体的:[0117]设置交互模块():用于车辆与环境交互的逻辑,它接受动作的输入,给出下一时刻的状态、当前动作的回报、是否结束当前episode及调试信息等。[0118]训练sac算法部署:构建基于sac算法框架的深度强化学习结构。[0119]基于stablebaselines3库实现,与自定义的gym环境结合,快速部署训练。本发明选取sac算法作为训练算法进行学习,sac算法是一种非策略最大熵深度强化学习算法,其采用随机行为体引入鲁棒性,避免了反复选择同一个动作而陷入次优。[0120]sac算法中增加了最大熵的使用,使网络对具有相似q值进行多个动作的输出,而非单一动作,鼓励探索,避免陷入局部最优。sac算法中为了提高对数据的利用率采用了经验回放,把一个状态经由actor输出产生的一条轨迹(st,at,rt,st 1)放入经验缓冲区。使用经验回放除了利用以前的经验,避免浪费,也为了打散序列,消除相关性。[0121]sac算法基于actor-critic网络结构实现,包括一个actor网络以及两个vcritic网络和qcritic网络;其中,actor网络以对应的状态作为输入,以动作概率密度函数作为输出;vcritic网络和qcritic网络均以对应的状态作为输入,以对应的v值(状态价值估计)和q值(状态价值对估计)作为输出。[0122]求解路径跟随模型和动态避障模型时,将状态空间作为sac算法的输入部分,经sac算法计算得到对应的动作空间作为输出。[0123]通过sac算法框架,构建基于自定义网络结构的sac算法。策略神经网络的大小为2个全连接层的256个神经元组成。[0124]sac算法的策略函数表示为π(s,a)=p(a=a|s=s);[0125]式中:s表示状态;a表示动作;[0126]sac算法的目标函数表示为:[0127][0128]具体实施过程中,策略函数和目标函数也可采用现有sac算法的策略函数和目标函数。[0129]具体实施过程中,sac算法的更新流程包括:[0130]1)qcritic网络更新:[0131]采用mseloss作为loss函数:[0132][0133]式中:len(batch)表示批处理的大小;rt γv(s′)表示当前时刻真实价值估计;q(st,a)表示当前时刻预测价值估计;[0134]2)vcritic网络更新:[0135]采用mseloss作为loss函数,加入了熵进行v值的真实价值估计δt:[0136]δt=∑π(a′|st;θ)[minq(st,a′)-αlnπ(a′|st;θ)];[0137][0138]式中:π(a′│st;θ)表示actor网络输出的动作概率密度函数;minq(st,a’)表示两个qcritic网络中较小的q值;[0139]3)actor网络更新:[0140]计算loss函数:[0141][0142]式中:α表示熵的奖励系数,α越大,代表熵的重要性也就越大。[0143]具体的,对于路径跟随模型的训练过程如下:[0144]设定训练500个eposide,每个eposide设定为10000个时间步,设定每个训练过程最大训练时间步为500个时间步。[0145]在网络训练的过程中,随着状态s的输入,sac算法中的actor网络负责动作的概率密度输出,qcritic和vctiric结合最大熵对动作进行评价估值;经过动作a后得到奖励进入下一状态s’,如此往复,最终得到一条驾驶轨迹的采样数据。[0146]同时,网络进行训练迭代,其中targetvcritic网络在训练的过程中是固定的参数,其余四个网络是在进行动态的更新,一段时间过后,targetvcritic会将其网络参数复制给另一个vcritic网络。[0147]通过大量的训练迭代,网络收敛之后,网络参数不再变化,训练后的网络能根据当前车辆状态和环境状态计算出相应的动作行为,即得到了一个适应给出车辆行驶路径的路径跟随的模型。[0148]对于动态避障模型的训练过程如下:[0149]设定训练1000个eposide,每个eposide设定为10000个时间步,设定每个训练过程最大训练时间步为500个时间步。训练过程与路径跟随任务一致。将状态空间作为网络的输入部分﹐经由网络计算得到动作输出,输出为偏移转向角。[0150]随着网络训练迭代,车辆不断与环境进行过交互,遵循路径跟随的同时收集多次碰撞经验,网络收敛之后,网络参数不再变化。通过ctitic网络的评估,车辆会逐渐在路径跟随基础上对动态障碍物进行合理的避障,做出正确的决策。[0151]本发明通过sac算法作为部署的强化学习网络来求解路径跟随模型和动态避障模型,相比于现有的确定性策略,本发明采用的sac算法能够避免反复选择同一动作而陷入次优,其有更强的探索能力,更加鲁棒性,面对干扰的时候能更容易做出调整,从而能够提高端到端驾驶决策的准确性和泛化性。[0152]最后需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制技术方案,本领域的普通技术人员应当理解,那些对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,均应涵盖在本发明的权利要求范围当中。当前第1页12当前第1页12
转载请注明原文地址:https://tc.8miu.com/read-2395.html