一种自动驾驶车辆的动力学预测控制系统和方法与流程

文档序号:20696764发布日期:2020-05-12 15:05阅读:138来源:国知局
一种自动驾驶车辆的动力学预测控制系统和方法与流程

本发明一般性地涉及自动驾驶的系统和方法,特别涉及改进的自动驾驶预测控制。



背景技术:

在自动驾驶系统中,准确的理解和预测周围的驾驶环境和交通参与者,对于自动驾驶车辆或自主车辆做出准确且安全的决策而言是非常重要的。此外,自动驾驶系统必须准确的测量所驱动的车辆(也称为本车)的当前状态,例如,车辆在当前车道内的速度、加速度、道路条件、位置,等等。准确地预测得到响应于例如转向、加速、和/或刹车命令的控制命令的车辆状态变化,也可以是一种用于自动驾驶车辆控制的参数。某些车辆,例如半挂式卡车具有一个牵引车和一个挂车,挂车通过一个枢轴点连接到牵引车,该枢轴点提供了额外的自由度,使得半挂式卡车具有更为复杂的状态,从而导致预测车辆未来的状态的复杂性。



技术实现要素:

本申请一方面通过了一种半挂式卡车的动力学预测控制方法,包括:半挂式卡车中的操作子系统系统接收半挂式卡车的一条期待轨迹和当前车辆状态;期待轨迹中包括多个道路点的位置和方向以及车辆的速度曲线,当前车辆状态中包括卡车的当前位置、当前方向;

对预先建立的半挂式卡车的非线性动力学模型根据期待轨迹和当前车辆状态进行线性化,得到非时变线性的横向动力学模型和纵向运动学模型;

将期待轨迹和当前车辆状态作为输入提供给横向动力学模型和纵向运动学模型、进行模型预测控制,得到横向预控制量和纵向预控制量;

根据车辆当前状态和横向预控制量,对半挂式卡车的方向盘控制机构进行控制;根据车辆当前状态和纵向预控制量,对半挂式卡车的油门控制机构和/或刹车控制机构进行控制。

本申请另有一方面提供了一种半挂式卡车的动力学预测控制系统,其特征在于,包括:一个处理器和一个存储器,该存储器中存储有至少一条机器可执行指令,至少一条机器可执行指令被处理器执行后实现如上所述的半挂式卡车的动力学预测控制方法。

本申请另一方面提供了一种半挂式卡车,其特征在于,包括如上所述的半挂式卡车的动力学预测控制系统、方向盘控制机构、以及油门控制机构和刹车控制机构;

动力学预测控制系统用于接收半挂式卡车的一条期待轨迹和当前车辆状态;期待轨迹中包括多个道路点的位置和方向以及车辆的速度曲线,当前车辆状态中包括卡车的当前位置、当前方向;对预先建立的半挂式卡车的非线性动力学模型根据期待轨迹和当前车辆状态进行线性化,得到非时变线性的横向动力学模型和纵向运动学模型;将期待轨迹和当前车辆状态作为输入提供给横向动力学模型和纵向运动学模型、进行模型预测控制,得到横向预控制量和纵向预控制量;根据车辆当前状态和横向预控制量,对半挂式卡车的方向盘控制机构进行控制;根据车辆当前状态和纵向预控制量,对半挂式卡车的油门控制机构和/或刹车控制机构进行控制;

方向盘控制机构用于根据来自运动预测控制系统的控制,对方向盘进行相应控制;

油门控制机构用于根据来自运动预测控制系统的控制,对油门开度进行相应控制;

刹车控制机构用于根据来自运动预测控制系统的控制,对刹车机构进行相应控制。

附图说明

图1示出了本公开一些方面提供的一个示例系统的结构框图,该系统中包括一个车载控制系统和一个图像处理模块;

图2示出了本公开一些方面提供的一个半挂式卡车的简图,该半挂式卡车具有一个车辆操作子系统,该子系统用于生成车辆运动的动力学模型以及车辆的期待轨迹;

图3示出了本公开一些方面提供的用于自动控制半挂式卡车的车辆操作子系统的示例框图;

图4示出了本公开一些方面提供的使用图3所示车辆操作子系统进行自动控制的方法的流程图;

图5示出了本公开一些方面提供的车辆操作子系统中的自适应控制器的示例结构框图。

具体实施方式

车载控制系统介绍

在以下的描述中,为了便于解释,列出了大量的具体细节,以便对各种实施例进行全面的理解。然而,对于本领域普通技术人员来说,显而易见的是可以在没有这些具体细节的情况下实践各种实施例。

本申请的多个示例实施例中公开了一种对自动驾驶车辆的动态预测控制系统和方法。本公开的一个示例实施例可以用于一个车辆生态系统101中的车载控制系统150的环境中。在一个示例实施例中,车载控制系统150配置有图像处理模块200、且常驻在车辆105中,该系统150可以被配置为如图1所示的架构和生态系统101。但是,对于本领域普通技术人员而言显而易见的是,本申请所公开的和请求保护的图像处理模块200也可以被实施、配置、和使用在多个其它的应用中。

参考图1,其中示出了一个示例生态系统101的框图,在一个示例性实施例中,在生态系统101中可以实施一个车载控制系统150和一个图像处理模块200。以下将详细描述这些构件。生态系统101包括多个系统和构件,这些系统和构件能够生成和/或传递一个或多个信息源/数据源以及相关的服务给安装在车辆105中的车载控制系统150和图像处理模块200。例如,一个摄像头安装在车辆105的外部或内部,该摄像头作为车辆子系统140的一个装置、能够生成图像以及定时数据、并发送给车载控制系统150。车载控制系统150以及执行在系统150中的图像处理模块200能够接收输入的该图像以及定时数据。如下详述,图像处理模块200能够处理输入的图像和提取物体特征,提取的物体特征能够为自动驾驶车辆控制子系统所用,并且图像处理模块200可以作为车辆子系统140中的一个子系统。自动驾驶车辆控制子系统可以使用实时提取的物体特征,来安全有效地导航车辆105和控制车辆105在真实世界中行驶过驾驶环境并避开障碍物。

在本申请提供的一个示例性实施例中,车载控制系统150能够与多个车辆子系统140进行数据通信,所有这些车辆子系统140常驻在车辆105中。一个车辆子系统接口141被用于方便车载控制系统150和多个车辆子系统140之间的数据通信。车载控制系统150包括一个数据处理器171以执行图像处理模块200,用以处理从一个或多个车辆子系统140接收到的图像数据。该数据处理器171能够与一个数据存储装置172合并设置,并作为车载控制系统150中的计算系统170的一部分。数据存储装置172能够被用于存储数据、处理参数、以及数据处理指令。

处理模块接口165被用于方便数据处理器171和图像处理模块200之间的数据通信。在多个示例性实施例中,多个处理模块被配置为与图像处理模块200相类似的配置,并被数据处理器171执行。如图1中的虚线所示,图像处理模块200能被集成到车载控制系统150中,或者可选地被下载到车载控制系统150中,或者与车载控制系统150分离部署。

虽然在图1中没有显示出车载控制系统150和/或车辆子系统140可以包括一个车辆操作子系统300(如图2和3所示),用于生成自动驾驶车辆运动的动力学模型。子系统300的详细情况将在下文进行说明。

车载控制系统150能够用于与广域网120进行数据的接收/发送,以及与和广域网相连接的网络资源122进行数据的接收/发送。车内可联网装置130和/或用户移动装置132能够用于通过网络120进行通信。车载控制系统150可以使用一个可联网装置接口131,以通过车载可联网装置130促进车载控制系统150和网络120之间的数据通信。相类似地,车载控制系统150还可以使用一个用户移动装置接口133,以通过用户移动装置接口133促进车载控制系统150和网络120之间的数据通信。以该种方式,车载控制系统150能够通过网络120实时地接入到网络资源122中。网络资源122用于获取数据处理器171执行的多个处理模块、用于训练内部神经网络的数据内容、多个系统参数以及其它数据。

系统101可以包括广域数据网络120。网络120为一个或多个传统广域数据网,例如因特网、一个蜂窝电话网络、卫星网络、寻呼网络、无线广播网络、游戏网络、wifi网络、点到点网络、ip电话(voip)网络等等。一个或多个这样的网络120能够将一个用户或者一个客户端系统连接到网络资源122,例如多个网站、多个服务器、多个中央控制网站,或者类似的网络资源。网络资源122能够生成和/或发布数据,该数据能够被车辆105通过车内可联网设备130或者用户移动装置132接收到。网络资源122也可以提供网络云服务,网络资源122能够支持用于计算或帮助处理对象输入或者图像输入分析的功能。天线用于通过蜂窝、卫星、无线电或者其它传统的信号接收方案,将车载控制系统150和图像处理模块200连接到数据网络120。这样的蜂窝数据网络是当前可获得的(例如,verizontm,at&ttm,t-mobiletm,等等)。这样基于卫星的数据网络或内容网络也是当前可获得的(例如,siriustm,hughesnettm,等等)。传统的广播网络也是为人熟知的,例如,多个am/fm无线网络、寻呼网络、uhf网络、游戏网络、wifi网络、点到点网络、ip电话(voip)网络,以及类似的网络。从而,如下详述,车载控制系统150和图像处理模块200能够通过车内可联网设备接口131接收基于网络的数据或内容,该车内可联网设备接口131用于连接车内可联网装置接收器130和网络120。以该种方式,车载控制系统150以及图像处理模块200能够支持车辆105其中的多个可连接网络的车内装置和系统。

如图1所示,车载控制系统150和图像处理模块200也能够接收用户移动设备132输入的数据、图像处理控制参数、以及训练内容,该用户移动装置132能够被设置在车辆105之中或靠近车辆105。用户移动装置132可以是标准移动装置,例如蜂窝电话、智能电话、个人数字助理(pad’s)、mp3播放器、平板计算装置(例如,ipadtm)、手提计算机、cd播放器、以及其它移动装置,用户移动装置132能够为车载控制系统150和图像处理模块200产生、接收和/或发送数据、图像处理控制参数以及内容。

如图1所示,移动装置132也能够与网络云120进行数据通信。移动装置132能够从其自身内部的存储部件中获取数据和内容,也能通过网络120从网络资源122中获取数据和内容。此外,移动装置132自身可以包括一个gps数据接收器,多个加速计,多个wifi三角测量或者其它地理位置探测器或部件,这些部件能够被用于在任何时刻确定用户的实时地理位置。在任何情况下,如图1所示,车载控制系统150和图像处理模块200能从移动装置132接收数据。

继续参考图1,示例性实施例中的系统101包括车辆操作子系统140。在车辆105已实施的实施例中,许多标准车辆包括多个操作子系统,例如,多个电子控制单元(ecus),支持对引擎、刹车、变速器、电子系统、排气系统、内部环境等等进行监视/控制的子系统。例如,在车辆操作子系统140(例如车辆105的ecus)与车载控制系统150通过车辆子系统接口141进行通信的数据信号中,包括车辆105的一个或多个部件或者子系统的状态信息。特别地,该数据信号能够从车辆操作子系统140发送到车辆105的一个控制器局域网(can)总线,该数据信号能够通过车辆子系统接口141被车载控制系统150接收和处理。本申请描述的系统和方法能够实质性的与任何使用can总线、或者本申请所定义的使用类似的数据通信总线的机械化的系统一起使用,该系统包括但不限于工业设备、船只、卡车、机械装置或汽车;从而,这里使用的术语“车辆”包括任何上述机械化的系统。本申请描述的系统和方法的实施例也能够与任何配置有某种形式的网络数据通信的系统一起使用,但是,这样的网络通信不是必须的。

继续参考图1,示例性实施例中的系统101以及其中的车辆可操作子系统140能够包括支持车辆105运行的多个车辆子系统。通常而言,车辆105可以是一个轿车、卡车、摩托车、公共汽车、船只、飞机、直升机、割草机、挖土机、摩托雪橇、航空器、旅游休闲车、游乐园车辆、农场设备、建筑设备、有轨电车、高尔夫车、火车、无轨电车。也可以是其它车辆。车辆105可以完全地或部分地以自动模式进行运行。例如,车辆105可以在自动模式下同时控制其自身,并且还可以被操作以确定车辆的当前状态以及车辆所处环境的当前状态,确定在该环境中的其它至少一个车辆的一个预测行为,确定上述其它至少一个车辆执行所述预测行为的可能性所对应信任等级,并且基于所确定的信息来控制车辆105。在处于自动驾驶模式下时,车辆105可以在无人交互或无人控制的情况下运行。

车辆105可能包括各种车辆子系统,例如一个车辆驱动子系统142、车辆传感器子系统144、车辆控制子系统146、以及乘员接口子系统148。如上所述,车辆105还可以包括车载控制系统150、计算子系统170、以及图像处理模块200。车辆105或多或少地包括一些子系统,每个子系统可以包括多个单元。进一步地,车辆105的每个子系统和单元之间可以是互联的。从而,车辆105的一个或多个所描述的功能可以被划分为附加的功能性部件或者实体部件,或者结合为数量更少的功能性部件或者实体部件。在更进一步的例子中,附加的功能性部件或者实体部件可以增加到如图1所示的示例中。

车辆驱动子系统142可以包括为车辆105提供动能的多个可操作部件。在一个示例性实施例中,车辆驱动子系统142可以包括一个发动机或电动机、多个轮子/轮胎、一个变速器、一个电子子系统、以及一个动力源。发动机或者电动机可以是如下设备的任意组合:一个内燃机、电机、蒸汽机、燃料电池发动机、丙烷发动机、或者其它形式的发动机或电动机。在一些示例性实施例中,发动机可以将一种动力源转换为机械能。在一些示例性实施例中,车辆驱动子系统142可以包括多种发动机或电动机。例如,一个油电混合轿车可以包括一个汽油发动机和一个电动机。其它示例也是可能的。

车辆105的多个轮子可以是标准车轮。车辆105的多个轮子可以是多种形式的轮子,包括一个独轮、双轮、三轮、或者一个四轮形式,例如轿车或卡车上的四轮。其它数量的轮子也是可以的,例如六轮或者更多的轮子。车辆105的任何组合的轮子可被操作为与其他轮子的旋转方向不同。“车轮”这个术语通常指的是一种结构,它包括一个轮辋,轮辋被固定在轮胎上,而轮胎通常是由橡胶制成的。可选地,车轮可以包括附在轮辋外表面的轮毂盖,或者轮胎可以暴露在环境中而不包括轮毂盖。如本文所述,在图像中对车轮的检测和/或分割可能包括在可见时对整个车轮/轮胎组合的检测,包括橡胶轮胎和中心车轮。

一个给定车辆的车轮可以表示与变速器固定连接的至少一个车轮,也可以表示与所述车轮的轮缘连接的至少一个轮胎,所述轮缘可以与所述驾驶表面接触。轮子可以是金属和橡胶的组合,也可以是其他材料的组合。传动装置可以包括可操作的元件,以便将机械动力从发动机传递到车轮。出于这个目的,变速器可以包括一个齿轮箱、一个离合器、一个差动齿轮,和多个传动轴。变速器也可以包括其它单元。传动轴可以包括与轮子相匹配的一个或多个轮轴。电子系统可以包括用于传送或控制车辆105的电子信号的单元。这些电子信号可用于启动车辆105中的多个灯、多个伺服机构、多个电动机,以及其它电子驱动或者控制的设备。动力源可以是全部或部分地为发动机或电动机提供动力的能源。也即,发动机或电动机能够将动力源转换为机械能。示例性地,动力源可以包括汽油、石油、石油类燃料、丙烷、其它压缩气体燃料、乙醇、燃料电池、太阳能板、电池以及其它电能源。动力源可以附加的或者可选地包括燃料箱、电池、电容、或者飞轮的任意组合。动力源也可以为车辆105的其它子系统提供能量。

车辆传感器子系统144可以包括多个传感器,这些传感器用于感应车辆105的环境信息和条件信息。例如,车辆感应器子系统144可以包括一个惯性测量单元(imu)、一个全球定位系统(gps)收发器、一个雷达单元、一个激光测距仪/lidar单元、以及一个或多个摄像头或图像捕捉装置。车辆传感器子系统144可以包括用于监视车辆105内部系统的多个感应器(例如,一个氧气(o2)监视器、一个油量表传感器、一个发动机油温传感器,等等)。还可以配置其它传感器。包括在车辆传感器子系统中的一个或多个传感器可以被单独驱动或者被集体驱动,以更新一个或多个传感器的位置、方向,或者这二者。

imu可以包括任何传感器的结合(例如加速器和陀螺仪),用于基于惯性加速来感应车辆105的位置变化和方向变化。gps收发器可以是任何用于估计车辆105的地理位置的传感器。出于该目的,gps收发器可以包括一个接收器/发送器以提供车辆105相对于地球的位置信息。雷达单元可以是使用无线电信号来感应车辆105的所在环境中的对象的系统。在一些实施例中,除感应对象之外,雷达单元还可以用于感应接近车辆105的物体的速度和前进方向。激光测距仪或lidar单元可以是任何使用激光来感应车辆105所在环境中的物体的传感器。在一个示例性实施例中,激光测距仪/lidar单元可以包括一个或多个激光源、一个激光扫描仪、以及一个或多个探测器以及其它系统组件。激光测距仪/lidar单元用于以连续(例如使用外差检测)或者不连续的检测模式进行工作。摄像头可以包括一个或多个用于捕捉车辆105所在环境的多个图像的装置。摄像头可以是静态图像摄像头或者动态视频摄像头。

车辆控制系统146用于控制对车辆105及其构件的操作。相应地,车辆控制系统146可以包括各种单元,例如一个转向单元、一个油门、一个刹车单元、一个导航单元和一个自动控制系统。

转向单元可以是任何调整车辆105前进方向的机械的组合。油门,例如可以被用于控制发动机的运转速度,进而控制车辆105的速度。刹车单元可以包括用于对车辆105进行减速的机械的组合。刹车单元可以以标准方式利用摩擦力来使轮胎减速。在其他实施例中,刹车单元可以将轮子的动能转化为电流。刹车单元也可以采用其它形式。导航单元可以是任何为车辆105确定驾驶路径或路线的系统。导航单元还可以在车辆105行进的过程中动态的更新驾驶路径。在一些实施例中,导航单元用于将来自图像处理模块200的数据、来自gps收发器的数据、以及一个或多个预定地图的数据结合起来,从而确定车辆105的驾驶路径。自动控制单元可以是一个用于识别、评估、以及避免或越过车辆105所在环境中的可能的障碍的系统。通常,自动控制单元可以用于在没有驾驶者的情况下控制车辆105,或者为驾驶者控制车辆提供辅助。在一些实施例中,自动控制单元用于将来自图像处理模块200的数据、gps收发器的数据、雷达数据、lidar数据、摄像头数据、以及来自其它车辆子系统的数据结合起来,来确定车辆105的驾驶路径或路线。车辆控制系统146还可以附加地或者可选地包括其它未示出或未描述的部件。

乘员接口子系统148可以用于允许车辆105与外部传感器、其它车辆、其它计算系统和/或车辆105的一个调用者或者使用者之间的互动。例如,乘员接口子系统148可以包括标准视觉显示装置(例如,等离子显示器、液晶显示器(lcds),触屏显示器、头戴显示器,或其它类似的显示器),扬声器或其它音频输出装置,麦克风或者其它音频输入装置,导航接口、以及控制车辆105的内部环境(例如温度、风扇,等等)的接口。

在一个示例性实施例中,乘员接口子系统148可以提供为车辆105的使用者或乘员与其它车辆子系统进行互动的方式。视觉显示装置可以为车辆105的使用者提供信息。用户接口装置也可以通过触屏从使用者或者驾驶者那里接收输入。触屏可以通过电容感应、电阻感应或者表面声波处理,或者通过其它方式,来至少感应使用者手指的位置和手指移动中的一种。触屏可以感应到平行于触屏表面的手指运动或面状的手指运动,垂直于触屏表面的手指运动,或者以上皆有,也可以用于感应施加到触屏表面的压力水平。触屏可以由一个或多个半透明或透明绝缘层以及一个或多个半透明或透明的导电层构成。触屏也可以具有其它形式。

在其他一些例子中,乘员接口子系统148可以为车辆105提供与其所在环境中的其它车辆进行通信的方式。麦克风可以用于从车辆105的使用者或者驾驶者那里接收音频(例如,一个声音命令或者其它音频输入)。类似地,扬声器可以用于输出音频给车辆的使用者。在一个示例性的实施例中,乘员接口子系统148可以直接或者通过通信网络与一个或多个设备进行无线通信。例如,一个无线通信系统可以使用3g蜂窝通信,例如cdma、evdo、gsm/gprs、或者4g蜂窝通信,例如wimax或lte。可选地,无线通信系统可以与一个无线本地局域网(wlan)进行通信,例如,使用在一些实施例中,无线通信系统146可以直接与一个设备进行通信,例如,使用红外线路,或者zigbee。其它无线协议,例如各种车载通信系统,也在本申请公开的范围之内。例如,无线通信系统可以包括一个或多个专用短程通信(dsrc)装置,这些装置会与车辆和/或路边站进行公开或私密的数据通信。

计算系统170能控制车辆105的部分或者全部功能。计算系统170可以包括至少一个数据处理器171(可以包括至少一个微处理器),数据处理器171执行存储在非易失性计算机可读介质中存储的处理指令,例如数据存储装置172。计算系统170也可以是多个计算装置,这些计算装置分布式地控制车辆105的个别部件或者个别子系统。在一些实施例中,数据存储装置172中可以包含被数据处理器171执行来实现车辆105的各种功能的处理指令(例如,程序逻辑),这些功能包括本申请所描述的附图中的功能。数据存储装置172还可以包括其它指令,包括用于数据发送的指令、用于数据接收的指令、用于互动的指令、或者用于控制一个或多个车辆驱动子系统142、车辆感应器子系统144、车辆控制子系统146、以及乘员接口子系统148的指令。

除存储处理指令之外,数据存储设备172可以存储多种信息,包括存储数据,例如对象处理参数、训练数据、道路地图、和路径信息以及其它信息。在车辆105以自动方式、半自动方式和/或手动模式运行的期间,这些信息可以被车辆105和计算系统170所使用。

车辆105可以包括一个用户界面,该用户界面用于为车辆105的使用者、驾驶者或乘员提供信息或指令,或者接收来自车辆105的使用者或者乘员的输入。用户界面可以控制或者使能控制交互式图像的内容和图层,该交互式图像可以显示在一个显示设备上。进一步地,用户界面可以包括一组乘员接口子系统148中的一个或多个输入/输出设备,例如显示设备、扬声器、麦克风、或者一个无线通信系统。

计算系统170可以根据从各种车辆子系统(例如,车辆驱动子系统142,车辆传感器子系统144,以及车辆控制子系统146)接收到的输入,或者从乘员接口子系统148接收到的输入,来控制车辆105的功能。例如,计算系统170可以使用来自车辆控制系统146的输入来控制转向单元,来避开由车辆传感器子系统144和图像处理模块200检测到的障碍物,以受控方式进行运动,或者跟随基于图像处理模块200的输出的路径或路线。在一个实施例中,计算系统170可以用来控制车辆105及其子系统的多个方面。

虽然图1中显示了集成到车辆105中的各种构件,例如车辆子系统140、计算系统170、数据存储设备172、以及图像处理模块200,这些部件中的一个或多个部件可以搭载到车辆105上或单独关联到车辆105上。例如,数据存储装置172可以部分或者全部地独立于车辆105存在。从而,车辆105能够以分离的或者集成的设备单元的形式而存在。构成车辆105的设备单元可以以有线通信或者无线通信的方式实现通信聚合。

此外,其它的数据和/或内容(本申请称为辅助数据)能够被如上所述的车载控制系统150从本地资源和/或远程资源获得。基于多个因素,辅助数据可以被用于扩展、修改或者训练图像处理模块200的操作,该多个因素包括用户操纵车辆的环境(例如,车辆的位置、具体的目的地、行进方向、速度、一天中的时间、车辆状态,等等)、以及如文中所述的从本地或远程的多个资源所获取的其它多种数据。

在一个特别的实施例中,车载控制系统150和图像处理模块200能够作为车辆105的车内部件得以实施。在多个示例性实施例中,车载控制系统150和与其进行数据通信的图像处理模块200能够被实施为集成部件或者独立部件。例如,图像处理模块200可以包括在存储在一个非易失性计算机可读介质中的多个指令中,例如数据存储装置172,使得数据处理器171执行多种图像处理功能。在一个示例性实施例中,通过与移动设备132进行数据连接和/或通过网络120与网络资源122进行数据连接,车载控制系统150的软件部件和/或图像处理模块200的软件部件能够得到动态的更新、修改,和/或扩展。车载控制系统150能够周期性地询问一个移动设备132或者一个网络资源122以进行更新,或者该更新能够推送给车载控制系统150。

自动驾驶车辆的预测控制

本申请多个示例实施例公开了一种对自动驾驶车辆响应于可能的控制命令的反应进行建模的系统和方法,该系统和方法用于预测车辆针对控制命令(例如方向盘位置指令,加速和/或刹车踏板控制指令)的反应。图2是一个半挂式卡车200的简化图,半挂式卡车200中具有一个车辆操作子系统300,用于生成本公开的一些方面提供的车辆期待轨迹和车辆运动的动态模型。如图2所示,图1中的车辆105是一个半挂式卡车200。半挂式卡车200可以包括一个牵引车205和一个挂车210,牵引车205和挂车210通过一个枢轴点例如一个五轮式悬挂系统进行连接。半挂式卡车200可以包括一个车载控制系统(例如图1中的车载控制系统150),用于基于一个期待轨迹215来自动地控制半挂式卡车205的行驶。进一步,牵引车205可以包括多个车辆子系统140(图中未示出)和/或一个车载控制系统150(图中未示出),车载控制系统150包括上述车辆操作子系统300。虽然本公开中的一些方面以使用动力学模型控制半挂式卡车200作为示例车辆进行相关描述,本公开还可以应用于其它类型的车辆105的自动控制,包括乘用车,铰接式公共汽车、挂接多个挂车的牵引车205,等等。

对半挂式卡车200的控制可以包括生成命令以使半挂式卡车200的运动与期待的轨迹215相匹配,例如转向命令、油门命令(例如加速)、和/或刹车命令。在一些实施例中,为了确定控制命令的值,可能需要对半挂式卡车200对可能的命令的物理响应进行建模,以便预测这些命令的值,从而使半挂卡车200在最小误差的情况下沿着期望的轨迹215行驶。

图2还示出了一种定义半挂式卡车200的当前状态和期待轨迹215之间的各种误差的技术。在示出的示例中,该误差可以包括一个前进方向误差eψ和一个相对横向位置误差ey。如本公开中所使用的情况,半挂式卡车200和期待轨迹215之间的各种误差的组合(例如一个前进方向误差eψ和一个相对横向位置误差ey)可以被称为一个误差状态。图2还示出了一个相对挂车夹角ψf,该角度定义了牵引车205和挂车210之间形成的角度。

本申请的多个方面一般性地涉及半挂式卡车200的路径跟随的自动控制系统和技术。在某些实施例中,该自动控制基于所提供的未来参考点(例如车辆的期待轨迹215)。例如,在某些实施例中,方向盘角度命令和油门命令可以在线计算(例如实质的实时)并通过连接关系进行执行。

车辆操作子系统300可以包括一个模型预测控制器(modelpredictivecontrol,mpc)330(如图3所示)。用于描述半挂式卡车200响应于输入命令的运动的复杂系统的模型,可以是高维的并且可能是高度非线性的,这将平衡mpc330的求解时间和可行性。本公开的多个方面可以解决半挂式卡车200的多种动态需求,在某些实施例中,这些动态需求可以包括通过减少和/或简化高维和/或非线性的动态模型到6维线性系统来逼近半挂式卡车200的动态状态。可以通过求解为一个有约束的二次规划(quadraticprogram,qp)来有效地求解该线性系统,如下文所述。

在一些实施例中,半挂式卡车200的自动控制(例如自动驾驶)可以包括最小化半挂式卡车200当前状态和期待轨迹215之间的误差,使得半挂式卡车200的运动实际尽可能地与期待轨迹215相匹配。半挂式卡车200跟随期待轨迹215的能力不仅依赖于半挂式卡车200的当前状态,还依赖于驱动半挂式卡车200的命令以及半挂式卡车200对这些命令的反应。从而为了使得半挂式卡车200能够匹配上期待轨迹215,车载控制系统150、车辆子系统140以及车辆操作子系统300(这里简称为车辆操作子系统300)中的一个或多个可以预测驱动半挂式卡车200对未来可能的命令的反应,该未来可能的命令用于自动驱动该半挂式卡车200。车辆操作子系统300预测半挂式卡车200响应于输入命令的准确度,影响车辆操作子系统300控制半挂式卡车200匹配半挂式卡车200的运动与期待轨迹215的准确度。

预测半挂式卡车200对输入命令的响应的一个技术可以包括使用一个运动学模型来建模半挂式卡车200对这些命令的响应。例如,半挂式卡车200的运动学模型可以将半挂式卡车200的当前速度和位置作为一个整体进行考虑,并预测半挂式卡车200响应于输入给车辆驾驶子系统142的输入命令的未来运动。但是,运动学模型可能无法考虑到半挂式卡车200的一些属性,例如,质量、惯性力矩、挂车角度ψf、转向刚度、牵引车205和挂车210的连接,等等。从而,由于各种可能影响半挂式卡车200响应于这些命令的物理参数没有考虑到运动学模型中,运动学模型提供的预测的准确度将会受到限制。

本公开中的一些方面与动力学模型相关,动力学模型用于更准确地预测半挂式卡车200响应于输入命令的运动。在至少一个实施例中,动力学模型可以基于拉格朗日力学,并且描述半挂式卡车200响应于某种输入力量的反应(这些输入力量反过来又可能是基于命令和/或外力,如道路的坡度、拐角处的曲率等)。动力学模型可以表达半挂式卡车200的内部动力学特征,包括质量、惯性力矩、挂车角度ψf、半挂式卡车200每个轮胎的转向刚度。该动力学模型能更准确地反映半挂式卡车200所受的复杂多变的力。在一些实施例中,动力学模型可能是高维且非线性的。一些实施方式可以包括一个或多个模型预测控制器(modelpredictivecontroller,mpc)330(如图3所示),模型预测控制器用于确定跟随期待轨迹215的方向盘命令和加速命令。但是,由于动力学模型的高维特点和非线性特点,使得动力学模型的计算量很大,无法在实时自动控制所需的速度下求解这样的非线性模型,从而mpc可能无法以足够高的速度来求解动力学模型来实时控制半挂式卡车200进行自动驾驶。

从而,在一些实施例中,车辆操作子系统300(例如通过mpc330)可以利用小角度假设(也可以称为小角度近似),推导出基于全非线性动态模型的线性系统模型。一个小角度假设的示例包括一个近似即sinθ≈θ,θ的值近似于0(例如,“小角度”值)。在一些实施方式中,一个小角度可以被定义为θ小于1弧度,也可以使用其它的定义小角度的阈值,例如θ小于10弧度、或者θ小于5弧度。本领域普通技术人员可以理解的是,也可以使用其它的小角度假设来简化一些数学表达式。通过使用基于小角度近似的小角度表达式,车辆操作子系统300可以将动力学模型表达为一个或多个普通有约束的二次规划(quadraticprogram,qp)问题。普通有约束的qp问题可以使用特定的qp求解器有效地求解得到。mpc330可以包括一个或多个特定的qp求解器来解决所生成的qp问题。

为了研发一种自动驾驶的控制系统,车辆操作子系统300将非线性车辆模型(也即车辆的动力学模型)简化为一个线性模型。简化处理的步骤包括两部分,1、推导出一个关于期待轨迹的差分模型,2、用小角度近似来线性化差分模型。第一,车辆操作子系统300使用一个动力学模型,该动力学模型中状态变量包括相对于参考轨迹的位置误差和方向误差。例如,ey为卡车牵引车重心距参考车道的距离,eψ为卡车相对于参考车道的方向误差。第二,在正常工况下,误差状态的幅值通常较小,考虑到这一点,通过在常微分方程(也即车辆的差分模型)中去掉高阶项,将车辆模型进一步简化为线性模型。从而,将非线性车辆模型简化为非时变线性模型。

示例性地,根据期待轨迹推导出非线性动力学模型的非线性差分模型;其中,非线性差分模型的状态包括位置误差和方向误差;示例性地,该操作包括:根据期待轨迹和当前车辆状态,对非线性动力学模型进行差分,推导出非线性差分模型;其中,位置误差为卡车当前的位置与期待轨迹中当前道路点的位置之间的误差,方向误差为卡车当前方向与期待轨迹中当前道路点的方向之间的误差。

在当前位置误差处于预定的位置误差幅值内和/或方向误差处于预定的方向误差幅值内的情况下,将非线性差分模型简化为非时变线性的横向动力学模型和纵向运动学模型。其中,预定的误差幅值可以是预先设定的经验值或实验值。示例性地,简化非线性差分模型的操作可以是:基于小角度近似,在非线性差分模型中去掉高阶项,得到非时变线性的横向动力学模型和纵向运动学模型。

通过上述线性化操作,可以将非线性的动力学模型简化为非时变线性模型。示例性地,非时变线性模型可以是6维线性模型,在横向动力学模型中可以包括四个维度:横向位置、横向速度、车辆方向的角度、方向角速度,在纵向动力学模型中可以包括两个维度:纵向位置、纵向速度。

图3中示出了本公开多个方面提供的车辆操作子系统300的结构框图,车辆操作子系统300用于对如图2所示的半挂车卡车200进行自动控制。车辆操作子系统300可以接收期待轨迹215。在一些实施例中,期待轨迹215可以通过图3所示的车辆操作子系统300外部的一个子系统计算得到。但是,在其他的一些实施例中,车辆操作子系统300可以用于生成期待轨迹215。期待轨迹215可以定义半挂式卡车200跟随的多个道路点和一个速度曲线。

一个实施例中的车辆操作子系统300包括一个车辆状态312数据库、一个半挂式卡车内部动力学参数数据库320、模型预测控制器330(也被简称为mpc)、一个自适应控制器340、以及一个比例积分微分(pid)控制器345。车辆操作子系统300可以用于生成一个输出方向盘命令350和一个输出踏板命令355。在一些实施例中,输出方向盘命令350和输出踏板命令355可以分别提供给方向盘和加速和/或刹车踏板或执行机构,来控制半挂式卡车200的转向位置和加速/减速。

虽然车辆状态310数据库和半挂车内部动力学参数数据库320如图所示包括在车辆操作子系统300中,车辆状态310数据库和半挂式卡车内部动力学参数数据库320可以位于车载控制系统150和/或车辆子系统140的其它位置。

模型预测控制器330可以包括一个非时变线性模型331(也即上述的通过线性化处理得到的非时变线性模型),以及一个或多个qp求解器335和337。该非时变线性模型331可以包括一个横向动力学模型332和一个纵向运动学模型333。横向动力学模型332和纵向运动学模型333均可以接收期待轨迹215以及车辆状态310。横向动力学模型332也可以接收半挂式卡车200的内部动力学参数,包括以下的一个或多个:半挂式卡车200的质量、半挂式卡车200的惯性力矩、挂车夹角ψf、转向刚度、牵引车205和挂车210的连接,等等。

在一些实施例中,mpc330可以从一个外部模块接收期待轨迹215。在一个实施例中,车载控制系统150包括一个用于生成期待轨迹215的运动规划模块。期待轨迹215可以定义局部坐标系中的位置、前进方向、速度和/或时间。期待轨迹215可以以固定时间间隔进行离散化,以定义半挂式卡车200跟随的多个路径点。在一些实施例中,局部坐标系的坐标基础和原点可以与牵引车205的质心的当前的位置和方向一致。

在一些实施例中,除了期待轨迹215,mpc330还可以接收来自车辆状态数据库310的车辆状态。在一些实施例中,车辆状态可以包括位置、前进方向、速度、偏航角、和/或偏航角速率。参考图1,在一些实施例中,车辆传感器子系统144包括一个gps-惯性测量单元(gps-imu),用于至少生成车辆状态数据中的一部分。

在一些实施例中,mpc330可以用于使用横向动力学模型332和纵向运动学模型333来生成两个qp问题。在一些实施例中,mcp330确定半挂式卡车200相对于道路参考系的初始误差状态,该状态可以用于形成第一个参考点。mpc330可以使用非时变线性模型331对半挂式卡车200在预测范围内的运动进行建模。在一个实施例中,预测范围可以是3-4秒的时间,但是在其他的实施例中预测范围也可以是更短或更长的时间。在一些实施例中,mpc330可以使用非时变线性模型331来预测半挂式卡车200的运动、预测半挂式卡车200的平均参考轨迹速度、以及在期待轨迹215上每个道路点(例如偏航率和偏航加速度)的曲线。

在一些实施例中,mpc330将期待轨迹和当前车辆状态作为输入提供给横向动力学模型332和纵向运动学模型333,通过二次规划方法确定得到横向预控制量和纵向预控制量;

其中,二次规划的目标是:减少车辆预测状态包括的预测位置和预测方向与期待路径包括的道路点的位置和方向之间的误差、且保持横向预控制量的幅值和变化率和纵向预控制量幅值和变化率最小,二次规划的求解对象:横向预控制量和纵向预控制量,二次规划的约束是:横向动力学模型332和纵向动力学模型333。

通过二次规划方法确定得到横向预控制量和纵向预控制量的处理中,qp求解器335和337分别通过二次规划得到未来多个时间点上每个时间点的横向预控制量集合和纵向预控制量集合,选择最近时间点上的横向预控制量集合和纵向预控制量集合,其中,横向预控制量集合包括多个横向预控制量,纵向预控制量集合中包括多个预控制量集合;qp求解器335根据优化目标在横向预控制量集合中确定一个横向预控制量、qp求解器337在纵向预控制量集合中确定一个纵向预控制量;其中,优化目标是:代价函数的值最小,该代价函数的值包括第一项和第二项的加权和值,第一项是车辆预测状态包括的预测位置和预测方向与期待路径包括的道路点的位置和方向之间的误差,第二项是横向预控制量的幅值和变化率以及纵向预控制量的幅值和变化率。

在两个qp求解器335和337分别求解qp问题后,自适应控制器340根据当前车辆状态对横向预控制量进行自适应调整,得到横向控制量。示例性地,自适应控制器340根据当前车辆状态和历史车辆状态、以及横向预控制量,进行参数自适应调整得到自适应参数;根据当前车辆状态,预控制量和自适应参数进行反馈控制,得到横向控制量;其中,当前车辆状态还至少包括以下之一:挂车是空箱状态、轻箱状态、重箱状态、风力、风速、道路坡度、道路摩擦系数;历史车辆状态包括上一次预测控制中记录的车辆状态。将横向控制量携带在方向盘命令中,并将方向盘命令发送给半挂式卡车的方向盘控制机构。

pid控制器345根据当前车辆状态对纵向预控制量进行比例积分微分pid调整,得到纵向控制量;示例性地,pid控制器345通过比例积分微分pid方法,根据车辆状态和纵向预控制量,确定得到纵向控制量,纵向控制量可以包括油门开度和/或刹车踏板控制量;将纵向控制量携带在踏板命令中,并将踏板命令发送给半挂式卡车的油门控制机构和/或刹车控制机构。

方向盘控制机构根据方向盘命令中携带的横向控制量,对方向盘进行相应控制。

油门控制机构根据踏板命令中携带的油门开度,对油门开度进行相应控制。

刹车控制机构根据踏板命令中携带的刹车踏板控制量,对刹车踏板进行相应控制。

通过qp方法,整个过程可以以比类似的基于运动学模型的mpc实现更高的更新速度得到执行。例如,使用所述的技术,更新速率可以达到千赫兹级别。

确定动力学模型的技术示例

本公开的一个目标包括确保半挂式卡车200的自动控制以平滑的方式将误差状态降低至零。平滑地降低误差包括防止命令的突然改变或者急剧改变,这样可以导致半挂式卡车200更可预测的运动和/或更舒适的运动。通过使得在相同道路上的其它驾驶员能够更有效地预测半挂式卡车200的运动,半挂式卡车200的预测运动可以增加自动驾驶的安全性。从而,车辆操作子系统300可以用于通过使用例如自适应控制器340和/或pid控制器345来平滑方向盘命令350和/或踏板命令355。

图4示出了本公开多个方面提供的使用图3所示车辆操作子系统300来自动控制车辆105的方法的示例。本公开描述的方法400可以被一个或多个处理器执行,这一个或多个处理器包括集成在车辆操作子系统中的一个处理器、数据处理器171、和/或包括在车辆子系统140中的一个处理器。为了清楚起见,将一个或多个处理器的处理器组简称为单数的“一个处理器”。

方法400从处理块401开始。在处理块405中,处理器接收期待轨迹215和车辆状态。在一些实施例中,期待轨迹215可以从运动规划模块接收到的,车辆状态可以是从车辆状态数据库310接收到的。

在处理块410中,处理器对预先建立的半挂式卡车的非线性动力学模型根据期待轨迹和当前车辆状态进行线性化,得到非时变线性的横向动力学模型和纵向运动学模型。

如上所述,根据期待轨迹推导出非线性动力学模型的非线性差分模型;其中,非线性差分模型的状态包括位置误差和方向误差;在当前位置误差处于预定的位置误差幅值内和/或方向误差处于预定的方向误差幅值内的情况下,将非线性差分模型简化为非时变线性的动力学模型和纵向运动学模型。

处理器推导出出非线性动力学模型的非线性差分模型的操作,包括:根据期待轨迹和当前车辆状态,对非线性动力学模型进行差分,推导出非线性差分模型;其中,位置误差为卡车当前的位置与期待轨迹中当前道路点的位置之间的误差,方向误差为卡车当前方向与期待轨迹中当前道路点的方向之间的误差。

处理器执行的简化操作包括:基于小角度近似,在非线性差分模型中去掉高阶项,得到非时变线性的横向动力学模型和纵向运动学模型。

在处理块415中,将期待轨迹和当前车辆状态作为输入提供给横向动力学模型和纵向运动学模型、进行模型预测控制,得到横向预控制量和纵向预控制量;

其中,处理器将期待轨迹和当前车辆状态作为输入提供给横向动力学模型和纵向运动学模型,通过二次规划方法确定得到横向预控制量和纵向预控制量;二次规划的目标是:减少车辆预测状态包括的预测位置和预测方向与期待路径包括的道路点的位置和方向之间的误差、且保持横向预控制量的幅值和变化率以及纵向预控制量的幅值和变化率最小,二次规划的求解对象:横向预控制量和纵向预控制量,二次规划的约束是:横向动力学模型和纵向动力学模型。

示例性地,通过二次规划方法确定得到横向预控制量和纵向预控制量,包括:通过二次规划得到未来多个时间点上每个时间点的横向预控制量集合和纵向预控制量集合,选择最近时间点上的横向预控制量集合和纵向预控制量集合,其中,横向预控制量集合包括多个横向预控制量,纵向预控制量集合中包括多个预控制量集合;根据优化目标在横向预控制量集合中确定一个横向预控制量、在纵向预控制量集合中确定一个纵向预控制量;其中,优化目标是:代价函数的值最小,该代价很少的值包括第一项和第二项的加权和值,第一项是车辆预测状态包括的预测位置和预测方向与期待路径包括的道路点的位置和方向之间的误差,第二项是横向预控制量的幅值和变化率以及纵向预控制量的幅值和变化率。

在处理块420中,根据车辆当前状态和横向预控制量,对半挂式卡车的方向盘控制机构进行控制;在处理块425中,根据车辆当前状态和纵向预控制量,对半挂式卡车的油门控制机构和/或刹车控制机构进行控制。

其中,根据车辆当前状态和横向预控制量,对半挂式卡车的方向盘控制机构进行控制,包括:根据当前车辆状态对横向预控制量进行自适应调整,得到横向控制量;示例性地,根据当前车辆状态和历史车辆状态、以及横向预控制量,进行参数自适应调整得到自适应参数;根据当前车辆状态,预控制量和自适应参数进行反馈控制,得到横向控制量。将横向控制量携带在方向盘命令中,并将方向盘命令发送给半挂式卡车的方向盘控制机构。

其中,根据车辆当前状态和纵向预控制量,对半挂式卡车的油门控制机构和/或刹车控制机构进行控制,包括:通过比例积分微分pid方法,根据车辆状态和纵向预控制量,确定得到纵向控制量;将纵向控制量携带在踏板命令中,并将踏板命令发送给半挂式卡车的油门控制机构和/或刹车控制机构。

方法400结束于处理块430。

本公开描述的技术具有多个优点。例如,本公开提供的动力学模型可以准确地获取和使用半挂式卡车200的详细的内部动力学特征,例如质量、惯性力矩、挂车夹角、以及轮胎模型的转向刚度。通过调整相关的参数,本公开的多个实施例可以生成更为准确和可靠的控制命令。例如,由于挂车载荷的动力学模型的不同,不同的挂车210的载荷会导致不同的控制命令。并且,通过使用线性动力学模型使得预测控制可实施为特定的优化问题(例如有约束的qp问题),该问题可以通过主动qp求解器集335和337得到有效求解。在特定实施例中,求解的平均速度可以达到1000hz(1毫秒),该速度可以显著提高动力学模型的在线控制能力。动力学模型还可以作为模型参考控制技术,如模型参考自适应控制,该技术能够考虑模型的不确定性和干扰。

自适应控制器实施例示例

图5示出了本公开多个方面提供的应用于车辆操作子系统300中的自适应控制器340的结构框图。如本申请中使用的情况,自适应控制是指一种对不确定性进行建模并降低随时间变化的干扰的方法。如图5所示,自适应控制器340用于从qp求解器335接收命令505,并输出方向盘命令350。在一些实施例中,自适应控制器340包括一个自适应子控制器515、一个参数估计器525和卡车520。

参数估计器525用于根据输入的来自卡车520的车辆当前车辆状态和记录的历史车辆状态、以及来自qp求解器335的横向预控制量,根据自适应律进行参数自适应调整得到自适应参数。在一些实施例中,可以预先设置一系列的自适应律,该自适应律中包括输入、规则以及输出,通过输入的车辆状态和历史车辆状态对应到相应的规则中,得到规则对应的输出也即自适应参数。

自适应控制器515根据输入的来自卡车520的当前车辆状态,来自qp求解器335的横向预控制量和来自参数估计器525的自适应参数、以及反馈控制律进行反馈控制,得到横向控制量。反馈控制律中预设了反馈控制规则。反馈控制规则预先设置有对输入进行运算的方法,或者对输入进行对应的规则。

虽然已经显示、描述和指出本申请的基本新颖特征应用于某些创造性的实施例,可以理解的是上述被认为是只说明本申请的原则并不是穷尽或限制本申请公开的形式。根据上述教导,修改或变化是可能的。所讨论的实施例被选择和描述,以提供本申请的原则及其实际应用的最佳说明,以使本领域普通技术人员能够在各种实施例中利用本发明,并进行各种适合于特定用途的修改。所有这些修改和变更均在本发明的范围内,根据其所享有的权利的宽度进行解释时,本发明的范围由所附权利要求书确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1