【《无人驾驶控制策略仿真实验系统架构设计案例》4000字】_第1页
【《无人驾驶控制策略仿真实验系统架构设计案例》4000字】_第2页
【《无人驾驶控制策略仿真实验系统架构设计案例》4000字】_第3页
【《无人驾驶控制策略仿真实验系统架构设计案例》4000字】_第4页
【《无人驾驶控制策略仿真实验系统架构设计案例》4000字】_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无人驾驶控制策略仿真实验系统架构设计案例目录TOC\o"1-3"\h\u723无人驾驶控制策略仿真实验系统架构设计案例 1161771.1无人驾驶运动控制分析 1228401.2建立车辆运动模型 2196931.3搭建无人驾驶模拟器仿真环境 3242881.3.1实验环境 326901.3.2TORCS仿真环境介绍 3105291.3.3TORCS软件结构 5222421.3.4仿真车辆传感器信息和控制动作 597791.4深度强化学习算法仿真各模块设计 736341.4.1预训练网络模型权值 7300271.4.2奖励函数的设计 7163671.4.3探索策略的设计 9为了研究深度强化学习在自动驾驶决策系统中的应用,本文设计了基于深度强化学习算法在自动驾驶决策系统的控制方案,以便处理驾驶任务的各个层次。在自动驾驶的研究中,若想获得最直观、最完整的理论验证与实验数据,最理想的实验环境是将自动驾驶相关的软硬件模块和算法模型加载到真车上,并在真实的场景中完成自动驾驶的测试任务,从而对算法的性能进行判断。但由于搭建现实的自动驾驶环境需要耗费大量的人力、物力、时间和财力,并不适合本文在初期研究工作的展开。因此,本文采用TORCS仿真平台来搭建虚拟的自动驾驶环境,在该虚拟环境中完成对深度强化学习算法的研究。无人驾驶运动控制分析传统的无人驾驶控制系统通常由感知模块,决策系统组成,这些部分相互作用以实现车辆的无人驾驶控制任务。每个部分都具有独立的功能模块,依据不同的算法,技术框架来完成具体任务。如REF_Ref73318921\h图31所示。图STYLEREF1\s3SEQ图\*ARABIC\s11传统的无人驾驶控制系统框架图本文基于TORCS仿真平台设计了一个完整的自动驾驶控制策略模型的训练与测试一体的系统,其中包括模型的交互模块、执行模块、预训练模块、学习模块、测试模块等。其架构如REF_Ref73318968\h图32所示。图STYLEREF1\s3SEQ图\*ARABIC\s12基于深度强化学习的自动驾驶控制策略系统建立车辆运动模型要控制车辆的运动,首先要对车辆的运动建立数字化模型,模型建立的越准确,对车辆运动的描述越准确,对车辆的跟踪控制的效果就越好。除了真实反映车辆特性外,建立的模型也应该尽可能的简单易用。自行车模型(BicycleModel)是一种常见的车辆运动学模型如REF_Ref73319423\h图33所示。整个的控制量可以简化为,其中a是车辆的加速度,踩油门踏板意味着正的加速度,踩刹车踏板意味着负的加速度ADDINNE.Ref.{458B78B2-5E4B-44DE-B067-C91D5596B740}[27]。图STYLEREF1\s3SEQ图\*ARABIC\s13车辆运动学模型示意图当车辆为前轮驱动(front-wheel-only)时,可假设恒为零。同时由于我们假设汽车是前轮驱动,所以我们可以认为方向盘的转角就等同于前轮的转角,这样,我们使用两个量描述了车辆的控制输入(controlinput)。然后我们定义我们模型中的状态量,运动学自行车模型使用四个状态量来描述车辆的当前状态:x:即车辆当前的x坐标y:即车辆当前的y坐标Ψ:即车辆当前的偏航角v:即车辆的速度从而得出车辆运动学公式如公式REF_Ref73378149\h(31)和REF_Ref73378150\h(32)所示:(STYLEREF1\s3SEQ公式\*ARABIC\s11)(STYLEREF1\s3SEQ公式\*ARABIC\s12)搭建无人驾驶模拟器仿真环境实验环境本实验在Ubuntu16.04操作系统环境下进行,使用Python3.6编写实验的代码,详细的实现环境如REF_Ref73379271\h表31所示。表STYLEREF1\s3SEQ表\*ARABIC\s11实验环境配置操作系统Ubuntu16.04CPUIntel(R)Core(TM)i5-7300HGPUNVIDIAGeForceGTX1050Ti内存8G显存4GTORCS仿真环境介绍TORCS开源赛车仿真平台是一个支持多平台(Linux,MacOS和windows)且可移植性高的汽车自动驾驶仿真软件。其图形界面如REF_Ref73319516\h图34、REF_Ref73319518\h图35和REF_Ref73319519\h图36所示。使用它作为仿真平台的原因是其可以可视化神经网络如何随着时间的推移进行学习并检查其学习过程,而不仅仅是查看最终结果。它不仅可以提供逼真的汽车与驾驶交通环境模型,还能够通过多个传感器可以感知赛车的参数情况,包括车辆发动机转速以及当前的速度,从而对车辆与赛道进行交互模拟。使用者可以实时获取仿真汽车的相关数据,包括其位置、行驶路程和速度等信息,还可以设计对仿真汽车进行控制ADDINNE.Ref.{2B978B01-78F1-411B-9376-DA8DF007A364}[28]。而且,也能够对虚拟环境中汽车周围环境数据进行收集。在得到这些信息后,控制器可以控制智能体采取不同的动作,比如转向、油门、刹车等。TORCS内部可提供19种传感器,7种可控制动作。图STYLEREF1\s3SEQ图\*ARABIC\s14赛道选择图STYLEREF1\s3SEQ图\*ARABIC\s15赛车手选择图STYLEREF1\s3SEQ图\*ARABIC\s16跑道长度选择TORCS软件结构TORCS底层由C++编写头文件以及源文件,用户可以通过修改main函数或者游戏菜单来完成以下信息的修改:更换地图、更换赛车、设定圈数、转换视角等。REF_Ref73319869\h图37为TORCS结构,TORCS的接口设计为服务器-客户端(Sever-Client)的方式,之间通过用户数据报协议(UserDatagramProtocol,UDP)进行实时通讯。该接口可用来交互控制器对无人车的各类控制指令,如转向、油门、刹车等。本文使用的通信脚本为“Gym-TORCS”,作者是NaotoYoshida,是一个专门为强化学习算法与TORCS仿真平台通信开发的开源Python脚本ADDINNE.Ref.{67C67F92-7C69-4B63-B23C-BA1C8BC8969C}[29]。图STYLEREF1\s3SEQ图\*ARABIC\s17TORCS仿真系统结构图仿真车辆传感器信息和控制动作深度强化学习算法需要基于周围的环境信息进行反馈训练才能做出合适的控制策略。因而无人车控制器可以通过与环境进行交互而获得状态信息,从而制定控制策略,输出下一步行动。在TORCS仿真环境中,车辆通过许多传感器读数来感知环境,车辆的传感器信息通过UDP协议传送到服务器外部的控制器中。本文筛选了其中部分状态信息和控制指令用于仿真实验,如REF_Ref73379300\h表32和REF_Ref73379301\h表33所示:表STYLEREF1\s3SEQ表\*ARABIC\s12TORCS中传感器的状态信息名称范围(单位)描述angle[-π,+π](rad)汽车方向和道路轴方向之间的夹角。track(0,200)(m)19个测距仪传感器组成的矢量,每个传感器返回200米范围内的车和道路边緣的距离。trackPos(-∞,+∞)车和道路轴之间的距离,这个值用道路宽度归一化了:0表示车在中轴上,大于1或小于-1表示车驶离道路。speedX(-∞,+∞)(km/h)沿车纵向轴线(车行驶方向)的车速度。speedY(-∞,+∞)(km/h)沿车横向轴线的车速度。speedZ(-∞,+∞)(km/h)沿车的Z轴线的车速度。wheelSpinVel(0,+∞)(rad/s)4个传感器组成的矢量,表示车轮的旋转速度。rpm(0,+∞)(rpm)汽车发动机每分钟的转速。curLapTime[0,+∞)(s)该圈经过的时间。damage[0,+∞)(point)当前汽车的损坏,值越高,损坏程度越高。distFromStart[0,+∞)(m)距离起始点的距离。distRaced[0,+∞)(m)比赛开始走过的距离。focus[0,200](m)5个测距传感器的矢量:每个传感器返回赛道边缘和汽车之间200米范围内的距离。fuel[0,+∞)(1)当前的燃油水平。gear{-1,0,1,2,3,4,5,6}当前档位:-1为反向,0为空档,档位为1至6。lastLapTime[0,+∞)(s)跑完最后一圈的时间。opponents[0,200](m)36个传感器:每个传感器覆盖10度,200米内最近对手的距离。racePos{-1,0,1,···,N}相对于其他车辆在比赛中的位置。z(-∞,+∞)(m)汽车中心距离轨道平面沿z轴的距离。表STYLEREF1\s3SEQ表\*ARABIC\s13TORCS中的控制指令控制指令数量范围(单位)转向1[-1,1]油门1[0,1]刹车1[0,1]深度强化学习算法仿真各模块设计智能车辆控制主要是控制车辆的行驶速度和车辆的转向。算法以环境的状态作为神经网络的输入,输出车辆的行驶命令,智能体根据行驶命令行驶到新的状态,并将得到的数据提取存储于数据块(batch)中。训练的时候从中取固定大小的数据进行训练。预训练网络模型权值受深度学习中预训练思想的启发,本文设置了一个预训练模块,通过采集一个专业赛车手代码控制行驶的状态和动作数据,来对我们的网络模型进行预训练。首先选择专业驾驶员来操作车辆,设置它的驾驶行为是最低等级,在其驾驶过程中记录所有的动作、状态信息,依据这些信息来预训练深度网络模型。将驾驶控制运用到训练过程中,记录车辆状态、动作。在所有信息数据采集完后,输入到神经网络,之后开始训练网络。在预训练过程中,本文将方向盘的值进行了离散化处理,并选择其中与驾驶员方向盘量的离散值差异最小的值,输入到网络中,离散范围是从-1到1。通过有效的迭代次数,让网络逼近相邻状态之间的变化量。经实验数据显示,当预训练网络的权值在0~5之间的时,对于后期网络的正式训练可以实现较好的加速效果。奖励函数的设计在深度强化学习中,当智能体所处状态发生变化的时候,会根据状态之间变化的关系得到一个奖励值,奖励值有好有坏,当智能体更加接近目标时,奖励值应给予正值,当智能体远离目标时,奖励值应给予负值。在车辆控制系统中,需要手动精细地设计奖励函数,奖励函数的设定影响着智能体的动作选择。本文通过TORCS深度强化学习的接口交互模块,对仿真系统中的车辆及道路状态进行实时观测,并将记录当前的状态值。计算时,先求解上一控制周期时车辆控制动作的奖励回报值,随后记录当前状态值,根据网络计算到的Q值,结合↋-贪心理论给出该状态下可能产生的动作,将该动作反馈到仿真系统中ADDINNE.Ref.{3EBA3D0F-6FDC-4FC2-92FA-31123972AE86}[30],过程如REF_Ref73320097\h图38所示。图STYLEREF1\s3SEQ图\*ARABIC\s18TORCS深度强化学习的接口交互模块图本文选用TORCS提供的29个传感器信息作为环境状态信息,汽车的方向盘转角、油门、刹车作为控制变量。学习过程中,本文的控制目标是希望模型车可以一直跟踪道路的中央的车道线,尽可能的避免驶出道路,避免频繁地变换方向并且具有较好的有效行驶速度。故本文根据对车辆速度按照车辆期望的行驶方向进行正交分解的物理模型(如REF_Ref73320126\h图39所示)设计了如公式REF_Ref73378212\h(33)所示的奖励函数:(STYLEREF1\s3SEQ公式\*ARABIC\s13)图STYLEREF1\s3SEQ图\*ARABIC\s19车辆在轨道上行驶时的物理模型上式中代表当次控制周期行驶的有效距离。angle是指智能车当前驾驶方向与道路中间切线的夹角。代表angle角度因子和距离因子的权重比例系数。trackpos表示汽车与跑道间的距离,两者符号取负号表示当汽车偏离道路中心时对智能体进行惩罚。a,b分别为车辆跑出跑道和完成跑道时给定的奖励值,a是一个的负值,防止车辆跑出赛道发生灾难性影响。b是一个比较大正值,鼓励车辆到达目的地。sgn符号函数表示的含义是:在trackPos的绝对值大小大于阈值η的时候,取值无穷小。作用是在于被控车辆太靠近道路边界的时候,给出一个极小值的立即回报值。本文设定不同的取值进行实验。首先若取值为100时,虚拟车离轴心线和训练的角度会得到严重的抑制,当虚拟车行驶的时候,会得到较大惩罚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论