没有合适的资源?快使用搜索试试~ 我知道了~
基于第一性原理和约束的自动驾驶刘立峰1、朱颖璇1、袁廷秋2、李健11未来微科技股份有限公司111 Speen St.,关闭MA,USA{刘立峰,朱颖璇,jian.li} @ futurewei.com2华为技术ytq@huawei.com摘要我们提出了一个基于第一性原理和约束的自动驾驶持续学习系统。该学习系统包括一个知识库来表示第一原理利用分解学习课程来丰富知识库和处理复杂的问题。仿真实验和实际测试表明,该系统该系统不需要复杂的车辆模型标定,并且易于从仿真环境到真实驾驶环境的迁移学习。1引言最近,许多自动驾驶项目将深度学习用于部分驾驶任务(Bojarski等人,2016年; Rao和Frtunikj 2018年;Hecker等人,2018年)。2018),但在模型的互操作性,安全性和迁移学习问题方面存在更多挑战。最近,(Zhou,Kr aühenbühl 和Koltun2019)比较了使用原始图像(从像素到动作)和使用计算机视觉产生的场景内容表示的驾驶监督模仿学习,并表明中间表示具有模块化和抽象化的好处(M uüller 等人)。2018年),并更好地推广到看不见的环境。更多的研究利用深度强化学习,其在深度神经网络上构建强化学习架构(Arulkiraran等人)2017年)。在机器人控制和自动驾驶仿真中,再激励学习已经得到了广泛的应用.然而,它们中的许多是基于尝试和错误的方法,并且通常需要较长的学习时间。此外,真实的自动驾驶环境无法承受一般强化学习过程中的错误(事故),并且需要使用约束的运行时安全监控来满足安全标准(例如ISO26262中定义的汽车安全完整性等级(SAIL))。一种深度强化学习是深度决策策略梯度(DDPG)(Lillicrap and et al. 二〇一六年;Silver and et al. 2014),它只在状态空间上集成,可以处理连续的动作空间。然而,迁移学习仍然存在困难,例如将学习的自动驾驶模型从仿真环境迁移到真实测试道路上的真实车辆。引 导 策 略 搜 索 ( GPS ) ( Levine and et al. 2013;2015)是一种用于训练复杂非线性决策的监督学习方法。然而,它需要在每次生成局部轨迹时重置环境的状态。或者您需要从全局策略网络生成大量样本。使用自适应轨迹优化(PLATO)的策略学习PLATO采用模型预测控制(MPC)来产生监督,但需 要 精 确 的 动 态 系 统 模 型 。 信 任 域 策 略 优 化(TRPO)(Schulman等人,2015)直接构建随机神经网络策略,而不将问题分解为最优控制和监督阶段,但需要初始安全策略和大量数据,并且数据效率明显较低。另一方面,基于精确的物理模型和规则的驾驶控制需要对控制参数进行耗时且费力的系统校准,这可能花费数月来获得车辆的完整校准模仿学习(Liuand et al. 2018; Ng and Russell 2000; Song and et al.2018)是基于人类的行为。在自动驾驶中,模仿学习具有许多缺点,包括难以训练所有场景,特别是危险场景/角落情况。在某些情况下,人的行为是有局限性的,不一定是最好的.(Chen and et al. 2019)将学习问题分解为两个阶段:特权代理通过观察状态的地面实况布局进行欺骗;特权代理充当训练纯粹基于视觉的感觉运动代理的教师。他们训练的系统比直接模仿学习获得了更高的识别率。为了应对自动驾驶机器学习的挑战,提出了一种基于第一性原理和约束的模块化强化学习(RL)框架,用于在连续学习中安全地控制自动驾驶系统。显示了系统体系结构概述版权所有© 2020本文由其作者。在知识共享许可署名4.0国际(CC BY 4.0)下允许使用。图1:系统架构概述。在图1中:通过捕获和运动预测来学习环境约束;确定下一个驾驶目标,例如相对/绝对位置、轨迹、速度等;利用对环境和确定的驾驶目标的理解来查询知识库(KB),并创建初始控制命令和约束;通过智能约束再学习来改进控制命令;执行命令并收集反馈以丰富和更新知识库。我们的实验评估表明,我们的学习系统可以显着减少学习时间(从月/天到小时),并使迁移学习更有效,更安全地适应从模拟环境到真实的驾驶场景。以下部分将讨论学习系统的细节:生成初始控制命令和约束(第2节)。2.2)基于知识基础与第一原则约束探索和智能开发用于改进控制命令(第2.1节)。2.3);观察和反馈用于通过学习课程丰富知识库(第2.3节)。2.4)。2系统设计2.1建立用于推导控制命令表中显示了知识库中的一个示例表1.初始知识库的内容可以从汽车制造商的规范中导出,或者可以通过在停车场或培训地点驾驶车辆安全地获得,如下所示• 将车辆设置为预期速度,然后发送相应的减速命令,并测量停车距离和时间。• 将车辆设置为所需的速度,然后发送适当的方向盘角度命令,并测量车辆通过的路径的曲率。采集的行驶样本可用于估计车辆的结构参数(质量、轴距、重心)。知识库保持了驾驶基本原理的表现形式,并提供推理、拟合和查询功能,如生成初始控制命令。知识库查询功能有状态和KB作为输入,并输出车辆控制命令的建议候选例如,当以不同速度行驶时,查询不同道路曲率下的适当转向角度expectedSteeringAngle=QuerySteeringAngle FromKB(roadCurvature,currentSpeed)2.2生成安全学习的约束约束用于避免危险情况:• 硬约束:– 与环境中的障碍物/其他移动物体保持安全距离/安全响应时间。– 防止打滑和脱轨。– 将操作命令保持在系统的操作范围内(加速/制动极限、转向角和速度之间的匹配等)• 软约束:– 保持舒适和稳定。– 保持燃油效率。约束可以表示为控制命令的边界,并用于限制RL中的探索空间,如表2所示约束的生成可以独立于学习算法,并且约束将根据环境和状态的变化实时更新。因此,约束探索避免了预定约束和损失函数在灵活性和可扩展性方面的限制。如图3所示,如果该动作将导致驶出车道,则不会探索该动作。2.3智能约束强化学习在自动驾驶的真实环境中,我们无法从持续学习中避免错误/事故。不完整的培训/学习将导致潜在的不安全策略,并且无法处理未学习或未看到的场景。包括角点情况会大大增加奖励函数的方差,使收敛更加困难。为了解决这些问题,我们提出了一个有效的排除和搜索算法,这是能够迁移学习。所提出的强化学习的流程图如图2所示,包括:图2:智能RL表1:知识库速度转向角度车道曲线半径车辆转向变化率50 km/h 2度100 m 0. 2度/s表2:基于状态的约束状态约束基于车道曲率车速上限道路摩擦系数和车辆运动第一与前车的前车速度安全距离/响应时间(例如3秒规则)与后车的距离后车速度下限车道的速度限制安全距离/响应时间道路曲率平均转向角。车辆运动图3:跟随车道的约束示例。• 分解学习:例如,分别学习速度控制和转向控制(例如,以固定速度学习转向控制)。此外,转向控制可以包括跟随弯曲车道的转向控制、横向速度的转向控制(以从当前位置接近下一个目标)和车辆方位的转向控制(以保持车辆方位与车道方向相同)。这些转向控制可以单独学习,并与适当的组合使用。• 用于优化的状态和奖励的预览:基于知识库中的第一原理的表现,对于每个操作命令候选,预览宿主车 辆 在 下 一 步 的 状 态 / 奖 励 。 估 计 的 奖 励 基 于computeNextCar-Pose ( KB , currentActions ,currentState)的结果。详见Al-出租2。• 约束勘探和智能开发:约束用于减少勘探空间;控制命令选择必须在边界内表示,由约束条件(例如从转向角导出的速度限制)发送基于尝试的操作命令和观察到的效果,序列分析用于计算梯度方向以生成更好的操作命令候选。智能约束RL的详细描述在算法1中,其中步骤1用于生成控制命令候选;步骤2和步骤3用于约束探索(使用状态和奖励的预览,即向前看)。例如,如果转向动作将导致在几秒钟内偏离道路,则该动作将从探索中排除;步骤4用于迁移学习和适应新环境;步骤5和步骤6用于更新实际奖励并基于反馈在正确方向上调整动作以用于下一次尝试;步骤7是用于基于来自步骤6的结果生成更好的命令。步骤4的增强(当KB累积到一定程度时):基于KB预览命令的状态和奖励,该算法在算法2中描述步骤6的增强功能如下所示:根据动作序列检查过冲/下冲,结果从而减小控制命令延迟执行的影响,更好地利用延迟的回报,加速学习,提高驾驶的平稳性。例如,算法3描述了如何学习算法1智能约束强化学习输入:状态,约束,知识库输出:细化控制命令。步骤1:InitialCommand=KB.findInitialCommand(state));将InitialCommand 扩展到一组命令候选:S命令。例如,使用一组比例因子(例如,0.8,0.85,0.9,,1.2)来缩放InitialCommand。步骤2:检查命令候选,只保留满足约束的命令候选对于S命令中的所有命令,对于约束中的所有约束,如果KB.satisfy(command,constraint)为false,则从S命令中删除命令如果结束,则结束端其中KB.satisfy(command,constraint)可以基于接下来几次的状态预览来实现- tamps,如下所述:对于所有在[1,n]内的t,hostCarPoseTimeT=KB.computeHostCarPose ( t ,command )obstalePoseTimeT = KB.computeObstaclePose( t , constraint ) if notSafe ( hostcarPoseTimeT ,obstalePoseTimeT)is true then返回false;endifreturntrue;步骤3:如果状态是学习状态:从S个命令中找出估计奖励最好的最佳命令如果bestCommand标记了如何优化以进行进一步试验(参见步骤6),则沿相关渐变方向调整bestCommand;输出调整后的命令;其他输出bestCommand;end if步骤4:如果state是一个新的state(以前没有学习过),在附近找到一个学习过的state,并利用它的学习结果:f或state的维中的所有维都testState=statetestState.dimension.value +/-=阈值如果islearned(testState)为true,则return(best_index)oftestState如果结束,则结束根据返回的索引,在S命令中输出相应的(或最接近的)命令。第五步:观察所选命令的执行结果,并更新与该命令相关的相应奖励(如更新Q学习表或SARSA表)。第六步:根据观察结果,调整动作。如果结果是下冲(例如奖励是负的),则将所选动作标记为在下次试验中增加。end if如果结果是过冲(例如,从将所选动作标记为在下次试验中减少。end if步骤7:如果需要,调整或细化候选控制命令的生成(以更好的动作为中心)。在曲线车道中以指定速度跟随车道:以转向控制为例,如果所选转向角导致过冲,则下次调整将减小(反之亦然)。因此,英特尔的优势-ligent RL包括适应新环境:从以前的状态中学习,以帮助在新状态中选择操作命令(避免随机命令选择)。例如,低速时的学习结果是角度0 = atan()。算法2算法1对于S命令中的所有命令,reward= KB.computeNextReward(state,command)如果reward> otherRewards,保持命令如果结束,则结束以最佳的报酬输出命令。算法3算法1对于具有相同曲率的车道上的(steeringAngle,nextState)序列,求出转向角的方差:如果方差>方差阈值,则计算转向角的中间(或平均)值(expectedValue)对于序列中的steeringAngle,(steeringAngle,nextState)do如果steeringAngle expectedV值,则标记为下一次试验end if如果steeringAngle> expectedV值,则下一次试验如果结束,则结束end if适用于高速下的指令生成;转弯急弯时的调整基于转弯平滑曲线的经验。在知识库的信息足够丰富之后,该算法可以用作监督式深度学习或基于“教师”的自我游戏强化学习的“教师”策略(以取代或进一步优化知识库的拟合函数:从线性拟合到非线性拟合)。这种基于自我游戏的学习在算法4中描述。算法4自学习算法初始化训练数据D为空,i= 0到Ndo对于t=1到T,基于教师政策的州的示例操作at将new(st,at)追加到D状态根据KB演变为st+1端培训学习者端2.4持续在线学习和知识库积累/优化建立/完善知识库的学习过程如图5所示:• 从人类驾驶员的驾驶数据样本初始化KB。图4:过冲的示例。• 在学习组合任务之前先学习基本任务;在学习复杂任务之前先学习简单任务;在学习任务本身之前先学习任务的先决条件。• 新的控制命令基于从旧行为中学习到的经验;在状态/动作空间中探索,并逐渐改进知识库(在学习期间状态/动作没有突然跳跃)。• 在线学习:观察到的动作/效果被一致地用于提高知识库的推理能力。图5:学习和知识积累在线学习将有助于适应环境随着知识库的变化和车辆3使用知识库在我们的实现中,车辆上的传感器获得周围环境的感知(感知算法的安全性和性能验证超出了本文的范围),然后系统学习如何生成适当的驾驶控制命令(如方向盘角度,加速/减速等)。根据观察到的环境和由规划模块(超出本文范围的单独模块)决定的所确定的驾驶目标为了学习控制方向盘角度和在跟随车道中的加减速的命令(例如高速巡航),初始转向角的计算基于以下分量:• 基于从主车辆到车道中心的距离和前视距离的角度比如说,距离车道中心lookahead距离2MR角度1 = asin()。表3:汽车加速和制动简化原件Fr=c1mgFr=rrmg滚动阻力取决于阻力参数-ter(rr)、质量(m)和重力系数(g)。空气阻力取决于摩擦Fd=c2v2Fd=1<$Cd <$A <$ρv2(Cd)、汽车形状/横截面积(A)、空气密度(ρ)和速度(v)。通过油门控制前进/驱动力:发动机Fw=c3%节流阀FwTBRgkD/2扭矩(TB)、传动比(gk)、差速比(R)和轮径(d)。a=Fw−Fr−FdFb=c4BFwT=BFwR加速度是基于上述力。制动扭矩取决于车轮的制动力(BFw)、车轮半径(R)以及车轮与制动器之间的速比• 角度1基于莱恩的曲率它可以从知识库中查询,或调用- 根据简化公式计算比如说,前轮到质量中心的距离roadCurveRadius• 角度2是主车辆初始加速度/减速度的计算是基于由车道曲率引起的转向约束、限速标志的速度限制以及对行人舒适性的限制为了在跟随另一辆车(例如低速跟随)时学习加速/减速控制命令,以保持所需的距离(如图6所示),需要考虑以下因素:• 当前距离与理想距离的差值;• 两辆车之间的速度差;• 通过对知识库中数据的挖掘,得到了车辆与环境之间的关系cle模型参数和车辆控制参数是确立了习基于数据积累,使用简化的动力学/运动学公式计算车辆模型参数,并用于生成控制命令。表3显示了加速和制动计算公式的简化因此,要学习的未知参数(例如,表3中的c1至c4)的数量减少。对于转向控制,根据normalizedSteeringAngle(基于前面提到的角度0到角度2)适当地设置方向盘角度(δf),KB中导出的知识是双向映射:f(normalizedSteeringAngle)=δfnormalizedSteeringAngle=f−1(δf)4实验结果智能约束RL优化了车辆的控制命令,并且能够补偿车辆运动的第一原理估计中图6:后车示意图。并通过自我引导的探索和利用进行约束强化学习。我们在TORCS仿真环境(Wymann等人,2014年)(一种开放式赛车模拟器)中测试了跟随车道的学习如图7所示,经过短时间的学习(不到一小时),即使在高速(70 km/h)和弯道上,车辆也可以保持在道路中心线相比之下,基于DDPG的学习需要几天时间来纠正错误(Lau 2016)。我们还在SCANeRStudio仿真环境(AVSimulation)中测试了跟车道和跟车的学习,该环境对不同道路类型、交通标志和车辆类型等具有更强大的仿真能力图8显示了学习的汽车跟随SCANeR中的交通。我们的序列分析算法(算法3)在更高的速度(70-80公里/小时),学习约半小时我们的柔软-=图7:在TORCS仿真环境中学习跟随车道。左:学习前;右:学习后。图8:SCANer测试环境图9:真实道路心理材料将提供更多的测试视频剪辑。在TORCS仿真中,状态信息(速度、到车道边界的距离、车道曲率 等)从模拟环境中获得。在SCANeR工作室和真实环境中,基于图像和激光雷达的感知系统(基于专有软件包)提供状态信息。我们进一步测试了我们的学习系统,使用真实的道路上的真实汽车,通过将学习的知识库从模拟环境转移到真实的汽车,并实现了快速的转移学习,而无需耗时的机械重新校准。在真实道路上的自动驾驶在第一次尝试中是顺利的。图9显示了真实道路中的以下车道,速度约为45 km/h。在试验场上,用实车进行了跟车实验和信号灯跟随实验五、结论现有的机器学习技术在自动驾驶中存在局限性,例如从真实环境中的事故中学习是不可接受的。基于精确物理模型的驾驶控制需要耗时且费力的系统控制参数提出了一种高效、连续、安全的基于第一性原理的约束自学习方法,以解决自动驾驶中的以下挑战:缩短学习时间;在线安全学习;避免完整的系统控制参数校准;转移学习以处理未学习或未知的实验结果表明,该学习系统不依赖于大数据集进行初始化;能够减少强化学习中的探索空间,显著提高学习效率;支持连续在线安全学习;知识表示和增强基于第一性原理的表现形式我们理解自动驾驶有很多复杂性和挑战,这项工作是向原则性学习迈出的一小步,还需要考虑更复杂的任务和情况。基于深度学习的方法可以与这种基于第一原理的学习相结合以一起工作(诸如算法4中描述的基于自播放的学习):基于第一原理的学习提高了系统的可解释性,并且深度学习进一步概括了系统能力。引用Aruldaran,K.,and et al. 2017.深度强化学习简介。IEEE Signal Processing杂志AVSimulation. 扫 描 仪 stuio 。 在 线 资 源 ,https://www.avsimulation.fr/solutions/。Bojarski,M.,和etal.2016.端到结束自动驾驶汽车的学习。在线资源,https://arxiv.org/abs/1604.07316。Chen,D.,中国农业科学院,等,2019年。通过作弊 来 学 习 。 机 器 人 学 习 会 议 ( Confer on RobotLearning,CoRL)Hecker,S.,and et al. 2018.使用全景摄像头和路线规划器进行驾驶模型的端到端学习。欧洲计算机视觉会议(ECCV)Kahn,G.,等。2017年。柏拉图:使用自适应轨迹优化的策略学习IEEE国际机器人与自动化会议集.劳湾2016.使用Keras和深层决定-加大政策梯度,发挥合力。在线资源,https://yanpanlau.github.io/2016/10/11/Torcs-Keras.html。Levine,S.,and et al. 2013.引导政策搜索在机器学习国际会议的筹备会上。Levine,S.,and et al. 2015.学习接触丰富的操纵-有指 导的策 略搜 索的操 作技巧 。IEEE InternationalConference on Robotics and Automation(IEEE机器人与自动化)Lillicrap,T.,and et al. 2016.使用深度强化学习进行持续学习。国际学习表征会议论文集。Liu,Y.,and et al. 2018.从观察中模仿:通过上下文翻译学习模仿原始视频中的行为。技术报告编号UCB/EECS-2018-37。Müller,M., 等。2018年 通过模块化和抽象化实现政策迁 移 。 机 器 人 学 习 会 议 ( Conference on RobotLearning,CoRL)Ng,A.,Russell,S. 2000.逆向再学习算法。在机器学习国际会议论文集。Rao,Q.,和Frtunikj,J. 2018.自动驾驶汽车的深度学习:机遇与挑战在2018年IEEE/ACM第一届国际研讨会上的软件工程人工智能在黄金系统(SEFAIAS),35Schulman,J.,and et al. 2015.信赖域策略优化。在机器学习。Silver,D.,and et al. 2014.确定性策略梯度算法。在机器学习国际会议上。宋杰and et al. 2018. 多智能体生成式对抗模仿学习。神经信息处理系统国际会议论文集,7472- 7483。Wymann,B.,and et al. 2014. Torcs,开放式赛车模拟器。在线资源,http://www.torcs.org。周,B.; Kr aühenbuühl,P.; 和Koltun,V. 2019年。计算机视觉对行动重要吗?科学机器人
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- CoreOS部署神器:configdrive_creator脚本详解
- 探索CCR-Studio.github.io: JavaScript的前沿实践平台
- RapidMatter:Web企业架构设计即服务应用平台
- 电影数据整合:ETL过程与数据库加载实现
- R语言文本分析工作坊资源库详细介绍
- QML小程序实现风车旋转动画教程
- Magento小部件字段验证扩展功能实现
- Flutter入门项目:my_stock应用程序开发指南
- React项目引导:快速构建、测试与部署
- 利用物联网智能技术提升设备安全
- 软件工程师校招笔试题-编程面试大学完整学习计划
- Node.js跨平台JavaScript运行时环境介绍
- 使用护照js和Google Outh的身份验证器教程
- PHP基础教程:掌握PHP编程语言
- Wheel:Vim/Neovim高效缓冲区管理与导航插件
- 在英特尔NUC5i5RYK上安装并优化Kodi运行环境
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功