本申请要求于2017年6月16日提交的第62/521,127号美国临时申请以及于2016年12月2日提交的第62/429,272号美国临时申请的权益,这两个申请在此通过该引用以其整体并入。
发明内容
本公开提供了以下方面:
1)一种用于控制车辆导航通过道路的系统,所述系统包括:
·感知模块,所述感知模块包括传感器子系统,其中,所述传感器子系统生成传感器数据,并且其中,所述感知模块基于对所述传感器数据的分析,输出所述车辆附近区域的代价地图以及与所述车辆附近的交通对象相关联的交通数据;
·行为规划模块,所述行为规划模块从所述感知模块接收所述代价地图和所述交通数据,并且基于所述代价地图和交通数据生成规划器原语,其中,所述行为规划模块包括决策块,所述决策块包括训练过的机器学习模型;
·训练模块,所述训练模块从所述感知模块接收所述代价地图和所述交通数据,从车辆操作者接收驾驶者输入,并且基于所述驾驶者输入、所述代价地图、和所述交通数据来训练所述行为规划模块;
·本地规划模块,所述本地规划模块包括一组任务块,所述一组任务块中的每一个任务块包括明确编程的规则集,其中,所述本地规划模块从所述感知模块接收所述代价地图,并且从所述行为规划模块接收所述规划器原语,基于所述规划器原语来选择任务块,并使用所选择的任务块来基于所述代价地图生成控制命令;以及
·控制模块,所述控制模块包括致动子系统,其中,所述控制模块从所述本地规划模块接收所述控制命令,并基于所述控制命令来控制所述致动子系统。
2)根据1)所述的系统,其中,所述传感器数据包括对应于在所述车辆周围的环境的图像数据和距离数据。
3)根据1)所述的系统,其中,所述交通数据包括一组位置和一组轨迹中的至少一项,所述一组位置和所述一组轨迹与由所述感知模块的对象分析块分类的一组交通对象相关联。
4)根据3)所述的系统,其中,所述一组交通对象包括相邻车辆、车道标记、和道路边缘中的至少一个。
5)根据1)所述的系统,其中,所述感知模块输出所述车辆的地理位置,并且所述系统还包括任务规划模块,所述任务规划模块从所述感知模块接收所述地理位置,并且基于所述地理位置和预定目的地生成路线规划,其中,所述行为规划模块从所述任务规划模块接收所述路线规划,并且基于所述路线规划结合所述代价地图和交通数据来生成所述规划器原语。
6)根据1)所述的系统,其中,所述感知模块包括:
·代价建图块,所述代价建图块基于对所述传感器数据的分析来生成所述代价地图,其中,所述代价地图包括一组权重到所述道路上相关联的一组位置的二维映射,其中,每个权重对应于所述车辆位于相关联的位置的不利事件发生的风险值,以及
·车道识别块、车道跟踪块、对象识别块、和对象跟踪块中的至少一个。
7)根据1)所述的系统,还包括预测块,所述预测块基于所计算的所述交通对象的轨迹和所述交通数据来估计交通对象相对于所述车辆的未来位置,并且其中,所述行为模块基于所估计的交通对象的未来位置来生成规划器原语。
8)根据1)所述的系统,还包括有限状态致动器,所述有限状态致动器基于所述代价地图和交通数据,从一组规划器原语中选择允许的规划器原语的子集。
9)根据8)所述的系统,其中,基于指示所述道路是单行道的交通数据,所述允许的规划器原语的子集排除车道改变原语。
10)根据1)所述的系统,其中,所述车辆操作者是驻留在所述车辆外部的远程车辆操作者,所述系统还包括远程遥操作接口,所述远程遥操作接口包括显示器和一组输入端,所述远程遥操作接口在所述显示器上将所述传感器数据呈现给所述远程车辆操作者,并且在所述一组输入端处接收来自所述远程车辆操作者的所述驾驶者输入,其中,所述一组输入端包括方向盘输入端、油门踏板输入端、制动踏板输入端、和变速器输入端。
11)根据10)所述的系统,其中,所述系统是可在遥操作模式和自主模式之间进行操作的,其中,在所述遥操作模式中,所述行为规划模块基于从所述远程车辆操作者接收的指示来生成所述规划器原语,其中,在所述自主模式中,所述行为规划模块独立于所述远程车辆操作者在所述决策块处生成所述规划器原语,并且其中,所述系统基于所述车辆的地理位置,在所述遥操作模式和所述自主模式之间转换。
12)根据1)所述的系统,其中,所述控制模块还包括速度控制块和转向控制块,其中,所述速度控制块基于与所选择的任务块相关联的命令指令,输出节气门致动器位置和制动致动器位置,并且其中,所述转向控制块基于与所述选择的任务块相关联的所述命令指令,输出转向角度。
13)一种用于控制车辆的方法,包括:
·在所述车辆的传感器子系统处对包括图像流、定位信号、和操作数据的传感器数据进行连续采样;
·将所述图像流、所述定位信号、和所述操作数据发送到与遥操作者相关联的远程遥操作接口;
·在所述车辆的行为规划模块处,通过所述远程遥操作接口从所述遥操作者接收第一指示,其中,所述行为规划模块包括训练过的机器学习模块;
·在所述行为规划模块处基于所述指示生成规划器原语;
·在所述车辆的本地规划模块处,基于所述规划器原语选择任务块,其中,所述任务块包括明确编程的规则集;
·在所述车辆的控制模块处,基于所选择的任务块结合所述传感器数据来控制所述车辆;
·响应于所述车辆进入具有预定特征的地理区域,从所述遥操作者接收第二指示;
·响应于接收到所述第二指示,将规划权限转移到所述车辆的所述行为规划模块;
·基于所述传感器数据,在所述行为规划模块处自动生成第二规划器原语;
·基于所述第二规划器原语,自动选择第二任务块;
·结合所述传感器数据,基于所选择的第二任务块来控制所述车辆;以及
·响应于所述车辆到达预定地理位置,自动将规划权限转移到所述遥操作者。
14)根据13)所述的方法,其中,所述操作数据包括当前车辆速度、当前车辆转向角、当前节气门状态、和瞬时估计的车辆距离中的至少一个。
15)根据14)所述的方法,还包括在所述远程遥操作接口处呈现所述操作数据,其中,所述远程遥操作接口被配置成可视地模拟商用卡车驾驶室的内部。
16)根据13)所述的方法,还包括基于所述第一指示结合所述传感器数据来训练所述行为规划模块。
17)根据13)所述的方法,其中,具有所述预定特征的所述地理区域包括高速公路入口匝道的末端区域,并且其中,所述预定地理位置包括高速公路出口匝道。
18)根据13)所述的方法,其中,所述第一指示包括向左变道的指示,其中,所述规划器原语包括左车道改变原语,其中,所述任务块包括左车道改变块,并且其中,控制所述车辆包括基于所述传感器数据和所述左车道改变块的一组规则,生成对应于向所述车辆左侧的车道的变道的转向角指令、节流指令、和制动指令,以及根据所述相应的转向角指令、节流指令、和制动指令来致动所述车辆的方向盘、油门踏板、和制动踏板。
19)根据13)所述的方法,还包括从驻留在所述车辆内部的本地操作者接收第三指示,响应于接收到所述第三指示而将规划权限转移给所述本地操作者,并且基于由所述本地操作者生成的直接控制输入来控制所述车辆。
20)根据19)所述的方法,还包括基于所述直接控制输入结合所述传感器数据来训练所述行为规划模块。
优选实施例的描述
本发明的优选实施例的以下描述并非旨在将本发明限制于这些优选实施例,而是旨在使本领域的任何技术人员能够制造并且使用本发明。
1.概要
如图1所示,用于控制车辆的系统100包括感知模块110、从感知模块110接收输入的行为规划模块130、从行为规划模块130和感知模块110接收输入的本地规划模块140、以及从本地规划模块140接收输入并致动车辆的控制元件的控制模块150。系统100可以可选地包括从感知模块接收输入并向行为规划模块提供输出的任务规划模块120、从感知模块和车辆操作者接收输入并基于输入训练系统100的其他模块和/或块的训练模块160、通信模块170、和/或任何其他合适的部件。
系统100用于在操作(例如,驾驶、装载、卸载等)期间控制车辆。系统可以附加地或替代地用于收集训练数据,并使用收集的训练数据来训练决策模型。系统是在若干种操作模式(包括手动操作模式、自主操作模式(例如,四级自主、五级自主等)、半自主操作模式(例如,三级自主、二级自主等)、以及遥操作(teleoperation)模式)之间可操作的。然而,系统可以是在任何其他合适的操作模式之间可操作的。手动操作模式优选地包括位于车辆上(例如,在商用卡车驾驶室内的驾驶者的座椅位置处、在乘客的座椅位置上等)的人类操作者执行与车辆控制相关联的动作(例如,致动油门和/或制动踏板、旋转方向盘、选择预定任务块等),但是可以附加地或可选地包括任何合适的操作者在任何合适位置执行任何合适的动作来操作车辆。自主操作模式优选地包括车载计算系统,其接收来自传感器子系统111的输入,在计算系统处实现决策块以基于输入来选择任务块,并且在致动子系统处执行由所选择的任务块生成的指令以控制车辆;然而,自主操作模式可以包括执行任何其他合适的动作。遥操作模式优选地包括远程操作者将控制指令(例如,行为指南、指示等)发送到系统(例如,发送到系统的决策块),并基于控制指令来控制车辆,但是可以附加地或替代地包括从远程操作者接收任何类型的指示或指令(例如,直接转向、节气门(throttle)、和/或制动输入信号)并以任何合适的方式控制车辆作为响应。
2.益处
在自主和半自主车辆控制领域,长期以来一直需要通过监督学习的方式生成用于被训练的机器学习模型的高质量的训练数据。由于难以识别高于平均水平(例如,熟练)的人类驾驶者,从人类驾驶者生成高质量训练数据可能不切实际且昂贵。此外,由于人类驾驶者和车辆控制系统之间的不同感测机制(例如,人类视觉相对于机器视觉或计算机视觉、人类深度感知相对于LIDAR等),将人类感官输入与车辆控制系统的感官输入相关联以便验证训练数据(例如,确定假阳性和假阴性)可能是困难的、不切实际的、和/或昂贵的(例如,需要人为干预、手动验证、手动标记等)。此外,长期以来一直需要在训练过的决策模型(例如,随机训练的模型、使用监督学习训练的模型等)和车辆控制接口的致动(例如,便于自主车辆决策和/或动作的事后审计)之间有确定性的控制层。
鉴于上述和其他原因,系统和/或方法的变型可以提供优于用于控制车辆的操作、收集训练数据和使用训练数据训练决策模型、和/或实现用于控制车辆的操作的决策模型的传统技术和方法的若干益处和/或优点。
首先,系统的变型可以通过根据机器学习模型(例如,统计模型、随机模型、监督学习模型)执行决策(例如,任务选择、行为选择),以及根据确定性模型(例如,硬编码模型、显式编程的规则集、一组静态计算机实现的规则等)执行车辆操作任务和/或动作(例如,变道、换档、制动等),来改进车辆控制技术领域。
第二,系统的变型可以提供植根于计算机技术的技术解决方案(例如,在迭代过程中用专用数据集计算校准模块,诸如任务块),以克服随着计算机技术具体产生的问题(例如,基于来自传感器子系统的输入数据,提高选择任务块的准确性、提高选择速度等)。例如,可以通过将专业卡车驾驶者输出(例如,来自训练模块、来自遥操作者)与车辆性能的传感器测量结果进行比较来校准任务块(例如,用于在高速公路速度下变道)。
第三,系统的变型可以提供对车辆控制装备(例如,车辆控制系统的致动子系统)的功能的改进。为实现车辆操作而优化的决策块可以被用于生成用于控制任务块的任务选择指令,任务块进而可以经由致动(例如,转向致动子系统、踏板致动子系统等)来控制车辆从而直接操作车辆。
第四,系统的变型可以基于遥操作者输入来生成训练数据(例如,用于训练机器学习模型)。例如,遥操作者可以基于接收到的传感器数据的解释来选择驾驶任务,并且遥操作者的选择可以通过车辆上的系统来实现,并且被记录为训练数据。
第五,系统的变型可以将结构化输入(例如,从图像中提取的车道线、从图像中提取的周围车辆和/或其他对象、从图像中提取的交通数据和/或距离数据等)与结构化输出(例如,驱动任务、任务块等)联系起来以作为精确控制输出(例如,转向柱方位角、踏板致动距离等)的补充和/或替代。
第六,系统的变型可以增强车辆控制的可预测性,并能够追踪(例如,审计)使用该系统实现的决策过程。
然而,该系统和方法还可以提供任何合适的益处。
3.系统
如图2所示,用于控制机动车辆的系统100的示例可以包括:感知模块110,其包括传感器子系统111、车道检测块112、车道跟踪块113、对象检测块114、对象跟踪块115、状态估计块116、和代价建图(cost mapping)块117,其中,感知模块输出车辆的定位1101、车辆附近区域的代价地图(cost map)1102、以及与车辆附近的交通对象相关联的交通数据1103;任务规划模块120,其接收定位1101并基于定位1101生成路线规划1201;行为规划模块130,其包括预测块131、轨迹生成器132、有限状态致动器133、代价地图更新器134、和决策块135,其中,行为规划模块130从感知模块110接收代价地图1102和交通数据1103,并且从任务规划模块120接收路线规划1201,并基于代价地图1102、交通数据1103、和路线规划1201来生成规划器原语(planner primitive)1301;本地规划模块140,其包括多个任务块141和退化(degenerate)块142,其中,本地规划模块140从感知模块110接收代价地图1102,并且从行为规划模块130接收规划器原语1301,并基于代价地图1102和规划器原语1301生成控制命令1401;以及控制模块150,其包括速度控制块151、转向控制块152、和致动子系统153,其中,控制模块150从本地规划模块140接收控制命令1401,并基于控制命令1401控制致动子系统153。然而,在变型中,系统100可以包括任何其他合适的模块和/或块,并且可以生成任何合适的输出,由此数据在模块和/或块之间进行传输。应当注意的是,在变型中,模块内的块可以具有系统100的模块的任何合适的属性。
系统模块可以包括以下中的任何一个:过程驱动模块(例如,基于方程的模块、微分方程模块等)、模糊网络模块、聚类模块(clustering module)、无监督机器学习模块(例如,人工神经网络、关联规则学习、层次聚类、聚类分析、离群点(outlier)检测、卷积神经网络/CNN等)、监督学习模块(例如,人工神经网络、关联规则学习、层次聚类、聚类分析、离群点检测、卷积神经网络/CNN等)、半监督学习模块、深度学习模块、和/或利用任何其他合适的机器学习方法、概率方法、启发式方法、确定性方法、和/或其任意组合的任何其他合适的模块。用于模块的输入和/或特征(如,方程中使用的参数、机器学习模型中使用的特征、CNN中使用的因子等)可以通过灵敏度分析确定、从其他模块接收(例如,作为输出)、从用户账户(例如,从车辆操作者、从与一组车辆的车队管理器相关联的装备等)接收、自动检索(例如,从在线数据库、通过订阅数据源接收等)、从采样的传感器信号(例如,图像等)中提取、根据一系列传感器信号(例如,随时间变化的信号、信号模式等)确定、和/或以其他方式确定。
这些模块优选地是通用的(例如,这些模块在所有车辆、车队等中实现相同的模型等),但是可选地可以是特定于驾驶者、车辆、车队、或以其它方式而不同(例如,模块可以实现具有针对特定驾驶者、车辆、车队、地理位置等的参数的模型)。可以同时(例如,并行地)、异步、或在任何其他合适的时间执行使用方法的不同实例。每当系统被使用时和/或(例如,基于最新信息)系统元件被执行时、一次性、以一个时间间隔(例如,每天、每周、每月等)、每当新接收的数据值不同于预测的数据值时、和/或以任何其他合适的频率模块被生成、执行或校准。模块的输入和/或输出可以与任何合适的时间指示器(例如,每日数据、一段时间内的平均值等)相关联。另外,模块(例如,决策块)的任何合适的输入可以用作另一模块(例如,训练模块)的输入,并且模块的任何合适的输出可以用作另一模块的输入。在示例中,系统的一个或更多个模块和/或模块的组合可以是时间序列模块(例如,其中模块在第一时间的输出可以在第二时间用作相同或不同模块的输入,等等)。
在第一变型中,行为规划模块的决策块基本上由训练过的机器学习模型组成,并且本地规划模块的任务块均基本上由与相应任务相关联的明确编程的规则集组成。优选地通过监督学习的方式来训练决策块,其中,模型的输入包括感知模块的输出(例如,图像流、测距数据、位置数据、交通数据等)并且该输出包括车辆基于由输入表示的场景要执行的(例如,与一个或更多个任务块和/或任务块的组合相关联的)期望的车辆动作。例如,决策块可以被训练成基于与其相关联的并且可被感知模块检测到的听觉和/或视觉模式来识别应急车辆,并且响应于识别这种应急车辆而在适当的时候靠路边停车。然而,在该变型中,决策块不生成直接控制车辆的输出(例如,命令输出、控制指令、用于驱动致动子系统的信号等);相反,任务块确定性地生成这样的输出(例如,作为基于来自感知模块的输入的明确编程的规则集的输出)。然而,在进一步的变型中,可以另外以任何合适的方式适当地实现决策块和任务块。
3.1感知模块
系统100的感知模块110用于感知车辆周围的环境,并输出指示周围环境特征的传感器数据1100。感知模块110可以用于直接感知环境(例如,采样成像传感器、测距传感器等)以及执行与感知相关的分析(例如,对象检测、对象分类、图像特征检测、图像特征跟踪、交通数据提取等)。感知模块110包括传感器子系统111,并且可以包括车道检测块112、车道跟踪块113、对象检测块114、对象跟踪块115、状态估计块11、6和代价建图块117。然而,感知模块110可以附加地或替代地包括用于感知周围环境的任何其他合适的块和/或子系统。
感知模块110优选地输出传感器数据1100,传感器数据1100可以包括车辆的定位1101、车辆附近区域的代价地图1102、以及与车辆附近的交通对象相关联的交通数据1103。然而,感知模块110可以附加地或替代地输出从感知模块110收集和/或生成的数据中导出和/或以其他方式与其相关的任何合适的传感器数据。
车辆的定位1101优选地包括车辆的绝对地理位置(例如,地理位置、GPS坐标),但是可以附加地或替代地包括在车辆和车辆附近的对象(例如,道路边缘、车道边缘、最近邻车辆、交通标志等)之间的相对距离、和/或任何其他合适的定位或位置信息。
车辆附近区域的代价地图1102优选地包括车辆周围物理空间到代价值的二维映射,其中,空间中每个点的代价值对应于与位于空间中该点处的车辆相关联的任意代价值。代价值优选地与在车辆将要移动进入和/或停留在与代价值相关联的空间点处时发生的不利事件(例如,碰撞、不期望的机动、违反交通规则等)的定量风险相关联。高代价值(例如,相对于地图区域中的最小代价值)优选地对应于不利事件的高风险,而低代价值优选地对应于不利事件的低风险;然而,在替代实施方式中,高代价值可以对应于不利事件的低风险,反之亦然。当建图到代价地图上时,通过物理空间的期望轨迹优选地对应于轨迹的最小综合代价;然而,在替代实现方式中,通过物理空间的期望轨迹可以对应于轨迹的最大综合代价。空间中每个点的代价值可以采用从任何合适的值范围(例如,0到1、负无穷大到无穷大、0到100等)中确定的任何合适的数值。
与车辆附近的交通对象相关联的交通数据1103优选地包括与交通相关的可以用于根据相关法律和/或法规实现驾驶的数据。交通数据可以包括与道路相关的数据。例如,交通数据可以包括指示道路类型(例如,地面街道、高速公路、装货码头、私人停车场等)的数据、指示道路允许或不允许的车辆的数据(例如,从标志中提取的指示禁止超过一定重量的车辆的数据)、指示道路上交通流指南的数据(例如,车道线、涂在道路表面上的文字、标志等)、以及任何其他合适的道路数据。交通数据可以包括与道路上的对象相关的数据。例如,交通数据可以包括与附近车辆相关的数据(例如,附近车辆的数量、附近车辆的类型、附近车辆的操作规范、附近车辆的速度和/或轨迹等)、与行人相关的数据(例如,行人的存在、行人的速度和/或轨迹等)、与物理交通流屏障(例如,临时屏障、交通锥等)相关的数据、以及与道路中的对象相关的任何其他合适的数据。交通数据可以包括关于交通环境的任何数据,这些数据可以用于遵守当地和/或州的驾驶法规。在另一示例中,交通数据可以包括与一组交通对象(例如,邻近车辆、车道标志、道路边缘等)相关联的一组位置和/或一组轨迹,其被感知模块的对象分析块(例如,对象检测块、对象跟踪块)分类。然而,交通数据可以附加地或替代地包括与车辆交通和/或车辆交通环境(例如,相邻的人行道)相关的任何合适的数据。
感知模块110的传感器子系统111用于从车辆周围收集定位数据和建图数据。传感器子系统111可以附加地用于收集车辆操作数据(例如,对应于在操作期间车辆部件的状态的时间序列数据)、以及用于记录指示驾驶环境的测量结果(例如,周围环境参数、车辆位置等),并且将输出(例如,记录的测量结果、处理的传感器数据等)提供给行为规划模块130的决策块(例如,作为信号、消息等)以及系统100的其他模块的任何其他合适的块。传感器系统包括至少一个建图传感器和至少一个监控传感器,但是可以附加地或替代地包括任何合适数量的任何合适的传感器。传感器子系统111优选地收集传感器数据,例如图像数据(例如,静止图像、视频流、压缩图像序列等)、距离数据(例如,飞行时间/ToF数据、LIDAR数据、雷达数据、立体摄像机数据、光流数据、点云数据等)、环境数据(例如,位置数据、温度数据、湿度数据等)、以及任何其他合适的传感器数据。优选地从一个或更多个传感器接收(例如,由传感器子系统收集的)输入,该一个或更多个传感器可以是车载的、从车辆移除的(例如,远程)、或者在任何其他合适的位置。传感器子系统111的输出可以包括传感器数据1111(例如,原始数据、未处理的数字化图像数据等)、以及从传感器数据导出的数据,例如融合数据(例如,在处理器处被组合以提高准确性的图像和距离数据)、以其它方式处理的数据(例如,分类的对象、对象质心/CoM的位置、三维或二维空间中的对象范围、对象轨迹等)、以及任何其他合适的数据。输出优选地被提供给决策块;提供给决策块的示例性传感器测量结果包括道路上的视觉标记、导航数据(例如,地图位置数据、GPS数据)、RADAR数据、方位传感器数据、周围环境数据(例如,声学数据、温度数据等)、以及任何其他合适的传感器数据。
车载传感器和/或数据源的示例包括:惯性测量单元(IMU)、超声波传感器、数据端口(例如,车载诊断模块端口/OBD端口)、GPS传感器和模块、摄像机(例如,立体摄像机、单镜头摄像机等)、导航传感器(例如,LiDAR、雷达、ToF等)、位置传感器(例如,致动器位置传感器、LVDT传感器等)、编码器(例如,测量车辆和/或车辆控制系统的旋转致动器的角位置和/或速度的旋转编码器)、以及任何其他合适的车载传感器。传感器子系统111的前述传感器可以附加地或替代地远离车辆定位(例如,固定的路边传感器、交通摄像机等)并将传感器数据发送到车辆。
在提供给车辆控制系统的决策块和/或其他模块之前,传感器数据可以由传感器子系统111和/或与传感器子系统111通信的计算系统进行预处理。可以对摄像机数据、GPS数据、雷达和/或其他距离数据、以及任何其他合适的数据执行预处理。例如,摄像机数据(例如,图像)可以被处理以提取车道标记、车辆对象、视觉地标(例如,停车标志、人行横道标志、建筑物等)、以及任何其他合适的特征。在另一示例中,GPS坐标可以与车辆路线地图(例如,从远程服务器检索,存储在车载数据库中,等等)相结合来提供导航数据。在另一示例中,雷达特征(例如,点云数据)被简化为视野(FoV)中车辆的轨迹,其包括车辆的速度和范围。
传感器子系统111的建图传感器用于相对于车辆的周围环境在三维空间中自主地建图和/或定位车辆。建图传感器还可以用于检测和/或跟踪车辆附近(例如,与车辆在同一道路上或附近)的移动对象。建图传感器可以包括,例如:雷达、LiDAR、摄像机(例如,立体摄像机、单目摄像机)、和任何其他合适的建图传感器。然而,建图传感器可以包括任何其他合适的传感器,并且以其他方式被适当地布置。
传感器子系统111的监控传感器用于监控(例如,由位于车辆中的驾驶者、由遥操作者、由自主计算系统等)施加到车辆的控制输入。监控传感器可以包括例如:面向驾驶者的摄像机、压力传感器和/或测量施加到车辆控制表面(例如方向盘、踏板等)的力的其他力传感器、以及任何其他合适的监控传感器。
感知模块110的车道检测块112用于从由传感器子系统111的传感器收集的原始传感器数据中提取指示道路上交通车道的信息。例如,车道检测块112可以从道路的图像中提取基准信息(例如,车道线),并计算车辆和检测到的车道之间的相对空间定向,并且感知模块110可以将相对空间定向作为交通数据输出,并将车道的基准标记叠加在远程操作者接口的显示器上。在另一示例中,车道检测块112可以从传感器子系统111的惯性测量单元的振动信号中提取车道边缘,其中,振动信号是指示车道边缘的形态学道路特征的特性。然而,车道检测块112可以基于任何合适的信息以任何合适的方式来附加地或替代地检测车道。
感知模块110的车道跟踪块113用于跟踪道路上车道的位置,并出于车道保持的目的跟踪车道的边界。例如,车道跟踪块113可以基于由车道检测块112从图像中提取的各个车道标记(例如,不连续的车道标记),在时间和空间上(例如,朝向车辆前方的地平线)投影车道的连续轮廓。然而,车道跟踪块113可以以其他方式适当地跟踪道路上车道的任何合适的属性。
感知模块110的对象检测块114用于基于由传感器子系统收集的传感器数据来检测车辆附近的对象。这些对象可以包括邻近车辆(例如,在车辆的一个车辆长度内的车辆、传感器子系统的传感器范围内的车辆等)、静态对象(例如,路标、隔音墙、中央分隔物等)、以及车辆附近的任何其他物理对象。对象检测块114可以检测对象(例如,识别对象的存在),对对象进行分类(例如,确定对象的类型),并执行与对象相关的任何其他合适的分析。
感知模块110的对象跟踪块115用于跟踪由对象检测块114检测到的任何对象的位置与时间的关系。例如,目标跟踪块可以基于物理运动学模型和目标检测块的输出(例如,在每个时间点处的邻近车辆的位置和范围)来确定邻近车辆的先前位置并对邻近车辆的未来位置进行投影。然而,对象跟踪块可以另外以任何合适的方式来适当地跟踪任何合适对象的任何合适的属性。
感知模块110的状态估计块116用于在任何合适的时间确定感知模块110的每个块(例如,112、113、114、115、117)的状态(例如,输出),而与传感器子系统111收集数据所处的时间速率无关。例如,如果传感器子系统111收集20Hz的数据,并且下游模块或块需要40Hz的对象跟踪块的输出,则状态估计块116可以通过基于先前的输出(例如,检测到的对象的最近三个位置)投影检测到的对象的位置来对对象跟踪块的输出进行上采样。然而,状态估计块可以另外适当地估计感知模块110的任何合适的块或其他元件的状态。
感知模块110的代价建图块117用于基于感知模块110的其他块的输出来生成代价地图1102。在一些变型中,代价建图块117可以基于与对象类型相关联的预定代价分布来生成代价地图1102。例如,与被对象检测块识别为乘用车辆的对象相关联的代价分布可以具有分配给车辆的物理范围的预定峰值,以及与乘用车辆周围的空间相关联的代价值,该代价值从车辆物理范围的边缘开始径向减小(例如,1/r、1/r2等)。在另一示例中,可以对与被识别为重型车辆(例如,具有比乘用车辆更大的停车距离和更低的机动性)的对象相关联的代价分布进行加权,使得重型车辆前方和/或侧面的区域对应于高代价区域。在附加的或替代的变型中,代价建图块117可以基于由感知模块110观察到的动态场景来生成代价地图1102。例如,感知模块110可以确定被检测并跟踪的对象正在不规则地移动,并且相应地将高代价值分配给不规则移动的对象附近的区域。然而,代价建图块117可以基于感知模块110的块的任何合适的输出和/或任何其他合适的传感器数据,以其他方式适当地生成代价地图1102。
在一个变型中,代价建图块基于从感知模块接收的传感器数据的分析来生成代价地图。该变型中的代价地图包括一组权重与道路上相关联的一组位置的二维映射。该组权重的每个权重对应于在车辆将位于相关联位置的情况下会发生不利事件的风险值(例如,一组有序可能性(例如高、中和低等)的定量可能性、分类可能性)。然而,代价地图在附加的或替代的变型中可以由代价建图块以其他方式适当地生成。
3.2任务规划模块
系统可以包括任务规划模块120,其用于定义在出发点和目的地之间的路线,并在操作期间沿着该路线引导车辆。出发点可以是车辆的当前位置、车辆的过去位置、在车辆开始移动之前车辆的最后位置、和/或车辆的任何其他合适的地理位置。目的地优选地是车辆的期望终点,并且可以是(例如,从遥操作者)接收的、(例如,由任务规划模块本身)生成的、或者以其他方式适当地获得的。
任务规划模块120优选地输出路线规划1201。路线规划1201优选地包括在出发点和目的地之间导航车辆需要的一系列驾驶行为(例如,高速公路进入、高速公路驾驶、高速公路退出、地面街道导航动作等)。任务规划模块120优选地基于(例如,由任务规划模块从感知模块接收的)定位信号1101来更新路线规划1201(例如,沿着路线规划连续地更新车辆位置);附加地或替代地,任务规划模块120可以基于任何合适的信息以其他方式适当地生成和/或修改路线规划1201。路线规划1201可以包括图形指示符(例如,箭头、街道和/或出口名称或号码等),其可以依次在遥操作接口上被提供(例如,在远程操作者的平视显示器(heads-up display)上呈现)。然而,任务规划模块可以以任何合适的方式附加地或替代地提供任何合适的输出。
在一个变型中,任务规划模块从感知模块110接收地理位置,并基于地理位置和预定目的地来生成路线规划。预定目的地可以由车辆操作者手动输入和/或自动确定(例如,通过读取附接在车辆货物上的目的地标签),或者以其他方式适当地确定。
3.3行为规划模块
行为规划模块130用于基于感知模块110的输出来规划车辆行为。行为规划模块130还可以用于基于从任务规划模块接收的路线规划1201来规划车辆行为。行为规划模块130还可以基于从远程操作者(例如,遥操作者)接收的指令来规划车辆行为。行为规划模块130还可以用于(例如,基于从本地规划模块140接收的错误输出1402)生成错误输出和/或故障标志1302,并将错误输出1302提供给任务规划模块120和/或遥操作者900,从而可以执行进一步的决策。
行为规划模块130包括决策块135,并且可以包括预测块131、轨迹生成器132、有限状态致动器133、和代价地图更新器134。优选地至少部分地在(例如,驻留在车辆上的)本地计算系统处并且至少部分地在远程计算系统(例如,通信地链接到车辆的远程操作系统或遥操作系统)处实现,但是可以附加地或替代地完全在本地、完全远程地实现,或者利用本地和远程计算资源之间的任何合适的分布来实现行为规划模块130和相关联的块。
行为规划模块130优选地从感知模块110接收代价地图1102和交通数据1103,并且从任务规划模块120接收路线规划1201,并基于代价地图1102、交通数据1103、和路线规划1201来生成规划器原语1301。在替代变型中,行为规划模块130从感知模块110接收代价地图1102和交通数据1103,并且从远程操作者接收指示9001(例如,在决策块135处接收),并基于代价地图1102、交通数据1103、和指示来生成规划器原语1301。在另一变型中,行为规划模块基于预测块的输出生成规划器原语,该预测块的输出包括附近交通对象的估计的未来位置。然而,行为规划模块可以附加地或替代地从系统100的任何其他模块接收任何合适的输入,并且以任何合适的方式生成任何合适的输出。
规划器原语1301优选地是语义上描述期望的车辆行为的高级指令。例如,规划器原语1301可以包括停留在道路上的当前车道内的指令(例如,车道保持原语)、保持当前速度的指令(例如,保持状态原语)、改变车道的指令(例如,车道改变原语)、以及任何其他合适的高级指令。规划器原语1301优选地由决策块135生成,并且可以结合来自行为规划模块130的其他块的输入和/或可以至少部分地直接或间接地基于代价地图1102、交通数据1103、和路线规划1201。然而,规划器原语1301可以附加地或替代地包括低级指令(例如,适合于操作致动器的模拟信号、包括特定距离、角度、和时间段的详细操作指令等)和/或行为规划模块130的任何其他合适的输出。
决策块135用于基于输入来确定要执行的任务块。决策块还可以用于基于接收到的测量结果来从(例如,由任务块定义的)一组可用的车辆动作中选择车辆动作。可以在车载计算系统(例如,在车辆上)处、在远程计算系统(例如,遥操作系统)处、或在任何其他合适的位置处执行决策块。在其中在远程计算系统处执行决策块的情况下,来自传感器子系统111的传感器流优选地实时或接近实时地被流传输到远程计算系统。在一些变型中,决策块的第一版本在车辆计算系统处执行,并且决策块的第二版本在远程计算系统处执行,其中,第一版本和第二版本可以执行相同和/或不同的过程(例如,互补的、不同的实例等)。在第一变型中,低级数据被流传输到远程计算系统(例如,视频数据、音频数据、转向致动组件编码器数据、指示施加到加速器踏板的力的数据等),并且远程计算系统处的决策块基于低级数据来自动地选择任务块。在第二变型中,传感器数据的子集被流传输到遥操作系统(例如,视频数据、音频数据等)并且遥操作者响应于接收到的传感器数据子集来手动地选择任务块。在第三变型中,处理过的数据(例如,采样的测量结果摘要、压缩图像等)可以被发送到遥操作系统以用于遥操作者监控,而基础数据被车载系统用来控制车辆动作的子集。遥操作者可以基于处理过的数据来选择车辆动作(例如,覆盖与由车载系统确定的相同或不同类型的车辆动作),其中,所选择的车辆动作(例如,标识符、指令等)可以被发送到车辆并随后由车载系统执行。
决策块优选地被实现为人工神经网络(例如,递归神经网络/RNN、CNN、玻耳兹曼机(Boltzman machine)、自动编码器、深层堆叠网络等);然而,决策块可以附加地或替代地被实现为确定性模块(例如,可以确定性地应用于输入以产生作为输出的任务块的预定规则集)、概率模块(例如,基于一组输入的最可能有利结果来选择任务块的蒙特卡罗(Monte-Carlo)随机模拟器)、或任何其他合适的实现方式。
决策块可以从其他系统部件和/或相关实体接收各种输入。在第一变型中,决策块从传感器子系统111接收传感器输入(例如,如上所述的传感器数据)。在第二种变型中,决策块接收操作者输入。操作者输入可以包括例如,遥操作者的输入、本地操作者的输入(例如,驾驶者转动方向盘、踩下制动踏板、激活转向信号等)、或者本地或远程的人类实体的任何其他合适的输入。在第一特定示例中,本地操作者提供绕过决策块并直接控制车辆的输入。在第二特定示例中,本地操作者提供建图到相关联的任务块的输入(例如,使用确定性地图、查找表等),其中,相关联的任务由系统自动执行(例如,通过执行相关联的任务块)。在第三变型中,决策块接收来自致动子系统输入(例如,致动子系统的状态传感器的输出)的输入。在第三变型中,致动子系统可以由遥操作者控制,且因此可以从遥操作者间接地接收决策块接收的输入(例如,用作决策块的训练数据);附加地或替代地,可以以任何其他合适的方式控制致动子系统。然而,决策块可以接收任何其他合适的输入。
决策块可以生成供其他系统部件和/或相关实体使用的各种输出。决策块优选地基于接收到的输入(例如,如上所述的输入)来确定要执行的任务块,但是可以以其他方式适当地生成和/或确定输出。决策块的输出可以包括例如:直接车辆控制指令(例如,提供给致动子系统的电压和/或电流)、选定的任务块(例如,其中,任务块对一组指令进行编码,以从当前车道改变到车辆的左侧车道)、一组选定的任务块(例如,其中,任务块对一组指令进行编码,以向右改变车道并且发动机制动)、任务块或一组任务块的输入参数(例如,以英里/小时为单位的目标速度、紧邻车辆的对象的最近已知位置等)、上述输出的任何合适的组合、或任何其他合适的输出。
在第一变型中,由决策块确定任务块包括选择一组任务块(例如,包括加速模块、减速模块、速度保持模块等的一组)中的一个。在第二变型中,确定任务块包括选择任务块的组合(例如,变道和加速模块、车道保持和速度保持模块、紧急制动模块和危险灯激活模块等)。在第三变型中,确定任务块包括生成和/或修改任务块(例如,自动生成可执行指令列表以完成车辆操作任务)。
行为规划模块130的预测块131用于预测可能影响车辆行为和/或期望车辆行为的事件发生的可能性,并将预测的可能性提供给决策块,以用于结合到对决策块输出(例如,规划器原语)的确定中。例如,预测块131可以基于在由传感器子系统111收集的图像数据中观察刹车灯(例如,对象或对象周围的刹车灯是否被激活),预测车辆前方的移动对象(例如,车辆)减速的可能性,并且可以将预测提供给决策块135。预测块131可以预测车辆周围区域中任何检测到的对象的轨迹、位置、速度、和任何其他合适的属性。预测块131可以预测道路表面的未来状态、道路形态(例如,倾斜角、曲线半径等)、以及车辆行驶的道路的任何其他合适的属性。预测块131优选地被实现为确定性模型,但是可以附加地或替代地包括训练过的模型(例如,经由监督学习训练的机器学习模型)和用于基于来自感知模块110和/或其他系统模块和/或块的输入来实现预测的任何其他合适的模型。预测块输出的可能性优选地是能够将事件发生的统计预期结合到决策过程中作为输入的定量可能性;然而,该可能性可以附加地或替代地是二进制可能性、定性可能性(例如,警告)、和/或任何其他合适的格式。
在一个变型中,预测块基于交通对象的计算的轨迹以及在一些示例中的其他交通数据来估计交通对象相对于车辆的未来位置。
行为规划模块130的轨迹生成器132用于确定车辆用于以最佳代价(例如,最小代价、最大代价等)穿越车辆周围的物理空间的期望轨迹。轨迹生成器132还可以用于确定可以用于穿越车辆周围物理空间的一组潜在轨迹,该一组潜在轨迹中的每一个都具有相关联的综合代价(例如,与代价地图沿轨迹的每个点相关联的代价总和)。轨迹生成器132优选地生成一个或更多个轨迹作为输出,并将该一个或更多个轨迹提供给决策块135。生成的轨迹可以是从车辆的当前位置到车辆的期望未来位置绘制的二维轨迹,其中,在当前位置和未来位置之间的距离是基于车辆的速度和执行系统模块和/或块的速率(例如,频率)来确定的。例如,生成的轨迹可以对应于为车辆指定的在接下来的5秒、15秒、60秒、和任何其他合适的时间段内要遵循的路径。在时间上对应于经由生成的轨迹完成的行进的最接近(例如,与…同时发生、与…同时地、在…的1秒内等等)的时间段的结束,轨迹生成器132可以生成新的轨迹。然而,轨迹生成器132可以以任何合适的方式附加地或替代地生成一个或更多个轨迹。
行为规划模块130的有限状态致动器133用于确定哪些行为是给定的由感知模块110感知的环境(例如,基于来自感知模块的传感器数据)允许的和不允许的。在变型中,可以通过基于排除的潜在车辆动作不可能的确定(例如,包括感知模块的输出),从集合中排除一个或更多个潜在车辆动作来减少潜在车辆动作(例如,变道、高速公路退出、高速公路进入等)的集合。例如,可以基于车道检测和/或车道跟踪块的指示只有一条车道可用于在车辆移动方向上的交通移动的输出来排除变道的车辆动作。在另一示例中,基于在车辆附近(例如,在5个车辆长度内、在10个车辆长度内等)不存在高速公路出口的确定,可以排除高速公路退出的车辆动作。该有限的潜在车辆动作集合(例如,有限的状态集合)优选地被提供给决策块,决策块进而确定哪些动作是合适的。因此,有限状态致动器133可以用于限制可由决策块确定的可用行为,并从而避免行为规划模块130选择或以其他方式确定不合适的行为和/或动作。
行为规划模块130的代价地图更新器134用于基于行为规划模块130的其他块(例如,131、132、133、135)的输出来更新代价地图1102。更新代价地图可以包括基于由行为规划模块130的块和/或其他部分接收的和/或生成的输出,对与空间中的每个点相关联的代价进行重新加权。例如,遥操作者可以将附近的车辆标记为“不可靠的(erratic)”车辆,并将该标记发送到行为规划模块(例如,以避开车辆的指示的形式),并且作为响应,代价地图更新器可以(例如,实时、基本实时等)增加与标记车辆周围区域相关联的代价。在另一示例中,有限状态致动器可以确定道路是双车道道路,其中单个车道对应于每个交通方向,并且代价地图更新器可以将该确定合并到反映与相对的交通车道的区域相关联的高代价(例如,最大代价)的更新的代价地图中。然而,代价地图更新器134可以基于任何合适的输入、输出和/或其他信息,以任何合适的方式来附加地或替代地更新代价地图。
3.4本地规划模块
本地规划模块140用于将从行为规划模块130接收到的规划原语1301与从感知模块110接收到的代价地图1102结合,转换成低级指令,以供控制模块150解释并执行。
本地规划模块140包括多个任务块141,并且可以包括退化块142。本地规划模块140优选地完全位于车辆上,并且优选地至少部分地在本地计算子系统(例如,专用集成电路、GPU、CPU、微控制器、驻留在车辆上的移动设备等)上被实现。然而,可以以其他方式适当地定位和/或实现本地规划模块140。
本地规划模块140优选地从感知模块110接收代价地图1102,并且从行为规划模块130接收规划器原语1301,并基于代价地图1102和规划器原语1301来生成控制命令1401。然而,本地规划模块140可以附加地或替代地从系统100的任何合适的块和/或模块接收任何合适的输入,并相应地生成任何合适的输出。
任务块用于执行预定义的任务(例如,通过生成可以用于控制致动子系统的控制输出)。每个任务块优选地与单个、离散的车辆动作或任务(例如,车道保持、左车道改变、右车道改变、右转、离开高速公路、左转、进入高速公路、发动机制动、摩擦/踏板制动等)相关联,但是可以附加地或可选地与多个车辆动作或任何其他合适的车辆行为相关联。附加地或替代地,每个车辆动作可以由一个或更多个任务块来执行(例如,基于先前任务块的输出等,同时、串联地操作)。与每个模块相关联的车辆动作或任务优选地包括一组确定性车辆控制算法(和/或基于规则的控制算法),但是可以以其他方式适当地被定义和/或实现。如上所述,该组任务块优选地接收决策块的输出作为输入,但是可以以其他方式接收任何合适的输入。例如,该组任务块可以接收对该组任务块之一的选择、一组指令、传感器输出(例如,马达操作参数、车轮编码器数据、传感器子系统的摄像机记录的图像等)。可选地,该组任务块可以从遥操作者(例如,单个单独遥操作多个车辆、电传操纵(fly-by-wire)系统等)、本地操作者(例如,手动激活选定任务块的车辆驾驶者)、或任何其他合适的实体接收输入。每个任务块可以生成与由任务块编码的任务相关联的一个输出或一组输出;例如,任务块可以生成用于控制致动子系统的控制指令和/或控制信号。输出优选地是适于驱动致动子系统的部件的信号(例如,具有足够的电压、电流、功率等来操作致动子系统的部件,例如马达、线性致动器等),但是可以附加地或替代地是操作致动子系统的集成驱动器部件(例如,集成马达控制器/驱动器、用于线性致动器的集成气动控制器等)的指令,该指令被提供给致动子系统以用于执行。然而,任务块可以生成任何其他合适的输出。
在一个变型中,任务块中的每一个包括明确编程的规则集。任务块可以仅包括规则集(例如,基本上由规则集组成),或者包括其他规则。规则可以是确定性的、概率性的,或者具有任何其他合适的计算。在特定示例中,每个任务块都是确定性有限状态机。在第二特定示例中,每个任务块包括一组确定性方程。然而,可以以其他方式来构造任务块。在该变型中,本地规划模块从感知模块110接收代价地图1102,并且从行为规划模块130接收规划器原语1301,基于规划器原语1301从一组任务块中选择任务块,并使用所选择的任务块来生成低级指令(例如,控制命令1401),其中,任务块接收代价地图1102作为输入。然而,可以以其他方式来构造任务块。
退化块142用于基于从其接收的输出(例如,故障标志)来确定控制模块处已经发生了错误。退化块142还可以用于生成错误输出和/或故障标志1402,以提供给行为规划模块130(例如,基于接收到的故障标志1501),使得决策块135可以基于错误来确定合适的动作过程。
3.5控制模块
控制模块150用于基于从本地规划模块140接收的控制命令1401,直接控制车辆的控制元件(例如,节气门、转向等)。控制模块150还可以用于执行与车辆相关的任何合适的控制动作(例如,解锁车辆、锁上车辆、致动车辆的任何致动器等)。响应于致动子系统153的一个或更多个元件对控制指令的不成功执行,控制模块150还可以用于生成故障标志1501。
控制模块150包括致动子系统153,并且可以包括速度控制块151、转向控制块152、变速器控制块、和任何其他合适的控制块(例如,用于控制任何主动可控的车辆部件)。
控制模块150优选地从本地规划模块140接收控制命令1401,并基于控制命令1401控制致动子系统153。然而,控制模块150可以附加地或替代地从系统100的任何合适的块或模块接收任何合适的输入,并且以任何其他合适的方式控制致动子系统153(并从而控制车辆本身)。在一个变型中,控制模块150包括致动子系统153,其由控制模块的微控制器基于(例如,由微控制器解释的)控制命令来控制。
速度控制块151用于生成速度控制信号,该速度控制信号被提供给致动子系统153,并导致对车辆的速度的控制。速度控制信号可以是模拟信号(例如,适于驱动电动机的模拟信号)、数字信号(例如,适于驱动继电器或晶体管的信号)、数据信号(例如,适于由微控制器或专用芯片解释以驱动机电设备的信号)、和/或任何其他合适的信号。
转向控制块152用于生成转向控制信号,该转向控制信号被提供给致动子系统153,并导致对车辆的转向角的控制(并从而直接或间接地控制行进)。转向控制信号可以是模拟信号(例如,适于驱动电动机的模拟信号)、数字信号(例如,适于驱动继电器或晶体管的信号)、数据信号(例如,适于由微控制器或专用芯片解释以驱动机电设备的信号)、和/或任何其他合适的信号。
变速器控制块用于控制车辆变速器的换档,并能够选择车辆的操作档位(例如,第一档、第二档、倒档等)。变速器控制块可以用于生成变速器控制信号,该变速器控制信号使得致动子系统153能够在车辆档位之间切换到所选择的档位。变速器控制块可以与速度控制块结合使用(例如,通过发动机制动和/或换低档)来控制车辆速度,或者以其他方式合适地使用。
致动子系统153用于致动车辆的控制接口。致动子系统还可以用于执行选定的车辆动作(例如,由任务块定义的指令)。由致动子系统致动的控制接口可以包括面向人的控制接口、计算机控制接口、和任何其他合适的控制接口。面向人的控制接口可以包括例如,方向盘、踏板(例如,离合器踏板、油门踏板、制动踏板等)、换挡器(例如,换挡杆、换挡拨片(paddle)等)、以及被配置由人类操作的任何其他合适的控制机构。计算机控制接口可以包括例如,节气门致动接口(例如,可控燃料流量调节器)、制动致动接口(例如,冗余制动卡钳、现有制动器的电子控制机构等)、变速器致动接口(例如,电子可控自动变速器)、以及被配置为从计算系统接收控制指令的任何其他合适的控制接口。致动子系统优选地包括转向致动组件和踏板致动组件,但是可以附加地或替代地包括任何合适的致动机构。
致动子系统可以接收输入,包括控制指令和/或操作者输入。控制指令优选地从控制块(例如,速度控制、转向控制、和/或变速器控制块)被接收,并且可以包括电压电平、电流电平、时变信号、恒定信号、基于触发和/或基于事件的信号、以及能够影响致动子系统的输出(例如,致动子系统对控制接口的致动)的任何其他合适的指令和/或参数。操作者输入优选地是从操作者(例如,车辆中的驾驶者、遥操作者等)接收的,并且可以包括通过手移动方向盘的人、人工踩下踏板的人、来自遥操作者的包括致动部分致动子系统的指令的传输、以及来自操作者的任何其他合适的输入。
致动子系统可以提供输出,其包括指示致动子系统的致动器状态的状态数据。例如,致动子系统可以提供具有与致动器施加的以控制车辆的接口的力(例如,致动子系统的方向盘致动器的马达施加的扭矩、致动子系统的踏板致动器施加的力等)成比例的振幅值的一个或更多个信号。在另一示例中,致动子系统可以提供指示人类施加到控制接口的力(例如,人类操作者施加到方向盘的扭矩、人类操作者施加到踏板的力等)的输出。这些输出可以在操作模式之间转换系统(例如,将系统操作从自主操作模式切换到手动操作模式),选择任务块(例如,与输出类型、值等相关联),或者以其他方式被使用。在相关示例中,致动子系统可以提供指示致动子系统(或其部分)是被“开启”还是“关闭”的输出(例如,当致动子系统被“开启”时发光的指示器LED)、致动子系统的致动器是与车辆控制接口机械接合还是脱离、以及致动子系统和/或其部分的任何其他合适的状态和/或配置。
如图5所示,致动子系统的转向致动组件的具体示例包括驱动马达、扭矩传递机构、和编码器。驱动马达用于生成扭矩,该扭矩可以用于机械地旋转转向柱的旋转部分。扭矩传递机构包括驱动齿轮(drive gear)和从动齿轮(driven gear),其中,驱动齿轮接收由驱动马达生成的扭矩并将其传递到从动齿轮,从动齿轮固定到方向盘上并由驱动齿轮旋转,从而旋转方向盘。编码器用于监控转向致动组件的输出(例如,驱动马达轴的角位置、方向盘的角位置、驱动马达和/或方向盘的转速等)。然而,转向致动组件可以具有任何其他合适的部件,这些部件具有针对转向柱致动的任何合适的功能。
如图6所示,致动子系统的平移致动组件的具体示例包括致动器和力传递机构,并且可以可选地包括释放机构。致动器用于移动车辆平移控制机构(例如,踏板、节气门),以便控制与踏板相关联的车辆部件(例如,从而制动车辆、从而加速车辆、从而对车辆换档等)。力传递机构用于将(例如,由人类操作者、由踏板致动组件的致动器等)施加到力传递机构的力传递到踏板。力传递机构优选地包括监控传感器(例如,力传感器),其将(例如,由致动器、由人类操作者)施加到踏板上的力传递到计算系统(例如,以与传感器子系统的其他部件相似的方式)。释放机构用于将踏板致动组件从接合配置(例如,与车辆踏板可致动的物理接触)物理转换到脱离配置(例如,不与车辆踏板物理接触);释放机构可以由人类驾驶者(例如,通过释放开关)、远程操作者、自主控制系统、或任何其他合适的实体来驱动。然而,踏板致动组件可以具有任何其他合适的部件,这些部件具有针对踏板致动的任何合适的功能。
3.6训练模块
如图4所示,训练模块160用于生成可用于训练由决策块实现的模型的训练数据。训练模块可以附加地用于验证决策块的假阳性(false-positive)输出和假阴性(false-negative)输出,并训练决策块(例如,修改决策块的参数、属性、和其他特征,以减少假阳性和/或假阴性输出的数量)。到训练模块的输入可以包括驾驶者行为(例如,本地操作者的动作、遥操作者的动作)、(例如,从传感器子系统接收的)传感器数据、以及来自系统或相关实体的任何其他合适部件的任何其他合适输入。训练模块还可以接收决策块的输出(例如,所选任务块、用于提供给所选任务块的一组权重参数等)。训练模块的输出优选地包括训练数据,该训练数据可以用于修改由决策块实现的一个或多个模型。在第一变型中,训练模块将在车辆上记录的传感器数据(例如,通过传感器子系统)与驾驶者行为相关联,以便将响应于驾驶条件的驾驶者行为与响应于传感器数据的决策块的输出进行比较。这种相关性可以包括确定假阴性(例如,未识别出导致驾驶者干预的事件的决策块决策)、确定假阳性(例如,决策块确定了驾驶者干预是必要的并且驾驶者没有干预)、或者做出任何其他合适的确定。
在一个变型中,训练模块160从感知模块110接收代价地图1102和交通数据1103,并接收驾驶者输入(例如,如图3所示的来自本地驾驶者的直接转向输入、来自连接的遥操作者的远程速度输入等),并且基于驾驶者输入、代价地图、和交通数据来训练行为规划模块。在示例中,驾驶者输入可以包括响应于车辆操作者注意到与在车辆前方行驶的第二车辆相关联的不可靠加速和减速行为,抢先减慢车辆以在车辆和该第二车辆之间产生更大的距离。在该示例中,训练模块可以将代价地图1102和交通数据1103的状态与驾驶者输入相关联,该代价地图1102和交通数据1103是从车辆操作者注意到该行为并且提供驾驶者输入的时间段中提取的;训练模块随后可以基于这些相关联的状态和行为以及其他类似收集的和相关联的状态和行为来训练决策块,使得决策块可以响应于类似场景来自动抢先减慢车辆速度(例如,实现监督学习)。然而,训练模块160可以以其他方式适当地训练系统100的决策块和/或模块/块。
3.7通信模块
系统可以可选地包括通信模块170,其用于将车辆控制系统通信地耦合到远程计算系统(例如,遥操作系统)。通信模块优选地包括双向无线数据链路(例如,3G无线电、4G无线电、5G无线电),但是可以附加地或替代地包括任何其他合适的数据通信机制。通信模块优选地集成到车辆中,但是可以附加地或可选地集成到与车辆和/或车辆乘客相关联的移动设备、与车辆一起行进的移动设备、或任何其他合适的移动设备中。通信模块可以接收各种输入,包括发送到车辆的传输(例如,遥操作指令、GPS转发器或卫星信号等)、要远离车辆发送的数据(例如,传感器数据、来自本地操作者的被指定用于远离车辆的实体的通信等)、或任何其他合适的输入。通信模块优选地发送消息作为输出;这种消息可以包括通信(例如,无线电通信)、监控数据(例如,由传感器子系统的监控传感器收集的数据、指示车辆状态或行为的数据等)、以及任何其他合适的消息数据。通信模块可以附加地或替代地生成和/或提供其他合适的输出。
通信模块可以包括远程遥操作接口,其可以包括显示器和一组输入。在一个变型中,传感器数据1100被发送到远程遥操作接口,并在显示器上呈现给远程车辆操作者。在该变型中,系统可以以该组输入(例如,连接的复制方向盘、适配的游戏控制台控制器、鼠标、连接的复制油门/制动/离合器踏板等)接收来自远程车辆操作者的驾驶者输入。在相关变型中,显示器被配置成可视地模拟商用卡车驾驶室(例如,半卡车驾驶室、半牵引车驾驶室、货车驾驶室等)的内部。在另一相关变型中,该组输入包括方向盘输入、油门踏板输入、制动踏板输入、和变速器输入,其中,前述输入的每一个被配置为不同的输入。然而,可以以其他方式来配置远程遥操作接口。
4.系统使用方法
如图8所示,方法200包括:对传感器数据进行采样S210;接收指示,其中,该指示基于对传感器数据的分析S220;生成规划器原语S230;基于规划器原语选择任务块S240;基于所选择的任务块结合传感器数据来控制车辆S250;以及在操作实体之间转移规划权限S260。方法200可以可选地包括将传感器数据发送到车外S215;将传感器数据呈现给车辆操作者S217;以及基于传感器数据结合指示来训练规划模块S270。
方法200优选地在与上文第3节中描述的系统100基本相同的系统处、通过该系统和/或通过使用该系统来实现。然而,可以附加地或替代地在用于自主、半自主或手动控制车辆的任何合适的系统处、通过该用于自主、半自主或手动控制车辆的任何合适的系统和/或通过使用该用于自主、半自主或手动控制车辆的任何合适的系统来实现方法200。
框S210包括:对传感器数据进行采样,其用于从车辆控制系统的一个或更多个传感器收集传感器数据。传感器优选地包括图像传感器、测距传感器、和基本上如上文第1节所述的其他传感器,但是可以附加地或替代地包括任何合适的传感器。在第一变型中,传感器数据包括图像流(例如,成像器序列、视频等)、定位信号(例如,GPS位置)、和操作数据(例如,车速、车辆燃料或能量水平、车辆内部温度、外部环境温度、每个轮胎的轮胎充气压力等)。
在第一变型中,框S210包括对传感器数据进行连续采样(例如,在车辆的传感器子系统处),该传感器数据包括图像流、定位信号、和操作数据。传感器数据可以包括上面关于系统100的传感器数据1100所描述的任何数据、和/或任何其他合适的传感器数据。操作数据可以包括与车辆操作相关的任何数据,例如当前车速、当前车辆转向角、当前节气门状态、瞬时估计的车辆距离、以及任何其他合适的数据。
方法200可以可选地包括框S215,其包括:将传感器数据发送到车外,其用于将传感器数据提供给车辆的也位于车外的操作实体(例如,远程遥操作者)。框S215还可以用于记录在车辆操作期间收集的传感器数据,以用于随后的分析(例如,经由框S270的训练、记录收集等)。在第一变型中,框S215包括将图像流、定位数据、和操作数据发送到与遥操作者相关联的远程遥操作接口(例如,类似于如上所述的远程遥操作接口)。
该方法可以可选地包括框S217,其包括:将传感器数据呈现给车辆操作者,其用于向车辆操作者提供车辆遥测。在一个变型中,框S217包括在远程遥操作接口处呈现传感器数据(例如,操作数据、交通数据等),其中,远程遥操作接口被配置成可视地模拟商用卡车驾驶室的内部。
框S220包括:接收指示,其中,该指示基于对传感器数据的分析,其用于解释传感器数据并基于对传感器数据的解释来为车辆提供动作的过程。指示优选地是语义指令(例如,变道的指示、离开高速公路的指示、当有足够的空间可用时在道路一侧减速并停车的指示等),但是可以附加地或替代地包括二进制指令(例如,紧急停车相对于继续操作)、直接控制输入(例如,方向盘的移动、制动踏板或油门踏板的致动、变速器档位的改变等)、间接控制输入(例如,远程连接的方向盘控制器的移动、远程连接的踏板控制器的致动等)、和/或任何其他合适的指令或与车辆操作相关的类似输入。
在一个变型中,框S220包括在车辆的行为规划模块处通过远程遥操作接口从遥操作者接收第一指示,其中,行为规划模块基本上由训练过的机器学习模块组成。在相关变型中,框S220包括响应于车辆进入具有预定特征的地理区域而从遥操作者接收第二指示。在示例中,具有预定特征的地理区域可以包括高速公路入口匝道的末端区域(例如,遥操作者可以在到达入口匝道的末端之后发送进入完全自主模式的指示)。
框S230包括:生成规划器原语,其用于提供在根据指示导航车辆时要采取的特定动作的高级描述(例如,语义描述)。框S230可以包括基于指示来生成规划器原语。例如,指示可以包括变道的指示,并且框S230可以包括生成进入变道任务块的规划器原语和在启动变道之前应当满足的一组标准(例如,基于代价地图的综合代价阈值、超时限制等)。框S230可以包括自动生成规划器原语。例如,框S230可以包括基于接收到的传感器数据,在车辆的行为规划模块处自动生成规划器原语(例如,基本上和/或完全自主地操作)。
框S240包括:基于规划器原语选择任务块,其用于基于与规划器原语相关联的指令(例如,执行动作和/或一组或一系列动作的指令)来选择任务块(例如,表示期望的车辆动作)。框S240可以响应于指示来被执行、和/或被自动执行、或者以其他方式适当地被执行。
在一个变型中,框S240包括在车辆的本地规划模块处基于规划器原语选择任务块,其中,任务块基本上由明确编程的规则集组成。
框S250包括:基于所选择的任务块结合传感器数据来控制车辆,其用于基于传感器数据和由所选择的任务块编码的指令来向车辆控制系统的致动器提供低级指令以物理控制车辆。
框S260包括:在操作实体之间转移规划权限,其用于在能够对车辆操作施加控制的各种实体之间移交车辆控制。这种操作实体可以包括计算系统(例如,车辆上的行为规划模块、远离车辆的行为规划模块)、远程车辆操作者(例如,遥操作者)、以及在某些情况下的本地操作者(例如,位于车辆中的驾驶者)、以及车辆的任何其他合适的人和/或机器操作者。规划权限优选地包括决策制定(例如,诸如由车辆控制系统的决策块执行的决策制定)。在一些变型中,转移的规划权限可以包括对致动元件(例如,转向致动器、踏板致动器)的直接控制,但是可替换地,可以仅包括决策控制,其中,经由驻留在车辆上的系统(例如,本地规划模块、控制模块等)来执行直接控制。
在一个变型中,可以基于接收指示(例如,框S220的实例或示例)来执行框S260;例如,指示可以包括将规划权限从驻留在车辆上的行为规划模块转移到位于远程的遥操作者的指令,并且框S260可以相应地包括将规划权限从行为规划模块转移到遥操作者。可以从操作者(例如,遥操作者,车辆中的本地操作者)或者从任何其他合适的来源接收(例如,由操作者手动触发)指示。在另一示例中,框S260可以包括响应于接收到第二指示,将规划权限转移到车辆的行为规划模块,其中,响应于车辆进入具有预定特征的地理区域,从遥操作者接收第二指示。
在另一变型中,响应于满足预定条件,可以自动执行框S260。例如,框S260可以包括响应于车辆到达预定地理位置(例如,沿着由任务规划模块确定的路线的高速公路出口、高速公路出口匝道等),将规划权限转移到遥操作者。在另一示例中,框S260可以包括响应于车辆在从高速公路入口匝道并入之后在高速公路上进入稳定速度的情况下,将规划权限从遥操作者转移到行为规划模块(例如,驻留在车辆上)。在另一示例中,框S260可以包括响应于由本地操作者激活的紧急接管开关或按钮(例如,从本地操作者接收指示)或从传感器数据检测到的紧急事件(例如,故障事件),将规划权限转移给操作者(例如,驻留在车辆中的本地操作者、遥操作者等)。
方法可以包括框S270,其包括:基于传感器数据结合指示来训练模块,其用于训练车辆控制系统的机器学习模块。优选地经由监督学习来执行训练,但是可以附加地或替代地经由无监督学习和/或上文第3节中描述的任何一种或更多种机器学习技术来执行训练。在特定示例中,框S270可以包括基于由本地操作者(例如,位于车辆中的驾驶者)在车辆的致动子系统处提供的直接控制输入,结合传感器数据(例如,图像和测距数据)来训练行为规划模块(例如,行为规划模块的决策块),以训练行为规划模块从而采取与本地操作者在被呈现与传感器数据相对应的交通状况时相同的关于控制车辆的动作。
在方法200的第一示例中,如图7所示,行为规划模块的决策块(例如,在车辆上、远离车辆等)可以选择车辆动作并将选择的动作呈现给遥操作者。车辆动作可以随后响应于遥操作者对所选动作的批准而被执行。附加地或替代地,遥操作者可以利用软件开关(该软件开关向车辆发送信号),以在遥操作者已经取得车辆控制之后转换出自主模式。
在车辆控制系统使用(例如,系统使用的方法)的第二示例中,传感器子系统的所有或一些测量结果(例如,低分辨率传感器流)可以被发送到远程遥操作者,该远程遥操作者监控传感器流,并且可以(在一些变型中)通过从一组可用的车辆动作(例如,由任务块编码的)中选择车辆动作(例如,行为),来取代和/或抢占决策块(例如,在决策块已经确定或正在确定任务块的情况下)。可以使用该方法的第一示例来确定决策块,或者以其他方式来确定决策块。所选择的车辆动作(例如,指令或其标识符)然后可以被发送到车辆,其中,车辆执行遥操作者选择的车辆动作(例如,使用致动子系统)。在决策块选择的车辆行为(例如,任务)与遥操作者选择的车辆行为冲突的情况下,遥操作者选择的车辆行为优选地被给予偏好(例如,执行偏好),但是决策块选择的车辆行为可选地可以被给予偏好。
在使用方法的另一示例中,本地驾驶者(例如,人类车辆操作者)可以位于车辆内(例如,在车辆驾驶室的驾驶者座位位置),并且具有与遥操作者相同的操作权限和能力。本地驾驶者的命令优选地取代遥操作者的命令,遥操作者的命令取代决策块命令,但是命令可以以任何其他合适的顺序被优先化。
在使用方法的其他示例中,如图2和图5所示,训练模块可以监控遥操作者和/或本地驾驶者指令(例如,遥操作者对任务块的选择)和基础数据(例如,在遥操作者选择之前的时间段内由传感器子系统收集的传感器数据),并且基于遥操作者选择和基础数据(例如,使用人工神经网络、随机机器学习模型等)来训练决策块。训练过的(例如,更新的、修改的等)决策块随后可以被提供给车辆(例如,当满足更新条件时,以预定频率等等),并且可以重复训练过程。可以由训练模块类似于遥操作者指令来处理本地驾驶者的选择,但是也可以以其他方式来处理。
在系统使用的另一特定示例中,传感器子系统收集传感器数据作为输入,并将传感器数据作为输出提供给行为规划模块。传感器数据包括从车辆的一个或更多个面向外的摄像机收集的图像数据,以及来自车辆的一个或更多个测距传感器的点云数据。决策块根据规则集(例如,实现为卷积神经网络)处理传感器数据,并产生任务选择作为输出。任务选择可以包括一个或更多个车辆操作任务(例如,减速、变道、换挡等),决策块确定该一个或更多个车辆操作任务应当由车辆执行。基于任务选择,决策块激活对应于任务选择的一个或更多个任务块。被激活的任务块然后执行预定指令以控制致动子系统来致动车辆并执行所选择的任务(例如,踩下制动踏板或换低档以减速、旋转方向盘以变道等)。
在一些变型和示例中,可以在车辆控制系统、遥操作者、和/或本地驾驶者(例如,位于车辆内的驾驶者)之间转移对车辆的控制。可以基于事件来启动和/或触发转移。可以触发控制转移的事件包括:与车辆动作或行为相关联的车辆参数值的特定集合或模式的测量(例如,指示急转弯或打滑的加速度计数据)、模式转移开关的手动激活(例如,操作者按下紧急停车按钮)、上下文事件(例如,位置,诸如在途中接近高速公路出口;一天中的时间;驾驶者档案;车辆是否在高速公路上;等等)、或任何其他合适的触发事件。可以根据GPS和/或地图数据(map data)、来自面向内部或面向外部的摄像机的图像和/或其分析、加速度计和/或IMU数据、以及任何其他合适的传感器数据和/或处理过的数据来确定触发事件。在第一示例中,系统包括附接到方向盘的紧急停车按钮,当按下该按钮时,该紧急停车按钮将车辆的完全控制给予本地操作者(例如,从决策块和/或遥操作者中移除可致动控制权限)。在另一示例中,紧急停车脚踏板附接到致动子系统的踏板致动组件,并且踩下紧急停车踏板将车辆的完全控制给予本地操作者,并且将踏板致动组件的致动器与车辆控制踏板物理脱离。在另一示例中,当检测到阈值反向扭矩(例如,由本地驾驶者施加在转向致动组件的驱动马达上)时,转向致动组件自动脱离,并将对车辆的控制转移给本地操作者。在另一示例中,该系统包括自主开/关开关,遥操作者可以使用该自主开/关开关在遥操作者和车辆控制系统(例如,在自主驾驶模式下操作)之间切换对车辆的控制。在另一示例中,该系统包括可由本地操作者致动的拨动开关,以在座位内(例如,其中,本地操作者在车辆的驾驶者座位上)和座位外(例如,其中,本地操作者在车辆内但不在驾驶者座位上)车辆操作模式之间切换。然而,可以在任可其他合适的操作者和/或实体之间以其他方式适当地转移对车辆的控制。
在使用方法的一部分的另一示例中,本地操作者可以查看系统的触敏显示器,该触敏显示器包括向本地操作者显示的不同视觉指示器(例如,颜色代码)(例如,绿色:好、黄色:谨慎、以及红色:接管),其中,系统还包括在视觉指示器改变之前激活的音频警报(例如,蜂鸣器)。在该示例中,当视觉指示器已经改变以指示本地操作者应当接管车辆时,屏幕上呈现倒计时(例如,五秒倒计时)。倒计时完成后,如果本地操作者没有取得车辆的控制,则车辆控制系统可以控制车辆减速,并在第一个可用的机会靠边停车。
优选实施例及其变型的系统和方法可以被至少部分地被体现和/或实现为被配置成接收储存计算机可读指令的计算机可读介质的机器。指令优选地由计算机可执行部件执行,该计算机可执行部件优选地与系统和处理器和/或控制器中的一个或更多个部分集成在一起。计算机可读介质可存储在任何合适的计算机可读媒介上,诸如RAM、ROM、闪存、EEPROM、光学设备(CD或DVD)、硬盘驱动器、软盘驱动器、或任何合适的设备。计算机可执行组件优选地是通用或专用处理器,但任何合适的专用硬件或硬件/固件组合设备可以可替代地或另外地行指令。
虽然为简明起见而省略,但是优选实施例包括各种系统组件和/或方法块的每种组合和排列。
附图例证了根据优选的实施方案、示例配置、及其变化形式的系统、方法和计算机程序产品的可能的实现方式的架构(architecture)、功能和操作。在这方面,流程图或框图中的每个框可以代表模块、部分、步骤或部分代码,其包括用于实现指定的逻辑功能的一个或更多个可执行的指令。还应当指出的是,在一些可选的实现方式中,在框中提到的功能可以以在附图中指出的顺序以外的顺序发生。例如,连续地显示的两个框事实上可以基本上同时执行,或者框有时可以以相反的顺序执行,这取决于所涉及的功能。还应当指出的是,框图和/或流程图说明中的每个框,以及框图和/或流程图说明中的框的组合,可以由执行指定功能或动作、或特定目的的硬件和计算机指令的组合的基于特定目的的硬件的系统来实施。
如本领域中的技术人员将从先前的详细描述以及从附图和权利要求中认识到的,可在不偏离在所附权利要求中限定的本发明的范围的情况下对本发明的优选的实施方式进行修改和改变。