掌桥专利:专业的专利平台
掌桥专利
首页

自动驾驶横向控制的训练方法、装置、设备及存储介质

文献发布时间:2024-04-18 20:01:30


自动驾驶横向控制的训练方法、装置、设备及存储介质

技术领域

本申请涉及自动驾驶控制领域,尤其涉及一种自动驾驶横向控制的训练方法、装置、设备及存储介质。

背景技术

重型汽车自动驾驶控制可分为纵向控制和横向控制,纵向控制是指控制重型汽车的纵向速度,即控制油门和刹车;横向控制是指控制重型汽车的前轮转向角,以使重型汽车的实际行驶轨迹逼近参考行驶轨迹,即轨迹追踪。

目前,针对横向控制应用最多的是线性二次型调节器(Linear QuadraticRegulator,LQR)控制方法。线性二次型调节器控制方法稳定性较好,然而在追踪较大曲率的弯道,以及连续弯道时,横向误差和横摆角误差较大。

发明内容

本申请提供一种自动驾驶横向控制的训练方法、装置、设备及存储介质,用以解决线性二次型调节器控制方法在追踪较大曲率的弯道,以及连续弯道时,横向误差和横摆角误差较大的问题。

第一方面,本申请提供一种自动驾驶横向控制的训练方法,该方法应用于重型汽车的自动驾驶横向控制的训练阶段,训练阶段包括多个训练回合,目标训练回合是多个训练回合中的任意一个,该方法包括:

在目标训练回合,将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度,纵向速度满足高速路段的限速,训练轨迹包括多个弯道;

根据纵向速度,以及预设的运动学模型,得到重型汽车的实时状态信息,实时状态信息用于指示重型汽车实时的横向位置、横向速度和横摆角;

根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差;

根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分,以便于根据训练得分训练自动驾驶横向控制。

在一种可能的设计中,根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分,包括:

根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行正奖励或负奖励,得到每个横向误差的第一奖励得分,每个横摆角误差的第二奖励得分,以及距离误差的第三奖励得分;

根据多个第一奖励得分、多个第二奖励得分和第三奖励得分,得到训练得分。

在一种可能的设计中,目标横向误差是多个横向误差中的任意一个,目标横摆角误差是多个横摆角误差中的任意一个;

根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行正奖励或负奖励,得到每个横向误差的第一奖励得分,每个横摆角误差的第二奖励得分,以及距离误差的第三奖励得分,包括:

根据目标横向误差,从预设的多个第一距离范围中,确定目标横向误差所在的第一目标距离范围,并将第一目标距离范围对应的正奖励得分或负奖励得分,作为第一奖励得分;

根据目标横摆角误差,从预设的多个角度范围中,确定目标横摆角误差所在的目标角度范围,并将目标角度范围对应的正奖励得分或负奖励得分,作为第二奖励得分;

根据距离误差,从预设的多个第二距离范围中,确定距离误差所在的第二目标距离范围,并将第二目标距离范围对应的正奖励得分或负奖励得分,作为第三奖励得分。

在一种可能的设计中,根据多个第一奖励得分、多个第二奖励得分和第三奖励得分,得到训练得分之后,该方法还包括:

在重型汽车到达轨迹终点,或者,任意一个横向误差不小于预设距离时,停止目标训练回合。

在一种可能的设计中,根据纵向速度,以及预设的运动学模型,得到重型汽车的实时状态信息,包括:

将重型汽车的纵向速度V

y为横向位置,

在一种可能的设计中,参考行驶轨迹包括多个轨迹点,目标轨迹点是多个轨迹点中的任意一个;

根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差,包括:

根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在目标轨迹点的横向误差和横摆角误差,横向误差e

横摆角误差

其中,θ

在一种可能的设计中,该方法还应用于重型汽车的自动驾驶横向控制的测试阶段,根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分之后,该方法还包括:

在测试阶段,将重型汽车置于测试轨迹的轨迹起点,并设定重型汽车的纵向速度,以便于验证重型汽车的自动驾驶横向控制,其中,测试轨迹包括多个弯道。

第二方面,本申请提供一种自动驾驶横向控制的训练装置,该装置应用于重型汽车的自动驾驶横向控制的训练阶段,训练阶段包括多个训练回合,目标训练回合是多个训练回合中的任意一个,该装置包括:

速度设定模块,用于在目标训练回合,将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度,纵向速度满足高速路段的限速,训练轨迹包括多个弯道;

状态确定模块,用于根据纵向速度,以及预设的运动学模型,得到重型汽车的实时状态信息,实时状态信息用于指示重型汽车实时的横向位置、横向速度和横摆角;

误差确定模块,用于根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差;

误差奖励模块,用于根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分,以便于根据训练得分训练自动驾驶横向控制。

第三方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;

存储器存储计算机执行指令;

处理器执行存储器存储的计算机执行指令时,用于实现第一方面发明内容的一种自动驾驶横向控制的训练方法。

第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时,用于实现第一方面发明内容的一种自动驾驶横向控制的训练方法。

第五方面,本申请提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,用于实现第一方面发明内容的一种自动驾驶横向控制的训练方法。

本申请提供的一种自动驾驶横向控制的训练方法、装置、设备及存储介质,将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度;根据纵向速度,以及预设的运动学模型,得到重型汽车的实时状态信息;根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差;根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分,以便于根据训练得分训练自动驾驶横向控制。实现了如下技术效果:通过对多个训练回合的横向误差、横摆角误差和距离误差分别进行奖励,得到每个训练回合的训练得分,以便于根据这些训练得分训练自动驾驶横向控制,解决了线性二次型调节器控制方法在追踪较大曲率的弯道,以及连续弯道时,横向误差和横摆角误差较大的问题;通过实时状态信息和参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差,以便于得到对应的训练回合的训练得分,解决了确定训练得分的问题;通过包括多个弯道的训练轨迹,以及满足高速路段限速的纵向速度等条件训练重型汽车,解决了自动驾驶横向控制的训练结果不准确的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的自动驾驶横向控制的训练方法的系统架构示意图;

图2为本申请实施例提供的自动驾驶横向控制的训练方法的应用场景框架图;

图3为本申请实施例提供的自动驾驶横向控制的训练方法流程示意图一;

图4为本申请实施例提供的一种参考行驶轨迹的轨迹示意图一;

图5为本申请实施例提供的自动驾驶横向控制的训练方法流程示意图二;

图6为本申请实施例提供的一种训练得分的得分曲线示意图;

图7为本申请实施例提供的自动驾驶横向控制的训练方法流程示意图三;

图8为本申请实施例提供的一种参考行驶轨迹的轨迹示意图二;

图9为本申请实施例提供的训练轨迹的横向误差的示意图;

图10为本申请实施例提供的训练轨迹的横摆角误差的示意图;

图11为本申请实施例提供的测试轨迹的横向误差的示意图;

图12为本申请实施例提供的测试轨迹的横摆角误差的示意图;

图13为本申请实施例提供的自动驾驶横向控制的训练装置的结构示意图;

图14为本申请实施例提供的电子设备硬件的结构示意图。

附图标记:

110-采集装置;120-域控制器;130-执行装置;140-第一总线;

210-重型汽车;220-训练路段;230-实际行驶轨迹;240-参考行驶轨迹;

300-自动驾驶横向控制的训练装置;310-速度设定模块;320-状态确定模块;330-误差确定模块;340-误差奖励模块;

400-电子设备;410-处理器;420-存储器;430-通信部件;440-第二总线。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。

需要说明的是,本申请实施例中的“在……时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本申请实施例对此不作具体限定。此外,本申请实施例提供的一种自动驾驶横向控制的训练方法仅作为示例,自动驾驶横向控制的训练方法还可以包括更多或更少的内容。

为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:

自动驾驶:是指通过车载传感系统感知道路环境,并根据感知所获得的道路、车辆位置和障碍物信息,控制车辆的转向和速度,从而使车辆能够安全、可靠地在道路上行驶并到达目的地点的功能。

重型汽车:是指最大总质量大于3500Kg的M类和N类汽车。重型汽车由重型牵引车和重型挂车组成。

高速路段的限速:是指重型汽车在高速路段的限速。通常情况下,最低限速为60Km/h,最高限速为100Km/h。

线性二次型调节器:是指一种设计状态反馈控制器(State Variable Feedback,SVFB)的方法。

重型汽车自动驾驶可分为纵向控制和横向控制,纵向控制是指控制重型汽车的纵向速度,即控制油门和刹车;横向控制是指控制重型汽车的前轮转向角,以使重型汽车的实际行驶轨迹逼近参考行驶轨迹,即轨迹追踪。

现有技术中,针对横向控制的控制方法包括:比例-积分-微分控制器(ProportionIntegration Differentiation,PID)、模型预测控制器(Model Predictive Control,MPC)和线性二次型调节器(Linear Quadratic Regulator,LQR)。其中,PID控制方法只关注当前时刻的误差,不关注未来时间段内的误差,没有预见性,易造成超调和稳态误差变大现象。MPC控制方法计算未来一小段时间内的最优,只执行第一个序列的控制值,下一个周期继续滚动计算最优控制序列;然而MPC控制器的参数调节难度较大,且在高速行驶过程稳定性不高。LQR控制方法计算未来固定时间段内的最优,只计算一次,执行所有计算出的控制序列;因此,LQR控制方法稳定性较好,使用的也最为广泛。

LQR控制方法适用场景为路径平滑的中高速城市驾驶追踪场景,在追踪较大曲率的弯道,以及连续弯道时,横向误差和横摆角误差较大。考虑到近年来强化学习、深度学习等人工智能算法发展迅速,在自动驾驶领域的应用也越来越广泛。因此通过强化学习,对较大曲率的弯道,以及连续弯道时的横向控制进行精度和稳定性的改进,即在车辆运动学模型的基础上,即以传感器的测量数据作为强化学习网络的观测,直接训练重型汽车根据测量数据输出方向盘转角、油门踏板开度和刹车踏板开度等控制指令。

基于此,本申请实施例提供一种自动驾驶横向控制的训练方法、装置、设备及存储介质,可用于自动驾驶控制技术领域,旨在解决现有技术的如上技术问题。

图1为本申请实施例提供的自动驾驶横向控制的训练方法的系统架构示意图。需要注意的是,图1所示仅为可以应用本申请实施例的系统架构的示例,以帮助本领域技术人员理解本申请的技术内容,但并不意味着本申请实施例不可以用于其他设备、系统、环境或场景。

如图1所示,该方法所在的系统架构包括:采集装置110、域控制器120和执行装置130,域控制器120通过第一总线140分别与采集装置110和执行装置130通信连接。

在本申请实施例中,采集装置110可以是采集各种测量数据的传感器。采集装置110包括但不限于:采集质量的压力传感器、采集前轮转向角的角度传感器和采集位置信息的位置传感器等。采集装置110用于采集各种类型的测量数据,并将这些测量数据通过第一总线140发送至域控制器120。

域控制器120可以是提供数据处理服务的自动驾驶域控制器。域控制器120可以包括中央处理单元(Central Processing Unit,CPU)、数字信号处理器(Digital SignalProcessor,DSP)或专用集成电路(Application Specific Integrated Circuit,ASIC)等。域控制器120用于根据这些测量数据,得到多种控制数据;域控制器120还用于将这些控制数据通过第一总线140发送至执行装置130,控制执行装置130执行相应的动作,进而控制重型汽车的轨迹追踪。

执行装置130可以是执行各种动作的执行器。执行装置130包括但不限于:调整转角的方向盘,调整开度的油门踏板和调整开度的刹车踏板等。其中,方向盘用于调整前轮转向角,即进行横向控制;油门踏板和刹车踏板用于调整纵向速度,即进行纵向控制。

第一总线140可以是提供通信服务的汽车总线。执行装置130可以是控制器局域网总线(Controller Area Network,CAN)本地互联网络总线(Local Interconnect Network,LIN)柔性总线(FlexRay)等。执行装置130用于将测量数据由采集装置110传输至域控制器120,还用于将控制数据由域控制器120发送至执行装置130。

图2为本申请实施例提供的自动驾驶横向控制的训练方法的应用场景框架图。如图2所示,重型汽车210在训练路段220上进行自动驾驶横向控制的训练,以使重型汽车210的实际行驶轨迹230逼近参考行驶轨迹240。其中,重型汽车210在x轴方向进行纵向控制,在y轴方向进行横向控制,其中,纵向速度满足高速路段的限速,通常情况下,纵向速度的范围为[60km/h,100km/h]或[16m/s,26m/s]等。

图3为本申请实施例提供的自动驾驶横向控制的训练方法流程示意图一。该方法应用于重型汽车的自动驾驶横向控制的训练阶段,训练阶段包括多个训练回合,每个训练回合的训练方法彼此相同,本实施例就目标训练回合的训练方法进行详细说明,目标训练回合是多个训练回合中的任意一个。如图3所示,该方法包括:

S101、在目标训练回合,将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度;

具体来说,域控制器在车辆运动学模型的基础上,根据位置、速度和横摆角等信息,通过深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法,训练自动驾驶重型汽车不断探索学习横向误差和横摆角误差,使重型汽车的行驶更加稳定平顺,并提高轨迹追踪的精度。

为保证训练结果的准确性,需要尽可能的减少干扰因素,具体表现在域控制器将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度,其中,纵向速度满足高速路段的限速,训练轨迹包括多个弯道。重型汽车在自动驾驶过程中,纵向速度可以是恒定的,即定速巡航(Cruise Control System,CCS),也可以是自适应的,即自适应巡航(Adaptive Cruise Control,ACC),还可以是其他形式的。

S102、根据纵向速度,以及预设的运动学模型,得到重型汽车的实时状态信息;

具体来说,运动学模型是指技术人员根据重型汽车的前后轴建立的仿真模型。域控制器将纵向速度等信息输入运动学模型,得到二维(2D)坐标系下的实时状态信息,其中,实时状态信息用于指示重型汽车实时的横向位置、横向速度和横摆角。

S103、根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差;

具体来说,参考行驶轨迹是指技术人员根据训练路段建立的自动驾驶路线。重型汽车自动驾驶过程中,域控制器根据实时状态信息得到实际行驶轨迹,并根据实际行驶轨迹和参考行驶轨迹的差异,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差。

S104、根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分,以便于根据训练得分训练自动驾驶横向控制;

具体来说,域控制器根据多个预设的横向误差范围,对每个横向误差分别进行奖励,得到每个横向误差的奖励得分;根据多个预设的横摆角误差范围,对每个横摆角误差分别进行奖励,得到每个横摆角误差的奖励得分;并根据多个距离误差范围,对距离误差进行奖励,得到距离误差的奖励得分。之后,域控制器根据这些奖励同分,通过特定的算法,得到目标训练回合的训练得分。至此,目标训练回合结束。

域控制器通过DDPG算法,根据目标训练回合及之前若干个训练回合的训练得分,训练自动驾驶横向控制。在本实施例中,智能体(Agent)为重型汽车的域控制器,智能体交互的环境为重型汽车的实时状态信息,以及参考行驶轨迹。智能体在第t个训练回合采取动作actiona

图4为本申请实施例提供的一种参考行驶轨迹的轨迹示意图一。举例说明,训练开始之前,技术人员通过矩阵实验室(Matrix Laboratory,MATLAB)的可视化仿真工具SIMULINK建立重型汽车的运动学模型;同时,技术人员根据训练轨迹,通过编写MATLAB的脚本(Script),生成如图4所示的训练轨迹的参考行驶轨迹;之后,将运动学模型,参考行驶轨迹,以及包括参考横纵向坐标、参考航向角和参考曲率在内的轨迹信息导入模型空间(Model Space),以供后续的仿真使用。

在目标训练回合,域控制器将重型汽车置于训练轨迹的轨迹起点,设定重型汽车的纵向速度为20m/s,控制重型汽车在训练轨迹内定速巡航。重型汽车行驶至轨迹终点后,域控制器得到重型汽车在目标训练回合的训练得分,目标训练回合结束。

本实施例提供的一种自动驾驶横向控制的训练方法,将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度;根据纵向速度,以及预设的运动学模型,得到重型汽车的实时状态信息;根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差;根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分,以便于根据训练得分训练自动驾驶横向控制。实现了如下技术效果:通过对多个训练回合的横向误差、横摆角误差和距离误差分别进行奖励,得到每个训练回合的训练得分,以便于根据这些训练得分训练自动驾驶横向控制,解决了线性二次型调节器控制方法在追踪较大曲率的弯道,以及连续弯道时,横向误差和横摆角误差较大的问题;通过实时状态信息和参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差,以便于得到对应的训练回合的训练得分,解决了确定训练得分的问题;通过包括多个弯道的训练轨迹,以及满足高速路段限速的纵向速度等条件训练重型汽车,解决了自动驾驶横向控制的训练结果不准确的问题。

图5为本申请实施例提供的自动驾驶横向控制的训练方法流程示意图二。本实施例在图3实施例的基础上,对自动驾驶横向控制的训练方法进行详细说明,如图5所示,该方法包括:

S201、在目标训练回合,将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度;

S201与S101类似,本实施例不再赘述。

S202、将重型汽车的纵向速度、前轮侧偏刚度、后轮侧偏刚度、质心到前轮的距离、质心到后轮的距离、整车质量、转动惯量和前轮转向角输入运动学模型,得到重型汽车的实时状态信息;

具体来说,域控制器将设定的纵向速度V

y为横向位置,

在其他实施例中,输入运动学模型的纵向速度为重型汽车实时的纵向速度,输入运动学模型的整车质量为重型汽车实时的整车质量。

S203、根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在目标轨迹点的横向误差和横摆角误差;

具体来说,参考行驶轨迹包括多个轨迹点,每个轨迹点的横向误差和横摆角误差的确定方法彼此相同,本实施例就目标轨迹点的横向误差和横摆角误差的确定方法进行详细说明,目标轨迹点是多个轨迹点中的任意一个。

后台服务器根据实时状态信息,确定重型汽车在目标轨迹点的横向误差和横摆角误差,横向误差e

横摆角误差

其中,θ

在其他实施例中,域控制器得到重型汽车在目标轨迹点的误差矩阵e

其次,域控制器根据e

S204、根据目标横向误差,从预设的多个第一距离范围中,确定目标横向误差所在的第一目标距离范围,并将第一目标距离范围对应的正奖励得分或负奖励得分,作为第一奖励得分;

根据目标横摆角误差,从预设的多个角度范围中,确定目标横摆角误差所在的目标角度范围,并将目标角度范围对应的正奖励得分或负奖励得分,作为第二奖励得分;

根据距离误差,从预设的多个第二距离范围中,确定距离误差所在的第二目标距离范围,并将第二目标距离范围对应的正奖励得分或负奖励得分,作为第三奖励得分;

具体来说,域控制器根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行正奖励或负奖励,得到每个横向误差的第一奖励得分,每个横摆角误差的第二奖励得分,以及距离误差的第三奖励得分。每种误差的奖励得分各自的确定方法彼此相同,本实施例就目标横向误差的第一奖励得分,以及目标横摆角误差的第二奖励得分的确定方法进行详细说明,目标横向误差是多个横向误差中的任意一个,目标横摆角误差是多个横摆角误差中的任意一个。

举例来说,第一奖励得分r

其中,e

第二奖励得分

其中,

第三奖励得分r

其中,(x

S205、根据多个第一奖励得分、多个第二奖励得分和第三奖励得分,得到训练得分;

具体来说,当重型汽车到达轨迹重点,域控制器在每个弯道的多个轨迹点合计采集了m个横向误差,m个横摆角误差,以及一个距离误差,域控制器根据这些误差的奖励得分,得到目标训练回合的训练得分。

举例来说,训练得分r的公式为:

其中,i是小于等于m的正整数,例如,r

S206、在重型汽车到达轨迹终点,或者,任意一个横向误差不小于预设距离时,停止目标训练回合;

具体来说,域控制器判定目标训练回合的停止条件为,重型汽车到达轨迹终点,或者,任意一个横向误差不小于预设距离。前者意味着重型汽车完成了参考行驶轨迹,后者意味着重型汽车没有完成参考行驶轨迹。通常情况下,预设距离为0.625米。

以下为本申请实施例提供的强化学习算法的示例。强化学习算法用于根据重型汽车的实时状态信息,以及参考行驶轨迹,调整控制器输出控制量,以提高控制精度。强化学习网络选择演员-评价者(Actor-Critic)神经网络,针对上述得到的误差矩阵,采用深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法对其进行学习训练。

强化学习网络中,Actor网络包括一个状态输入层,两个全连接层,一个池化层,同时具有非线性激活层(tanhlayer)和缩放层(scalinglayer)用于绑定动作保证动作连续性,学习率为10-4,梯度阈值为1;Critic网络由两个输入层、三个全连接层和一个输出层组成,学习率为10-3,梯度阈值为1。Actor网络更新策略为确定性策略梯度加高斯分布噪声,增加随机探索性使智能体与环境交互更加充分;Critic网络基于价值函数,通过最小化损失函数更新Critic网络。

图6为本申请实施例提供的一种训练得分的得分曲线示意图。举例来说,训练开始,训练采样时间设为0.1s,仿真步长为300,最大训练回合数为3000,每训练100步更新一次训练网络的权重,目标更新平滑因子设为10-3,折扣因子为0.95,随机经验最小批量大小(Mini Batchsize)设为64,经验缓冲区大小为106,学习衰减率为10-6,噪声方差为0.3,每次训练结束后重型汽车均被置于轨迹起点。按照如此参数设置多次训练,取表现最优一次的训练模型,得到其训练得分的得分曲线如图6所示。

图7为本申请实施例提供的自动驾驶横向控制的训练方法流程示意图三。该方法还应用于重型汽车的自动驾驶横向控制的测试阶段,本实施例在图3实施例的基础上,对重型汽车在测试阶段的训练方法进行详细说明。

如图7所示,该方法包括:

S301、在目标训练回合,将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度;

S302、根据纵向速度,以及预设的运动学模型,得到重型汽车的实时状态信息;

S303、根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差;

S304、根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分,以便于根据训练得分训练自动驾驶横向控制;

S301-S304与S101-S104类似,本实施例不再赘述。

S305、在测试阶段,将重型汽车置于测试轨迹的轨迹起点,并设定重型汽车的纵向速度,以便于验证重型汽车的自动驾驶横向控制;

具体来说,为验证本方法的泛化性,需要将训练好的重型汽车在测试轨迹上进行测试。图8为本申请实施例提供的一种参考行驶轨迹的轨迹示意图二。如图8所示,测试轨迹包括多个弯道,其与训练轨迹相似均为以弯道为主的行驶路线,用于验证自动驾驶的重型汽车在通过较大曲率的弯道,以及连续弯道时的横向控制。

举例来说,在测试阶段,域控制器将重型汽车置于测试轨迹的轨迹起点,并设定重型汽车的纵向速度为25m/s,控制重型汽车在测试轨迹内定速巡航。重型汽车行驶过程中,通过MATLAB的模拟图环境Simulink中的示波器,显示横向误差和横摆角误差。

图9为本申请实施例提供的训练轨迹的横向误差的示意图;

图10为本申请实施例提供的训练轨迹的横摆角误差的示意图;

图11为本申请实施例提供的测试轨迹的横向误差的示意图;

图12为本申请实施例提供的测试轨迹的横摆角误差的示意图。

如图9至图11所示,横坐标代表行驶一周的时间,训练阶段的时间为80秒,测试阶段的时间为20秒;图9、图11的纵坐标代表横向误差,单位为米;图10、图12的纵坐标为横摆角误差,单位为弧度。由图9和图11可知,训练阶段和测试阶段,最大的横向误差均不超过0.2m;由图10和图12可知,训练阶段和测试阶段,最大的横摆角误差均不超过10π/180。因此,可知本申请的自动驾驶横向控制的训练方法在追踪较大曲率的弯道,以及连续弯道时,仍能保持良好的控制精度。

本实施例提供的一种自动驾驶横向控制的训练方法,将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度;根据纵向速度,以及预设的运动学模型,得到重型汽车的实时状态信息;根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差;根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分,以便于根据训练得分训练自动驾驶横向控制。实现了如下技术效果:通过对多个训练回合的横向误差、横摆角误差和距离误差分别进行奖励,得到每个训练回合的训练得分,以便于根据这些训练得分训练自动驾驶横向控制,解决了线性二次型调节器控制方法在追踪较大曲率的弯道,以及连续弯道时,横向误差和横摆角误差较大的问题;通过实时状态信息和参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差,以便于得到对应的训练回合的训练得分,解决了确定训练得分的问题;通过包括多个弯道的训练轨迹,以及满足高速路段限速的纵向速度等条件训练重型汽车,解决了自动驾驶横向控制的训练结果不准确的问题;通过强化学习方法训练横向控制算法,解决了横向控制算法控制策略复杂,并且需要调整控制参数的问题;通过多个第一距离范围为横向误差进行正奖励或负奖励,通过多个角度范围为横摆角误差进行正奖励或负奖励,并通过多个第二距离范围为距离误差进行正奖励或负奖励,解决了确定奖励得分的问题;通过在测试轨迹验证重型汽车的自动驾驶横向控制,解决了自动驾驶横向控制的训练方法泛化性不确定的问题。

本发明实施例可以根据上述方法示例对电子设备或主控设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图13为本申请实施例提供的自动驾驶横向控制的训练装置的结构示意图。

该装置应用于重型汽车的自动驾驶横向控制的训练阶段,训练阶段包括多个训练回合,目标训练回合是多个训练回合中的任意一个。如图13所示,本申请实施例提供的自动驾驶横向控制的训练装置300,包括:速度设定模块310、状态确定模块320、误差确定模块330和误差奖励模块340;

速度设定模块310,用于在目标训练回合,将重型汽车置于训练轨迹的轨迹起点,并设定重型汽车的纵向速度,纵向速度满足高速路段的限速,训练轨迹包括多个弯道;

状态确定模块320,用于根据纵向速度,以及预设的运动学模型,得到重型汽车的实时状态信息,实时状态信息用于指示重型汽车实时的横向位置、横向速度和横摆角;

误差确定模块330,用于根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在每个弯道的横向误差和横摆角误差,以及在轨迹终点的距离误差;

误差奖励模块340,用于根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行奖励,得到目标训练回合的训练得分,以便于根据训练得分训练自动驾驶横向控制。

在一种可能的设计中,误差奖励模块340,包括:奖励得分确定模块和训练得分确定模块;

奖励得分确定模块,用于根据预设的奖励函数,对每个横向误差、每个横摆角误差和距离误差分别进行正奖励或负奖励,得到每个横向误差的第一奖励得分,每个横摆角误差的第二奖励得分,以及距离误差的第三奖励得分;

训练得分确定模块,用于根据多个第一奖励得分、多个第二奖励得分和第三奖励得分,得到训练得分。

在一种可能的设计中,目标横向误差是多个横向误差中的任意一个,目标横摆角误差是多个横摆角误差中的任意一个;

奖励得分确定模块,包括:第一奖励得分确定模块、第二奖励得分确定模块和第三奖励得分确定模块;

第一奖励得分确定模块,用于根据目标横向误差,从预设的多个第一距离范围中,确定目标横向误差所在的第一目标距离范围,并将第一目标距离范围对应的正奖励得分或负奖励得分,作为第一奖励得分;

第二奖励得分确定模块,用于根据目标横摆角误差,从预设的多个角度范围中,确定目标横摆角误差所在的目标角度范围,并将目标角度范围对应的正奖励得分或负奖励得分,作为第二奖励得分;

第三奖励得分确定模块,用于根据距离误差,从预设的多个第二距离范围中,确定距离误差所在的第二目标距离范围,并将第二目标距离范围对应的正奖励得分或负奖励得分,作为第三奖励得分。

在一种可能的设计中,自动驾驶横向控制的训练装置300,还包括:训练停止模块;

训练停止模块,用于在重型汽车到达轨迹终点,或者,任意一个横向误差不小于预设距离时,停止目标训练回合。

在一种可能的设计中,状态确定模块320,用于将重型汽车的纵向速度V

y为横向位置,

在一种可能的设计中,参考行驶轨迹包括多个轨迹点,目标轨迹点是多个轨迹点中的任意一个;

误差确定模块330,用于根据实时状态信息,以及预先生成的参考行驶轨迹,得到重型汽车在目标轨迹点的横向误差和横摆角误差,横向误差e

横摆角误差

其中,θ

在一种可能的设计中,该装置还应用于重型汽车的自动驾驶横向控制的测试阶段;

速度设定模块310,用于在测试阶段,将重型汽车置于测试轨迹的轨迹起点,并设定重型汽车的纵向速度,以便于验证重型汽车的自动驾驶横向控制,其中,测试轨迹包括多个弯道。

本实施例提供的一种自动驾驶横向控制的训练装置,可执行上述实施例的一种自动驾驶横向控制的训练方法,其实现原理和技术效果类似,本实施例此处不再赘述。

在前述的一种自动驾驶横向控制的训练方法的具体实现中,各模块可以被实现为处理器,处理器可以执行存储器中存储的计算机执行指令,使得处理器执行上述一种自动驾驶横向控制的训练方法。

图14为本申请实施例提供的电子设备硬件的结构示意图。如图14所示,该电子设备400包括:至少一个处理器410和存储器420。该电子设备400还包括通信部件430。其中,处理器410、存储器420以及通信部件430通过第二总线440连接。

在具体实现过程中,至少一个处理器410执行存储器420存储的计算机执行指令,使得至少一个处理器410执行如上电子设备侧所执行的一种自动驾驶横向控制的训练方法。

处理器410的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。

在上述实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignal Processor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。

第二总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

上述针对电子设备以及主控设备所实现的功能,对本发明实施例提供的方案进行了介绍。可以理解的是,电子设备或主控设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的技术方案的范围。

本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,用于实现如上一种自动驾驶横向控制的训练方法。

上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。

一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于电子设备或主控设备中。

本申请还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

至此,已经结合附图所示的优选实施方式描述了本申请的技术方案,但是,本领域技术人员容易理解的是,本申请的保护范围显然不局限于这些具体实施方式,以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

相关技术
  • 一种微流控芯片、微流控检测装置及微流控检测方法
  • 微流控芯片及单细胞检测系统、方法、存储介质
  • 微流控芯片及单细胞检测系统、方法、存储介质
技术分类

06120116560909