CN113548032B - 改善车辆控制***的控制子***的性能的方法和*** - Google Patents

改善车辆控制***的控制子***的性能的方法和*** Download PDF

Info

Publication number
CN113548032B
CN113548032B CN202011476078.2A CN202011476078A CN113548032B CN 113548032 B CN113548032 B CN 113548032B CN 202011476078 A CN202011476078 A CN 202011476078A CN 113548032 B CN113548032 B CN 113548032B
Authority
CN
China
Prior art keywords
actuation
control
output
control subsystem
subsystem
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011476078.2A
Other languages
English (en)
Other versions
CN113548032A (zh
Inventor
王禹
罗琦
姜舒
缪景皓
胡江滔
王京傲
周金运
许嘉轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu USA LLC
Original Assignee
Baidu USA LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Baidu USA LLC filed Critical Baidu USA LLC
Publication of CN113548032A publication Critical patent/CN113548032A/zh
Application granted granted Critical
Publication of CN113548032B publication Critical patent/CN113548032B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/04Conjoint control of vehicle sub-units of different type or different function including control of propulsion units
    • B60W10/06Conjoint control of vehicle sub-units of different type or different function including control of propulsion units including control of combustion engines
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • B60W50/045Monitoring control system parameters
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/18Conjoint control of vehicle sub-units of different type or different function including control of braking systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/20Conjoint control of vehicle sub-units of different type or different function including control of steering systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/06Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D6/00Arrangements for automatically controlling steering depending on driving conditions sensed and responded to, e.g. control circuits
    • B62D6/002Arrangements for automatically controlling steering depending on driving conditions sensed and responded to, e.g. control circuits computing target steering angles for front or rear wheels
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0008Feedback, closed loop systems or details of feedback error signal
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0019Control system elements or transfer functions
    • B60W2050/0028Mathematical models, e.g. for simulation
    • B60W2050/0037Mathematical models of vehicle sub-units
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0043Signal treatments, identification of variables or parameters, parameter estimation or state estimation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2510/00Input parameters relating to a particular sub-units
    • B60W2510/06Combustion engines, Gas turbines
    • B60W2510/0604Throttle position
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2510/00Input parameters relating to a particular sub-units
    • B60W2510/18Braking system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2510/00Input parameters relating to a particular sub-units
    • B60W2510/20Steering systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D15/00Steering not otherwise provided for
    • B62D15/02Steering position indicators ; Steering position determination; Steering aids
    • B62D15/025Active steering aids, e.g. helping the driver by actively influencing the steering system after environment evaluation

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
  • Traffic Control Systems (AREA)

Abstract

本公开提供一种改善车辆控制***的控制子***的性能的方法和***,通过考虑控制子***致动***中的时延,来减少自主驾驶车辆(ADV)中的控制子***(例如,油门、制动或转向)中的二阶动态延迟,并增加控制***带宽。从ADV的自主驾驶***接收控制输入。控制输入被转换为ADV的控制子***的控制命令。对应于控制子***的线控(“实际”)致动动作,生成参考致动输出和预测致动输出。确定参考致动动作与线控致动动作之间的控制误差。确定预测致动动作与线控致动动作之间的预测控制误差。确定自适应增益并将其应用于线控致动动作,以生成第二线控致动动作。

Description

改善车辆控制***的控制子***的性能的方法和***
技术领域
本公开的实施例一般涉及操作自主车辆。更特别地,本公开的实施例涉及一种有效的实时过程,用于解决自主车辆控制子***中时延和致动动态延迟,以改善自主车辆控制。
背景技术
以自主模式(例如,无人驾驶)操作的车辆可以减轻乘坐者,尤其是驾驶员的一些驾驶相关责任。当以自主模式操作时,车辆可以使用车载传感器导航到各种位置,从而允许车辆以最小的人机交互或者在没有任何乘客的一些情况下行驶。
运动规划和控制是自主驾驶中的关键操作。但是,常规的运动规划操作主要根据其曲率和速度(一阶动力学)来估计完成给定路径的难度,而不考虑控制子***(如制动器、油门和转向)的二阶动力学。
由于使用控制***,例如制动、油门和转向(“线控驱动”)的电子确定和致动,因此在车辆致动***中存在一些延迟时间和***动态延迟。由于检测到需要控制命令以保持在规划的轨迹上的延迟,因此可能发生时延。时延可以归因于识别车辆周围物体所需的数据收集和处理时间,并且归因于保持在规划的轨迹上所需的控制命令的计算。时延可以在50-100毫秒(ms)的数量级上。当控制子***(例如制动、油门或转向)接收到控制命令,并且控制子***必须致动物理组件以执行控制命令时,控制子***中可能发生致动动态延迟。致动动态延迟可能导致非期望的油门/制动/转向控制响应,尤其是在快速加速或急转弯驾驶情况下。例如,在典型的侧路通过的驾驶场景中,当自主车辆从当前车道快速切换到另一车道时,与基于来自控制模块的转向指令的期望转向角相比,转向动作通常表现出一些动态滞后。因此,整个车道改变过程可能变得不顺畅,并且对于车辆中的乘客而言是不舒适的。
致动动态延迟可归因于物理致动器或元件,例如电动机、传动带、刹车片和汽缸或内燃机,需要时间来执行实现控制命令的物理动作。接收到的命令的致动动态延迟可以表现为致动的上升时间、超调量以及用于物理致动器的测量状态匹配所接收的控制命令的建立时间。致动动态延迟可以在数百毫秒的数量级上,最长可达500毫秒;比时延长得多。
诸如制动、转向和油门的控制子***通常由第三方供应商提供,与为自主车辆开发控制***的一方不同。因此,自主车辆控制子***的开发人员必须将控制子***的操作特性视为“黑匣子”。因此,在自主车辆领域的先前工业努力试图在转向致动上设计简单的比例-积分-微分(proportional-integral-derivative,PID)控制器,以减少致动动力学的负面影响。然而,由于基于PID的控制器的结构过于简化,PID控制器只能在某种程度上增加转向动态响应,而不能完全解决致动时延和动态延迟问题。
时延幅度可能比动态延迟大得多,并且可能提出更严峻的控制挑战,而线性动力学模型无法轻易进行补偿,因为从频域的角度来看,时延是一种非线性***。更严峻的是,时延的存在不仅延缓了***响应,而且很容易使闭环控制***失去稳定性。
发明内容
在第一方面中,提供一种改善自主驾驶车辆(ADV)控制***的控制子***的性能的方法,包括:
通过反馈控制器和参考***接收ADV的控制子***的致动***的控制输入;
生成与控制输入相对应的预测致动动作和与控制输入相对应的参考致动动作;
确定控制子***的致动器的第一致动命令输出与参考致动输出之间的控制误差,以及确定第一致动命令输出与预测致动输出之间的预测控制误差;
生成基于控制误差和预测控制误差的自适应增益;以及
输出第二致动命令以致动控制子***,其中第二致动命令基于第一致动命令输出和自适应增益。
在第二方面中,提供一种数据处理***,包括:
处理器;以及
与处理器耦接的存储器,用于存储指令,所述指令在由处理器执行时使处理器执行如第一方面所述方法的操作。
在第三方面中,提供一种非暂时性机器可读介质,具有存储在其中的指令,所述指令在由处理器执行时使处理器执行如第一方面所述方法的操作。
在第四方面中,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法的操作。
根据本公开,通过考虑控制子***致动***中的时延,减少自主驾驶车辆(ADV)中的控制子***(例如,油门、制动或转向)中的二阶动态延迟,并增加控制***带宽。
附图说明
本公开的实施例通过示例的方式示出并且不限于附图中的图,在附图中相同的附图标记表示相似的元件。
图1是示出根据一个实施例的联网***的框图。
图2是示出根据一个实施例的自主车辆的示例的框图。
图3A和图3B是示出根据一个实施例的与自主车辆一起使用的自主驾驶***的示例的框图。
图3C示出根据一些实施例的示例ADV控制命令和对控制命令的自主车辆控制子***致动动作响应。
图3D示出根据一个实施例的在自主车辆中使用的转向控制子***以及动力源。
图4是示出根据一个实施例的自主驾驶***的架构的框图。
图5A是示出根据一个实施例的数据流和***的框图500,***结合了扩展模型参考自适应控制器(modelreferenceadaptivecontroller,MRAC),扩展模型参考自适应控制器改善自主驾驶车辆(ADV)的一个或多个控制子***的致动。
图5B是示出根据一个实施例的模型参考自适应控制器的数据流的框图。
图5C是示出根据一个实施例的由模型参考自适应控制器修改的子***控制致动的框图。
图6是示出根据一个实施例的使用模型参考自适应控制器来改善控制子***(例如,油门、制动、转向)的致动的方法的框图。
图7A和7B是示出根据一个实施例的使用模型参考自适应控制器来改善控制子***(例如,油门、制动、转向)的致动的方法的框图。
具体实施方式
将参考以下讨论的细节描述本公开的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明并且不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各个实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简要讨论,没有描述公知或常规的细节。
说明书中对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性可包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。
在一个实施例中,一种改善自主驾驶车辆(ADV)控制***的控制子***的性能的方法,包括:通过反馈控制器和参考***接收ADV的控制子***的致动***的致动命令。控制子***可以是,例如油门控制子***、制动控制子***或转向控制子***。生成与致动命令相对应的预测致动动作。对应于致动命令生成参考致动输出。在一个实施例中,参考致动输出(581)至少部分地基于控制子***的动态模型的二阶属性。控制子***的二阶属性可以包括以下中的一个或多个:启动控制子***的控制动作的时延、上升时间、超调量或控制子***的致动器的建立时间。在控制子***的致动器的第一致动命令输出和参考致动输出之间确定控制误差。在第一动作命令输出和预测致动输出之间确定预测控制误差。在一个实施例中,生成预测致动输出进一步包括生成时延信息,并且预测致动输出至少部分地基于所生成的时延信息。然后,基于控制误差和预测控制误差生成自适应增益,并且输出第二致动命令以致动控制子***。第二致动命令基于第一致动命令输出和自适应增益。在实施例中,方法可以进一步包括生成第二预测致动输出。生成第二预测致动输出可以包括通过反馈控制器将自适应增益应用于第一致动命令输出来生成临时致动输出;为临时致动输出生成时延信息;至少部分地基于临时致动命令和时延信息来生成第二预测致动输出。在实施例中,生成第二参考致动输出可以包括将时延补偿函数应用于第一致动命令输出和自适应增益,以生成第二临时致动输出,并且第二参考致动输出至少部分地基于第二个临时致动输出。方法可以进一步包括确定第二致动命令输出和第二预测致动输出之间的第二预测控制误差;确定第二致动命令输出与第二预测致动输出之间的第二控制误差;根据第二控制误差和第二预测控制误差生成第二自适应增益。
在一个实施例中,上述方法功能中的任何/全部可以由处理***实现,处理***包括一个或多个硬件处理器,硬件处理器耦接到用可执行指令编程的存储器,当指令由处理***执行时,导致计算***实现要求保护的功能。在一个实施例中,存储器可以是非暂时性计算机可读介质或其他类型的存储器。
图1是示出根据本公开的一个实施例的自主车辆网络配置的框图。参照图1,网络配置100包括可以通过网络102通信耦接到一个或多个服务器103-104的自主车辆101。尽管示出了一个自主车辆,但是可以将多个自主车辆彼此耦接和/或通过网络102耦接到服务器103-104。网络102可以是任何类型的网络,例如局域网(LAN)、诸如互联网的广域网(WAN)、蜂窝网络、卫星网络或其组合,有线或无线的。服务器103-104可以是任何种类的服务器或服务器集群,例如Web或云服务器、应用程序服务器、后端服务器或其组合。服务器103-104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(map and point ofinterest,MPOI)服务器、模拟的自主车辆驾驶服务器或位置服务器等。自主车辆驾驶模拟器服务器104可以包括驾驶记录的数据记录,与真正的自主驾驶车辆的数据记录基本相同。驾驶模拟器可用于测试对自主驾驶控制***的建议更新。驾驶模拟器可以上传其驾驶记录,以供例如服务器103算法124进行处理,以生成表征自主车辆控制***的性能的一组标准化指标124。
自主车辆101是指可以被配置为以自主模式驾驶的车辆,在自主模式下,车辆在驾驶员很少或没有输入的情况下导航通过环境。这种自主车辆可以包括具有一个或多个传感器的传感器***,一个或多个传感器用于检测关于车辆在其中运行的环境的信息。车辆及其关联的控制器使用检测到的信息来导航通过环境。自主车辆101可以在手动模式、完全自主模式或部分自主模式下操作。如本文所述,在一些实施例中,在服务器104的自主驾驶模拟器中模拟自主驾驶车辆。特性和标识符,例如自主车辆类型(例如 等)和自主车辆控制器类型(例如模型预测控制或线性二次调节器)可以用来识别自主驾驶模拟***内的模拟自主车辆以及由模拟自主车辆驾驶会话生成的驾驶记录。
在一个实施例中,自主车辆101包括但不限于自主驾驶***(ADS)110、车辆控制***111、无线通信***112、用户接口***113和传感器***115。自主车辆101可以还包括普通车辆中包括的某些通用部件,例如发动机、车轮、方向盘、变速器等,其可以由车辆控制***111和/或ADS***110使用各种通信信号和/或命令,例如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等控制。
组件110-115可以经由互连、总线、网络或其组合彼此通信耦接。例如,组件110-115可以经由控制器局域网(CAN)总线彼此通信耦接。CAN总线是一种车辆总线标准,被设计为允许微控制器和设备在没有主机的应用中相互通信。它是基于消息的协议,最初是为车辆内的多路电气布线而设计的,但也用于许多其他情况。
现在参考图2,在一个实施例中,传感器***115包括但不限于一个或多个相机211、全球定位***(GPS)单元212、惯性测量单元(IMU)213、雷达单元214和光探测和测距(LIDAR)单元215。GPS***212可以包括可操作以提供关于自主车辆的位置的信息的收发器。IMU单元213可以基于惯性加速度来感测自主车辆的位置和方向改变。雷达单元214可以表示利用无线电信号来感测自主车辆的局部环境内的物体的***。在一些实施例中,除了感测物体之外,雷达单元214还可以感测物体的速度和/或前进方向。LIDAR单元215可以利用激光感测自主车辆所位于的环境中的物体。LIDAR单元215可以包括一个或多个激光源、激光扫描仪以及一个或多个检测器、以及其他***组件。相机211可以包括一个或多个设备以捕获自主车辆周围的环境的图像。相机211可以是静物相机和/或摄影机。相机可以通过例如将相机安装在旋转和/或倾斜的平台上而是机械可移动的。
传感器***115可以进一步包括其他传感器,例如,声呐传感器、红外传感器、转向传感器、油门传感器、制动传感器和音频传感器(例如,麦克风)。音频传感器可以被配置为从自主车辆周围的环境捕获声音。转向传感器可以被配置为感测方向盘、车辆的车轮或其组合的转向角。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在某些情况下,油门传感器和制动传感器可以被集成为集成的油门/制动传感器。
在一个实施例中,车辆控制***111包括但不限于转向单元201、油门单元202(也称为加速单元)和制动单元203。转向单元201用于调节车辆的方向或行驶方向。油门单元202将控制电动机或发动机的速度,进而控制车辆的速度和加速度。制动单元203通过提供摩擦以使车辆的车轮或轮胎减速来使车辆减速。
控制***111还可包括子***控制器205。子***控制器205可包括用于转向单元201的控制器、用于油门单元202的控制器和用于制动单元203的控制器。每个子***控制器205接收来自ADV控制***111的一个或多个控制命令。如下面参考图3C所述,ADV控制***111接收ADV遵循的轨迹路径,以导航ADV路线的一部分。控制***111可以确定沿着轨迹路径导航ADV所需的转向、制动和/或油门。然后,控制***111向一个或多个控制子***(转向单元201、油门单元202、制动单元203)发出一个或多个命令。转向命令可以采用目标转向角的形式,例如向正前方的左侧或右侧,以度或弧度表示。从控制***111到油门单元202的油门命令可以是例如目标速度、加速度或全油门的百分比。从控制***111到制动单元203的制动命令可以是例如目标速度、减速率或完全制动的百分比。从控制***111到控制子***(转向单元102、油门202或制动203)的每个控制命令可以由子***内的控制器转换成对控制子***的物理动作。
控制子***从控制***111接收的命令的物理致动不是立即的。物理致动中的时延表示从控制器111发出命令的时间与子***控制器输出命令以开始物理致动的时间之间的差。在子***控制器开始执行命令之后,在执行命令以获得由控制器111命令的物理目标致动时存在动态延迟。本文所述的***和方法补偿了子***的物理致动中的时延和动态延迟,以改善控制***111的带宽。下面参考图3C描述从ADV控制器到子***控制器的示例命令,以及生成的子***的时延和致动动态延迟。
子***控制器205可以包括用于参考致动输出206的存储器、用于例如动态模型的参数的存储器207、用于自适应增益的存储器208以及一个或多个模型参考自适应控制器(MRAC)209。在实施例中,可以从模型或一个或多个算法和数据生成参考致动输出和/或预测致动输出。参考(“辅助***”)致动输出、预测致动输出以及其他数据206、自适应增益208和MRAC 209在下面参考图5A-5C进行更充分地描述。
子***控制器205可以与ADV控制器111集成在一起,或作为独立的子***控制器。实际上,子***控制器通常是第三方控制器,以便ADV控制***通过编程接口与子***致动器控制器进行通信,而控制子***如何执行命令与致动的细节对于ADV控制器设计者来说是一个“黑匣子”。如本文所述,补偿子***的时延和致动动态延迟使得ADV能够自适应地考虑子***的时延和致动动态延迟,而无需知道时延和致动动态延迟的原因或理由。在需要快速制动、加速或转向的驾驶场景中,控制子***的时延和致动动态延迟特别重要。注意,图2所示的组件可以以硬件、软件或其组合来实现。
再次参考图1,无线通信***112允许自主车辆101与外部***(例如设备、传感器、其他车辆等)之间的通信。例如,无线通信***112可以与一个或多个设备直接或通过通信网络(例如网络102上的服务器103-104)进行无线通信。无线通信***112可以使用任何蜂窝通信网络或无线局域网(WLAN),例如使用Wi-Fi与另一个组件或***通信。无线通信***112可以例如使用红外链路、蓝牙等与设备(例如,乘客的移动设备、显示设备、车辆101中的扬声器)直接通信。用户接口***113可以是在车辆101内实现的***设备的一部分,包括例如键盘、触摸屏显示设备、麦克风和扬声器等。
自主车辆101的某些或全部功能可以由ADS 110控制或管理,特别是在以自主驾驶模式操作时。ADS 110包括必要的硬件(例如,处理器、内存、存储器)和软件(例如,操作***、规划和路由程序),以从传感器***115、控制***111、无线通信***112和/或用户接口***113接收信息,处理接收到的信息,规划从起点到目的地点的路线或路径,然后根据规划和控制信息驾驶车辆101。可替代地,ADS 110可以与车辆控制***111集成在一起。
例如,作为乘客的用户可以例如经由用户接口指定行程的起始位置和目的地。ADS110获得行程相关数据。例如,ADS 110可以从MPOI服务器获得位置和路线信息,MPOI服务器可以是服务器103-104的一部分。位置服务器提供位置服务,MPOI服务器提供地图服务和某些位置的POI。可替代地,这样的位置和MPOI信息可以被本地缓存在ADS 110的永久存储设备中。
在自主车辆101沿着路线行驶时,ADS 110还可以从交通信息***或服务器(TIS)获得实时交通信息。注意,服务器103-104可以由第三方实体操作。可替代地,服务器103-104的功能可以与ADS 110集成。基于实时交通信息、MPOI信息、和位置信息,以及由传感器***115检测或感测到的实时本地环境数据(例如障碍物、物体、附近的车辆),ADS 110可以规划最佳路线,并根据规划的路线(例如,通过控制***111),驾驶车辆101安全有效地到达指定目的地。
自主驾驶车辆(ADV)101可以生成并记录从子***(例如传感器***115、控制***111和ADS 110)获取数据的驾驶记录。驾驶记录可以被上载到服务器,例如服务器103,通过数据收集器121进行存储。跨平台控制剖析***,存储在例如服务器103的算法和模型124中,可以分析来自大量ADV和模拟ADV的驾驶记录以生成驾驶命令。
服务器103可以是为各种客户端执行数据分析服务的数据分析***。在一个实施例中,数据分析***103包括数据收集器121和机器学习引擎122。数据收集器121从各种车辆收集驾驶统计数据123,这些车辆是自主车辆或由人类驾驶员驾驶的常规车辆。驾驶统计数据123包括指示所发出的驾驶命令(例如,油门、制动、转向命令)以及由车辆的传感器在不同的时间点捕获的车辆的响应(例如,速度、加速度、减速度、方向)的信息。驾驶统计数据123可以进一步包括描述不同时间点的驾驶环境的信息,例如路线(包括起始位置和目的地位置)、MPOI、道路状况、天气状况等。
基于驾驶统计数据123,机器学***台控制剖析***,跨平台控制剖析***使用ADV驾驶数据和模拟的ADV驾驶数据(“跨平台”实际和模拟ADV驾驶记录两者)生成一组标准化统计数据或指标123,以表征ADV的自主驾驶控制***的性能。原始驾驶数据记录在指定时间从ADV上传,或手动上传到数据收集器121。模拟的ADV驾驶数据也上传到数据收集器121。算法124用于生成表征ADV控制***的性能的一组标准化指标。指标被存储在驾驶统计数据123中,并且被分发给订阅用户,例如设计工程师。
图3A和3B是示出根据一个实施例的与自主车辆一起使用的自主驾驶***的示例的框图。***300可以被实现为图1的自主车辆101的一部分,包括但不限于ADS 110、控制***111和传感器***115。参照图3A-3B,ADS 110包括但不限于定位模块301、感知模块302、预测模块303、决策模块304、规划模块305、控制模块306、路由模块307和驾驶记录器308。
模块301-308中的一些或全部可以以软件、硬件或其组合来实现。例如,这些模块可以被安装在永久存储设备352中,被加载到存储器351中,并且由一个或多个处理器(未示出)执行。注意,这些模块中的一些或全部可以通信耦接到图2的车辆控制***111的一些或全部模块或与之集成。模块301-308中的一些可以被集成在一起作为集成模块。
定位模块301确定自主车辆300的当前位置(例如,利用GPS单元212),并管理与用户的行程或路线有关的任何数据。定位模块301(也称为地图和路线模块)管理与用户的行程或路线有关的任何数据。用户可以例如通过用户接口登录并指定行程的开始位置和目的地。定位模块301与自主车辆300的其他组件通信,例如地图和路线数据311,以获得与行程相关的数据。例如,定位模块301可以从位置服务器以及地图和POI(MPOI)服务器获得位置和路线信息。位置服务器提供位置服务,MPOI服务器提供地图服务和某些位置的POI,这可以被缓存为地图和路线数据311的一部分。当自主车辆300沿路线行驶时,定位模块301还可以从交通信息***或服务器来获取实时交通信息。
基于传感器***115提供的传感器数据和定位模块301获得的定位信息,感知模块302确定对周围环境的感知。感知信息可以表示普通驾驶员在驾驶员驾驶的车辆的周围感知到什么。感知可包括车道配置、交通信号灯、另一车辆的相对位置、行人、建筑物、人行横道或其他与交通有关的标志(例如禁止通行标志、让路标志)等,例如以对象的形式。车道配置包括描述一个或多个车道的信息,例如,车道的形状(例如笔直或弯曲)、车道的宽度、道路中有多少个车道、单向或双向车道、合并或拆分车道以及出口车道等。
感知模块302可以包括计算机视觉***或计算机视觉***的功能,以处理和分析由一个或多个相机捕获的图像,以便识别自主车辆的环境中的对象和/或特征。对象可以包括交通信号、道路边界、其他车辆、行人和/或障碍物等。计算机视觉***可以使用对象识别算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉***可以绘制环境地图,跟踪对象并估计对象的速度等。感知模块302还可以基于由诸如雷达和/或LIDAR的其他传感器提供的其他数据来检测对象。
对于每个对象,预测模块303预测在当前情况下对象的行为。基于感知数据,结合一组地图/路线数据311和交通规则312来执行预测,感知数据以时间点感知驾驶环境。例如,如果对象是在相反方向行驶的车辆且当前驾驶环境包括交叉路口,则预测模块303将预测车辆将可能向前直线行驶还是转弯。如果感知数据指示交叉路口没有交通灯,则预测模块303可以预测车辆可能必须在进入交叉路口之前完全停止。如果感知数据指示车辆当前位于仅左转车道或仅右转车道,则预测模块303可分别预测车辆将更可能左转或右转。
对于每个对象,决策模块304做出关于如何处理对象的决策。例如,对于特定对象(例如在十字路口中的另一辆车辆)及其描述对象的元数据(例如速度、方向、转弯角度),决策模块304决定如何遇到对象(例如超车、让路、停止、通过)。决策模块304可以根据可以存储在永久存储设备352中的一组规则(诸如交通规则或驾驶规则312)做出这样的决策。
路由模块307被配置为提供从起点到目的地点的一条或多条路线或路径。对于例如从用户接收到的从起始位置到目的地位置的给定行程,路由模块307获得路线和地图信息311,并确定从起始位置到达目的地位置的所有可能的路线或路径。路由模块307可以针对其确定的从起始位置到达目的地位置的每条路线生成地形图形式的参考线。参考线是指不受其他车辆、障碍物或交通状况等其他因素的干扰的理想的路线或路径。也就是说,如果道路上没有其他车辆、行人或障碍物,则ADV应准确或紧密遵循参考线。然后将地形图提供给决策模块304和/或规划模块305。决策模块304和/或规划模块305根据其他模块提供的其他数据,检测所有可能的路线以选择和修改最佳路线中的一个,其他模块提供的其他数据诸如来自定位模块301的交通状况、感知模块302感知的驾驶环境以及预测模块303预测的交通状况。根据特定时间点的特定驾驶环境,用于控制ADV的实际路径或路线可以接近或不同于由路由模块307提供的参考线。
基于针对感知到的每个对象的决策,规划模块305利用路由模块307提供的参考线为基础来规划自主车辆的路径或路线以及驾驶参数(例如距离、速度和/或转弯角度)。也就是说,对于给定的对象,决策模块304决定如何处理对象,而规划模块305确定怎么做。例如,对于给定的对象,决策模块304决定可以通过对象,而规划模块305可以确定是在对象的左侧还是在右侧通过。规划和控制数据由规划模块305生成,规划和控制数据包括描述车辆300将如何在下一行驶周期(例如下一路线或路径段)中移动的信息。例如,规划和控制数据可以指示车辆300以每小时30英里(mph)的速度移动10米,然后以25mph的速度改变到右车道。
基于规划和控制数据,控制模块306根据规划和控制数据限定的路线或路径,通过向车辆控制***111发送适当的命令或信号来控制和驾驶自主车辆。规划和控制数据包括足够的信息,以便沿路径或路线在不同时间点使用适当的车辆设置或驾驶参数(例如油门、制动、转向指令)将车辆从路线或路径的第一点驾驶到第二点。
在一个实施例中,在多个规划周期(也称为驾驶周期)中执行规划阶段,例如在每个100毫秒(ms)的时间间隔中。对于每个规划周期或驾驶周期,将基于规划和控制数据发出一个或多个控制命令。即,对于每100毫秒,规划模块305规划下一路线段或路径段,例如包括目标位置和ADV到达目标位置所需的时间。可替代地,规划模块305可以进一步指定特定的速度、方向和/或转向角等。在一个实施例中,规划模块305规划下一预定时间段(例如5秒)的路线段或路径段。对于每个规划周期,规划模块305基于在先前周期中规划的目标位置来规划当前周期(例如,接下来的5秒)的目标位置。然后,控制模块306基于当前周期的规划和控制数据来生成一个或多个控制命令(例如油门、制动、转向控制命令)。
注意,决策模块304和规划模块305可以被集成为集成模块。决策模块304/规划模块305可以包括导航***或导航***的功能,以确定用于自主车辆的驾驶路径。例如,导航***可以确定一系列速度和前进方向,以通常在驱使自主车辆沿着通往最终目的地的基于道路的路径前进时,对沿着基本避开感知到的障碍物的路径的自主车辆的运动生成影响。可以根据经由用户接口***113的用户输入来设置目的地。导航***可以在自主车辆运行时动态地更新驾驶路径。导航***可以合并来自GPS***和一个或多个地图的数据,以便确定自主车辆的行驶路径。
驾驶记录器308通过ADV控制***的至少三个数据通道记录驾驶记录:控制通道、底盘通道和定位通道。控制通道生成有关控制ADV的***,例如制动、油门和转向的控制命令的信息。底盘通道从各种传感器(例如加速计)以及制动、油门和转向***的实际位置或致动的读数生成信息。定位通道参考标准参考(例如高清(HD)地图或全球定位卫星(GPS)***)生成有关ADV的实际位置和行驶方向的信息。数据记录可以以大约每秒100帧(fps)或大约每帧10毫秒(ms)被记录。每个驾驶记录具有时间戳。时间戳可以是相对于开始时间(例如,驾驶路线的开始)的绝对时间戳,形式为hh:mm:ss:ms(小时、分钟、秒、毫秒)。在实施例中,时间戳可以是帧号,相对于开始时间,诸如驾驶路线的起始。在一个实施例中,每个驾驶记录除了时间戳之外还可以具有日期戳。数据记录器308可以记录模拟ADV驾驶会话以及真实世界ADV驾驶会话的驾驶记录。
数据记录器308可以将驾驶记录写入非易失性存储器中,例如驾驶日志存储器313。驾驶日志313可以被上传到服务器***,例如服务器103-104,以生成一组标准化性能指标,对ADV的控制器的性能进行分级。可以使用标准化的一组指标来更新ADV的控制器,并且可以将更新后的ADV的控制器存储在非易失性存储器314中。
如图3B所示,数据记录器308还可以从规划模块接收驾驶记录。规划模块驾驶记录可用于比较规划的驾驶条件与实际(或模拟)驾驶条件,以对ADV控制器的性能进行评级。
图3C示出根据一个实施例的示例性ADV控制命令和对控制命令作出的自主车辆控制子***致动动作响应。假设示例控制命令350被示为阶梯函数。实际上,控制输入通常不是阶梯函数。但是,控制输入很好地说明了此处要描述的概念。控制命令350具有时延355。时延是由ADV控制***111给出控制输入到ADV控制子***(例如,油门、转向、制动)与控制子***响应于控制输入开始致动之间的时间。
控制命令350可以在传递给子***致动352之前通过低通滤波器351。ADV是“线控驱动”,这意味着控制子***致动是通过控制命令的传输。实际上,控制子***致动器通常由第三方提供,与ADV或ADV控制器的设计者不同。因此,ADV或ADV控制器的设计者意识到存在一些致动延迟,例如上升时间356、超调量357和上升时间356、以及在接收到致动命令之后和开始致动之前的时延,但是ADV或ADV控制器的设计者不知道致动延迟的确切来源。对于ADV设计人员或ADV控制器设计人员而言,控制子***致动器仅仅是一个“黑匣子”,它具有与输入控制命令有关的致动延迟。通过使用参考致动输出、预测致动输出、线控致动输出、自适应增益、时间滞后补偿、时延补偿以及闭环子***控制器,本文所述的***和方法可以将致动延期和时延列入考虑。
图3D示出根据一个实施例的在自主车辆中使用的转向控制子***以及动力源。
转向控制子***360是ADV 101的示例控制子***。ADV中的转向子***通常是“线控驱动”***,其接收控制命令,例如控制命令350,并通过物理和电子方式执行控制命令。转向控制子***360可以包括皮带驱动器361、手轮反馈电动机363、手轮角度传感器362、转向致动器364、小齿轮角度传感器和轮胎。转向致动器364,例如,和轮胎,可以引入致动动态延迟的来源。
图4是示出根据一个实施例的用于自主驾驶的***架构的框图。***架构400可以表示如图3A和3B所示的自主驾驶***的***架构。参照图4,***架构400包括但不限于应用层401、规划和控制(PNC)层402、感知层403、驱动层404、固件层405和硬件层406。应用层401可以包括与自主驾驶车辆的用户或乘客进行交互的用户界面或配置应用,例如与用户接口***113相关联的功能。PNC层402可以至少包括规划模块305和控制模块306的功能。感知层403可以至少包括感知模块302的功能。在一个实施例中,存在包括预测模块303和/或决策模块304的功能的附加层。可替代地,这样的功能可以被包括在PNC层402和/或感知层403中。***架构400进一步包括驱动层404、固件层405和硬件层406。固件层405可以至少表示传感器***115的功能,其可以以现场可编程门阵列(FPGA)的形式实现。硬件层406可以表示自主驾驶车辆的硬件,例如控制***111。层401-403可以经由设备驱动层404与固件层405和硬件层406通信。
图5A是示出根据一个实施例的数据流和***500的框图,***500包括扩展模型参考自适应控制器(MRAC),扩展模型参考自适应控制器包括预测器***,并且改善自主驾驶车辆(ADV)的一个或多个控制子***的致动的控制带宽。控制子***可以包括ADV的制动、油门和转向***。当使用“线控驱动”致动控制子***时,存在控制子***的二阶动态延迟和时延。二阶动态延迟可以包括相对于输入致动命令的上升时间、超调量和控制子***的测量的致动状态的建立时间。通过使用模型参考560、预测器***580、模型参考自适应控制(MRAC)反馈控制器555和扩展MRAC自适应增益***570,致动***550可以减少二阶致动动态延迟和时延,以生成对控制子***的更平滑的致动控制。
辅助(参考)***560使用时延补偿功能579来反映现实世界中的线控致动***565中的“时延”效果。然后,由参考***560创建延迟的“期望”致动输出561,与“不完善”的线控致动***565的致动输出566进行比较,致动输出566包含车辆致动***505中的动态延迟和时延。参考致动动作561和线控致动动作566之间的控制误差569是将用于自适应增益过程570的控制误差569。
预测器***580使用“回路成形”数学模型来“预测”在不久的将来时间范围内的致动***响应,然后创建包含时延效果556的“未来”预测致动动作581,与车辆控制***505的线控致动动作566进行比较。预测致动动作581和线控致动动作566之间的预测控制误差568也将被自适应增益过程570用于确定自适应增益571。
通过使用(动态调谐的)自适应增益571,MRAC反馈控制器555通过反馈输入/状态/等来生成“可实现的”致动动作559控制。
扩展MRAC自适应增益***570对自适应增益571进行在线调整,以确保致动控制***550的内部闭环***的收敛性和稳定性。MRAC被扩展以涵盖动态分量的两个方面:“参考”***560和“实际”(线控)***565之间的控制误差569,以及“预测器”***580和“实际”(线控)***565之间的预测控制误差568。
***500包括车辆***505控制器和致动***550。致动***550可包括用于所有控制子***(油门、制动、转向)的功能。在实施例中,一个或多个控制子***各自具有相应的致动***550。车辆***505可包括车辆***控制器515和校准表520。相对于致动***550,车辆***505可被认为是“外环”,致动***550作为“内环”,可以比车辆***505“外环”更快或更快速地迭代。外环处理车辆横向动力学。内环解决车辆的致动动力学问题,例如转向、制动或油门致动动力学。
在操作中,车辆***505从ADV的ADS(例如ADS 110)接收规划轨迹510。求和电路511接收规划和轨迹510信号,并且还接收车辆***575的状态输出y,576。状态输出576表示车辆***(例如底盘)575的控制子***的当前测量的致动状态。例如,规划和轨迹510可以指定命令转向子***被致动到中心左侧8°,状态输出576报告转向子***的当前状态是中心左侧5°。求和电路511可以将中心左侧附加3°作为差值报告给车辆***控制器515。
车辆***控制器515可以是任何类型的ADV车辆控制器,例如模型预测控制器(model predictive controller,MPC)或线性二次型调节器(linear quadraticregulator,LQR)。车辆***控制器515将控制命令516(例如,转向命令)输出到校准表520。校准表520生成子***控制致动命令521,例如通过中心左侧附加3°的转向输入的命令,致动转向控制子***到8°的规划轨迹510输入的命令,以达到规划和轨迹信号510中所指示的中心左侧8°。期望输入动作r,521被输入到MRAC反馈控制器555和参考(期望致动)***560。
现在参考图5B,示例性期望输入动作521被示出为输入到致动***550的阶梯函数。实际上,到控制子***的致动***的输入很少是阶梯函数。然而,阶梯函数用于示出致动***550的二阶致动动力学。参考图3C,以上也描述了二阶致动动力学。在时间t0,期望输入动作521被传递到MRAC反馈控制器555和参考***560。
参考***560接收期望输入动作521并创建“期望”或“参考”致动动作561,以与车辆***505的“不完善”的线控致动***565致动动作566进行比较。模型参考***560向比较器(或“求和电路”)567输出参考致动动作561,用于与线控致动动作566进行比较,如下所述。确定控制误差569作为模型参考致动动作561和线控致动动作566之间的差。参考***560可以查找对应于所接收的期望输入521的参考致动动作561。参考致动动作561可从如上文参考图2所示的子***控制器205的参考致动输出206存储器检索。可以在控制子***中识别和表征二阶动态延迟和时延,如Yu WANG等人在2020年2月13日提交的名称为“Autonomous Vehicle Actuation Dynamics and Latency Identification”的申请人相关美国专利申请16/790,036中所述。参考***560可以是机器生成的或手动生成的致动曲线,其考虑到控制子***的二阶动态延迟。例如,给定示例性期望输入521,参考***560可以查找或生成示例性期望参考动作xa561。求和电路567接收期望的参考致动动作561。参考致动动作561是理想的或期望的输出,以实现由线控致动***565在物理上可能实现或可能无法实现的功能,但是参考***560确实考虑了线控致动***565的二阶动力学(例如上升时间、超调量、建立时间)。
在参考***560确定参考致动输出561的几乎同一时间,MRAC反馈控制器555接收期望的输入521。假设MRAC反馈控制器555在时间t0接收到期望输入动作521,则MRAC反馈控制器555还未接收到与期望输入动作521有关的自适应增益571。因此,在时间t0,MRAC反馈控制器555可以将期望输入动作521作为致动命令u559传递到线控致动***565,而无需自适应增益571。实际上,线控致动***565通常是第三方组件,其被视为黑匣子。因此,线控致动***565根据线控致动***565的制造商生产的致动***565的编程或逻辑,来生成致动动作x,566。线控致动动作566被发送至(1)车辆***,例如如图5A中所示的575,(2)求和电路562,(3)求和电路567和(4)时间为t1时,MRAC反馈控制器555,作为MRAC反馈控制器555的输入。
预测器***580预测未来预测动作581,例如,未来转向动作,并使用预测动作581生成预测控制误差568,预测控制误差568生成更快且更准确的控制响应。除了来自参考***560的控制误差569外,预测控制误差568提供有关线控致动***的不确定参数的附加信息。这些附加信息有助于更好地保持闭环稳定性和跟踪性能。具有预测器***的扩展MRAC在改善致动控制***550的鲁棒性和瞬态性能方面具有更大潜力。
预测器***580将其预测致动动作581发送给比较器562。比较器562将预测控制误差568确定为致动动作566和预测致动动作581之间的差。参考***560将其参考致动动作561发送给比较器567。比较器567确定控制误差569作为致动动作566与参考动作561之间的差。将预测控制误差568和控制误差569传递到MRAC自适应增益***570,以确定自适应增益571,以反馈到MRAC反馈控制器555,用于在时间t1以及随后的时间t2……tn时致动控制***550的内部控制回路的下一次迭代,直到致动命令521的执行完成或接收到新的致动命令521为止。在第一次迭代之后,在内部控制回路的时间t0时,自适应增益571和最后的致动动作566被反馈到时延补偿函数f(τ,t,x),以将时延引入到下一参考致动动作561,并将自适应增益571包括到下一参考致动动作561中。时延补偿函数579在整个自适应控制***的闭环数学模型中收集所有与时延有关的项。在辅助(“参考”)***560的设计中包括时延补偿的动机是当计算致动动作566与参考***动作561之间的差时取消这些“时延”项。通过这样的设计,将消除时延因素对整个闭环***稳定性的负面影响。
线控致动动作566包括真实世界动态延迟和时延。当确定下一个控制误差569时,致动566中的真实世界动态延迟和时延将被引入参考致动动作561中的时延补偿所抵消,从而在生成控制误差569时基本上没有任何动态延迟或时延。类似地,预测动作581将具有由时延模块556引入的时延。当确定下一个预测误差568时,致动动作566中的真实世界动态延迟和时延将被时延函数556抵消,从而生成基本上没有任何时延的预测误差568。
在实施例中,自适应增益571可由MRAC自适应增益***570如下确定。为了简化,讨论一阶***,这足以解释自适应算法。
(1)自适应反馈律:
其中
γxr,>0是确定自适应过程的收敛速度的恒定自适应增益;pref,pprd>0是参考***误差和预测器***误差的正确定常数,目的是提高***稳定性。
(2)参考***动态函数,具有时延补偿函数:
其中
其中
aref,bref是参考状态恒定增益和输入恒定增益,τ是时延。
(3)预测器***动态函数:
其中
aprd是预测器状态常数增益。
(4)(实际***-参考***)动态函数:
其中
e=x-xa
是理想的自适应增益。
(5)(实际***-预测器***)动态函数:
其中
现在参考图5C,进一步示出了图5A和5B的细节,示例性参考致动输出561通过求和电路567与示例性致动动作566相加。相加的结果作为控制误差569被输出到扩展MRAC反馈增益***570。通过求和电路562将示例性预测致动动作581与示例性致动动作566相加,相加后的结果作为预测误差568输出至MRAC自适应增益***570。MRAC自适应增益***570生成自适应增益571,以供MRAC反馈控制器在下一次迭代中使用,tn+1=tn+Δt,其中Δt是时间增量。时间增量可以通过实际的内环迭代带宽确定或限制。如果自由运行的内环迭代时间在3-5毫秒(ms)之间,则内环迭代时间可以简单地是在上一次迭代完成后执行下一次迭代。在一个实施例中,内环迭代的时间增量可以是固定的,例如,5毫秒或10毫秒。将来自扩展MRAC自适应增益***570的自适应增益571应用于线控致动动作566的结果生成具有降低的误差的致动信号559,用于扩展MRAC自适应增益***570和MRAC反馈控制器555的下一次迭代。
图6是示出根据一个实施例的使用模型参考自适应控制器555(MRAC)来改善控制子***(例如,油门、制动、转向)的致动的方法600的框图。
在操作601中,控制输入,例如期望输入动作521由ADV的控制子***(例如,油门、制动或转向)的致动***550的反馈控制器555、预测器***580和参考***560接收。响应于控制输入521,反馈控制器555输出致动命令,例如559,到控制子***的线控致动器565,线控致动器565继而生成第一致动输出,例如致动动作566。
在操作602中,参考致动输出,例如561,由参考***560生成,与接收的控制输入521对应。参考致动输出561表示“理想”输出,其通过线控致动***565可实现或不可实现。参考致动输出561至少部分地基于线控致动***565的二阶动态延迟。二阶延迟基于所收集和分析的历史驾驶数据,以在给定控制输入521下为特定的致动子***确定理想的致动输出。预测致动输出,例如预测动作581,也对应于所接收的控制输入而被生成。与参考致动输出561一样,预测致动输出581至少部分基于收集和分析的历史驾驶数据,以在给定控制输入下确定用于特定致动子***的预测动作。参考(“理想”)致动输出与预测动作581之间的差异在于,预测动作表示在给定控制输入521以及可在致动控制***550的内环的下一次迭代中应用的自适应增益下,线控***将如何响应,而参考致动输出561表示我们试图通过MRAC自适应增益和MRAC反馈控制器实现的“理想”线控致动输出。在实施例中,与接收的控制输入521相对应的控制子***的参考致动输出561可以在子***控制器205的存储器中查找,在参考致动输出206中查找,或者由算法生成,或者使用人工智能模型生成,或者是这些的组合。
在操作603中,可以确定控制子***的致动器的第一致动输出与参考致动输出之间的误差量,例如控制误差569。可以例如通过如参考图5A-5C所描述的致动***550的求和电路567来确定误差量。还可以确定控制子***的致动器的第一致动动作与预测致动输出之间的预测误差量,例如预测误差568。如上面参考图5A-5C所述,可以通过例如致动***550的求和电路562来确定预测误差量。
在操作604中,可以使用误差量和预测误差量来确定自适应增益量。可以将自适应增益应用于第一致动输出,以获得基于参考致动输出和自适应增益的至控制子***的第二致动命令。
在操作605中,基于第一致动输出和自适应增益来致动控制子***的第二致动命令被输出到控制子***。方法600结束。
图7A和7B是示出根据一个实施例,使用模型参考自适应控制器来改善控制子***(例如,油门、制动、转向)的致动的方法700的框图。
现在参考图7A,在操作701中,在时间t0,响应于接收来自自主驾驶车辆(ADV)的规划/轨迹模块的控制***输入,车辆控制***505生成到控制子***,诸如制动、油门或转向控制子***的致动命令521。由车辆控制***505接收规划/轨迹输入510以及生成相应的致动命令521是控制***500的“外环”。方法700在操作702和707处继续。在实施例中,操作702和707可以并行执行。时间t0表示当致动控制***550从车辆控制***505接收到控制输入521时,致动控制***550“内环”的第一环迭代的开始。内环继续直到致动命令521完成为止或从外环(车辆控制***505)接收到新的(第二、下一个等)致动命令521为止。
在操作702中,致动控制子***的反馈控制器,例如555,接收来自车辆控制***505的用于致动控制子***550(例如,转向、油门或制动)的致动命令521。方法700在操作703和705处继续。在实施例中,操作703和705可以并行执行。
在操作703中,时延模块,例如556,从反馈控制器555接收致动命令521,并为致动命令521生成时延信息。方法700在操作704处继续。
在操作704中,预测器***,诸如580,生成时延调整的预测致动动作561。预测致动动作561在上面参考图5A-5C进行了描述。方法700在操作709处继续。
在操作705中,线控致动***,例如565,从反馈控制器555接收致动命令521。方法700在操作706处继续。
在操作706中,线控致动***565生成具有实际致动动态延迟和致动时延的致动动作566。方法700在操作709和710处继续。在实施例中,操作709和710可以并行执行。
在操作707中,参考***560接收致动命令521。方法700在操作708处继续。
在操作708中,参考***560生成具有时延补偿的参考致动动作561。时延补偿函数579将动态和时延延迟添加到期望的(“理想”)参考致动动作561。方法700在操作710处继续。
在操作709中,可以在从预测器***580输出的预测致动动作581和从线控致动***565输出的线控致动动作566之间确定预测控制误差568,方法700在图7B继续操作711。
在操作710中,可以在参考致动动作561和线控致动动作566之间确定控制误差569,e。方法700在图7B中继续操作711。
现在参考图7B,描述了在时间t1……tn进行内环迭代的方法,用于执行致动命令521,在时间t0,致动命令由致动控制***550从车辆控制***505接收。内环迭代继续进行,直到接收到下一个致动动作521或实现致动命令521为止(例如,达到ADV目标速度,由于制动而停止ADV,将ADV减速至特定速度等)。
在操作711中,自适应增益***570基于分别在操作709和710中确定的预测控制误差568和控制误差569来生成自适应增益571。自适应增益571被传递到MRAC反馈控制器555并且传递到时延补偿函数579。来自先前的内环迭代的致动动作566也被传递到MRAC反馈控制器555和时延补偿函数579。方法700在操作712和715处继续。在实施例中,可以并行地执行操作712和715。
在操作712中,反馈控制器555将自适应增益571应用于致动命令566,以生成例如时间t1的致动命令559。可以将致动动作559传递给时延模块556和线控致动***565。方法700在操作713和714处继续。在实施例中,可以并行执行操作713和714。
在操作713中,时延模块556接收致动命令559,并为致动命令559生成时延信息。预测器***580接收致动命令559和时延信息,并为例如时间t1生成预测致动动作581。方法700在操作716处继续。
在操作714中,线控致动***565生成致动动作566,其具有用于例如时间增量t1的自适应增益和实际致动动态延迟以及时延。方法700在操作716处继续。
在操作715中,参考***560生成例如时间t1的时延补偿的参考致动动作561。时延补偿的参考致动561基于致动动作566、由时延补偿函数579接收和处理的自适应增益571、以及算法、人工智能模型或人类绘制的理想致动曲线中的一个或多个。方法700在操作717处继续。
在操作716中,求和电路562确定用于时间例如t1的预测控制误差,568,其是从线控致动***565接收的致动动作566与从预测器***580接收的预测致动动作581之间的差。方法700在操作718处继续。
在操作717中,求和电路567确定在时间例如t1的控制误差,e,569,其是从线控致动***565接收的致动动作566和从参考***560接收的参考致动动作561之间的差。方法700在操作718处继续。
在操作718中,方法分支到操作711,以在时间tnext=tlast+Δt,例如时间tn=tn-1+Δt,利用内环的下一次迭代来完成致动命令521的执行。如果接收到另一个或接下来的致动命令521,则方法700分支到操作701,以针对新接收的致动命令521在时间t0执行内环迭代。
注意,如上所示和所述的一些或所有组件可以用软件、硬件或其组合实现。例如,这些组件可以被实现为安装并存储在永久存储设备中的软件,软件可以由处理器(未示出)加载并执行在存储器中以执行贯穿本申请所述的过程或操作。可替换地,这些组件可被实现为被编程或嵌入到专用硬件中的可执行代码,专用硬件诸如集成电路(例如,专用IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA),可执行代码可经由来自应用的对应驱动器和/或操作***访问。此外,这些组件可以被实现为处理器或处理器内核中的特定硬件逻辑,作为经由一个或多个特定指令软件组件可访问的指令集的一部分。
已经关于对计算机存储器内的数据位的操作的算法和符号表示呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作实质传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是导致期望结果的自洽操作序列。这些操作是需要对物理量进行物理操纵的那些操作。
然而,应当记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从以上讨论中显而易见的是,应当理解的是,在整个说明书中,使用诸如所附权利要求书中所阐述的术语的讨论指的是计算机***或类似电子计算设备的动作和过程,所述计算机***或类似电子计算设备将计算机***的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换成计算机***存储器或寄存器或其它这样的信息存储、传输或显示设备内的类似地表示为物理量的其它数据。
本公开的实施例还涉及用于执行本文的操作的装置。这种计算机程序存储在非瞬态计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备)。
在前述附图中描述的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合的处理逻辑来执行。尽管以上根据一些顺序操作描述了过程或方法,但是应当理解的是,可以以不同的顺序执行所述的一些操作。此外,一些操作可以并行地而不是顺序地执行。
本公开的实施例不是参考任何特别编程语言描述的。将了解,可使用各种编程语言实施如本文所述的本公开的实施例的教示。
在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离如所附权利要求书中所阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

Claims (9)

1.一种改善自主驾驶车辆ADV控制***的控制子***的性能的方法,包括:
通过反馈控制器和参考***接收ADV的控制子***的致动***的控制输入;
生成与控制输入相对应的预测致动动作和与控制输入相对应的参考致动动作;
确定控制子***的致动器的第一致动命令输出与参考致动输出之间的控制误差,以及确定第一致动命令输出与预测致动输出之间的预测控制误差;
生成基于控制误差和预测控制误差的自适应增益;
输出第二致动命令以致动控制子***,其中第二致动命令基于第一致动命令输出和自适应增益;以及
生成第二预测致动输出,所述生成包括:
通过反馈控制器将自适应增益应用于所述第一致动命令输出,来生成临时致动输出;
为临时致动输出生成时延信息;以及
至少部分地基于临时致动命令和时延信息生成第二预测致动输出。
2.根据权利要求1所述的方法,其中,参考致动输出至少部分地基于所述控制子***的动态模型的二阶属性。
3.根据权利要求2所述的方法,其中,所述控制子***的所述二阶属性包括以下中的一个或多个:发起所述控制子***的控制动作的时延、控制子***的致动器的上升时间、超调量或建立时间。
4.根据权利要求1所述的方法,其中,所述控制子***是油门控制子***、制动控制子***或转向控制子***中的一个或多个。
5.根据权利要求1所述的方法,其中,生成所述预测致动输出还包括:
生成时延信息,并且所述预测致动输出至少部分地基于生成的时延信息。
6.根据权利要求1所述的方法,进一步包括生成第二参考致动输出,所述生成包括:
将时延补偿函数应用于第一致动命令输出和自适应增益,以生成第二临时致动输出,并且第二参考致动输出至少部分地基于第二临时致动输出。
7.一种非暂时性机器可读介质,具有存储在其中的指令,所述指令在由处理器执行时使处理器执行如权利要求1-6中任一项所述方法的操作。
8. 一种数据处理***,包括:
处理器;以及
与处理器耦接的存储器,用于存储指令,所述指令在由处理器执行时使处理器执行如权利要求1-6中任一项所述方法的操作。
9.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-6中任一项所述的方法。
CN202011476078.2A 2020-04-21 2020-12-14 改善车辆控制***的控制子***的性能的方法和*** Active CN113548032B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/854,718 2020-04-21
US16/854,718 US11453409B2 (en) 2020-04-21 2020-04-21 Extended model reference adaptive control algorithm for the vehicle actuation time-latency

Publications (2)

Publication Number Publication Date
CN113548032A CN113548032A (zh) 2021-10-26
CN113548032B true CN113548032B (zh) 2024-01-26

Family

ID=78082900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011476078.2A Active CN113548032B (zh) 2020-04-21 2020-12-14 改善车辆控制***的控制子***的性能的方法和***

Country Status (2)

Country Link
US (1) US11453409B2 (zh)
CN (1) CN113548032B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4110668A4 (en) * 2020-02-24 2024-06-12 Ground Transportation Systems Canada Inc. CONTROL DEVICE, CONTROL SYSTEM AND CONTROL METHOD FOR VEHICLE CONTROL
WO2022183021A1 (en) * 2021-02-26 2022-09-01 ThorDrive, Inc. Controlling the lateral movement of the autonomous vehicles with a non-linear steering system
US11919526B1 (en) * 2021-04-28 2024-03-05 Zoox, Inc. Model-based vehicle drive system monitors
CN114637256B (zh) * 2022-02-22 2023-07-14 无锡先导智能装备股份有限公司 一种飞切控制方法、装置、***、电子设备及存储介质
CN114834526B (zh) * 2022-05-18 2023-05-12 南京航空航天大学 一种云控自动转向装置的时滞控制***及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108099918A (zh) * 2016-11-23 2018-06-01 百度(美国)有限责任公司 用于确定自主车辆的命令延迟的方法
CN108137083A (zh) * 2016-09-28 2018-06-08 百度(美国)有限责任公司 用于自动驾驶车辆控制的***延迟估计方法
CN109196432A (zh) * 2016-12-14 2019-01-11 百度(美国)有限责任公司 用于自动驾驶车辆的速度控制参数估计方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135531B2 (en) * 2002-06-12 2012-03-13 Nmhg Oregon, Llc Predictive vehicle controller
US9499197B2 (en) * 2014-10-15 2016-11-22 Hua-Chuang Automobile Information Technical Center Co., Ltd. System and method for vehicle steering control
JP6493366B2 (ja) * 2016-11-18 2019-04-03 トヨタ自動車株式会社 車両制御装置
EP3707572B1 (en) * 2017-11-10 2023-08-23 Nvidia Corporation Systems and methods for safe and reliable autonomous vehicles
US10775790B2 (en) * 2018-02-09 2020-09-15 Baidu Usa Llc Methods and systems for model predictive control of autonomous driving vehicle
JP6568965B2 (ja) * 2018-02-14 2019-08-28 本田技研工業株式会社 車両の制御装置
US10884422B2 (en) * 2018-04-16 2021-01-05 Baidu Usa Llc Method for generating trajectories for autonomous driving vehicles (ADVS)
ES2913725T3 (es) * 2018-05-30 2022-06-06 Siemens Ind Software Nv Método y sistema para controlar un dispositivo de vehículo autónomo para seguir repetidamente una misma trayectoria predeterminada
DK180657B1 (en) * 2018-08-02 2021-11-11 Motional Ad Llc REMOTE CONTROL OF AUTONOMIC VEHICLES
US11279405B2 (en) * 2018-10-16 2022-03-22 Ford Global Technologies, Llc Hitch assist system
CN112969622A (zh) * 2018-10-30 2021-06-15 动态Ad有限责任公司 自主运载工具中的冗余
US20200363816A1 (en) * 2019-05-16 2020-11-19 WeRide Corp. System and method for controlling autonomous vehicles

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108137083A (zh) * 2016-09-28 2018-06-08 百度(美国)有限责任公司 用于自动驾驶车辆控制的***延迟估计方法
CN108099918A (zh) * 2016-11-23 2018-06-01 百度(美国)有限责任公司 用于确定自主车辆的命令延迟的方法
CN109196432A (zh) * 2016-12-14 2019-01-11 百度(美国)有限责任公司 用于自动驾驶车辆的速度控制参数估计方法

Also Published As

Publication number Publication date
US20210323564A1 (en) 2021-10-21
US11453409B2 (en) 2022-09-27
CN113548032A (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
CN113548032B (zh) 改善车辆控制***的控制子***的性能的方法和***
CN112034834B (zh) 使用强化学习来加速自动驾驶车辆的轨迹规划的离线代理
CN113291283B (zh) 致动自主驾驶车辆控制***的控制子***的方法和***
CN109196432B (zh) 用于自动驾驶车辆的速度控制参数估计方法、介质和***
CN111240312B (zh) 用于自动驾驶车辆的基于学习的动态建模方法
KR102381568B1 (ko) 자율 주행 차량 제어를 위한 크로스-플랫폼 제어 프로파일링
US11731651B2 (en) Automatic parameter tuning framework for controllers used in autonomous driving vehicles
CN111948938B (zh) 规划用于自动驾驶车辆的开放空间轨迹的松弛优化模型
US20210116915A1 (en) Dynamic model with learning based localization correction system
US11673584B2 (en) Bayesian Global optimization-based parameter tuning for vehicle motion controllers
KR102589587B1 (ko) 자율 주행 차량용 동적 모델 평가 패키지
US20210291862A1 (en) Learning based controller for autonomous driving
EP4113393A2 (en) Learning-based critic for tuning a motion planner of autonomous driving vehicle
CN113060118A (zh) 用于柔和降速的速度规划引导线
CN113508350B (zh) 基于反馈的实时转向校准***
US11738771B2 (en) Dynamic model with actuation latency
CN116225026A (zh) 自动驾驶车辆操作方法、电子设备以及计算机可读介质
US20210070310A1 (en) Gear based vehicle load inference system
US20240185611A1 (en) Image signal processing (isp) tuning with downstream perception metric in autonomous driving
WO2024113087A1 (en) On-board parameter tuning for control module for autonomous vehicles

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant