用于自动驾驶车辆的基于规划反馈的决策改进系统的制作方法

文档序号:14511859阅读:235来源:国知局
用于自动驾驶车辆的基于规划反馈的决策改进系统的制作方法

本发明的实施方式总体涉及操作自动驾驶车辆。更具体地,本发明的实施方式涉及改进由自动驾驶车辆做出的驾驶决策。



背景技术:

在自动模式(例如,无人驾驶)下运行的车辆可以将乘员(尤其是驾驶员)从一些驾驶相关的职责中解放出来。当在自动模式下运行时,车辆可以使用车载传感器导航到各种位置,从而允许车辆在最少人机交互的情况下或在没有任何乘客的一些情况下行驶。

运动规划和控制是自动驾驶中的关键操作。自动驾驶车辆(adv)的决策系统根据对周围障碍物、前方交通信号灯和附近交通标志(对象)的反应来引导车辆的行驶。决策命令由针对对象的意图以及该意图的一个或多个相关参数组成。例如,针对红色交通灯的决策可以是与包括优选停止线的位置的参数相关的“停止”。由于一个或多个原因,由adv决策系统做出的决策可能并不完美。例如,adv规划和/或控制系统可能无法执行所述决策。adv规划和控制系统可以遵循所述决策,但可能满足adv一个或多个决策参数。adv决策可能对乘客造成不舒适的乘坐体验,或者adv决策可能导致交通违规。此外,adv决策可能导致危险的驾驶情况,或者可能导致比通常行车时间更长的时间。



技术实现要素:

本发明的一方面提供了一种用于操作自动驾驶车辆的计算机实现方法,所述方法包括:基于自动驾驶车辆的第一状态和自动驾驶车辆外部的对象的第二状态生成第一驾驶决策,其中,第一状态和第二状态中的每一个分别包括自动驾驶车辆的速度、位置和方向以及对象的速度、位置和方向;基于第一驾驶决策、第一状态和第二状态接收关于第一驾驶决策的规划反馈;以及响应于规划反馈:修改与第一驾驶决策相关联的第一决策参数以及执行具有修改后的第一决策参数的第一驾驶决策;或者将第一驾驶决策改变为第二驾驶决策以及执行第二驾驶决策。

根据实施方式,所述方法还包括确定自动驾驶车辆的第一状态,以及将自动驾驶车辆的第一状态记录到驾驶日志中;以及确定自动驾驶车辆外部的一个或多个对象的一个或多个状态,以及将对象的状态记录到感知日志中,包括记录第二状态,其中,第一驾驶决策基于感知日志和驾驶日志而生成。

根据实施方式,所述方法还包括:检测第一驾驶决策的问题,检测第一驾驶决策的问题包括对第一驾驶决策进行分类,以及其中,第一驾驶决策被分类为以下中的一个:保守驾驶决策;激进驾驶决策;具有一个或多个保守参数的驾驶决策;具有一个或多个激进参数的驾驶决策;早期驾驶决策;晚期驾驶决策;或者具有非决策问题的驾驶决策。

根据实施方式,所述方法还包括:在第一驾驶决策中没有检测到问题的情况下,执行第一驾驶决策。

根据实施方式,第一驾驶决策包括以下中的一个:超越对象;为对象让行;使自动驾驶车辆在距离对象的预定距离内停止;或者忽略对象。

根据实施方式,修改第一驾驶决策的第一决策参数包括以下中的一个:修改自动驾驶车辆超越对象时的速度;修改自动驾驶车辆减速为对象让行时的速度;修改自动驾驶车辆停止时的预定距离;修改自动驾驶车辆在自动驾驶车辆占据的行驶车道内的位置;或者修改选择用于超越对象的自动驾驶车辆行驶路径。

根据实施方式,将第一驾驶决策改变为第二驾驶决策包括以下中的一个:将超越决策改变为让行决策或停止决策;将让行决策改变为停止决策或超越决策;将忽略决策改变为超越决策、让行决策或停止决策。

根据实施方式,规划反馈包括以下中至少一个:指示自动驾驶车辆速度相对于对象的位置或速度以及自动驾驶车辆的位置或速度过快或过慢;指示自动驾驶车辆无法执行第一驾驶决策;指示实施第一驾驶决策所需的转向输入过大;或者指示基于一个或多个道路状况,第一驾驶决策是不安全的,一个或多个道路状况包括天气、光照量或自动驾驶车辆的车道位置。

本发明的另一方面提供了一种非暂时性机器可读介质,在非暂时性机器可读介质上存储有指令,指令在由处理器执行时,致使处理器执行操作自动驾驶车辆的操作,所述操作包括:基于自动驾驶车辆的第一状态和自动驾驶车辆外部的对象的第二状态生成第一驾驶决策,其中,第一状态和第二状态中的每一个分别包括自动驾驶车辆的速度、位置和方向以及对象的速度、位置和方向;基于第一驾驶决策、第一状态和第二状态接收关于第一驾驶决策的规划反馈;以及响应于规划反馈:修改与第一驾驶决策相关联的第一决策参数以及执行具有修改后的第一决策参数的第一驾驶决策;或者将第一驾驶决策改变为第二驾驶决策以及执行第二驾驶决策。

根据实施方式,所述操作还包括:确定自动驾驶车辆的第一状态,以及将自动驾驶车辆的第一状态记录到驾驶日志中;以及确定自动驾驶车辆外部的一个或多个对象的一个或多个状态,以及将对象的状态记录到感知日志中,包括记录第二状态,其中,第一驾驶决策基于感知日志和驾驶日志而生成。

根据实施方式,所述操作还包括:检测第一驾驶决策的问题,检测第一驾驶决策的问题包括对第一驾驶决策进行分类,以及其中,第一驾驶决策被分类为以下中的一个:保守驾驶决策;激进驾驶决策;具有一个或多个保守参数的驾驶决策;具有一个或多个激进参数的驾驶决策;早期驾驶决策;晚期驾驶决策;或者具有非决策问题的驾驶决策。

根据实施方式,所述操作还包括:在第一驾驶决策中没有检测到问题的情况下,执行第一驾驶决策。

根据实施方式,第一驾驶决策包括以下中的一个:超越对象;为对象让行;使自动驾驶车辆在距离对象的预定距离内停止;或者忽略对象。

根据实施方式,修改第一驾驶决策的第一决策参数包括以下中的一个:修改自动驾驶车辆超越对象时的速度;修改自动驾驶车辆减速为对象让行时的速度;修改自动驾驶车辆停止时的预定距离;修改自动驾驶车辆在自动驾驶车辆占据的行驶车道内的位置;或者修改选择用于超越对象的自动驾驶车辆行驶路径。

根据实施方式,将第一驾驶决策改变为第二驾驶决策包括以下中的一个:将超越决策改变为让行决策或停止决策;将让行决策改变为停止决策或超越决策;将忽略决策改变为超越决策、让行决策或停止决策。

根据实施方式,规划反馈包括以下中至少一个:指示自动驾驶车辆速度相对于对象的位置或速度以及自动驾驶车辆的位置或速度过快或过慢;指示自动驾驶车辆无法执行第一驾驶决策;指示实施第一驾驶决策所需的转向输入过大;或者指示基于一个或多个道路状况,第一驾驶决策是不安全的,一个或多个道路状况包括天气、光照量或自动驾驶车辆的车道位置。

本发明的另一方面提供了一种数据处理系统,包括:处理器;以及存储器,存储器联接到处理器以存储指令,指令在由处理器执行时,致使处理器执行操作自动驾驶车辆的操作,操作包括:基于自动驾驶车辆的第一状态和自动驾驶车辆外部的对象的第二状态生成第一驾驶决策,其中,第一状态和第二状态中的每一个分别包括自动驾驶车辆的速度、位置和方向以及对象的速度、位置和方向;基于第一驾驶决策、第一状态和第二状态接收关于第一驾驶决策的规划反馈;以及响应于规划反馈:修改与第一驾驶决策相关联的第一决策参数以及执行具有修改后的第一决策参数的第一驾驶决策;或者将第一驾驶决策改变为第二驾驶决策以及执行第二驾驶决策。

根据实施方式,所述操作还包括:确定自动驾驶车辆的第一状态,以及将自动驾驶车辆的第一状态记录到驾驶日志中;以及确定自动驾驶车辆外部的一个或多个对象的一个或多个状态,以及将对象的状态记录到感知日志中,包括记录第二状态,其中,第一驾驶决策基于感知日志和驾驶日志而生成。

根据实施方式,所述操作还包括:检测第一驾驶决策的问题,检测第一驾驶决策的问题包括对第一驾驶决策进行分类,以及其中,第一驾驶决策被分类为以下中的一个:保守驾驶决策;激进驾驶决策;具有一个或多个保守参数的驾驶决策;具有一个或多个激进参数的驾驶决策;早期驾驶决策;晚期驾驶决策;或者具有非决策问题的驾驶决策。

根据实施方式,所述操作还包括:在第一驾驶决策中没有检测到问题的情况下,执行第一驾驶决策。

根据实施方式,第一驾驶决策包括以下中的一个:超越对象;为对象让行;使自动驾驶车辆在距离对象的预定距离内停止;或者忽略对象。

根据实施方式,修改第一驾驶决策的第一决策参数包括以下中的一个:修改自动驾驶车辆超越对象时的速度;修改自动驾驶车辆减速为对象让行时的速度;修改自动驾驶车辆停止时的预定距离;修改自动驾驶车辆在自动驾驶车辆占据的行驶车道内的位置;或者修改选择用于超越对象的自动驾驶车辆行驶路径。

根据实施方式,将第一驾驶决策改变为第二驾驶决策包括以下中的一个:将超越决策改变为让行决策或停止决策;将让行决策改变为停止决策或超越决策;将忽略决策改变为超越决策、让行决策或停止决策。

根据实施方式,规划反馈包括以下中至少一个:指示自动驾驶车辆速度相对于对象的位置或速度以及自动驾驶车辆的位置或速度过快或过慢;指示自动驾驶车辆无法执行第一驾驶决策;指示实施第一驾驶决策所需的转向输入过大;或者指示基于一个或多个道路状况,第一驾驶决策是不安全的,一个或多个道路状况包括天气、光照量或自动驾驶车辆的车道位置。

附图说明

本发明的实施方式在附图的各图中以示例而非限制的方式示出,附图中的相似的附图标记表示相似元件。

图1是示出根据本发明一个实施方式的网络化系统的概况的框图。

图2是示出根据本发明一个实施方式的自动驾驶车辆(adv)传感器和控制模块的示例的框图。

图3是示出根据本发明一个实施方式的adv感知和规划系统的示例的框图。

图4以框图形式示出根据一些实施方式的用于adv的基于规划反馈的决策改进系统的方法的概述。

图5是可以做出一个或多个驾驶决策的示例性驾驶情况。

图6以框图形式示出根据一些实施方式的在局部改进关于adv的驾驶决策的方法。

图7以框图形式示出根据一些实施方式的在全局改进针对多个adv的驾驶决策的方法。

图8a示出根据一些实施方式的示例性感知日志。

图8b示出根据一些实施方式的示例性驾驶日志。

图8c示出根据一些实施方式的示例性adv驾驶决策日志。

图8d示出根据一些实施方式的关于由adv感测的对象的驾驶决策的规划模块反馈的示例。

图8e示出根据一些实施方式的驾驶决策问题分类的示例。

图8f示出根据一些实施方式的驾驶决策的全局改进的示例。

图9是示出根据一个实施方式的数据处理系统的框图。

具体实施方式

将参考以下所讨论的细节来描述本发明的各种实施方式和方面,以及附图将示出所述各种实施方式。以下描述和附图是对本发明的说明,而不应当解释为限制本发明。描述了许多特定细节以提供对本发明各种实施方式的全面理解。然而,在某些示例中,并未描述公知的或常规的细节以提供对本发明实施方式的简洁讨论。

本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可包括在本发明的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部是指同一实施方式。

根据一些实施方式,可以选择用于自动驾驶车辆(adv)的驾驶场景,诸如路线、目的地或交通类型(例如,高速公路或城市驾驶)。当adv运行时,多种传感器可以检测自动驾驶车辆外部的对象的位置、距离、速度和定向。可以将传感器输出周期性地记录在感知日志中。在实施方式中,可以在记录之前处理传感器输出。驾驶控制输入,(诸如驾驶员对方向盘、油门和制动器的使用)也可以周期性地记录在驾驶日志中。自动驾驶车辆驾驶决策模块可以响应于传感器输出和控制输入而生成驾驶决策。在实施方式中,可以生成驾驶决策并将其记录在adv驾驶决策日志中。可以将驾驶决策传递给规划模块,规划模块将规划对驾驶决策的执行。驾驶决策可包括驾驶决策参数。例如,如果驾驶决策是“超越”,那么驾驶决策参数可包括超越汽车时的速度、adv与将被超越的汽车之间的最小距离等。规划模块可以确定决策存在的问题。规划模块可以向决策模块提供反馈。反馈可包括无法执行驾驶决策或者驾驶决策不安全或有点激进的警告、建议的速度、实施驾驶决策的距离或定向、驾驶决策模块关于adv外部的对象做出的驾驶决策可能太晚或太早的指示。然后,所述驾驶决策模块可以将驾驶决策问题分类为保守决策、激进决策、具有保守参数的决策、具有激进参数的决策、早期决策、晚期决策以及非驾驶决策模块的问题。局部驾驶决策模块可以改进驾驶决策。在驾驶结束之后,对传感器输出、控制输入和自动驾驶车辆驾驶决策的记录可以结束。在实施方式中,可以将感知日志、驾驶日志和adv驾驶决策日志(“日志信息”)上传到服务器以供分析。

在另一实施方式中,数据分析系统可以接收针对多个adv的日志信息。全局驾驶决策改进模块可以提取adv的日志以改进特定驾驶决策。全局驾驶决策改进模块还可以将所提取的日志限于:相对于同一对象(例如,移动汽车)和相对于相似驾驶参数(诸如adv速度、定向和方向、相似的速度、定向、到移动汽车的距离等)做出的驾驶决策。驾驶参数还可包括规划模块反馈和/或局部驾驶决策改进。全局驾驶决策改进模块可以形成每个adv的这些驾驶参数的特征向量。可以使用机器学习来确定对驾驶决策的全局改进。改进的决策将优化驾驶决策衡量标准,诸如安全性、乘客舒适度、对交通法和安全驾驶行为的规则遵从性以及时间效率。驾驶决策可基于这些驾驶决策衡量标准来分级。

图1是示出根据本发明一个实施方式的自动驾驶车辆网络配置100的框图。参考图1,网络配置100包括可以通过网络102通信地联接到一个或多个服务器103至104的自动驾驶车辆101。尽管示出了一个自动驾驶车辆101,但是多个自动驾驶车辆可通过网络102彼此联接和/或联接到服务器103至104。网络102可以是有线或无线形式的任何类型的网络,诸如,局域网(lan)、诸如互联网的广域网(wan)、蜂窝网络、卫星网络或其组合。服务器103至104可以是任何类型的服务器或服务器集群,诸如网络或云服务器、应用服务器、后台服务器或其组合。服务器103至104可以是数据分析服务器、内容服务器、交通信息服务器、地图和景点(mpoi)服务器或位置服务器等。以下参考图9描述示例性服务器系统。服务器103可包括分析系统,所述分析系统包括机器学习引擎103a和全局决策改进模块103b以及驾驶决策分级模块103c。

自动驾驶车辆101是指可以被配置成处于自动模式下的车辆,在所述自动模式下车辆在几乎没有或没有来自驾驶员的控制输入的情况下导航通过环境。这种自动驾驶车辆101可包括传感器系统115,所述传感器系统115具有被配置成检测与车辆运行环境有关的信息的一个或多个传感器。所述车辆和其相关联的控制器使用检测到的信息来导航通过所述环境。自动驾驶车辆101可以在手动模式、完全自动模式或部分自动模式下运行。

在一个实施方式中,自动驾驶车辆101包括但不限于感知和规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113和传感器系统115。自动驾驶车辆101还可以包括包含在普通车辆中的某些常见组件,诸如发动机、车轮、方向盘、变速器等,所述组件可以由车辆控制系统111和/或感知和规划系统110使用例如多种通信信号和/或命令(诸如,加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等)来控制。

服务器103可包括数据分析系统,所述数据分析系统包括机器学习引擎103a、全局驾驶决策改进模块103b以及驾驶决策分级模块103c。每个这种模块可以以软件、硬件或其组合的形式实现。在实施方式中,模块103a、103b和103c包括至少一个硬件处理器。

组件110至115可以经由互连件、总线、网络或其组合彼此通信地联接。例如,组件110至115可以经由控制器局域网(can)总线彼此通信地联接。can总线是一种车辆总线标准,其被设计成允许微控制器和装置在没有主计算机的情况下在应用中彼此通信。它是一种基于消息的协议,最初被设计用于汽车中的多路复用电线,但是也被用于许多其它情况。

图2是示出根据本发明一个实施方式的自动驾驶车辆101(adv)传感器和控制模块的示例的框图。

现在参考图2,在一个实施方式中,传感器系统115包括但不限于一个或多个摄像机211、全球定位系统(gps)单元212、惯性测量单元(imu)213、雷达单元214以及光探测和测距(lidar)单元215。gps系统212可包括收发器,所述收发器可操作来提供关于自动驾驶车辆的位置的信息。imu单元213可基于惯性加速度来感测自动驾驶车辆的位置和定向变化。雷达单元214可表示利用无线电信号来感测自动驾驶车辆的本地环境内的对象的系统。在一些实施方式中,除感测对象之外,雷达单元214另外可以感测对象的速度和/或前进方向。lidar单元215可以使用激光器来感测自动驾驶车辆所处环境中的对象。除其它系统组件之外,lidar单元215还可包括一个或多个激光源、激光扫描器以及一个或多个检测器。摄像机211可包括用于采集自动驾驶车辆周围环境的图像的一个或多个装置。摄像机211可以是静物摄像机或视频摄像机。摄像机可以是可机械地移动的,例如通过将摄像机安装在旋转和/或倾斜平台上。

传感器系统115还可包括其它传感器,诸如声纳传感器、红外传感器、转向传感器、节气门传感器、制动传感器和音频传感器(例如麦克风)。音频传感器可以被配置成从自动驾驶车辆101周围的环境采集声音。转向传感器可以被配置成感测方向盘、车辆的车轮或其组合的转向角。节气门传感器和制动传感器分别感测车辆的节气门位置和制动位置。在一些情况下,节气门传感器和制动传感器可以集成为一体式节气门/制动传感器。节气门传感器、转向传感器和制动传感器输出值可以记录在驾驶控制输入日志中。监测外部对象的传感器以及自动驾驶车辆的速度、位置和定向可以记录在传感器输出或“感知”日志中。

在一个实施方式中,车辆控制系统111包括但不限于转向单元201、节气门单元202(也称为加速单元)和制动单元203。转向单元201用于调整车辆的方向或前进方向。节气门单元202用于控制电动机或发动机的速度,其继而控制车辆的速度和加速度。制动单元203用于通过提供摩擦使车辆的车轮或轮胎减速来使车辆减速。应注意,如图2所示的组件可以以硬件、软件或其组合的形式来实现。

返回参考图1,无线通信系统112允许自动驾驶车辆101与诸如装置、传感器、其它车辆等的外部系统之间进行通信。例如,无线通信系统112可以直接地或经由通信网络与一个或多个装置进行无线通信,诸如经由网络102与服务器103至104通信。无线通信系统112可以使用任何蜂窝通信网络或无线局域网(wlan)(例如使用wifi)来与另一个组件或系统进行通信。无线通信系统112可以直接与装置(例如,乘客的移动装置、显示装置、车辆101内的扬声器)进行通信,例如使用红外链路、蓝牙等。用户接口系统113可以是在车辆101内实现的外围装置的一部分,包括例如键盘、触摸屏显示装置、麦克风和扬声器等。

自动驾驶车辆101的一些或全部功能可以由感知和规划系统110来控制或管理,特别是当在自动驾驶模式下运行时。感知和规划系统110包括必要的硬件(例如,处理器、存储器、存储装置)和软件(例如,操作系统、规划和路线程序),从而从传感器系统115、控制系统111、无线通信系统112和/或用户接口系统113接收信息、处理所接收的信息、规划从出发地到目的地的路线或路径、然后基于规划和控制信息来驾驶车辆101。可替代地,感知和规划系统110可以与车辆控制系统111集成。在实施方式中,感知和规划模块110的规划部分可以关闭。在实施方式中,控制系统111可以关闭。然后,在规划和控制模块关闭时,可以由人类驾驶员来驾驶自动驾驶车辆101。本文描述的实施方式利用开启的规划模块110和控制系统111。

在运行中,作为乘客的用户可以例如经由用户接口113指定行程的起始位置和目的地。感知和规划系统110获得行程相关数据。例如,感知和规划系统110可以从mpoi服务器获得位置和路线信息,所述mpoi服务器可以是服务器103至104的一部分。位置服务器提供位置服务,并且mpoi服务器提供地图服务和某些位置的poi。可替代地,这种位置和mpoi信息可以本地缓存在感知和规划系统110的永久性存储装置中。

当自动驾驶车辆101沿着路线移动时,感知和规划系统110还可以从交通信息系统或服务器(tis)获得实时交通信息。应注意,服务器103至104可以由第三方进行运作。可替代地,服务器103至104的功能可以与感知和规划系统110集成。基于实时交通信息、mpoi信息和位置信息以及传感器系统115检测或感测到的实时本地环境数据(例如,障碍物、对象、附近车辆),感知和规划系统110可以规划最佳路线并且根据所规划的路线例如经由控制系统111驾驶车辆101安全且高效地到达指定的目的地。

在自动驾驶车辆101中,可能不存在实际的或物理的窗口。相反,“窗口”(在本文中被称为虚拟窗口)可以由可选地具有触摸屏的显示装置(即模制成车窗形状的平面或曲面屏幕显示装置)表示或代替。显示装置将显示通过一个或多个适当的摄像机实时动态地采集的图像或图像流(例如,视频),就如同用户正在通过透明车窗观看或查看实际物理内容一样。对于每个“窗口”(例如,显示装置),可以存在用于流传输待实时显示的对应内容的对应显示信道,所述对应内容可由例如数据处理系统900的增强现实系统进行集中处理。在这种情况下,以虚拟现实方式(也被称为增强现实方式)经由信息娱乐系统114来显示所增强的图像。

在本文描述的实施方式中,当自动驾驶车辆101在自动模式下驾驶时,在规划和控制模块开启的情况下,可以记录来自传感器系统115中的每个传感器的输出。控制系统111的组件的输入可以由规划模块110提供。当自动驾驶车辆101运行时,可以将对转向单元201、节气门单元202和制动单元203的输入记录到“驾驶日志”中,“驾驶日志”采集由自动控制系统111采取的动作。传感器日志和驾驶日志可以上传到服务器103。在实施方式中,传感器日志和驾驶日志被实时或近实时地上传。

图3是示出根据本发明一个实施方式的用于自动驾驶车辆101的感知和规划系统110的示例的框图300。系统300可以实现为图1的自动驾驶车辆101的一部分,包括但不限于感知和规划系统110、控制系统111和传感器系统115。参考图3,感知和规划系统110包括但不限于定位模块301、感知模块302、决策模块303、规划模块304、控制模块305、记录模块306、决策问题识别模块307和决策问题改进模块308。

模块301至308中的一些或全部可以以软件、硬件或其组合来实现。例如,这些模块可以安装在永久性存储装置352中,加载到存储器351中,并且由一个或多个处理器(未示出)执行。应注意,这些模块中的一些或全部可以通信地联接或集成到图2的车辆控制系统111的一些或全部模块。模块301至308中的一些可以作为集成模块而集成在一起。

定位模块301(也称为地图和路线模块)管理与用户的行程或路线相关的任何数据。用户可以经由用户接口记录并指定行程的起始位置和目的地。定位模块301与自动驾驶车辆300的其它组件(诸如地图和路线信息311)通信以获得行程相关数据。例如,定位模块301可以从位置服务器以及地图和poi(mpoi)服务器获得位置和路线信息。位置服务器提供位置服务,并且mpoi服务器提供地图服务和特定位置的poi,其可被缓存为地图和路线信息311的一部分。当自动驾驶车辆300沿着路线移动时,定位模块301还可以从交通信息系统或服务器获得实时交通信息。

基于由传感器系统115提供的传感器数据和由定位模块301获得的定位信息,感知模块302确定对周围环境的感知。感知信息可以表示普通驾驶员将在驾驶员正在驾驶的车辆附近感知到的内容。感知可包括例如以对象形式的车道配置(例如,直的或弯曲车道)、交通灯信号、另一车辆的相对位置、行人、建筑物、人行横道或其它交通相关标志(例如,停止标志、让行标志)等等。

感知模块302可包括计算机视觉系统或计算机视觉系统的功能,其用于处理和分析由一个或多个摄像机采集的图像以识别自动驾驶车辆环境中的对象和/或特征。对象可包括交通信号、道路边界、其它车辆、行人和/或障碍物等。计算机视觉系统可以使用对象辨识算法、视频跟踪以及其它计算机视觉技术。在一些实施方式中,计算机视觉系统可以映射环境、跟踪对象以及估算对象的速度等。感知模块302也可以基于由其它传感器(诸如雷达和/或lidar)提供的其它传感器数据来检测对象。

针对每个对象,决策模块303可以做出关于如何处理对象的决策。例如,针对特定对象(例如,交叉路线中的另一车辆)以及描述对象的元数据(例如,速度、方向、转向角),决策模块303决定如何与对象相遇(例如,超越、让行、停止、通过)。决策模块303可以根据可存储在永久性存储装置352(未示出)中的一组规则(诸如交通规则)来做出此类决策。

基于针对感知到的每个对象的决策,规划模块304规划用于自动驾驶车辆的路径或路线以及驾驶参数(例如,距离、速度和/或转向角)。也就是说,针对给定的对象,决策模块303决定针对所述对象执行何种操作,而规划模块304确定如何执行这些操作。例如,针对给定的对象,决策模块303可以决定通过对象,而规划模块304可以确定是在对象的左侧还是右侧通过。规划模块304生成规划和控制数据,包括描述车辆300在下一个移动周期(例如,下一个路线/路径段)中将如何移动的信息。例如,规划和控制数据可以命令车辆300以每小时30英里(mph)的速度移动10米,然后以25mph的速度变换到右车道。

基于规划和控制数据,控制模块305根据由规划和控制数据限定的路线或路径,通过向车辆控制系统111发送适当的命令或信号来控制并驾驶自动驾驶车辆。规划和控制数据包括足够的信息以沿着路径或路线在不同点使用适当的车辆设置或驾驶参数(例如,节气门、制动和转向命令)来将车辆从路线或路径的第一点驾驶到第二点。

应注意,决策模块303和规划模块304可以集成为集成模块。决策模块303/规划模块304可包括导航系统或导航系统的功能以确定自动驾驶车辆的行车路径。例如,导航系统可以确定用于实现自动驾驶车辆沿以下路径移动的一系列速度和定向前进方向:所述路径在使自动驾驶车辆总体上沿基于车行道路径通往最终目的地前进的同时基本上避免感知到的障碍物。目的地可以根据经由用户接口系统113的用户输入来设置。导航系统可以在自动驾驶车辆正在运行的同时动态地更新行车路径。导航系统可将来自gps系统的数据和一个或多个地图合并以确定用于自动驾驶车辆的行车路径。

决策模块303/规划模块304还可包括防撞系统或防撞系统的功能,从而识别、评估并且避免或以其它方式绕过自动驾驶车辆环境中的潜在障碍物。例如,防撞系统可通过以下方式实现自动驾驶车辆的导航中的变化:操作控制系统111中的一个或多个子系统来采取转弯操纵、调头操纵、制动操纵等。防撞系统可基于周围的交通模式、道路状况等自动确定可行的障碍物回避操纵。防撞系统可以被配置成使得当其它传感器系统检测到位于自动驾驶车辆将转弯进入的相邻区域中的车辆、建筑障碍物等时不采取转弯操纵。防撞系统可以自动选择既可用又使得自动驾驶车辆乘员的安全性最大化的操纵。防撞系统可以选择预测的预防操纵以致使自动驾驶车辆的乘客舱中出现最小量的加速度。

记录模块306可以接收来自感知模块302的数据、来自决策模块303的adv决策以及来自控制系统111的控制系统输入。在实施方式中,可选地或另外,来自控制系统111的控制输入可从控制模块305获得。记录模块306可以经由感知模块302接收由传感器系统115感测到的对象的感知数据。在实施方式中,在将感知信息传递到记录模块306之前,感知模块302可以处理来自传感器系统115的一个或多个传感器输出。例如,感知模块302可以通过将由lidar确定的距离与由gps或雷达确定的定向组合来确定对象的位置。感知模块302可以将对象的位置传递到记录模块306以将其记录在感知日志中,而不是存储原始传感器数据。记录模块306可以将感知日志数据写入感知日志312,并将驾驶控制输入写入adv101中的永久性存储装置352上的驾驶日志313。

记录模块306可以接收来自控制系统111的驾驶控制输入。驾驶控制输入可包括来自制动单元203的制动输入量、来自转向单元201的转向输入量以及来自节气门单元202的节气门输入量。这些输入由规划模块304和控制模块305确定。

记录模块306还可以从决策模块303接收adv驾驶决策。adv驾驶决策可以是基于每个对象的。adv驾驶决策可包括超越对象、为对象让行、停止adv或忽略对象。adv驾驶决策日志可以存储在永久性存储装置352中的adv决策日志314中。

驾驶日志313、感知日志312和adv驾驶决策日志313包括日志信息。记录模块306可以实时地或近实时地将日志信息存储在adv101的永久性存储装置352中。另外或可选地,记录模块306可以经由网络102将日志信息传输到服务器103。在实施方式中,记录模块306可以实时或近实时地将日志信息传输到服务器103。在实施方式中,记录模块306可以在驾驶场景完成之后或在另一时间将日志信息传输到服务器103。

决策问题识别模块307可以使用监督学习来将规划反馈分类为以下决策种类:保守决策、激进决策、保守参数、激进参数、早期决策、晚期决策和非决策问题。用于监督学习的特征可以利用从感知模块302获得的信息,包括但不限于:对象与adv之间的距离、对象与adv的相对位置、adv的速度、adv的定向、adv的车道位置、对象的速度、对象的定向以及参照adv车道位置的对象位置。可以在监督学习之前使用特征标记过程。决策类别描述如下:

保守决策可能更安全,更遵从驾驶规则,和/或对于乘客更舒适,但可能导致比通常行车时间更长的时间。可以将这种决策修改为更激进的。例如,可以将“停止”决策改变为“让行”或“超越”决策。

激进决策可能导致如下危险的驾驶情况:不太安全,乘客不太舒适,或者可能增加交通违规。如果识别到这种问题,则可能需要更为保守型的驾驶决策。例如,需要将“超越”决策改变为“让行”。

保守参数决策相似于保守决策,不同的是不需要修改决策。然而,可能需要将决策的参数修改为更保守的参数。例如,“超越”对象的决策可能是最佳驾驶决策,但是可能需要将指示adv超越对象将采取的速度或加速度的决策参数修改为更保守的。如果修改的参数增加了安全性、乘客舒适度和/或对交通法和良好行为的遵从性,则参数可能是更保守的。

激进决策参数相似于激进决策,不同的是不需要修改决策。然而,可能需要将决策的参数修改为更激进的参数。例如,为对象“让行”的决策可能是最佳驾驶决策,但是可能需要将指示执行让行决策的制动时间或制动量的决策参数修改为更激进的参数值。如果adv以时间效率为代价在对象前方过早或过远处减速,则可能需要参数变为更激进的。过早的减速让行也可能使其他驾驶员混淆adv正在让行的对象。

早期驾驶决策是执行过早的正确驾驶决策。与上述让行示例一样,adv可能会过早减速为对象让行。早期驾驶决策可降低时间效率,并且可能使其他驾驶员混淆adv正在让行的对象。

晚期驾驶决策是实施过晚的正确驾驶决策。晚期驾驶决策可能导致adv不得不以比对道路状况或乘客舒适度安全的速度更快的速度进行制动和减速。晚期驾驶决策也可能使其他驾驶员措手不及,并且可能导致事故。

非决策问题表示不是驾驶决策模块导致的问题。不需要对决策做出改进。

局部决策问题改进模块308可以使用强化学习来找到驾驶决策问题的最佳解决方案。局部驾驶决策改进仅针对特定的adv,并且可以通过改变驾驶决策或修改驾驶决策参数来暂时解决驾驶决策问题。

应注意,上文示出和描述的一些或全部组件可以以软件、硬件或其组合来实现。例如,此类组件可以实现为安装并存储在永久性存储装置中的软件,所述软件可以由处理器(未示出)在存储器中加载并执行以实施本申请全文中所描述的过程或操作。可替代地,此类组件可以实现为编程或嵌入到专用硬件(诸如集成电路(例如,专用集成电路或asic)、数字信号处理器(dsp)或现场可编程门阵列(fpga))中的可执行代码,所述可执行代码可通过来自应用的对应驱动器和/或操作系统来访问。此外,此类组件可以实现为处理器或处理器核心中的特定硬件逻辑,作为可由软件组件经由一个或多个特定指令访问的指令集的一部分。

图4以框图形式示出根据一些实施方式的用于adv的基于规划反馈的决策改进系统的方法400的概述。

如以上参考图3所描述的,adv感知和规划系统110可包括感知模块302、驾驶决策模块303、规划模块304、用于执行驾驶决策的控制模块305、记录模块306、用于识别驾驶决策问题的决策问题识别模块307、以及用于改进驾驶决策的决策问题改进模块308。驾驶决策可以参考由感知模块302感测到的对象。驾驶决策可包括:超越对象、为对象让行、为对象停止或忽略对象。可参考一个或多个衡量标准对每个驾驶决策进行分级,所述衡量标准包括:决策的安全性、adv乘客的舒适度、对交通法规的遵从性以及时间效率。驾驶决策可包括驾驶决策参数,诸如节气门输入量、制动量或转向输入。驾驶决策参数可以由规划模块304确定。考虑到感知模块302感测到的对象,规划模块304可以附加地评估驾驶决策参数的大小,并且可以指示驾驶决策参数可能是保守的还是激进的。

在操作405中,决策模块303可以向规划模块304发送驾驶决策命令。驾驶决策命令可以是adv规划模块304和控制模块305应当规划和执行驾驶决策的命令。

在操作410中,规划模块304可以接收驾驶决策命令并且生成对驾驶决策的反馈。然后,规划模块304可以将驾驶决策和驾驶决策反馈发送到决策模块303。决策模块303然后可以将驾驶决策和决策反馈传递给决策问题识别模块307。

在操作415中,决策问题识别模块307可以使用规划反馈来识别驾驶决策的问题。在实施方式中,决策问题识别模块307可以使用驾驶决策反馈来对驾驶决策进行分级。

在操作420中,决策问题识别模块307可以将驾驶决策分类到以下类别中的一项中:保守决策、激进决策、保守参数、激进参数、早期决策、晚期决策或非决策问题。可以使用监督学习来将规划反馈分类到上述七个驾驶决策问题类别。用于监督学习的特征可以利用从感知模块302获得的信息,包括但不限于:对象与adv之间的距离、对象与adv的相对位置、adv的速度、adv的定向、adv的车道位置、对象的速度、对象的定向以及参照adv车道位置的对象位置。可以在监督学习之前使用特征标记过程。以上参考图3、驾驶决策问题识别模块307描述了决策类别。可以将所识别的驾驶决策问题发送到局部决策改进模块308和服务器分析系统103全局决策改进模块103b两者。

在操作425中,局部驾驶决策改进模块308可以接收驾驶决策、驾驶决策参数和规划反馈(驾驶决策信息)。局部驾驶决策改进仅针对这个adv暂时解决驾驶决策问题。局部驾驶决策改进可能不指出决策模块303的问题。局部决策改进可涉及例如基于在做出驾驶决策时的当地天气的决策。在实施方式中,局部驾驶决策改进模块308可以使用基于强化学习的方法来找到用于局部决策改进的最佳解决方案。解决方案可以动态地改变,例如,它可以根据不同的位置、道路类型或天气而改变。

在操作430中,分析服务器(例如服务器103)可以接收驾驶决策信息,并将驾驶决策信息传递给全局决策改进模块103b。在实施方式中,全局决策改进模块103b可以在服务器103上实现。

在操作435中,全局决策改进模块103b可以尝试永久地解决决策模块303的问题。服务器103可以从多个adv收集驾驶决策信息,以试图识别多个adv的共同问题。下文参考图8f来详细描述全局决策改进模块。

图5是可以做出一个或多个驾驶决策的示例性驾驶场景500。在以下驾驶场景中,对象的速度、距离和定向是相对于adv101而言的。在实施方式中,驾驶场景中对象的速度、距离和定向可以相对于诸如gps的坐标系统或地图坐标系统来表示。在速度、距离和定向相对于adv101而言的实施方式中,adv101的定向可以是0°或者↑可意味着adv101的“直线前进”,在adv前方从左到右行进的对象可以具有正的方向,例如+90°或→,诸如汽车510。在adv101前方从右到左移动的对象可以具有负方向,例如,-90°或←,诸如行人/狗512。

在这种场景下,adv101正在接近4通交叉路口,4通交叉路口在交叉路口的每个角落处具有人行横道513。adv101与可以收集adv101的adv决策日志、驾驶日志和感知日志的服务器103通信。此外,在这种场景下的各种对象被检测和记录在adv101的感知日志中。对象包括靠近的汽车510、建筑物511、行人和狗512、与adv101相邻的左车道标志514和右车道标志515。

adv101正在以相对于adv101的速度、距离和定向接近交叉路口人行横道513。在时间t0处,adv101可以以25mph行进、相对于adv101为0°(直线前进)。汽车510也可以以25mph行进、与adv101相距101英尺的距离并且相对于adv101为-75°,以及相对于adv101以+90°定向。简单来说,汽车510远离adv101为约100英尺,并且从adv101的左侧以25mph接近交叉路口。在时间t0处,adv101可以做出超越汽车510、停止、为汽车510让行或忽略汽车510的决策。

adv101还可以感知房屋511。由于房屋是静止对象,所以在时间t0处,房屋511的速度将为0mph。在时间t0处,房屋511可以相对于adv101位于-28°处,并且与adv101相距111英尺。由于房屋511是静止的,所有房屋511没有定向。

此外,adv101还可以从不同方向感知正在接近交叉路口的行人和狗512(或仅仅“行人”)。在时间t0处,行人512可以以3mph行进、位于+36°处、与adv101相距40英尺的距离。简单来说,大约在汽车101正在以住宅区行驶速度从左侧接近交叉路口的同时,路人和他的狗正在以步行速度从右侧接近人行横道513。如果adv101、汽车510和行人512以其当前的相应速度和定向继续行进,则大约在汽车510跨过交叉路口的同时、大约在adv101将跨过人行横道并进入交叉路口的同时,行人512可能进入人行横道513。在一些州,根据法律,进入人行横道的行人具有优先于进入包含人行横道的十字路口的汽车的先行权。在一些州,当两辆汽车同时接近交叉路口时,法律要求右侧的汽车(在这种情况下,adv101)为左侧的车辆(在这种情况下,汽车510)让行。在本公开的驾驶决策问题改进框架中,adv101将需要做出考虑全部对象的驾驶决策:adv101、汽车510、房屋511、行人512和人行横道513。对于每个对象510至513,做出超越对象、为对象让行、停止或忽略对象的决策。

驾驶场景可包括adv速度、定向和位置以及到一个或多个对象的距离,每个对象具有速度、位置和定向。adv101做出客观的驾驶决策。在给定相同或相似驾驶场景的情况下,adv101每次将做出相同的驾驶决策。驾驶决策可能不是最佳的。因此,局部决策改进模块308可以帮助获得更接近对adv最优的决策。全局决策改进模块103b可以帮助改进针对多个adv的决策。adv驾驶决策模块303可以决定超越汽车510和行人512(以及因此,人行横道513),并且忽略房屋511,从而第一个通过交叉路口。这个决策可能违反规则,包括速度、在交叉路口处为另一车辆让行以及为人行横道处的行人停止,但会节省驾驶时间。所述决策还可能需要在车道位置加速和可能的推背或转弯,以避开车辆510或行人512。这可能降低乘客的舒适度,因为adv经历前向和侧向的加速度。替代的更安全的决策可以是使adv减慢并且在交叉路口处为汽车510让行、在人行横道513之前5英尺处停止以允许行人512沿人行横道513穿过街道。这个决策符合全部法律,通过避免与车辆510的可能碰撞或对行人512的伤害而提高安全性,并且还提供舒适的减速。但是,所述决策的时间效率可能较低。

图6以框图形式示出了根据一些实施方式的使用驾驶决策问题识别模块307和本地驾驶决策改进模块308来改进adv的驾驶决策的方法600。在实施方式中,方法600可以在线实时或近实时地实现。在实施方式中,可以例如通过网络102将所收集的信息传输到服务器103。另外或可替代地,可以在adv行驶的同时将所收集的信息存储在例如adv的永久性存储装置352中。

在操作605中,可以选择驾驶场景。驾驶场景可包括特定目的地、交通类型(拥堵或通畅)、驾驶速度(高速公路或城镇道路)、一天中的时间(通勤交通或周末交通,或者工作日中午的交通)、行程的长度(短或长)、人类驾驶员是否熟悉驾驶区域以及其它驾驶场景。

在操作610中,可以开启adv规划和控制模块。adv驾驶决策模块是激活的,并且将由adv做出、记录、规划和执行adv驾驶决策。

在操作615中,adv的自动驾驶开始。

在操作620中,记录模块306可以接收来自adv传感器系统115中的多个传感器的输出。多个传感器输出可以检测或表示一个或多个对象的属性。例如,摄像机211可以检测移动对象的存在,例如,汽车510或行人512;lidar单元215可以检测对象距adv101的距离。雷达单元214可以检测对象的运动。gps单元212可以检测对象相对于gps坐标的位置。当规划模块304和控制模块305执行adv驾驶决策时,生成驾驶控制输入。驾驶控制输入可包括节气门输入202(包括减速)、制动输入203和转向输入201(向右、向左或回中的量)。驾驶控制输入111还可包括输入的导数,诸如施加输入的速率。驾驶控制输入可以被传递到记录模块306以进行记录。

在操作625中,adv驾驶决策模块303可以做出和记录驾驶决策。adv驾驶决策可包括驾驶决策参数。例如,关于人行横道513的驾驶决策可包括指示adv将停止的位置距人行横道513的距离(例如,在人行横道513之前6英尺处停止)的参数。adv驾驶决策模块303可以将adv驾驶决策和驾驶决策参数传递给规划模块304。

在操作630中,规划模块304可以接收adv驾驶决策和驾驶决策参数。规划模块304可以访问感知日志312以确定adv的速度、位置和定向以及与adv有关的一个或多个对象的速度、距离和定向。规划模块304可以访问adv驾驶日志313以确定对节气门、转向和制动的当前控制输入。使用感知日志312、驾驶日志313、驾驶决策和驾驶决策参数,规划模块304可以确定返回到决策模块303的驾驶决策反馈。决策问题识别模块307可以使用监督学习来将规划反馈分类为以下决策种类:保守决策、激进决策、保守参数、激进参数、早期决策、晚期决策和非决策问题。用于监督学习的特征可以利用从感知模块302获得的信息,包括但不限于:对象与adv之间的距离、对象与adv的相对位置、adv的速度、adv的定向、adv的车道位置、对象的速度、对象的定向以及参照adv车道位置的对象位置。可以在监督学习之前使用特征标记过程。

在操作635中,驾驶决策问题识别模块307可以确定从规划模块304接收的反馈是否指出驾驶决策问题。如果在操作635中识别到驾驶决策问题,则方法600进行至操作640,否则方法600进行至操作650。

在操作640中,决策问题识别模块307将决策问题分类到以下类别中的一个中:保守决策、激进决策、保守参数、激进参数、早期决策、晚期决策以及不是决策模块303中的问题。

在操作645中,局部驾驶决策改进模块308可以将具有第一驾驶决策问题类型的第一驾驶决策修改为第二驾驶决策。可替代地或另外,局部驾驶决策改进模块308可以修改驾驶决策的一个或多个驾驶决策参数以改进驾驶决策。例如,如果路面是湿的或打滑的,则局部驾驶决策改进模块308可以改变驾驶决策参数,使得adv在人行横道513处停止,而不是在人行横道513之前6英尺处停止。停止太快可能导致adv失去跟踪,并且可能无法做出受控停止。如果驾驶决策是“在人行横道513处停止”并且决策做出得过早,则驾驶决策改进模块308可以延迟执行在人行横道513处停止的决策,或者改变驾驶参数以减缓针对人行横道513的减速,使得adv不会减速太快。如果驾驶决策是“在人行横道513处停止”并且驾驶决策分类指示“晚期决策”,则驾驶决策改进模块可以将决策更改为“超越人行横道513”。驾驶决策改进模块308在确定如何改进驾驶决策时可以使用道路状况、已知或估测的adv性质(诸如adv的最大加速度、在不失去牵引力的情况下的最小停止距离、针对给定速度的最小转向半径,翻转特性等)。

在操作650中,控制模块305可以执行如在操作640和645中可以由位置决策改进修改的驾驶决策。方法600进行至操作620。

图7以框图形式示出在服务器103上使用离线分析以在全局上改进针对多个adv的驾驶决策的方法700。在实施方式中,服务器103上的全局驾驶决策改进模块103b可以从大量adv接收感知日志、驾驶日志和驾驶决策日志(统称为“日志信息”)。可以提取日志信息的一个或多个子集,以改进驾驶决策问题的类别或特定决策类型。并不是全部问题都可以或都应当仅通过自动化机器学习来解决。在实施方式中,工程师可以审查某些类别的驾驶决策。在实施方式中,即使方法700自动地生成对驾驶决策问题的改进,人类工程师也将对全部驾驶决策以及它们各自的改进进行审查。

在操作705中,全局驾驶决策改进模块103b可以选择驾驶场景以缩小可能发生改进驾驶决策问题的情况。驾驶场景可以是adv的特定路线、目的地、交通类型(城市道路或高速公路或乡村道路)、一天中的时间、天气状况类型、最大或最小速度,具有或不具有交叉车流的驾驶、具有或不具有行人(如感知对象)的驾驶、特定的州、国家或其它地方等。

在操作710中,全局驾驶决策改进模块103b可以选择待改进的驾驶决策问题的类别。驾驶决策问题类别可包括:保守决策、激进决策、保守参数、激进参数、早期决策、晚期决策以及非决策模块驾驶决策问题。

在操作715中,全局驾驶决策改进模块103b可以选择可用的adv日志信息的子集,以缩小用于改进驾驶决策的查询范围。在实施方式中,选择具有相同驾驶决策、驾驶决策问题以及(可选地)相同或相似驾驶决策参数的日志信息。

在操作720中,全局驾驶决策改进模块103b可选地可以通过将询问限于具有相同或相似的局部驾驶决策改进的驾驶决策来进一步缩小用于改进驾驶决策的查询范围。

在操作725中,全局驾驶决策改进模块103b可选地可以通过请求具有相同或相似规划反馈或驾驶参数的adv日志来进一步集中于驾驶决策改进的范围。

在操作730中,可以确定如可通过操作710至725缩小的驾驶决策问题是否应当应用机器学习来改进驾驶决策问题。如果是,则方法700进行至操作740;否则,方法700进行至操作750。

在操作740中,将机器学习应用于驾驶决策问题的特征以改进驾驶决策。用于机器学习的特征可包括但不限于:(1)对象与adv之间的距离;(2)对象与adv的相对位置;(3)对象的速度;(4)对象的定向;(5)参照adv车道位置的对象位置;(6)adv的速度;(7)adv的定向;以及(8)adv的车道位置。可以例如利用如上所示的数字标记特征,并且可以为特征赋值。然后,可以将特征编码为可用于机器学习的一组有序值。例如,对象可以是汽车,并且驾驶决策可具有以下特征:(1)汽车距adv为100英尺;(2)汽车相对于adv处于-72°;(3)汽车以25mph行进;(4)汽车相对于adv方向以+90°行驶;(5)汽车距adv行车道位置左侧60英尺处;(6)adv速度为27mph;(7)adv相对于adv的前进运动为0°;以及(8)adv距adv车道左边缘的右侧为2英尺。因此,特征可以被编码为:(100,-72,25,+90,60,27,0,2)。在操作705至725中选择其日志信息的每个adv可以具有用于相应adv的驾驶决策的特征向量。这些特征向量可以被输入到机器学习模块103a,并且用于生成针对多个adv的改进的决策。

在操作745中,可以可选地生成输出以向工程师团队通知驾驶决策、驾驶决策参数、所选择的日志信息、使用的特征向量和决策改进。在决定在一个或多个adv中实施决策之前,工程师可以审查所述决策。在实施方式中,在非测试adv中实施驾驶决策之前,可以在一组测试adv中对改进的驾驶决策进行测试。方法700进行至操作760。

在操作750中,全局驾驶决策改进模块103b可以向工程师团队通知待改进的驾驶决策、驾驶决策参数、所选择的日志信息、使用的特征向量和决策改进。工程师可以确定决策,并且在决定在一个或多个adv中实施所述决策之前对所述决策进行审查和测试。

在操作755中,全局驾驶决策改进模块103b可以从工程师团队接收对驾驶决策的改进。

在操作760中,可以用改进的驾驶决策来更新多个adv。

图8a示出根据一些实施方式的示例性感知日志800。感知日志312(诸如示例性感知日志800)是在驾驶场景期间记录的传感器输出日志。所述日志针对多个时间增量识别由adv传感器感知到的对象、每个对象的速度、每个对象的位置以及每个对象的定向。示例性感知日志800表示在时间t0、t1和t2处获得的以下对象的信息:101adv、510汽车、511房屋、512路人/狗、513人行横道、514adv101的车道左边缘以及515adv101的车道右边缘。这些只是示例。数据可以以多种格式表示,包括表格、电子表格、数据库表格或其它格式。对于每个对象,在每个时间增量处,可以将对象的速度、对象的位置和对象的定向记录在感知日志中。在实施方式中,位置可以以2d或3d坐标表示,从所述坐标可以计算距离。在实施方式中,可以以极坐标格式(包括距adv的距离和距已知点的旋转角度)存储位置,诸如网格或adv的前进方向的定向。在实施方式中,定向可以是相对于通用标准(诸如北方)或gps网格而言的。在实施方式中,定向可以是相对于adv的前进方向而言的。在实施方式中,感知日志可以附加地将一个或多个对象的图像记录在日志中。

在实施方式中,可以处理原始传感器输出以获得期望的信息。例如,可以使用来自多个传感器的多个传感器输出获得对象(例如,汽车510)的定向。lidar可以用于确定汽车510距adv101的距离(例如,在时间t0处,101英尺)。可以使用一个或多个雷达读数来获得汽车510相对于adv101的定向(在时间t0处为-75°)。可以使用在时间t0与t1之间的汽车510的位置差来确定汽车510的速度(例如,在t1处为23mph)。

可以根据感知日志得出推论。例如,观察针对adv的行101,可以看出,在时间t0与t2之间,adv101正在减速到停止。采用这个信息,在观察行512路人/狗以及行513行人行道时,可以看出,路人/狗512从adv101的右侧靠近adv101,并且adv在到达人行横道513之前停止。adv驾驶决策是在人行横道513之前停止,并且允许路人/狗512使用人行横道513。相似地,观察针对汽车510的行,可以看出,汽车510从左侧接近adv101,并且当汽车510在adv101前方交叉时稍微减慢,与此同时,路人/狗512使用人行横道513。

图8b示出根据一些实施方式的示例性驾驶日志805。在驾驶场景期间,驾驶日志以多个时间增量将驾驶控制输入记录到adv控制系统111。在实施方式中,当记录驾驶控制输入时,驾驶控制输入数据也可以与adv的速度、位置和定向相关联。在实施方式中,如果adv101的速度、位置和定向被存储在感知日志800中,则驾驶日志805可以包含对感知日志800中的这个信息的指针或其它参考。驾驶控制输入可包括节气门输入202的量、制动输入203的量和转向输入201的量。转向输入201的量可以指示输入的方向(向左或向右、顺时针或逆时针)。驾驶控制输入还可包括这些输入的导数(未示出),用于指示驾驶控制输入的变化率。例如,节气门输入202的高变化率可以指示控制模块给出了急剧的、激进的节气门输入以实现快速加速。相似地,制动输入203的高变化率可以指示控制模块111做出了制动器的急剧或激进应用,并且转向输入201上的高变化率也与之相似。这些高速率输入中的每一个都可对乘客和驾驶员舒适度、安全性以及可能的规则遵从性的驾驶决策分级衡量标准产生负面影响。

图8c示出根据一些实施方式的示例性adv驾驶决策日志810。adv驾驶决策日志是在驾驶场景期间由adv驾驶决策模块303做出的驾驶决策的记录。

adv101做出针对每个感知对象的驾驶决策,如感知日志800中所示。示例性adv驾驶决策日志示出在每个时间t0、t1和t2处针对每个对象510汽车、511房屋、512路人/狗和513人行横道做出的驾驶决策。例如,在时间t0处,adv驾驶决策可以是超越路人/狗512和汽车510。在时间t1处,adv101决策模块303可以使用感知模块302中的数据和/或感知日志800中的数据来确定adv101现在太靠近汽车510以至于无法超越汽车510,并且也太靠近人行横道513和路人/狗512以至于无法超越他们。因此,在时间t1处,基于包括adv101的一个或多个对象的速度、位置和/或定向的变化,adv可以改变其针对一个或多个对象的驾驶决策。

图8d示出根据一些实施方式的针对特定时间处相对于对象的驾驶决策815的规划反馈的示例。如上所述,针对由感知模块302感知到的每个对象和/或记录在感知日志800中的每个对象做出adv驾驶决策。驾驶决策模块303可以将驾驶决策以及(可选地)一个或多个驾驶决策参数传递给规划模块304。例如,adv驾驶决策模块303可以在时间t1处决定为对象510汽车让行。可选地,驾驶决策模块可以指示为汽车510让行的减速速率,或者在汽车510在adv101之前通过时adv应当处于的目标位置。规划模块304可接收决策和可选的决策参数,并且确定实施为汽车510让行的决策是否可能存在问题。例如,道路可能是湿的,并且可能没有足够的时间来减速来为汽车510让行。可替代地或另外,除非adv的速度降低10%,否则规划模块304可以确定汽车510在adv101之前通过将太靠近。规划模块304可以将可能存在驾驶决策问题的指示传递到决策模块304。规划模块304可以将驾驶决策反馈和驾驶决策传递回到驾驶决策模块303。在这个示例中,驾驶决策反馈可包括汽车510将在让行点处太靠近adv的警告。驾驶决策反馈还可包括对更保守的参数的推荐:即,adv的速度降低10%。

图8e是驾驶决策问题识别模块307的示例,其根据需要使用驾驶决策、驾驶决策反馈和日志信息来对驾驶决策问题进行分类。图8e还示出局部驾驶决策改进的示例。日志信息可包括感知日志312、驾驶日志313和驾驶决策日志314。驾驶决策模块303可以从规划模块304接收驾驶决策反馈。驾驶决策模块303可以调用驾驶决策问题识别模块307来对潜在的驾驶决策问题进行分类。驾驶决策问题可包括:保守决策、激进决策、保守参数、激进参数、早期决策、晚期决策、非决策问题(存在驾驶决策问题,但与决策模块303无关)。

在这个示例中,驾驶决策模块303已经决定以例如27mph的驾驶决策参数为汽车510让行。规划模块反馈指示驾驶决策参数可能过于激进,并且建议将adv速度降低10%。驾驶决策问题识别模块307可以确定驾驶决策问题类别是“激进参数”,从而指示驾驶决策不需要改变,但是驾驶决策的参数应当被改变为更保守的值。

驾驶决策改进模块308可以利用驾驶决策问题类别、规划模块反馈和日志信息来确定用于为汽车510让行的决策的更保守的参数。例如,局部驾驶决策改进模块308可以将adv速度降低所建议的10%或由驾驶决策改进模块308确定的另一个值。

图8f示出使用来自多个adv的日志信息来改进针对多个adv的驾驶决策的全局驾驶决策问题识别模块103b的示例820。在这个示例中,驾驶决策是为对象(例如汽车510)让行。在这个示例中,三个adv(在标头821下指示为1、2和3)各自已经将日志信息上传到服务器103以供全局驾驶决策改进模块103b分析。日志信息可包括感知日志312、驾驶日志213、驾驶决策日志313,所述驾驶决策日志313可包括驾驶决策参数和驾驶分类和规划模块反馈。可以从日志信息中提取特征,包括每个adv的特征和做出驾驶决策所针对的对象的特征。已经提取了来自每个adv1、2和3的针对为对象(例如,汽车510)“让行”的驾驶决策的日志信息。针对adv1、2和3中的每一个,驾驶决策被分类为“激进参数”。

可以从adv的日志信息中提取每个adv驾驶决策的特征向量。特征可包括adv速度831、定向832和车道位置833。特征还可包括对象510距adv的距离841、与adv的相对位置842、对象的速度843、对象相对于网格或adv向前行驶方向的定向844、对象的车道位置845和道路状况846。当adv的规划模块接收到驾驶决策时,特征还可包括规划模块304所建议的参数修改850。adv的特征值可以被布置成特征向量。例如,adv1特征向量可以是(25,0°,3'left,60',-72°,24,+90°,-1,3),其中↑(直线前进)的驾驶定向可以由0°指示,并且道路状况可以以1至5的标度给出,诸如1=干燥、2=潮湿、3=湿润、4=雪、5=冰、日出=10、白天=20、阴天=30、日落=40并且黑暗=50。道路状况可以是组合的,这种湿润且黑暗的日子可以是3+50=53。adv2的特征向量可以是(32,0°,2'left,80',+28°,30,-90°,-1,1),并且adv3特征向量可以是(28,0°,2'left,72',-2°,30,180°,3'left,51)。

机器学习模块103a可以在用于驾驶决策和对象的特征向量上操作以获得可能需要最小的(或不需要)决策修改或参数修改的建议特征。全局变化可指示:针对25mph的adv速度831、0°(或↑)驾驶定向832、在距adv行驶车道左边缘右侧2至3英尺的车道位置将不需要调整针对下述对象的决策:在约68英尺距离841处、针对对象的全部相对位置842、对象速度844为约28mph,其中,对象的定向844可以是任何值,对象845的车道位置可以是任何位置,并且决策将适合全部天气和光线。驾驶决策改进应当适用于当adv以约25mph行进时,参考以约28mph行进的移动对象而做出的大部分“让行”驾驶决策。

在产品adv中实施决策改进之前,工程师团队可以对决策改进输出进行审查。即使在产品adv中实施了全局驾驶决策改进之后,仍然可以由每辆汽车通过使用局部驾驶决策改进模块308来修改改进的决策。

图9是示出可以与本发明一个实施方式一起使用的数据处理系统900的示例的框图。例如,系统900可以表示以上所述的执行上述过程或方法中的任一个的任何数据处理系统,例如图1的自动驾驶车辆101系统(诸如感知和规划系统110、控制系统111、信息娱乐系统114等)或服务器103至104中的任一个。系统900可包括许多不同的组件。这些组件可以实现为集成电路(ic)、集成电路的部分、分立的电子装置或适用于诸如计算机系统的主板或插卡的电路板的其它模块,或者实现为以其它方式并入计算机系统机架内的组件。

还应注意,系统900旨在示出计算机系统的许多组件的高级视图。然而,应当理解的是,某些实现方式中可具有附加的组件,此外,其它实现方式中可出现所示组件的不同布置。系统900可以表示台式机、笔记本电脑、平板电脑、服务器、移动电话、媒体播放器、个人数字助理(pda)、嵌入式处理控制器、智能手表、个人通信器、游戏装置、网络路由器或集线器、无线接入点(ap)或中继器、机顶盒或其组合。此外,虽然仅示出了单个机器或系统,但是术语“机器”或“系统”也应当被视为包括单独或联合执行一个(或多个)指令集以执行本文所讨论方法中的任何一种或多种的机器或系统的任何集合。

在一个实施方式中,系统900包括经由总线或互连件910连接的处理器901、存储器903以及装置905至908。处理器901可以表示单个处理器或包括有单个处理器核心或多个处理器核心的多个处理器。处理器901可以表示一个或多个通用处理器,诸如微处理器、中央处理单元(cpu)等。更具体地,处理器901可以是复杂指令集计算(cisc)微处理器、简化指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实现其它指令集的处理器或实现指令集的组合的处理器。处理器901还可以是一个或多个专用处理器,诸如专用集成电路(asic)、蜂窝或基带处理器、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器、图形处理器、网络处理器、通信处理器、加密处理器、协处理器、嵌入式处理器或能够处理指令的任何其它类型的逻辑。在实施方式中,处理器901包括至少一个硬件处理器。

处理器901(其可以是低功率多核处理器套接口,诸如超低电压处理器)可充当用于与所述系统的各种组件通信的主处理单元和中央集线器。这种处理器可以实现为片上系统(soc)。处理器901被配置成执行指令以执行本文所讨论的操作和步骤。系统900还可包括与可选的图形子系统904通信的图形接口,图形子系统904可包括显示控制器、图形处理器和/或显示装置。

处理器901可以与存储器903通信,存储器903在实施方式中可以通过多个存储器装置实现以提供给定量的系统存储器。存储器903可包括一个或多个易失性存储(或存储器)装置,诸如随机存取存储器(ram)、动态ram(dram)、同步dram(sdram)、静态ram(sram)或其它类型的存储装置。存储器903可以存储包括由处理器901或任何其它装置执行的指令序列的信息。例如,多种操作系统、装置驱动器、固件(例如,基本输入输出系统或bios)和/或应用的可执行代码和/或数据可以加载到存储器903中并由处理器901执行。操作系统可以是任何类型的操作系统,例如机器人操作系统(ros)、来自公司的操作系统、来自apple公司的mac来自公司的linux、unix或其它实时或嵌入式操作系统。

系统900还可包括io装置,诸如装置905至908,包括网络接口装置905、可选的输入装置906以及其它可选的io装置907。网络接口装置905可包括无线收发器和/或网络接口卡(nic)。所述无线收发器可以是wifi收发器、红外收发器、蓝牙收发器、wimax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(gps)收发器)或其它射频(rf)收发器或其组合。nic可以是以太网卡。

输入装置906可包括鼠标、触摸板、触敏屏幕(其可以与显示装置904整合在一起)、指向装置(诸如触控笔)和/或键盘(例如,物理键盘或作为触敏屏幕的一部分显示的虚拟键盘)。例如,输入装置906可包括联接到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器例如可以使用多种触敏技术(包括但不限于电容、电阻、红外和表面声波技术)中的任一种以及用于确定与触摸屏接触的一个或多个点的其它接近传感器阵列或其它元件来检测其接触和移动或间断。

io装置907可包括音频装置。音频装置可包括扬声器和/或麦克风,以利于支持语音的功能,诸如语音辨识、语音复制、数字记录和/或电话功能。其它io装置907还可包括通用串行总线(usb)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如,pci-pci桥)、传感器(例如,诸如加速度计的运动传感器、陀螺仪、磁强计、光传感器、罗盘、接近传感器等)或其组合。装置907还可包括成像处理子系统(例如,摄像机),所述成像处理子系统可包括用来利于摄像机功能(诸如记录照片和视频片段)的光学传感器,诸如电荷耦合装置(ccd)或互补金属氧化物半导体(cmos)光学传感器。某些传感器可以通过传感器集线器(未示出)联接到互连件910,而其它装置(诸如键盘或热传感器)可以由嵌入式控制器(未示出)控制,这取决于系统900的特定配置或设计。io装置907还可包括雷达系统(无线电探测和测距)、lidar系统(光探测和测距)、gps系统(全球定位系统)、可以使用蜂窝塔进行探测和三角测量的蜂窝电话子系统、麦克风以及其它音频/视频录像机、位置、距离、时间、速度、加速度、水平和竖直水准检测器,定向和方向传感器。

为了提供对信息(诸如数据、应用、一个或多个操作系统等)的永久性存储,大容量存储装置(未示出)也可联接到处理器901。在各种实施方式中,为了实现更薄且更轻的系统设计并且改进系统响应能力,这种大容量存储装置可以通过固态装置(ssd)实现。然而,在其它实施方式中,大容量存储装置可以主要使用硬盘驱动器(hdd)来实现,其中较小量的ssd存储装置充当ssd缓存以在断电事件期间实现上下文状态以及其它此类信息的非易失性存储,从而使得在系统活动重新启动时能够实现快速通电。另外,闪存装置可以例如通过串行外围接口(spi)联接到处理器901。这种闪存装置可以提供系统软件的非易失性存储,所述系统软件包括系统的bios以及其它固件。

存储装置908可包括计算机可访问的存储介质909(也被称为机器可读存储介质或计算机可读介质),其上存储有实现任何一种或多种本文所描述的方法或功能的一个或多个指令集或软件(例如,模块、单元和/或逻辑928)。处理模块/单元/逻辑928可以表示任何上述组件,例如自动驾驶车辆101(av)定位模块301、感知模块302、驾驶决策模块303、规划模块304、控制模块305、记录模块306、驾驶决策问题识别模块307和决策改进模块308,以及用于处理传感器数据以驱动av规划和控制模块的一个或多个模块。处理模块/单元/逻辑928还可以在其由数据处理系统900、存储器903和处理器901执行期间完全地或至少部分地驻存在存储器903内和/或处理器901内,从而另外构成机器可访问的存储介质。处理模块/单元/逻辑928还可以通过网络经由网络接口装置905被发送或接收。

计算机可读存储介质909也可以用来永久性地存储以上描述的一些软件功能。虽然计算机可读存储介质909在示例性实施方式中被示为单个介质,但是术语“计算机可读存储介质”应当被认为包括存储所述一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的缓存和服务器)。术语“计算机可读存储介质”还应当被认为包括能够存储或编码指令集的任何介质,所述指令集用于由机器执行并且导致所述机器执行本发明的任何一种或多种方法。因此,术语“计算机可读存储介质”应当被认为包括但不限于固态存储器以及光学介质和磁性介质或者任何其它非暂时性机器可读介质。

本文所述的处理模块/单元/逻辑928、组件以及其它特征可以实现为分立的硬件组件或整合在硬件组件(诸如asics、fpga、dsp或相似装置)的功能中。另外,处理模块/单元/逻辑928可以实现为硬件装置内的固件或功能电路。此外,处理模块/单元/逻辑928可以以硬件装置和软件组件的任何组合实现。

应注意,虽然系统900被示出为具有数据处理系统的各种组件,但是其不旨在表示任何特定的架构或互连组件的方式;因为此类细节和本发明的实施方式没有密切关系。还应当认识到,具有更少组件或可能具有更多组件的网络计算机、手持计算机、移动电话、服务器和/或其它数据处理系统也可与本发明的实施方式一起使用。

前述详细描述中的一些部分已经依据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以最有效地将它们的工作实质传达给本领域中的其他技术人员。这里,算法通常被认为是导致所期望结果的前后一致的操作序列。这些操作是指需要对物理量进行物理操控的操作。

然而,应该牢记的是,全部这些和相似的术语都与适当的物理量相关联,并且仅仅是适用于这些数量的便利的标记。应当了解,除非在以上讨论中另外明确地说明清楚,否则,本说明书全文中利用术语(诸如所附权利要求中所阐述的术语)的讨论是指计算机系统或相似电子计算装置的动作和处理,所述计算机系统或相似电子计算装置操控表示为计算机系统的寄存器和存储器内的物理(例如,电子)量的数据,并将所述数据变换成相似地表示为计算机系统存储器或寄存器或其它此类信息存储器、传输或显示装置内物理量的其它数据。

本发明的实施方式还涉及一种用于执行本文中的操作的设备。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存存储器装置)。

前述附图中所描绘的过程或方法可以由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,实现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所描述操作中的一些可以按不同的顺序执行。此外,一些操作可以并行地而不是顺序地执行。

本发明的实施方式并未参考任何特定的编程语言进行描述。将认识到的是,可以使用多种编程语言来实现如本文描述的本发明的实施方式的教导。

在以上的说明书中,已经参考本发明的具体示例性实施方式对本发明的实施方式进行了描述。将显而易见的是:在不脱离如所附权利要求中阐述的本发明的更宽泛精神和范围的情况下,可以对本发明做出各种修改。因此,应当以说明性意义而不是限制性意义来理解本说明书和附图。

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