用于安全且可靠的自主车辆的系统和方法与流程

文档序号:22007184发布日期:2020-08-25 22:09阅读:485来源:国知局
用于安全且可靠的自主车辆的系统和方法与流程

ⅰ.要求优先权

本申请要求2017年11月10日提交的标题为“用于安全且可靠的自主车辆的系统和方法(systemsandmethodsforsafeandreliableautonomousvehicles)”的美国临时专利申请62/584,549的优先权和权益,并且该临时申请的全部内容通过引用并入本文。

ⅱ.技术领域

自动驾驶是世界上最具挑战性的计算问题之一。必须处理来自摄像机、radar(雷达)、lidar(激光雷达)和hd地图的大量数据,以生成命令来安全且舒适地实时控制汽车。这项具有挑战性的任务需要一台专用的超级计算机,该超级计算机必须是节能高效且低功耗的、复杂的高性能软件,并且需要在深度学习ai算法上取得突破。为了满足此任务,本技术提供了辅助自动驾驶功能的高级系统和方法,包括用于自动驾驶级别3、4和/或5的平台。在优选实施例中,该技术提供了具有灵活的架构的端到端平台,包括用于自主车辆的架构,该架构利用计算机视觉和已知的adas技术,提供多样性和冗余性,并满足功能性安全标准。该技术提供了更快、更可靠、更安全、更节能、更节省空间的片上系统,该系统可以集成到灵活、可扩展的平台中,从而支持广泛范围的自主车辆,包括汽车、出租车、卡车和公共汽车以及船只和飞机。

ⅲ.联邦资助的研究或开发

无。

ⅳ.通过引用合并的申请

出于所有目的,以下所有美国专利申请均通过引用并入本文,就好像明确阐述一样:

“可编程视觉加速器(programmablevisionaccelerator)”,2016年4月28日提交的美国专利申请序列号15/141,703(代理人案卷号15-sc-0128-us02),现美国专利号为_______。

“可靠性增强系统和方法(reliabilityenhancementsystemsandmethods)”,2016年10月28日提交的美国专利申请序列号15/338,247(代理人案卷号15-sc-0356us01),现美国专利号为_______。

“在容错/故障操作无人驾驶系统中使用单个控制器(ecu)的方法论(methodologyofusingasinglecontroller(ecu)fora

fault-tolerant/fail-operationalself-drivingsystem)”,2017年6月23日提交的美国临时专利申请序列号62/524,283(代理人案卷号16-sc-0130-us01)。“在容错/故障操作无人驾驶系统中使用单个控制器(ecu)的方法(methodofusingasinglecontroller(ecu)forafault-tolerant/fail-operationalself-drivingsystem)”,2018年1月26日提交的美国专利申请序列号15/881,426(代理人案卷号16-sc-0130us02),现美国专利号为_______。

ⅴ.

背景技术:

当今许多车辆包括高级驾驶员辅助系统(“adas”),例如自动车道保持系统和智能巡航控制系统。在发生重大机械故障(例如,轮胎爆胎、制动故障或其他驾驶员的意外行为)的情况下,这些系统依靠人类驾驶员来控制车辆。

包括adas和自主车辆在内的驾驶员辅助特征通常根据自动化级别来描述,该自动化级别由汽车工程师协会(sae)于2018年6月15日发布的“与道路上机动车的驾驶自动化系统相关的术语的分类和定义”标准号j3016-201806;于2016年9月30日发布的标准号j3016-201609以及该标准的先前和将来版本;以及美国交通部的国家公路交通安全管理(nhtsa)定义。图1示出了自动驾驶级别,范围从纯驾驶员(driver-only)(级别0)、辅助式(级别1)、部分自动化(级别2)、条件自动化(级别3)、高自动化(级别4)到全自动化(级别5)。当今的商用adas系统通常仅提供级别1或级别2功能。

对于自动化级别0-2,要求人类驾驶员处于控制回路中,但对于自动化级别3-5,则不需要。对于级别1和级别2,adas系统必须为人类驾驶员提供在大约1秒钟内进行控制,而对于级别3则要在几秒钟内进行控制,并且对于级别4和级别5则要在几分钟内进行控制。在级别0-2驾驶期间人类驾驶员必须保持专注且不能进行其他活动,而对于自动化级别3驾驶员可执行其他有限的活动,并且对于自动化级别4和级别5驾驶员甚至可以睡眠。级别4的功能允许驾驶员进入睡眠状态,并且在任何情况下如果汽车不再能够自动驾驶并且驾驶员没有接管汽车,则汽车将安全地靠边停车(pullover)。级别5的功能包括机器人-出租车,其中无人驾驶出租车在之前已绘制地图的城市或校园内运行。

级别1和级别2adas产品的成功,加上对交通安全性和便利性的大幅提高的承诺,推动了对无人驾驶(self-driving)车辆技术的投资。尽管投入了巨额资金,但如今仍没有提供级别4或级别5功能并满足行业安全标准的车辆可用,并且自动驾驶仍是世界上最具挑战性的计算问题之一。必须处理来自摄像机、radar、lidar和hd地图的非常大量数据,以生成命令来安全且舒适地实时控制汽车。要确保汽车在瞬息万变的环境中能在不到一秒的时间内做出正确的反应,就需要解读来自广阔范围的传感器(诸如,摄像机、radar、lidar和超声波传感器)的朝它冲来的大量数据。首先,这需要大量的计算能力。这项具有挑战性的任务需要一台专用的超级计算机,该超级计算机必须是节能高效且低功耗的、复杂的高性能软件,并且需要在深度学习ai算法上取得突破。

此外,用于级别4-5自主车辆的系统需要完全不同的方法来满足行业安全标准,诸如标题为“道路车辆–功能安全性”的行业标准化组织(“iso”)26262标准(2011en)以及该标准的未来版本和增强版本,它定义了建立汽车零部件和设备安全等级的过程。iso26262解决了由汽车安全完整性等级(“asil”)确定的乘用车辆电子和电气系统故障引起的潜在危险。asil解决了四个不同的风险级别:“a”、“b”、“c”和“d”,其由三个因素决定:(1)暴露(危险概率),(2)可控性(由驾驶员)和(3)严重性(受伤方面)。asil风险级别大致定义为严重性、暴露和可控性的组合。如图2所示,iso26262“道路车辆-功能安全性-第9部分:面向汽车安全完整性等级(asil)的和面向安全性的分析”(iso26262-9:2011(en))定义了asil“d”风险是最高暴露概率(e4)、最高可能可控性(c3)和最高严重性(s3)的组合。评定为asil“d”级的汽车设备意味着该设备可以安全地解决施加最严重风险的危险。严重性、暴露和可控性类别中的任何一个类别从其最大值的减少都对应于asil“a”、“b”、“c”和“d”等级的单个级别减少。

基本的adas系统(级别1或级别2)可以容易地设计成满足包括iso26262标准在内的汽车行业功能安全标准,因为它们依赖于人类驾驶员来接管并主张对车辆的控制。例如,如果adas系统发生故障,导致危险状况,则驾驶员可能会指挥车辆并超越(override)该软件功能,然后恢复到安全状态。类似地,当车辆遇到adas系统不能充分控制的环境/情况(例如,轮胎爆胎、黑冰、突然的障碍物)时,期望人类驾驶员接管并执行纠正或缓解措施。

相反,即使没有驾驶员的立即纠正措施,级别3-5自主车辆也要求系统本身是安全的。完全自主车辆不能依靠人类驾驶员来处理特殊情况-车辆的控制系统必须独自识别、管理和缓解所有故障、失灵和异常运行状况。级别4-5自主车辆具有最严格的安全要求-必须将其设计为能够处理可能出问题的一切事情,而不必依靠任何人类驾驶员抓住车轮并踩刹车。因此,为级别4和级别5全自动驾驶提供asild级功能安全性是一项具有挑战性的任务。制作具有asild功能安全性的单个软件子系统的成本高得令人望而却步,因为asild要求在硬件和软件设计上要有空前的精度。需要另一种方法。

达到级别4-5自主车辆的asild功能安全性需要专用的超级计算机来执行动态驾驶任务的所有方面,即使驾驶员没有对恢复执行动态驾驶任务的请求做出适当响应,也可以对相关对象和事件提供适当的响应。这个宏伟的目标需要新的片上系统技术、新的架构和新的设计方法。

ⅵ.一些相关的领域

a.adas系统

当今的adas系统包括自主/自适应/自动巡航控制(“acc”)、前向碰撞警告(“fcw”)、自动紧急制动(“aeb”)、车道偏离警告(“ldw”)、盲区警告(“bsw”)和后方交叉交通警告(“rctw”)等。

acc可大致分类为纵向acc和横向acc。纵向acc监视并控制与紧接在主车辆(host)或“自我车辆(egovehicle)”前方的车辆的距离。典型的纵向acc系统会自动调节车速,以保持与前方车辆的安全距离。横向acc执行距离保持,并建议主车辆在必要时改变车道。横向acc与其他adas应用程序(诸如,车道变更辅助(“lca”)和碰撞警告系统(“cws”))有关。

最常见的acc系统使用单个radar,但是其他组合(多个radar,诸如与两个短程radar耦合的一个远程radar,或者lidar和摄像机的组合)也是可能的。纵向acc系统使用的算法可分为两大组:基于规则的方法和基于模型的方法。基于规则的纵向acc方法使用如果-那么(if-then)规则,该规则可以在任何处理器(包括fpga、cpu或asic)上执行。输入信号通常包括到前方车辆的距离以及车辆的当前速度等,并且输出通常是油门(throttle)和制动器(brake)。例如,纵向acc系统可以使用大多数驾驶员熟悉的规则:如果自我汽车与前方汽车之间的距离可以在不到两秒的时间内越过,则降低车速。如果车速为每秒88英尺(相当于每小时60英里),且接下来的距离为22英尺,则越过该距离的时间仅为0.25秒。在这种情况下,纵向acc系统可通过控制油门以及必要时控制制动器来降低速度。优选地,使用油门(减小油门将使车辆减速),但是如果距离较小且减小,则acc系统可以使用制动器,或者松开并向驾驶员发出警告。

基于模型的系统通常基于比例-积分-微分控制器(“pid控制器”)或模型预测控制(“mpc”)技术。基于车辆的位置、距离和前方车辆的速度,控制器会在考虑驾驶安全性和能源成本的情况下优化计算车轮扭矩。

协同自适应巡航控制(“cacc”)使用来自其他车辆的信息。该信息可以经由无线链路通过天线和调制解调器直接从其他车辆(在附近的)接收,或间接从网络连接接收。可以通过车辆到车辆(“v2v”)通信链路来提供直接链接,而间接链接通常被称为基础设施到车辆(“i2v”)的链接。通常,v2v通信概念提供有关紧接在前的车辆(即,紧接在自我车辆前方并与自我车辆在同一车道上的车辆)的信息,而i2v通信概念提供关于更远前方交通的信息。cacc系统可以包含i2v和v2v信息源之一或两者。给定在主车辆前方的车辆的信息,cacc可以更加可靠,并有可能改善交通流的通畅性并减少道路拥堵。

acc系统如今在商用车辆中被广泛使用,但是常常对道路状况过度补偿或反应过度。例如,当汽车在前方合并时,商用acc系统可能反应过度、过分放慢速度,并且然后当车辆移出道路时会过慢地恢复速度。acc系统在提供车辆安全性和驾驶员便利性方面发挥了重要作用,但它们远未满足级别3-5自主车辆功能的要求。

前向碰撞警告(“fcw”)adas系统被设计为向驾驶员警报(alert)危险,以便驾驶员可以采取纠正措施。典型的fcwadas系统使用前置(front-facing)摄像机或radar传感器,其耦合到与驾驶员反馈(例如,显示器、扬声器或振动组件)电耦合的专用处理器、dsp、fpga或asic。fcw系统通常仅提供警告-它们不会接管车辆或致动(actuate)制动器或采取其他纠正措施。而是,当fcw系统检测到危险时,它会以声音、视觉警告、振动和/或快速制动脉冲的形式激活警告。fcw系统如今已被广泛使用,但通常会提供虚假警报。根据2017年《消费者报告》的一项调查,约有45%的fcw车辆经历了至少一次虚假警报,几种型号报告了超过60%的虚假警报。基于radar的fcw系统遭受了假阳性(falsepositive),因为radar可能会报告存在井盖、大罐、排水格栅和其他金属物体,其可能会被误认为指示车辆。像acc系统一样,fcw系统在提供车辆安全性和驾驶员便利性方面也发挥了重要作用,但远未满足级别3-5自主车辆功能的要求。

自动紧急制动(“aeb”)adas系统检测与另一车辆或其他对象的即将发生的前向碰撞,并且如果驾驶员在指定的时间或距离参数内未采取纠正措施,则可以自动应用制动器。典型的aebadas系统使用前置摄像机或radar传感器,其耦合到专用处理器、dsp、fpga或asic。当aeb系统检测到危险时,类似于fcw系统,它通常会先向驾驶员警报采取纠正措施以避免碰撞。如果驾驶员未采取纠正措施,则aeb系统可以自动应用制动器,以防止或至少减轻预计碰撞的影响。aeb系统可包括诸如动态制动支持(“dbs”)和/或碰撞即将发生的制动(“cib”)之类的技术。dbs系统提供类似于fcw或典型aeb系统的驾驶员警告。如果驾驶员响应于警告而制动,但专用处理器、fpga或asic确定驾驶员的动作不足以避免碰撞,则dbs系统会自动补充驾驶员的制动,尝试避免碰撞。aeb系统如今已被广泛使用,但由于过度灵敏甚至不期望的“校正”而受到批评。

车道偏离警告(“ldw”)adas系统提供视觉、听觉和/或触觉警告,诸如方向盘或座椅振动,以在汽车越过车道标志时向驾驶员发出警报。当驾驶员通过激活转向信号灯指示有意偏离车道时,ldw系统不会激活。典型的ldwadas系统使用前置摄像机,其耦合到与驾驶员反馈(诸如,显示器、扬声器或振动组件)电耦合的专用处理器、dsp、fpga或asic。ldwadas系统如今已被广泛使用,但因其性能不稳定而受到批评,有时会允许车辆漂移出车道和/或驶向路肩。ldwadas系统也因提供错误的和入侵性的反馈而受到批评,尤其是在弯曲的道路上。

车道保持辅助(“lka”)adas系统是ldw系统的一种变体。lka系统提供转向输入或制动,以在车辆开始驶离车道时对其进行校正。lka系统因提供适得其反的控制信号而受到批评,特别是当车辆遇到骑自行车的人或行人时,尤其是在狭窄的道路上。特别地,当驾驶员试图给骑自行车的人或行人适当的安全距离时,已知lkw系统会导致该系统使汽车转向回到车道的中心,从而转向骑自行车的人或行人。

盲区警告(“bsw”)adas系统检测并警告汽车盲区中的车辆的驾驶员。典型的bsw系统提供视觉、听觉和/或触觉警报,以指示合并或更改车道不安全。当驾驶员使用转向信号灯时,系统可提供附加的警告。典型的bswadas系统使用后置的摄像机或radar传感器,它们耦合到与驾驶员反馈(例如显示器、扬声器或振动组件)电耦合的专用处理器、dsp、fpga或asic。bsw系统如今已广泛使用,但因假阳性而受到批评。

当车辆倒车时,如果在后摄像机范围之外检测到对象,后方交叉交通警告(“rctw”)adas系统会提供视觉、听觉和/或触觉通知。某些rctw系统包括aeb,以确保应用车辆制动器以避免碰撞。典型的rctwadas系统使用一个或更多个后置radar传感器,其耦合到与驾驶员反馈(例如显示器、扬声器或振动组件)电耦合的专用处理器、dsp、fpga或asic。像其他adas系统一样,rctw系统因假阳性而受到批评。

现有技术的adas系统在商业上已经成功,但是它们都没有提供级别3-5自主车辆性能所需的功能。

b.设计方法

1.经典计算机视觉和基于规则的方法

已经针对自主车辆提出了两种截然不同的方法。第一种方法是计算机视觉,它是自动感知、分析、理解和/或解释视觉数据的过程。这样的视觉数据可以包括由任何类型的摄像机或视频记录设备捕获的视频、图像、实时或近实时数据的任何组合。计算机视觉应用程序实现计算机视觉算法以解决高级别问题。例如,adas系统可以基于车载摄像机或视频记录设备捕获的视觉数据,实现实时对象检测算法,以检测行人/自行车、识别交通标志和/或发出车道偏离警告。

传统的计算机视觉方法试图提取与给定任务相关的指定特征(诸如,边、角、颜色)。传统的计算机视觉方法包括对象检测器,该对象检测器基于人类工程师手动调整的启发式方法执行特征检测。图案识别(pattern-recognition)任务通常使用初始阶段的特征提取阶段,然后是分类器。

经典计算机视觉已在许多adas应用程序中使用,但并不很好地适合级别3-5系统性能。由于经典计算机视觉遵循基于规则的方法,因此使用经典计算机视觉的自主车辆必须具有一套明确的、程序化的决策准则,意图涵盖所有可能的场景。鉴于存在大量的驾驶情况、环境和对象,经典的计算机视觉无法解决要达到级别3-5自主车辆所必须解决的问题。没有系统能够为每种可能的场景和所有驾驶挑战提供规则,包括雪、冰、大雨、大型开放式停车场、行人、反光(reflection)、并入迎面而来的交通等。

2.神经网络与自主车辆

神经网络被广泛视为经典计算机视觉的替代方法。从1989年pomerleau的神经网络中自主地面车辆(“alvinn”)系统研究开始,就已经提出用于自主车辆的神经网络有很多年了。

alvinn在2004年启发了国防高级研究规划局(“darpa”)的幼苗规划,称为darpa自主车辆(“dave”),其中有一辆小型(sub-scale)无线电控制的汽车驶过一条充满垃圾的小巷。dave在相似但不相同的环境中接受了数小时的人工驾驶训练。训练数据包括来自两个摄像机的视频以及人工操作员发送的转向命令。dave展示了神经网络的潜力,但是dave的性能不足以满足级别3-5自主车辆的要求。相反,dave在复杂环境中碰撞之间的平均距离约为20米。

在dave之后,两个发展推动了对神经网络的进一步研究。首先,大型标记数据集(诸如imagenet大规模视觉识别挑战(“ilsvrc”))已广泛用于训练和验证。ilsrvc数据集包含1000多个类别中的一千多万个图像。

第二,神经网络现在在大规模并行图形处理单元(“gpu”)上实现,极大地提高了学习和推理能力。术语“gpu”是传统术语,但是并不意味着本技术的gpu实际上被用于图形处理。相反,本文所述的gpu是特定于域的并行处理加速器。尽管cpu通常包含针对顺序串行处理而优化的几个核心,但gpu通常具有大规模并行架构,该架构包含数千个更小、更高效的计算核心,其被设计用于同时处理多个任务。gpu不仅用于图形,还用于许多目的,包括加速高性能计算、深度学习和人工智能、分析以及其他工程应用。

gpu是深度学习和神经网络的理想选择。gpu执行极其大量的同时计算,将训练神经网络所花费的时间从常规cpu技术的数天削减到仅数小时。

深度神经网络主要是“黑匣子(blackboxes)”,由数百万个节点组成,并随时间进行调整。dnn的决策即使不是不可能解释也可能会很困难,从而使故障排除和优化变得充满挑战。通过深度学习,神经网络可以学习许多抽象层次。它们的范围从简单的概念到复杂的概念。每一层对信息进行分类。然后对其进行优化,并将其传递给下一个。深度学习将各层堆叠在一起,从而使机器可以学习“分层表示”。例如,第一层可能寻找边。下一层可以寻找形成角的边的集合。下一个可能寻找边的图案。经过许多层后,神经网络学习了例如过马路的行人的概念。

图3示出了训练神经网络以识别交通标志。神经网络包括输入层(6010)、多个隐藏层(6020)和输出层(6030)。训练图像信息(6000)被输入到节点(300),并通过网络向前传播。正确的结果(6040)用于调整节点(6011、6021、6031)的权重,并且该过程用于数千个图像,每个图像都会导致权重的修改。经过充分的训练,神经网络可以准确地识别图像,甚至比人类还要精确。

c.nvidia的parkersoc和drivepx平台。

gpu已经证明,经过适当的训练后,cnn可以用来操纵汽车。级别3-5自主车辆必须做出众多即时决策来导航环境。这些选择比早期的alvinn和dave系统的车道跟随和转向应用要复杂得多。

在早期工作之后,nvidia将最初为移动应用设计的名为parker的片上系统改为名为drivetmpx2的用于无人驾驶系统的控制器。drivetmpx2平台具有parker支持的自动司机(autochauffeur)和自动巡航(autocruise)功能。

迄今为止,还没有公司为能够满足行业安全标准的级别4-5功能成功地构建自动驾驶系统。这是一项艰巨的任务。它以前没有成功完成,并且需要跨不同架构、硬件和基于软件的系统的众多技术。给定无限的训练和计算能力,至少在理论上,所有决策的作出都可以使用深度学习方法来最好地处理。该自主车辆不需要使用明确的规则进行编程,而是将由采用大量数据训练的神经网络进行操作,这些数据描述了每种可能的驾驶场景和适当的结果。自主车辆将受益于无穷的集体经验,并且比平均人类驾驶员在驾驶技术上要熟练得多。从理论上讲,集体经验还将包括有关本地驾驶习惯的本地化信息-一些驾驶惯例是非正式的、地方性的并且为当地人所知,而不是被编入交通法规中。

但是,单个统一的神经网络可能无法做出驾驶所必需的每个决策。许多不同的ai神经网络,结合传统技术,是操作车辆所必需的。使用各种ai网络,每个ai网络负责一个专业领域,这将提高自主车辆的安全性和可靠性。除了控制转向的网络外,自主车辆必须具有针对特定任务训练并专注于特定任务(例如,行人检测、车道检测、标志读取、碰撞避免等)的网络。即使单个神经网络组合可以实现级别3-5功能,神经网络的“黑匣子”性质也使得实现asild功能不切实际。

ⅶ.

技术实现要素:

解决现有自动驾驶方法中的问题所需要的是具有跨越级别3-5的灵活架构的端到端平台,该架构是一种综合功能安全架构,其利用并有效使用计算机视觉和/或adas技术来实现多样性和冗余,并为灵活、可靠的驾驶软件栈(softwarestack)提供了平台以及深度学习工具。所需要的是更快、更可靠甚至更节能和更节省空间的soc,其被集成到灵活、可扩展的平台中,该平台可支持广泛范围的自主车辆,包括汽车、出租车、卡车、公共汽车和其他车辆。所需要的是一种能够提供安全、可靠且舒适的自动驾驶的系统,而又不会出现困扰商业adas系统的假阳性和过度敏感的情况。

实施例包括辅助级别3、4和/或5的自动驾驶功能的系统和方法。在本文的一些示例实施例中,即使当处理器组件失效时,也保持有条件的、高度且完全自动化级别3、4和5。该技术进一步为端到端平台提供了灵活的架构,该灵活的架构提供了利用并有效使用计算机视觉和/或adas技术来实现多样性和冗余性的综合功能安全架构,为灵活、可靠的驾驶软件栈提供了平台以及深度学习工具。本文中的示例非限制性技术提供了更快、可靠、节能且节省空间的soc,其被集成到灵活、可扩展的平台中,该平台可实现广泛范围的自主车辆,包括汽车、出租车、卡车、公共汽车和其他车辆。

ⅷ.附图的简要说明

图1是示出了根据本技术的实施例的驾驶员辅助、adas和自动驾驶的等级的图。

图2示出了根据本技术的实施例的用于确定asil风险的示例因素的表。

图3是根据本技术的实施例的用于训练神经网络以识别对象的示例数据流的图。

图4是根据本技术的实施例的示例自主车辆的图。

图5是根据本技术的实施例的示例摄像机类型和在车辆上的示例位置的图。

图6是根据本技术的实施例的用于在基于云的数据中心与自主车辆之间进行通信的示例数据流过程的图示。

图7是示出了根据本技术的实施例的示例自动驾驶硬件平台的框图。

图8是示出了根据本技术的实施例的用于自主车辆中的高级片上系统(soc)的示例处理架构的框图。

图9是根据本技术的实施例的自主车辆中的示例高级soc的组件图。

图10是根据本技术的实施例的示例可编程视觉加速器(pva)的框图。

图11是根据本技术的实施例的示例硬件加速集群存储器架构的图。

图12是描绘根据本技术的实施例的在深度学习加速器(dla)上运行以解释交通信号的多个神经网络的示例配置的图。

图13是根据本技术的实施例的用于控制自主车辆的示例高级soc架构的系统图。

图14示出了根据本技术的实施例的示例非限制性asil要求的表。

图15描绘了根据本技术的实施例的高级soc中的功能安全特征的框图。

图16描绘了根据本技术的实施例的具有三个soc的示例硬件平台。

图17描绘了根据本技术的实施例的示例硬件平台架构。

图18描绘了根据本技术的实施例的包括cpu的示例硬件平台架构。

图19描绘了根据本技术的实施例的包括cpu的替代示例硬件平台架构。

图20描绘了根据本技术的实施例的具有通信接口的示例硬件平台架构。

图21是根据本技术的实施例的用于自动驾驶系统的系统图。

图22是根据本技术的实施例的包括八个高级soc和分立式gpu(dgpu)的自动驾驶系统的示例架构。

图23是根据本技术的实施例的包括高级soc和四个dgpu的自动驾驶系统的示例架构。

图24是根据本技术的实施例的具有分配的asil的高级别系统架构的框图。

图25是根据本技术的实施例的在仲裁过程期间的示例数据流的框图。

图26描绘了根据本技术的实施例的具有分配的asil的示例系统架构。

图27描绘了根据本技术的实施例的高级adas系统的示例配置。

图28描绘了根据本技术的实施例的用于自动驾驶应用的示例虚拟机配置。

图29描绘了根据本技术的实施例的在自动驾驶系统中的虚拟机上的应用程序的示例分配。

图30示出了根据本技术的实施例的用于执行具有抢占(preemption)的计算指令的示例工作流。

图31描绘了根据本技术的实施例的用于自动驾驶系统中的功能安全的分区服务的示例配置。

图32描绘了根据本技术的实施例的自动驾驶系统中的示例通信和安全系统架构。

图33描绘了根据本技术的实施例的与自动驾驶系统中的硬件基础结构相对应的示例软件栈。

图34描绘了根据本技术的实施例的在自动驾驶系统中具有功能安全特征的示例配置。

图35描绘了根据本技术的实施例的用于自动驾驶系统中的虚拟机应用的示例交互拓扑。

图36是根据本技术的实施例的用于监视在自动驾驶系统中的虚拟机中执行的访客操作系统中的错误的流程图。

图37描绘了根据本技术的实施例的针对在系统组件中检测到的错误的安全框架中的示例错误报告过程。

图38是根据本技术的实施例的在硬件检测情况期间的错误处理的示例流程图。

图39是根据本技术的实施例的在软件检测情况期间的错误处理的示例流程图。

图40描绘了根据本技术的实施例的与外围组件相对应的分区的示例配置。

图41是根据本技术的实施例的用于自动驾驶的示例软件系统图。

图42是根据本技术的实施例的用于自动驾驶的另一示例软件系统图。

图43描绘了根据本技术的实施例的示例跟踪的车道图。

图44描绘了根据本技术的实施例的用于训练神经网络以执行车道检测的作为输入的有效路径的示例注释。

图45描绘了根据本技术的实施例的来自检测用于执行传感器校准的虚拟地标的示例输出。

图46描绘了根据本技术的实施例的、在一个示例中的来自用于跟踪从传感器产生的多个图像上的特征的点检测器的输出。

图47描绘了根据本技术的实施例的、由在具有由lidar传感器生成的空间间隔的帧之间执行迭代最近点对准的示例输出。

图48是根据本技术的实施例的示例自动化自校准器的框图。

图49是根据本技术的实施例的示例轨迹估计器的框图。

图50描绘了根据本技术的实施例的示例逐像素类输出图像和边界框。

图51描绘了根据本技术的实施例的来自对象跟踪的示例输出。

图52描绘了根据本技术的实施例的、来自执行用于基于相对运动的范围来确定时间基线的过程的示例输出。

图53描绘了根据本技术的实施例的、来自执行用于启发式地重新定义地平面的过程的示例输出。

图54描绘了根据本技术的实施例的、来自在radar和视觉轨迹上执行映射的示例输出。

图55描绘了根据本技术的实施例的示例动态占用栅格。

图56描绘了根据本技术的实施例的示例路径感知场景。

图57描绘了根据本技术的实施例的用于执行路径内确定的示例场景。

图58描绘了根据本技术的实施例的示例等待条件场景。

图59描绘了根据本技术的实施例的示例地图感知场景。

图60描绘了根据本技术的实施例的在每个节点处具有点和切线的示例有向图。

图61描绘了根据本技术的实施例的具有等待条件的示例有向图。

图62描绘了根据本技术的实施例的用于在有向图中显示附加的定义信息的示意图的示例代表视图。

图63描绘了根据本技术的实施例的示例规划层次结构。

图64描绘了根据本技术的实施例的、将来自前向预测模型的规划的轨迹映射到由控制器模块实现的轨迹的示例输出。

图65描绘了根据本技术的实施例的能够自动驾驶的示例卡车。

图66描绘了根据本技术的实施例的能够自动驾驶的示例性二级公共汽车。

图67描绘了根据本技术的实施例的能够自动驾驶的示例铰接式公共汽车。

图68描绘了根据本技术的实施例的能够自动驾驶的示例性舵杆(tiller)卡车。

ⅸ.技术的实施例的详细描述

a.示例自主车辆。

图4示出了示例无人驾驶(self-driving)车辆(50)。在所示示例中,车辆(50)包括能够容纳人类驾驶员和/或人类乘客的乘用(passenger)车辆,诸如汽车或卡车。车辆(50)包括悬挂在底盘上的车身(52),在该示例中,所述车身(52)包括四个车轮(54)和相关的车轴。诸如内燃发动机、混合动力电厂甚至全电动发动机之类的推进系统(56)被连接以经由传动系统来驱动部分或全部车轮(54),该传动系统可以包括变速器(未示出)。当推进系统(56)工作并接合以推进车辆时,方向盘(58)可用于操纵部分或全部车轮(54)以沿期望的路径引导车辆(50)。对于级别5实施例,方向盘(58)等是可选的。响应于从传感器阵列实时连续提供的信号,一个或更多个控制器(100(1)-100(3))提供自主的无人驾驶能力(capabilities),如下文更全面地描述的。

每个控制器本质上是一个或更多个车载超级计算机,其可以实时操作以处理传感器信号,并输出自主操作命令至无人驾驶车辆(50)和/或在驾驶时协助人类车辆驾驶员。为了功能安全性和附加特征,每个车辆可以具有任意数量的不同控制器。例如,控制器(100(1))可以用作用于自动驾驶功能的主计算机,控制器(100(2))可以用作用于功能安全功能的辅助计算机,控制器(100(3))可以为摄像机内的传感器提供人工智能功能,并且控制器(100(4))(未示出)可以提供信息娱乐功能并为紧急情况提供额外的冗余。

控制器(100)发送命令信号以经由一个或更多个制动致动器(61)操作车辆制动器(60),经由转向致动器(62)操作转向机构(58),以及操作推进单元(56),其还接收加速器/油门致动信号(64)。致动通过本领域普通技术人员已知的方法、采用通常经由控制器局域网数据接口(“can总线”)发送的信号来执行,该can总线是现代汽车内部用于控制制动、加速、转向、挡风玻璃雨刮器等的网络。can总线可以被配置为具有数十个节点,每个节点都有其自己的唯一标识符(canid)。在优选实施例中,can网络可以包括多于一百个不同的can节点id。总线可以被读取以找到方向盘角度、地面速度、发动机rpm、按钮位置和其他车辆状态指示器。can总线接口的功能安全级别通常为asilb。其他协议可用于在车辆内通信,包括flexray和以太网。

对于使用车辆模型的实施例,可以通过专用的硬件和软件来获得致动控制器,从而允许控制油门、制动、转向和变速(shifting)。硬件在车辆的can总线与控制器(100)之间提供桥梁,将车辆数据转发到控制器(100),其包括转向信号、车轮速度、加速度(acceleration)、俯仰(pitch)、侧倾(roll)、偏航(yaw)、全球定位系统(“gps”)数据、轮胎压力、燃油水平、声呐、制动扭矩等。可以为任何其他品牌和类型的车辆配置类似的致动控制器,其包括专用巡逻和安全车、无人驾驶出租车、包括拖拉机-拖车配置的长途卡车、舵杆卡车、农用车辆、工业车辆和公共汽车,包括但不限于铰接式公共汽车。

响应于传感器输入阵列,控制器(100)提供自动驾驶输出,该传感器输入包括例如:一个或更多个超声波传感器(66),一个或更多个radar传感器(68),一个或更多个光检测和测距(“lidar”)传感器(70),一个或更多个环绕摄像机(72)(通常此类摄像机位于车身(52)的各个位置以对车身周围的所有区域进行成像),一个或更多个立体摄像机(74)(在优选实施例中,至少一个这样的立体摄像机面向前方以提供深度感知,以在车辆路径中进行对象检测和对象识别),一个或更多个红外摄像机(75),提供位置坐标的gps单元(76),检测转向角的转向传感器(78),速度传感器(80)(每个车轮(54)一个),监视车身(52)的运动的惯性传感器或惯性测量单元(“imu”)(82)(例如,该传感器可以是一个或更多个加速度计和/或一个或更多个陀螺仪传感器和/或一个或更多个磁罗盘),轮胎振动传感器(85)和放置在车辆周围和内部的麦克风(102)。如本领域普通技术人员已知的,可以使用其他传感器。

控制器(100)还接收来自仪表板(84)的输入,并且可以经由一个或更多个人机界面(“hmi”)显示器(86)、声音信号器、扬声器和/或其他装置向人类操作人员提供人类可感知的输出。除了诸如速度、时间和其他众所周知的信息之类的传统信息外,hmi显示器还可以为车辆乘员(occupant)提供有关地图和车辆的位置、其他车辆的位置(包括占用栅格)以及甚至控制器对对象和状态的识别的信息。例如,当控制器已经识别出停车标志、警告标志的存在或交通信号灯的改变并且正在采取适当的动作时,hmi显示器(86)可以向乘客发出警报,从而使车辆乘员放心,控制器正在按预期的起作用。

仪表板(84)可以包括单独的控制器/超级计算机,其被配置为执行深度学习和人工智能功能,包括以下在标题为“用于执行该技术的ai超级计算机平台(aisupercomputerplatformforperformingthetechnology)”的部分中及后面描述的高级片上系统。

车辆(50)收集优选地用于帮助训练和完善用于无人驾驶的神经网络的数据。车辆包括调制解调器(103),优选地是提供调制和解调功能并允许控制器(100)通过无线网络(1100)进行通信的片上系统。如本领域中已知的,调制解调器(103)可以包括rf前端,该rf前端用于从基带到rf的上转换,以及从rf到基带的下转换,如本领域中已知的。可以通过已知的直接转换过程(直接从基带到rf,反之亦然)或通过超外差过程来实现频率转换,如本领域中已知的。替代地,这种rf前端功能可以由单独的芯片提供。调制解调器(103)优选地包括基本上符合一个或更多个无线协议的无线功能,所述无线协议例如但不限于:lte、wcdma、umts、gsm、cdma2000或其他已知且广泛使用的无线协议。

1.摄像机

与声呐和radar相比,摄像机以较少的成本产生了更丰富的特征集。因此,无人驾驶车辆(50)包括多个摄像机(72、73、74、75、76),这些摄像机捕获车辆的整个外围周围的图像。摄像机类型和镜头(len)选择取决于功能的性质和类型。优选地,车辆具有摄像机类型和镜头的混合,以提供车辆周围的完全覆盖;通常,狭窄的镜头视野不广,但可以看得更远。在优选实施例中,车辆包括12个摄像机,尽管可以使用更多或更少的数目。车辆上的所有摄像机位置优选地都支持接口,诸如千兆多媒体串行链路(gmsl)和千兆位以太网。

图5错误!找不到参考源。示出了摄像机类型和位置的一个示例,具有12个摄像机(72、73、74、76)和一个红外摄像机(75)。

前置(front-facing)摄像机有助于识别前向面向的路径和障碍物,并提供对于形成占用栅格(occupancygrid)和确定优选车辆路径至关重要的信息。前置摄像机可用于执行许多与lidar相同的adas功能,包括紧急制动、行人检测和避免碰撞。前置摄像机还可用于adas功能和系统,其包括车道偏离警告(“ldw”)和自动巡航控制(“acc”)以及其他功能,例如交通标志识别。

可以以前置配置使用各种摄像机,包括例如单眼摄像机平台,该平台包括cmos(互补金属氧化物半导体)彩色成像器和一个或更多个数据通信接口,诸如can、flexray和以太网。

前置广角摄像机(73)可用于感知从外围进入视野的对象(例如,行人、交叉口交通或自行车)。如本领域普通技术人员已知的,可以使用其他广角摄像机和镜头。

在优选实施例中,长焦立体摄像机对(74)可以用于基于深度的对象检测,特别是对于尚未针对其训练神经网络的对象。长焦立体摄像机(74)也可以用于对象检测和分类以及基本的对象跟踪。用于汽车应用的立体摄像机可以包括集成的控制单元,该集成的控制单元包括一个可扩展处理单元,该可扩展处理单元提供可编程逻辑(“fpga”)和在单个芯片上具有集成的can或以太网接口的多核微处理器。该单元生成车辆的环境的精确3d地图,包括对图像中所有点的距离估计。

类似地,合适的替代方案包括紧凑型立体视觉传感器,该传感器包括两个摄像机镜头(左右各一个)和图像处理芯片,该图像处理芯片可被配置为测量从车辆到目标对象的距离,并且被设计用于激活自主紧急制动和车道偏离警告功能。如本领域普通技术人员已知的,可以使用其他立体摄像机来实践该技术。

侧面摄像机(72)可用于“环视(surroundview)”,其提供用于创建和更新占用栅格的信息;以及侧面撞击碰撞警告。在一个优选实施例中,使用了四个广角/鱼眼视图摄像机,分别位于车辆的前方、后方和侧面。可替代地,车辆可以使用三个仅物理环绕摄像机(72)(左、右、后环绕),并利用物理前广角摄像机(73)作为逻辑第四环视摄像机。在使用后视镜组件时,其通常是定制的3d打印的,以使摄像机安装板与后视镜(71)的形状匹配。示例设计将摄像机集成到传统的镜子中,并提供更大的视场。侧面摄像机也可以放置在车舱的每个角落处的四个支柱中。

后方摄像机可用于停车辅助、环视、后方碰撞警告以及创建和更新占用栅格。可以使用各种各样的摄像机,包括也适合作为前置摄像机的摄像机。后方摄像机也可以是上面讨论的类型的立体摄像机(74)。

本文提供的摄像机类型是示例,而不是作为限制提供。几乎任何类型的数码摄像机均可适用于该技术。替代摄像机可以是任何可用的类型,包括(但不限于)60fps和全局快门。优选地,颜色过滤器模式是rccb,并且使用透明像素摄像机来增加灵敏度。该技术还可以包括被安装以作为冗余或故障安全设计的一部分执行已知adas功能的摄像机,如下所讨论的。例如,可以安装多功能单眼摄像机以提供包括车道偏离警告、交通标志辅助和智能大灯控制的功能。

在优选实施例中,所有摄像机同时记录并提供视频信息。所有摄像机优选地安装在定制设计的(3d打印的)组件中,以不仅去除杂散光,而且去除车内的反射光,其可能会干扰摄像机的数据捕获(因为来自仪表板的反射光反映在挡风玻璃镜上是一个重大问题)。典型的摄像机功能安全等级为asilb。

2.lidar

无人驾驶车辆(50)优选地包括一个或更多个lidar传感器(70),其通常用于对象和行人检测、紧急制动和碰撞避免。lidar传感器通过测量飞行时间(“tof”)、由已知光速计算距离来测量距离,测量飞行时间采用短的激光脉冲从传感器行进到对象并返回。lidar可检测较小的对象,并且在相对清晰的大气条件下能够有效检测距离。但是,lidar在不利的天气条件下不能很好地工作,并且在检测非反射性对象(例如,泥泞或多尘的对象)方面不是特别有效。因此,与radar不同,lidar传感器通常必须具有清晰无障碍的视线-传感器不能被污垢、灰尘或其他障碍物所阻碍。

在优选实施例中,车辆(50)具有六个环绕的lidar传感器,这些lidar传感器针对以太网预先布线,将数据提供给千兆以太网交换机,但是可以使用更多或更少数量的lidar传感器。

可以将许多不同类型的lidar技术与该技术一起使用。在一个实施例中,所使用的lidar传感器能够为360度视场提供一系列对象及其距离。在替代实施例中,lidar传感器提供360度的水平视场。市售的lidar传感器可具有约为100m的宣传范围,其精度为2-3cm并支持(例如)100mbps以太网连接。

在又一实施例中,可以使用一个或更多个非突出的lidar传感器。这些实施例包括被实现为小型设备的传感器,该传感器可以嵌入到车辆的前部、侧面和拐角中,并且被宣传为提供多达120度的水平视场和35度的垂直视场,即使对于低反射率对象,也能达到200米的范围,汽车完整性安全等级为asilb。通常,前面安装的lidar优选地被配置为45度至135度的水平视场。

在另一个实施例中,也可以使用较新的lidar技术,例如3dflashlidar(3d闪光激光雷达)。3dflashlidar使用激光闪光作为传输源,以照亮大约200m的车辆周围。flashlidar单元包括接收器,该接收器记录激光脉冲传输时间和每个像素上的反射光,而反射光又对应于从车辆到对象的范围。flashlidar允许每次激光闪光都能生成高精度且无失真的周围环境图像。在优选实施例中,部署了四个flashlidar,在自主车辆的每一侧面处各一个。可用的3dflashlidar系统包括固态3d凝视阵列lidar摄像机,其除了风扇外没有其他活动部件,也就是说,它不是扫描lidar设备。在一个非限制性示例中,flashlidar设备每帧使用5纳秒的i类(人眼安全)激光脉冲,并以3d范围点云和共同寄存的强度数据的形式捕获反射的激光。由于flashlidar是固态设备,没有活动部件,因此不太容易受到运动模糊、振动和冲击的影响。lidar的功能安全等级通常为asilb。

3.超声波传感器。

无人驾驶车辆(50)优选地包括一个或更多个超声波传感器(66)。超声波传感器位于前方、后方甚至侧面,其通常用于泊车辅助以及创建和更新占用栅格。然而,声呐的实用性在高速下甚至在低速下都受到损害,其被限于约2米的工作距离。可以使用各种各样的超声波传感器。可以针对不同的检测范围(例如2.5m、4m)设计合适的超声波传感器。典型的超声波传感器功能安全等级为asilb。

4.红外(热)传感器

在某些实施例中,无人驾驶车辆(50)优选地包括一个或更多个红外或热摄像机(75),以增强车辆检测、分类和识别对象的能力,尤其是在黑暗中和穿过雾气。该技术可以包括有源红外系统或无源红外系统。有源系统使用红外光源通过门控或非门控的方法利用红外光照亮车辆周围的区域。门控有源系统使用脉冲红外光源和同步红外摄像机。因为有源系统使用红外光源,所以它在检测诸如行人、骑自行车的人和动物等活的(living)对象方面表现不佳。

无源红外系统使用热像摄像机检测对象发射的热辐射。无源红外系统在检测活的对象方面表现良好,但在特别温暖的天气下表现不佳。无源红外系统提供的图像的分辨率通常低于有源红外系统。由于红外系统会检测热量,因此它们特别地增强了车辆检测人和动物的能力,从而使车辆更加可靠并提高了安全性。

该技术可以使用各种各样的红外传感器。合适的红外系统包括但不限于紧凑型热成像摄像机,其可以创建(在示例实现方式中)具有36度视场的320x240像素的图像,对于人的有效范围为300m,对于较大的发热对象(诸如汽车)的有效范围约为两倍。对于需要其他变化(包括变焦能力)的应用,可以使用长波红外(“lwir”)热像仪核心。或者,特别是对于开发车辆,红外传感器可以配备热数据端口,其可通过标准usb连接或任何合适的数据通信标准提供分析。典型的红外摄像机功能安全等级为asilb。

5.radar

无人驾驶车辆(50)优选地包括一个或更多个radar传感器(68)。radar非常适合远程车辆检测,而声呐可以解决附近的汽车检测问题。通常,radar可以准确地检测距离,因此它可以在黑暗和恶劣的天气条件下工作。但是,radar会遭受假阳性,包括井盖、大罐、排水格栅和其他金属对象。此外,radar并不提供任何有关方向(orientation)的有意义的信息,并且通常在横向位置上不准确,这对于弯曲的高速公路和急转弯是个问题。

该技术可以使用各种各样的radar传感器。radar传感器优选地使用can进行控制并访问对象跟踪数据,并使用可选的以太网访问原始数据。汽车(50)优选地还具有侧面radar传感器,并且经由can总线提供来自radar传感器的数据。

合适的传感器包括但不限于可用于前方和后方radar覆盖范围两者的radar传感器。其他合适的传感器可以包括脉冲多普勒(doppler)radar,其可以具有多个配置:一个具有更长的范围和更窄的视场,而一个具有更短的范围但更宽的视场。根据特定的配置,更少、更多或替代的配置也是可能的。在其他实施例中,可以使用radar传感器来提供较短范围的侧面覆盖。当用于侧面覆盖时,该传感器可用于提供对象跟踪和车道分配功能。

远程radar通常用于acc功能;短程和中程radar通常用于交叉交通警报(用于前置radar)、盲区检测和后方碰撞警告。合适的远程radar系统包括但不限于提供宽视场的radar系统,该宽视场可通过两个独立扫描实现,范围约为250m。示例实施例可以包括区分静止对象和运动对象的传感器,并且可以在常规adas中用于紧急制动辅助或前向碰撞警告。

其他合适的远程radar系统包括但不限于具有多个(例如,六个或更多个)固定的radar天线以及高速can和flexray接口的单静态多模态radar。中央的四个天线形成聚焦的波束模式,旨在以更高的速度记录车辆的周围环境,而在相邻车道中的交通干扰最小。外部的两个天线扩大了视场,使快速检测进入或离开车辆的车道的车辆成为可能。

中程radar系统具有高达160m(前方)或80m(后方)的范围,以及高达42度(前方)或150度(后方)的视场。合适的短程radar系统包括但不限于被设计为安装在后方保险杠(bumper)两端的radar传感器。当安装在后方保险杠的两端时,这样的radar传感器系统会产生两个光束,其不断地监视车辆后方和车辆旁边的盲区。示例性的短程radar系统可以在常规adas系统中用于盲区检测或车道变更辅助。典型的radar功能安全等级为asilb。

6.gps

自动驾驶车辆(50)优选地包括gps传感器(76),包括gps和/或辅助gps(“agps”),以协助进行地图绘制(mapping)、感知、占用栅格和路径规划功能。可以使用任何数量的不同gps传感器和连接器,包括但不限于gps使用带有以太网到串行(rs-232)桥的usb连接器。

7.惯性测量单元(imu)。

无人驾驶车辆(50)优选地包括惯性测量单元传感器(imu)(82),诸如加速度计、陀螺仪以及磁力计。imu(82)优选地位于车辆(50)的后方轴的中心处。

在不限制技术的情况下,可以使用各种不同的imu传感器。例如,实施例可以包括六轴应用(加速度计和陀螺仪)和九轴应用(加速度计、陀螺仪和磁力计)。替代地,代替使用磁力计,imu(82)可以被实现为微型、高性能gps辅助惯性导航系统(gps/ins),其结合了mems惯性传感器、高灵敏度gps接收器和高级卡尔曼滤波算法,以提供位置、速度和姿势的最佳估计。示例实现方式能够通过直接观察并关联从gps到惯性传感器的速度变化来估计朝向,而无需来自磁传感器的输入。可替代地,imu(82)和gps(76)可以组合在单个集成单元中。

8.无线连接和网络访问。

级别3-5功能要求车辆在驾驶时不断学习;理想情况下,级别3-5车辆不仅要从自身的经验中学习,而且还要从路上其他车辆的经验中学习。因此,无人驾驶车辆(50)优选地包括用于与外部网络和其他车辆进行无线连接的无线调制解调器(103)和天线(101)。

每个级别3-5车辆收集的数据应经由蜂窝网络或其他地面网络(诸如lte(如果可用的话)、wcdma、umts、cdma2000、hspa+、gsm或卫星无线电网络)传输到基于云的基础设施,其包括深度学习的超级计算机。或者,数据可以经由具有wifi的无线热点(包括停车场、服务站和/或甚至停车灯中的)传输到云中。对于较小的分组,也可以使用寻呼网络基础设施。车辆(50)提供给网络的数据可以包括但不限于摄像机图像、lidar数据、超声波传感器数据和radar数据。

在优选实施例中,基于云的深度学习基础设施使用人工智能来分析从车辆接收的数据,并将其合并到最新的实时神经网络中用于实时智能推理。在优选实施例中,网络基础设施使用带有gpu的数据中心进行深度学习,如图6所示。

如图6所示,基于云的深度学习基础设施通过无线网络上行链路(1101)和下行链路(1102)向无人驾驶车辆(50)提供更新。向车辆(50)提供的更新可以包括对高清地图或hd地图的更新(1002),以及对加载到控制器(100)的存储器中的一个或更多个神经网络(1001)的修订,其可包括因新的训练而产生的更新和从视场中的其他车辆接收到的经验,或者是在网络数据中心中执行的训练。地图更新(1002)可以进一步包括更新的hd地图信息,其可以包括关于施工现场、坑洼、绕道、洪水和其他障碍物的信息。

应该经由蜂窝网络或其他无线网络(诸如lte,如果可用的话)将每个级别3-5车辆收集的数据传输到包括深度学习超级计算机服务器的基于云的基础设施。深度学习基础设施使用人工智能来分析该数据,并将其合并到最新的实时神经网络中,以进行实时智能推理。

深度学习基础设施优选地包括gpu技术。深度学习超级计算机优选地包括由gpu和/或专用ai计算机提供动力的服务器,诸如nvidia公司开发的dgx和dgx站计算机。或者,也可以在仅使用cpu提供动力的数据中心的深度学习基础设施中实践该技术。

深度学习基础设施能够进行快速、实时的推理,并可以使用该能力来评估和验证车辆(50)中处理器、软件和相关联的硬件的健康状况。例如,深度学习基础设施优选地从车辆(50)接收定期更新,该定期更新包括图像序列和车辆(50)在该图像序列中所定位(经由计算机视觉或其他机器学习对象分类技术)的对象。深度学习基础设施运行自己的神经网络以识别对象并将其与车辆(50)识别的对象进行比较;如果结果不匹配,并且基础设施得出车辆(50)中的ai故障,则其可以向车辆(50)发送信号,指示故障安全计算机取得控制、通知乘客并完成安全停车操作。

为了进行推理,基础设施优选地包括由gpu和一个或更多个可编程推理加速器(例如nvidia的tensorrt3)提供动力的服务器。gpu提供动力的服务器和推理加速的组合使得实时响应成为可能。或者,当性能不太重要时,可以使用由cpu、fpga和其他处理器提供动力的服务器进行推理,尽管它们不受欢迎,因为它们的性能低于gpu/tensorrt3解决方案所提供的性能。

图6错误!未找到参考源。示出了一个实施例,其中车辆(50)经由无线网络提供和接收信息。基于云的基础设施(5000)包括多个gpu提供动力的服务器(5001,5002,...500n)。在图6所示的优选实施例中,每个gpu提供动力的服务器包括与高速互连(805)(诸如但不限于由nvidia开发的nvlink接口)和pcie连接(902)互连的多个gpu(802)、pcie交换机(804)和cpu(901)。在其他实施例中,每个服务器可以包括与高速互连(诸如nvlink和/或nvswitchsoc)连接的多个(例如,十六个、三十二个或更多个)gpu。在无线上行链路(1101)上,车辆(50)上传图像,该图像示出了意外的或改变的道路状况(1003),诸如最近开始的道路工程。在无线下行链路(1102)上,车辆下载更新的神经网络(1001)和地图信息(1002),包括关于交通和道路状况的信息。

9.附加传感器和系统。

除了上述传感器之外,自主车辆还可包括其他传感器、adas系统和警告系统。此类系统包括但不限于自动地检测车辆的轮胎压力何时降低的系统。放气警告系统使用简单的传感器来测量轮胎的角速度(80),该角速度随着轮胎的放气和变小而增加。放气警告系统还可以测量轮胎的振动频率(85),该振动频率随着轮胎的压力的降低而变化。

车辆(50)可以并入用于打滑道路检测的其他可用系统,该系统使用驱动轴速度(80)和轮胎振动(85)的差异来确定打滑道路的存在。可用系统包括打滑道路检测系统。示例的打滑道路检测系统可以用于估计在各种驾驶情况下驱动轴和自由旋转车轴的速度之差,其使得能够推导出摩擦力水平,从而识别出结冰或打滑的道路。类似地,替代解决方案将在非打滑道路上(诸如干沥青道路上)收集的数据与在打滑道路上收集的数据进行比较。传感器将转速和振动频率与在干沥青道路上测得的转速和振动频率进行比较,并识别出结冰或打滑的道路。

该技术可以使用多种软件产品,包括使用来自现有汽车坡度传感器的信号(诸如,车轮速度)实时连续监测道路摩擦力以确定道路摩擦力和粗糙度、检测减速带并对可能的坑洼影响进行损害评估的软件系统。其他系统包括轮胎压力指示器(“tpi”)和间接轮胎压力监测系统(“tpms”),该系统能够使用相对滚动半径信息以及车轮振动测量来检测充气不足。示例tpi和tpms系统主要从车轮速度传感器的信号来估计轮胎压力,所述车轮速度传感器是防抱死制动系统(“abs”)(60)和电子稳定性控制系统(“esc”)的一部分。tpi使用车辆中已经可用的信号,并检测一个或更多个轮胎是否充气不足。这些计算基于车辆模型以及众多高级信号处理和传感器融合算法。使用来自abs和esc系统的信息,可以包括松动车轮指示器(“lwi”)来检测车轮螺栓/螺母在车轮位置上何时松动,并且轮胎抓地力指示器(“tgi”)不断估计道路和轮胎之间可用的摩擦力。

该技术还可以与其他安全系统一起使用,包括用于检测打滑道路状况的传感器和/或系统。道路眼测量在几个红外激光波长下的道路反射率,这些红外激光波长在冰和水中被不同地吸收。

这些示例仅仅是可用于在asild安全级别上实现完全级别3-5性能的几种可能的传感器和系统。自动驾驶系统必须能够实时处理来自摄像机、radar、lidar、超声波、红外、gps、imu和/或hd地图的大量数据,并生成命令以安全、可靠且舒适地控制汽车。自动驾驶系统必须确保车辆对变化的环境瞬间做出正确反应。这项具有挑战性的任务需要新的超级计算机平台,该平台提供高级ai功能、多个神经网络以及高级的cpu、gpu和硬件加速器功能,如下面在例如标题为“自主车辆的系统架构和硬件(systemarchitectureandhardwareforautonomousvehicles)”和“使用该技术的无人驾驶车辆的附加示例(additionalexamplesofself-drivingvehiclesusingthetechnology)”的部分中更全面地描述的那样。

b.用于自主车辆的系统架构和硬件。

1.用于执行该技术的ai超级计算机平台。

由于无人驾驶功能需要能够快速、准确、安全和有效地执行众多不同功能的超级计算机,因此没有单个处理器能够提供级别3-5自主车辆功能。而是,用于执行该技术的高级平台和soc优选地具有多种类型的处理器,提供“用于工作的正确工具”以及功能安全性的处理多样性。例如,gpu非常适合于更高精度的任务。另一方面,可以优化硬件加速器以执行更特定的功能集。通过提供多个处理器的组合,高级平台和soc包括一整套工具,其能够快速、可靠和高效地执行与级别3-5自主车辆相关联的复杂功能。

图7错误!找不到参考源。是高级平台(100)的示例性高级图,该高级平台提供了自主系统和半自主系统所需的计算处理能力。

平台(100)可以针对图7错误!找不到参考源中所示的一个或更多个组件(200-500)使用单独的分立式组件来实现。优选地,在小型、强大、高效的soc中,用在单个管芯上实现的组件(200-500)来实现平台(100)。平台(100)和soc还可以包括未在图7中示出的其他组件,如在下面进行更全面的讨论的。

在高级别,cpu(200)可以是一个或更多个通用中央处理单元(cpu),每个通用中央处理单元包括一个或更多个cpu核心。gpu(300)可以是一个或更多个图形处理单元(gpu),每个gpu都包含数千个gpu核心。每个gpu均可用于任何高级处理任务,尤其是受益于大规模并行处理的复杂任务。对于这种计算机图形和并行处理,每个gpu通常表现出比每个cpu更好的每瓦特性能。

平台(100)包括可以由各种不同的硬件加速器组成的加速集群(400),每个硬件加速器针对不同的功能或功能的类别进行了优化。

例如,在某些非限制性实施例中,加速集群(400)可以包括用于执行计算机视觉算法、用于车道检测以及在中等距离处的冗余对象检测的模块。该模块可以包括一个或更多个嵌入式可编程视觉加速器(“pva”),其可以针对来自经由i/o(170)从一个或更多个传感器(例如,摄像机、radar、lidar)接收的传感器数据(例如,来自摄像机、radar、lidar的数据)的感知任务进行优化。对于这种感知数据处理,每个pva通常表现出比每个cpu或gpu更好的每瓦特性能。加速集群(400)还可包括一个或更多个深度学习加速器(“dla”)。每个dla可以被设计为运行特定的神经网络,其每瓦特性能要比在通用cpu、gpu或fpga上执行时的相同网络更好。例如,一个或更多个dla可以被专门设计为处理卷积神经网络(“cnn”),以检测经由i/o(170)从一个或更多个传感器(例如,摄像机、radar、lidar)接收到的感知数据(例如,来自摄像机、radar、lidar的数据)中的特征。

平台(100)还包括存储器(500),该存储器(500)可以由一个或更多个存储元件组成,包括ram、sram、dram、vram、闪存、硬盘以及其他可以存储至少一位数据的组件和设备。存储器(500)优选地包括片上存储器,并且可以包括与cpu(200)和/或gpu(300)一起使用的l2或l3高速缓存。

输入/输出(170)可以是一个或更多个输入/输出(i/o)接口(和/或实现这种接口的组件),用于将数据(例如,命令、响应、信息)传送到一个或更多个输入和/或输出设备,包括显示器、传感器、键盘和用户界面设备。

总线(160)可以是一个或更多个链接,其允许组件(200-500)彼此以及经由i/o(170)与输入和/或输出设备交换数据(例如,命令、响应、信息)。总线(160)可以包括一个或更多个总线标准、交换机和网络,包括但不限于以太网、can、i2c总线或pcexpress总线。

2.用于执行该技术的高级片上系统。

在优选实施例中,平台(100)包括高级soc。本技术的高级soc专为无人驾驶汽车而建立;而非用于汽车的移动芯片或台式机。此外,soc是被设计用于无人驾驶汽车的ai超级计算机,该无人驾驶汽车具有针对l3-5功能优化的特定特征。soc优选地被设计为满足关键的汽车标准,诸如iso26262功能安全规范。在优选实施例中,高级soc具有至少asilc功能安全等级。

图8和图9是用于执行该技术的优选实施例的高级soc(100)的高级图。

a)cpu复合体。

如图8和图9所示,soc包括快速cpu集群或cpu复合体(200),在本文中被称为“cpu”或“ccplex”。ccplex通常负责执行串行工作,包括多个cpu核心(201)和相关联的l2高速缓存(202)。在一个实施例中,ccplex包括在一致的多处理器配置(200)中的八个cpu核心(201)。ccplex支持同步集群操作,这意味着集群的任何组合都可以在任何给定时间处于活动状态。

在一个实施例中,cpu核心被组织为四个双核心集群,其中每个集群具有专用的2mb2级(l2)统一高速缓存(202)。此外,高速一致性结构优选地连接这些处理器复合体,并在需要时允许所有八个核心进行异构多处理。

ccplex(200)优选地实现积极的功率管理能力,包括以下特征中的一个或更多个:(1)空闲时可以自动地对各个硬件块进行时钟门控,以节省动态功耗;(2)当由于执行wfi/wfe指令,核心无法主动执行指令时,每个核心时钟可以被门控,(3)每个核心可以独立地进行功率门控,(4)当所有核心都进行时钟门控或功率门控时,每个核心集群可以独立地进行时钟门控,和/或(5)当所有核心都进行功率门控时,每个核心集群都可以独立地进行功率门控。ccplex(200)优选地实现用于管理功率状态的增强算法,其中指定了允许的功率状态和预期的唤醒时间,并且硬件/微码确定为核心、集群和ccplex输入的最佳功率状态。处理核心在软件中支持简化的功率状态输入序列,其中工作被分担到微码。

b)gpu复合体。

如图8和图9所示,soc包括至少一个gpu复合体(300),其也可以被称为集成gpu或“igpu”。对于并行工作负载,gpu是可编程且高效的,并且优选地使用增强的张量指令集。gpu架构优选地包括至少八个流式多处理器(“sm”)(301),每个流式多处理器具有至少96kb的l1高速缓存(未示出),并且共享至少512kb的l2高速缓存(302)。gpu优选地使用包括cuda的广泛的计算api和库。

优选地对gpu进行功率优化,以在汽车和嵌入式用例中实现最佳性能。在一个实施例中,尽管可以使用其他半导体制造工艺,但是gpu(300)是在finfet高性能制造工艺上制造的。每个sm(301)优选地包括被划分成多个(例如,四个)处理块的多个混合精度处理核心(例如但不限于64个fp32核心和32个fp64核心)。在所描述的示例实现中,可以为四个处理块中的每一个分配16个fp32核心、8个fp64核心、16个int32核心、用于深度学习矩阵算术的两个混合精度张量核心、l0指令高速缓存、一个线程束(warp)调度器、一个分派(dispatch)单元和64kb的寄存器文件。在优选实施例中,sm(301)包括独立的并行整数和浮点数据路径,采用计算和寻址计算的混合提供工作负载的有效执行。gpu的sm优选地包括独立的线程调度能力,实现并行线程之间更细粒度的同步和协作。此外,sm(301)优选地包括组合的l1数据高速缓存和共享内存单元,显著地提高了性能同时还简化了编程。

gpu(300)优选地包括高带宽存储器(“hbm”)或16gb的hbm2存储器子系统,提供900gb/秒的峰值存储器带宽。hbmhbm2存储器可从多家供应商处获得。或者,可以使用gddr5存储器。

在优选实施例中,gpu(300)包括统一的存储器技术,其具有访问计数器,以允许将存储器页面更准确地迁移到最频繁访问它们的处理器,从而提高了处理器之间共享的存储器范围的效率。在一个示例实施例中,地址转换服务(“ats”)支持允许gpu直接访问cpu的页表。当gpu内存管理单元(“mmu”)经历故障时,控制器会向cpu发出地址转换请求(“atr”),cpu在其页表中查找该地址的虚拟到物理映射并提供回到gpu的转换。统一存储器允许为cpu和gpu存储器提供单个统一的虚拟地址空间,其简化了gpu编程和应用程序到gpu的接合(port)。

在优选实施例中,访问计数器跟踪gpu对位于其他处理器上的存储器的访问的频率。访问计数器帮助确保存储器页面被移至最频繁访问页面的处理器的物理存储器中。访问计数器特征可以在nvlink连接的或pcie连接的gpu-cpu或gpu-gpu架构中工作,并且可以与不同的cpu(包括power9,x86等)一起工作。

在优选实施例中,soc包括3级高速缓存(500),其对于cpu和gpu二者均可用。l3高速缓存优选地是回写高速缓存,其可以跟踪处于mei状态的行。理想地,l3高速缓存(500)为4mb或更大,尽管可以使用更小或更大的高速缓存大小。高级soc包括专为特定功能而设计的组件,允许soc更快、功率和空间效率更高。

在一些实施例中,gpu300包括基于硬件的实时光线追踪加速,诸如在2018年8月10日提交的美国专利申请no.16/101,232中描述的。这种光线追踪硬件加速可用于例如快速且有效地确定对象在例如如下所述的世界模型中的位置和范围、实时可视化模拟、radar信号解释、声音传播合成/分析、声呐系统模拟、通用的波传播模拟、与lidar数据的比较,以用于例如车辆定位和其他功能。

c)硬件加速集群。

在图8和图9所示的优选实施例中,高级soc包括硬件加速集群(400),其包括优化的硬件加速器和大型片上存储器。大型片上存储器(在优选实施例中为4mbsram)允许硬件加速集群(400)加速神经网络和其他计算。硬件加速集群(400)可用于补充gpu以及从中卸载某些任务。例如,加速器为目标工作负载(感知、cnn)工作,这些目标工作负载足够稳定以适合加速和api(相对于可编程)。它可以卸载gpu,以释放更多的gpu周期用于其他工作。

(1)深度学习加速器。

在优选实施例中,硬件加速集群(400)包括一个或更多个张量处理单元(“tpu”)(401)(tpu0和tpu1),其为深度学习应用和推理提供额外的每秒10万亿次操作(“top”)。tpu(401)优选地基于nvidia的nvdla深度学习加速器设计。tpu(401)是执行图像处理功能(cnn或rcnn网络)的加速器;它们针对这些任务进行了优化,但对于其他深度学习(“dl”)功能(例如,音频的循环神经网络(“rnn”))可能没有那么有效。dla针对一组特定的网络和浮点运算进行了优化。此外,dla是为推理而设计和优化的。因此,该设计提供了比通用gpu更高的每毫米性能,并且大大超过了cpu的性能。tpu(401)优选地执行若干功能,包括单实例卷积功能(单个实例),支持用于特征和权重二者的int8/int16/fp16数据类型以及后处理器功能。

dla可以针对各种功能中的任何功能,在处理或未处理的数据上快速有效地执行神经网络,尤其是cnn,包括但不限于:(1)使用来自摄像机传感器的数据进行对象识别和检测的cnn,(2)使用来自摄像机传感器(72、74)的数据进行距离估计的cnn,(3)使用来自麦克风(102)的数据进行紧急车辆检测和识别以及检测的cnn,(4)使用来自摄像机传感器(72)的数据进行面部识别和车辆主人识别的cnn,以及(5)用于安全和/或与安全相关的事件的cnn,正如下文在“使用该技术的无人驾驶车辆的附加示例(additionalexamplesofself-drivingvehiclesusingthetechnology)”部分中对无人驾驶公共汽车和无人驾驶巡逻车的讨论中更全面地讨论的那样。如本文和权利要求中所使用的,术语“cnn”包括可以用于对象检测的所有类型的cnn,包括基于区域的卷积神经网络(r-cnn)和快速r-cnn。

然而,dla(401)可执行gpu(300)所具有的任何功能;使用推理加速器,设计人员可以将dla(401)或gpu(300)定位为任何功能。实际上,dla的运行方式受到限制-它针对cnn和浮点运算进行了优化。

(2)可编程视觉加速器。

尽管该技术使用神经网络,但是计算机视觉也发挥作用,例如在车道检测以及中等距离的冗余对象检测中。因此,soc设计优选地包括计算机视觉加速器(402)(va0、va1)。计算机视觉加速器(402)优选地使用nvidia的可编程视觉加速器(“pva”)。pva被设计为加速用于高级驾驶员辅助系统(“adas”)、自动驾驶和ar/vr应用的计算机视觉(“cv”)算法。图10中示出了示例性pva框图。

通常,pva(402)被设计为在性能和灵活性之间提供优化的平衡。每个pva(402)包括但不限于任何数量的精简指令集计算机(“risc”)核心(4010)、直接存储器访问(dma)(4020)和任何数量的向量处理器(4030)。在一些实施例中,risc核心(4010)还与图像传感器、图像信号处理器等交互。每个risc核心(4010)包括但不限于任何量和类型的存储器(4017)。risc核心(4010)可以使用本领域已知的任何协议以任何技术上可行的方式操作。例如,在一些实施例中,risc核心(4010)执行实时操作系统(“rtos”)。risc核心(4010)可以使用一个或更多个集成电路器件、应用程序专用集成电路(asic)或存储器设备或以任何其他技术上可行的方式来实现。在一个优选实施例中,risc核心可配备有指令高速缓存(4015)和紧密耦合的ram(4017)。

dma(4020)使pva系统(402)中包括的组件能够独立于cpu复合体(200)访问系统存储器。dma(4020)可以包括进一步优化pva(402)的性能的任意数量的其他特征。在各个实施例中,dma(4020)支持多维寻址和/或循环寻址。更具体地,在一些实施例中,dma(4020)支持多达六个维度的寻址。六个维度可以包括例如块宽度、块高度、块深度、水平块步进(stepping)、垂直块步进和深度步进。

向量处理器(4030)是可编程处理器,其被设计为有效且灵活地执行对通用计算机视觉算法的编程并提供通用信号处理能力。在优选实施例中,pva包括pva核心(“pvac”)(4050)和两个向量处理子系统(“vps”)分区(4060)。pvac(4050)优选地包括处理器子系统(4010),两个dma引擎(4020)和其他外围设备。vps(4060)是pva中的主要处理引擎,并且包括向量处理单元(“vpu”)(4030)、其指令高速缓存(i-高速缓存)(4035)和向量存储器(“vmem”)(4040)。vpu核心(4030)优选地是dsp,诸如,例如针对计算机视觉而优化的单指令多数据(“simd”)超长指令字(“vliw”)数字信号处理器(“dsp”)。simd和vliw架构的组合提高了吞吐量和速度。

每个向量处理器(4030)优选地具有指令高速缓存(4035),并且耦合到专用存储器(4040)。因此,在一些实施例中,每个向量处理器,例如(4030(1))可以被配置为独立于其他向量处理器(4040(1))执行。在其他实施例中,包括在特定pva(402)中的向量处理器(4030)可以被配置为采用数据并行性。例如,在一些实施例中,包括在单个pva(402)中的多个向量处理器(4030)可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他实施例中,包括在特定pva(402)中的向量处理器(4030)可以在同一图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或图像的部分上执行不同的算法。其中,硬件加速集群(400)中可以包括任何数量的pva(402),并且每个pva(402)中可以包括任何数量的向量处理器(4030)。另外,pva优选地包括附加的ecc,以增强整体系统的安全性。

(3)存储器。

硬件加速集群优选地包括pva和dla二者,它们都是具有高存储器带宽需求的主设备(master)。如图11所示错误!未找到参考源,高级soc优选地包括计算机视觉片上网络和sram(“cvnas”),用于为硬件加速集群提供高带宽、低延迟的sram。在优选实施例中,片上存储器包括至少4mbsram,其包括(例如但不限于)可由pla和dla二者访问的八个现场可配置存储器(“fcm”)块(601)。

每对存储器块优选地包括高级外围总线(“apb”)接口(604)、配置电路(605)、控制器(602)和mux(603)。任何类型的存储器都足够。pva和dla主设备优选地通过主干(406)访问存储器,主干(backbone)向主设备提供对存储器的可靠、高速的访问。在一个实施例中,主干是将主设备与存储器互连的计算机视觉片上网络(“cvnoc”)。cvnoc优选地使用apb(408)将cvsram(600)连接到pva(402)和dla(401)主设备。

cvnoc还优选地提供一种接口,该接口提供在传输任何控制信号/地址/数据之前,主设备(pva或dla)和从设备(cvsram)二者都必须经由就绪(ready)和有效信号来提供。这样的接口提供用于传输控制信号/地址和数据的单独的阶段和单独的通道,以及用于连续数据传输的突发类型通信。示例实现包含满足汽车iso26262或iec61508标准所需的可靠性和功能安全特征;也可以使用其他互连标准和协议。

(4)硬件加速器的示例性使用。

硬件加速器(400)和相关联的存储器(600)具有用于自动驾驶的广泛用途。如上所述并广泛地陈述的,pva(402)是可编程的视觉加速器,其可以用于adas和自主车辆中的关键处理阶段。pva的能力非常适合需要可预测的处理、低功耗且低延迟的算法领域。换句话说,pva在半密集或密集的常规计算中表现良好,即使在小型数据集上也是如此,其需要低延迟和低功耗的可预测的运行时间。因此,在自主车辆平台的上下文中,pva被设计为运行经典的计算机视觉算法,因为它们在对象检测和整数数学运算方面非常有效。

例如,根据本技术的一个实施例,pva用于执行计算机立体视觉。可以使用基于半全局匹配(“sgm”)的算法,以及本领域技术人员已知的其他方法。级别3-5自动驾驶的许多应用都需要在运行中进行运动估计/立体匹配,例如sfm(从运动恢复结构)、行人识别、车道检测。pva可以对来自两个单眼摄像机的输入执行计算机立体视觉功能。

根据本技术的另一实施例,pva用于执行密集光流。根据该技术的另一实施例,pva被用于使用例如4d快速傅里叶(fourier)变换(“fft”)来处理原始radar数据,以提供经处理的radar。

根据本技术的另一实施例,例如,通过处理原始tof数据以提供经处理的tof数据,将pva用于飞行时间(“tof”)深度处理。tof系统已经用于radar和lidar应用中,并且是本领域普通技术人员已知的。典型的tof系统发送信号并测量从目标返回的信号的属性。该测量用于确定飞行时间,并且通过将信号速度乘以飞行时间来得到距离。例如,tof传感器可以包括激光源和像素阵列,每个像素阵列能够检测入射光的相位。发射器对光进行调制,并通过确定反射光的调制包络的相位来测量距离。

dla可以用于运行任何类型的网络以增强控制和驾驶安全性,包括例如神经网络,该神经网络输出每个对象检测的置信度的度量。这样的置信度值可以被解释为概率,或者解释为与其他检测相比,每个检测的相对“权重”。此置信度值使系统能够做出进一步的决定,该决定关于哪些检测应被视为真阳性检测而不是假阳性检测。例如,系统可以为置信度设置阈值,并且仅将超过阈值的检测视为真阳性检测。在自动紧急制动(aeb)系统中,假阳性检测会导致车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应被视为aeb的触发因素。dla可以运行神经网络来回归置信度值。该神经网络可以将参数的至少一些子集作为其输入,诸如(1)边界框维度,(2)从例如另一子系统获得的地平面估计,(3)与自我车辆方向相关的惯性测量单元(imu)输出;(4)从神经网络和/或其他传感器(诸如,lidar或radar)获得的对象的距离或3d位置估计等等。

一种实现方式可以是包括一个或更多个隐藏层的多层感知器(“mlp”)。在训练过程中,假阳性被分配置信度的标签“0”,而真阳性被分配置信度的标签“1”。这样,可以将网络输出与地面实况标签进行比较,可以计算误差项,并且可以使用反向传播算法来调整网络的权重。训练通常在对象检测器的设计阶段期间离线执行。当部署并使用检测器时,仅运行前向传导(pass)。在示例非限制性实施例中,首先计算聚类的(clustered)边界框。然后,基于聚类的边界框和其他输入来计算网络输入。示例输入可以但不限于与惯性测量单元、距离估计、在对象检测内的输入像素上计算的统计信息等相关。输入被馈送至网络中,该网络现在被加载训练阶段期间获得的权重。在前向传导期间,网络使用预加载的权重使用预训练的网络来计算置信度输出。

图10错误!找不到参考源所示的pva设计不是限制性的,并且多种其他设计可以由pva用于实现该技术的许多目的。例如,计算机视觉加速器(402)可以如2016年4月28日提交的美国专利申请序列号15/141,703“可编程视觉加速器(programmablevisionaccelerator)”中所描述的那样被实现,其通过引用完全并入本文。

d)系统一致性结构和片上存储器。

如图8所示,该平台包括用于每个处理器子系统的专用存储器,其减轻了ddr上的压力,并需要较低的功率。高级soc包括片上存储器(500)和(600),其在优选实施例中分别存储在gpu(300)和dla(400)上执行的神经网络。在优选实施例中,存储器(500)和(600)足够大以存储神经网络的多个实例,以确保安全性和冗余性。

在另一优选实施例中,高级soc被配置为通过无线天线和调制解调器(101)接收和存储更新的神经网络,即使无人驾驶车辆(50)在运行时。例如,深度学习基础设施可以更新神经网络以改善对交通标志或其他障碍物的识别,并通过无线链路将更新的网络(1001)发送到车辆(50),如图6所示。即使车辆(50)处于主动操作中,该技术也允许高级soc接收、下载和验证更新的神经网络,从而确保以空中(“ota”)更新方式尽快接收到安全关键更新。已完全下载并验证了更新的神经网络后,高级soc会转换并使用神经网络的更新版本。

系统一致性(coherency)结构(“scf”)(714)将一致性客户端(即cpu集群(201)和附加嵌入式处理器((702)-(705)))连接到dram和mmio空间。scf还实现了一致性高速缓存刷新引擎,该引擎促进了与系统中非一致性客户端的基于软件的一致性。刷新有两种变体–一种清除系统中所有l2和l3高速缓存并将脏数据写回存储器,而另一种在刷新开始之前无效掉驻留在cpul2+l3高速缓存中的所有高速缓存行。在刷新进行过程中cpu不必静默(quiesced)。

高级soc的系统结构优选地使用外围总线(710),诸如为外围设备定义的简单32位单个主总线。

e)附加嵌入式处理器。

(1)启动和功率管理。

高级soc优选地包括启动和功率管理处理器(“bpmp”)(703)。bpmp优选地是用于处理启动和功率管理功能以及相关的安全强制实施的专用处理器和子系统。bpmp(703)是soc启动序列的一部分。提供运行时功率管理服务。bpmp在初始启动后运行,即在启动rom和启动加载程序完成之后运行。在高级别上,bpmp(703)提供的主要服务是:(1)soc时钟和电压编程,(2)协助系统低功耗状态转换(sc状态,包括深度睡眠(sc7)进入和退出),(3)管理soc热传感器和温度传感器,以及(4)管理soc功率状态。bpmp运行时固件与操作系统、平台、主板和启动加载程序无关。

(2)温度传感器和控制。

在优选实施例中,每个温度传感器可以被实现为环形振荡器,其输出频率与温度成比例。高级soc优选地包括环形振荡器,用于检测cpu组温度、gpu组温度和加速集群温度,并报告给bpmp。如果bpmp检测到cpu、gpu或加速集群的温度超过安全操作的阈值,则bpmp执行温度故障例程,在该例程中,如果可能,高级soc会首先尝试进入低功耗状态,并在必要时尝试进入“司机安全停车”模式。

(3)音频处理引擎。

高级soc优选地包括一组嵌入式处理器,其包括音频处理引擎(“ape”)(701)。ape是音频子系统,其可在多个接口上为多信道音频提供全面的硬件支持,以及广泛而灵活的音频i/o接口范围。优选地,ape是具有拥有专用ram的数字信号处理器(“dsp”)的专用处理器核心。

(4)始终开启(always-on)传感器处理引擎。

优选地,高级soc包括始终开启传感器处理引擎(“aon”/“spe”)(702)。aon引擎(702)提供所有必需的硬件特征,以支持低功率传感器管理和唤醒用例。引擎(702)优选地包括处理器核心,该处理器核心具有紧密耦合的ram、支持外围设备(诸如定时器和中断控制器)、各种i/o控制器外围设备以及路由逻辑。aon块中的处理器也被称为传感器处理引擎(“spe”)。它是始终开启电源域中的低有功功率(activepower)处理器。尽管它被称为“始终开启”引擎,但可以将其置于完全关闭模式,尽管在正常使用中引擎将保持在低有功功率、始终开启状态。

(5)安全集群引擎和实时摄像机引擎。

soc优选地包括用于处理汽车应用的安全管理的安全集群引擎(“sce”)(704)、专用处理器子系统。在优选实施例中,sce(704)由两个或更多个处理器核心组成,该处理器核心具有紧密耦合的ram、支持外围设备(例如,定时器、中断控制器)和路由逻辑。在安全模式下,两个核心以锁步模式运行,并作为具有比较逻辑的单个核心工作,以检测其操作之间的任何差异。在某些实施例中,soc优选地包括实时摄像机引擎(“rce”)(705)。在优选实施例中,rce包括用于处理实时摄像机管理的专用处理器子系统。

(6)高动态范围图像信号处理器。

如图8所示,高级soc优选地包括高动态范围图像信号处理器(“hdrisp”)403。高级soc还优选地包括图像信号处理器(712)、硬件引擎,其为摄像机处理管线的一部分。

(7)视频图像合成器。

高级soc优选地包括视频图像合成器(“vic”)(706),其是实现视频回放应用所需的视频后处理功能以产生用于播放器窗口的最终图像的块。在优选实施例中,vic在鱼眼和广角摄像机传感器(201)-(205)以及可选的舱内监控摄像机传感器上执行镜头畸变校正(“ldc”)。舱内监控摄像机传感器优选地由在高级soc的另一个实例上运行的神经网络进行监控,其被配置为识别舱内事件并相应地做出响应。舱内系统可以执行唇读操作,以激活蜂窝服务和拨打电话呼叫、口述电子邮件、更改车辆的目的地、激活或更改车辆的信息娱乐系统和设置或提供语音激活的网上冲浪。某些功能仅在车辆以自主模式运行时才对驾驶员可用,否则将被禁用。

vic优选地还包括增强的时间噪声降低(“tnr”)。噪声降低通常包括空间和时间噪声降低二者。在视频中发生运动的地方,噪声降低会适当地加权空间信息,从而减少相邻帧提供的信息的权重。在图像或图像的一部分不包含运动的情况下,由vic执行的时间噪声降低使用来自先前图像的信息来降低当前图像中的噪声。

vic还能够对输入立体透镜框架(诸如传感器对1-2、8-9和10-11)执行立体校正。另外,当使用操作系统桌面时,vic可以用于ui合成,并且不需要gpu来连续渲染新表面。即使在gpu通电并且正在主动进行3d渲染时,也可以使用vic减轻gpu的负担,从而提高性能和响应速度。vic(706)优选地使用微控制器来实现。

(8)输入/输出。

高级soc通过mipi摄像机串行接口(713)、标准高速串行接口和视频输入块(vi)(713)、用于摄像机及相关像素输入功能的块接收来自摄像机和视频的输入。高级soc优选地包括通用输入/输出控制器(711),用于i/o信号,该i/o信号不承担特定角色,而是由软件控制。

在优选实施例中,高级soc具有广泛的外围设备接口,以实现与外围设备、音频编解码器、功率管理和其他设备的通信。soc可用于处理来自摄像机(通过千兆位多媒体串行链路(“gmsl”)连接)和以太网(“gbe”)、传感器(通过以太网连接的lidar、radar)的数据,来自can接口的数据(例如,汽车速度、方向盘位置),来自gps(通过以太网或can连接的)的数据。专用的高性能大规模存储控制器及其自己的dma引擎,可用于将cpu复合体(200)从日常数据管理任务中解放出来。

f)高级片上系统相对于其他系统和方法的一些示例非限制性优势。

高级片上系统支持具有跨级别3-5的一个灵活架构的端到端平台—一种综合功能安全架构,其利用并有效使用了计算机视觉和adas技术来实现多样性和冗余性,为灵活、可靠的驾驶软件栈提供了平台以及深度学习工具。与现有技术的系统和方法相比,高级soc更快、更可靠,并且甚至更加能源高效和空间高效。例如,硬件加速集群在与cpu复合体、gpu复合体和存储器结合使用时,可为级别3-5自主车辆提供快速、高效的平台。因此,该技术提供了现有技术的方法和系统无法实现的能力和功能。例如,可以在cpu上执行cv算法,可以使用高级编程语言(诸如,c编程语言)对cpu进行配置,以跨各种各样的视觉数据执行各种各样的处理算法。但是,cpu通常不能满足许多计算机视觉应用的性能要求,诸如,例如与执行时间和功耗有关的那些。特别是,许多cpu不能实时执行复杂的对象检测算法,其是车载adas应用的要求,也是实际的级别3-5自主车辆的要求。

通过提供cpu复合体、gpu复合体和硬件加速集群,该技术允许同时或顺序地执行多个神经网络,并允许将结果组合在一起以实现级别3-5自动驾驶功能。例如,在优选实施例中,在dla或dgpu上执行的cnn可以包括文本和单词识别,允许超级计算机读取和理解交通标志,包括神经网络尚未针对其专门训练的标志。例如,标志可以包含以下信息:“周一至周五下午4点至7点,禁止停车”,并带有箭头指示禁止停车的区域。dla可以包括神经网络,该神经网络能够识别、解释并提供对标志的语义理解,并将该语义理解传递给在cpu复合体上运行的路径规划模块。

该技术为自主车辆提供了运行级别3、4或5驾驶所需的多个神经网络的平台。例如,如图12所示,可以由几个神经网络独立地或共同地解释由“警告闪光灯指示结冰状况”以及电灯组成的警告标志。该标志本身(7020)可以由第一经训练的神经网络(7040)识别为交通标志。文本“闪光灯指示结冰状况”(7030)可以由第二神经网络(7050)解释,该第二神经网络通知车辆的路径规划软件(其优选地在cpu复合体上执行)当检测到闪光灯时,就存在结冰状况。可以通过在多个帧上操作第三神经网络(7060)来识别闪光灯(7010),从而将闪光灯的存在(或不存在)通知车辆的路径规划软件。所有三个神经网络都可以在dla(400)内运行,或者某些网络可以在gpu(300)上运行。

在优选实施例中,使用来自摄像机传感器的数据进行面部识别和车辆所有者识别的cnn被用于识别授权驾驶员和/或车辆(50)的所有者的存在。当所有者接近驾驶员的门时,可以使用片上系统的始终开启传感器处理引擎(“aon”/“spe”)(702)来解锁车辆并打开灯,并且在安全模式中,当所有者离开车辆时禁用车辆。这样,cnn和aon/spe可以提供针对防盗和/或劫车的安全性。

在另一个优选实施例中,使用来自麦克风的数据进行紧急车辆检测以及识别和检测的cnn检测并识别紧急车辆警报器(siren)。在现有技术中,通常使用通用分类器并手动地提取特征来检测环境声音(诸如警报器)。优选实施例利用了cnn的用于对环境和城市声音进行分类以及对视觉数据进行分类的能力。在优选实施例中,利用多普勒效应,训练在dla上运行的cnn以识别紧急车辆的相对关闭速度。cnn也可以被训练,以识别紧急车辆,该紧急车辆特定于该车辆正在其中运行的局部区域,如由gps传感器(76)所识别的。因此,例如,当在欧洲运行时,cnn将试图检测欧洲警报器,而当在美国运行时,cnn将试图仅识别北美警报器。在优选实施例中,cnn利用多普勒效应识别紧急警报器的存在和相对关闭速度,并且向运行在cpu(200)上的控制程序提供信号。然后,在超声波传感器(66)的辅助下,控制程序执行紧急车辆安全例程,使车辆(50)减速,靠边停至路边,停止车辆并空转车辆,直到一个或更多个紧急车辆通过。3.使用高级soc的第一实施例。

一个或更多个高级soc(100)可以被用于控制各种平台和系统中的自主车辆。在图13所示的第一示例性实施例中,一个或更多个高级soc(100)与hd地图系统(212)在系统中组合,该hd地图系统可以经由网关(214)或调制解调器(103)以及例如上面标题为“无线连接和网络访问”的部分中所述类型的无线收发器从云中获取地图刷新/更新。

车辆控制(216)(例如,打开/关闭前照灯、打开/关闭挡风玻璃雨刮器等)以及其他功能也可以由本领域中已知的致动器控制器提供,包括上面标题为“示例自主车辆”的部分中所述的那些。连接器(218)提供其他设备的访问,以进行扩展和/或调试。

该系统包括在上面的标题为“示例性自主车辆”的部分中描述的一个或更多个传感器,包括超声波传感器(66),gps(76),radar(68),lidar(70),立体摄像机(74),鱼眼或广角摄像机(73),红外摄像机(75)和环绕摄像机(72),其位置设置为在车辆周围提供360度覆盖。

该系统还包括片上存储(500(1))和片外存储(500(2))两者,其可以由一个或更多个存储元件组成,包括ram、sram、dram、vram、闪存、硬盘以及可以存储至少一位数据的其他组件和设备。片上存储(500(1))可以包括与cpu(200)和/或gpu(300)一起使用的l2或l3高速缓存。

高级soc(100)优选地包括结合图9更详细描述的组件,包括cpu复合体(200),gpu复合体(300),连接到cpu和gpu复合体的l3高速缓存,硬件加速复合体(400),其包括pva(402)和dla(401),以及附加嵌入式处理器,包括如上所述的处理器(702)-(705)中的一个或更多个。高级soc(100)连接到各种传感器和子系统(例如,故障可操作/容错的制动系统(61a)和故障可操作/容错的转向系统(62a))。

在一个实施例中,高级soc的ccplex(200)和一个或更多个gpu复合体(300)或硬件加速器(401),(402)独立地执行某种程度或完全冗余的处理。在示例非限制性实施例中,由不同处理器提供的“冗余”功能包括相同的整体功能,但并不完全相同。而是,执行相同或等效功能的算法和软件被不同地设计和实现,以提供有意的不同处理,同时仍执行基本相同的任务,以在系统正确运行时提供基本相同的结果。例如,gpu复合体(300)可以执行神经网络以执行对象检测功能,而硬件加速器pva(402)可以执行计算机视觉算法以识别相同的对象。此外,不同处理器的输入可能不同–在上面的示例中,gpu复合体(300)可以执行神经网络以使用来自立体摄像机的输入信息来执行对象检测功能,而硬件加速器pva(402)可以执行计算机视觉算法,以从单眼摄像机或红外摄像机识别相同的对象。该系统还可包括一个或更多个adas子系统(82),其提供冗余并增强功能安全性,包括bsw、acc、aeb、ldw和aeb系统。该系统可以可选地包括通过高速互连(诸如但不限于nvlink(805))耦合到高级soc的分立式gpu、dgpu(802)。dgpu(802)可以提供附加的ai功能,执行冗余的或不同的神经网络,以及甚至可以基于来自系统的传感器的输入来训练和/或更新神经网络。该系统还可以可选地包括通过高速互连(诸如但不限于pcie(902))连接到高级soc(100)的分立式cpu(901)(诸如,x86处理器)。分立式cpu(901)可用于执行各种功能,包括在adas传感器(82)和高级soc(100)之间仲裁可能不一致的结果,和/或监视车辆控制(216)和信息娱乐系统(76)的状态和健康。

以不同和独立的方式在不同和独立的硬件组件中执行相同的对象检测功能,使用高级soc增强了系统的asil安全等级,并被称为“asil分解”。如图14所示,通过在架构中提供冗余元素,asil分解降低了对特定元素的asil要求。因此,可以通过两个冗余的独立组件来实现需要asild功能安全性的单个功能,例如一个为asilc处而备份为asila。这两个冗余组件的组合为每个组件提供低于asild的asil级别,提供了asild的总体功能安全级别。因此,可以通过“asilc(d)+asila(d)”实现asild的功能安全性。根据iso26262第9部分的asil分解提供了以下asil分解方法:

在上面讨论的示例的上下文中,如果在soc的gpu(300)上执行的神经网络的等级为asilb,并且在pva(402)上执行的相同功能的等级也为asilb,则冗余提供了针对该功能的asild安全性。可以单独将加速器(401)和(402)执行的任务/功能评级为较低的安全标准(asilb),而gpu复合体(300)执行的过程将满足较高级别的功能安全性(例如,asilc)。通过提供两条独立的路径,由于加速器(401)和(402)提供的冗余,高级soc达到了所需的asild安全标准等级。

换句话说,加速器(401)、(402)一起执行功能(例如,即将发生的碰撞的检测、车道偏离警告、行人检测),其当与gpu复合体(300)执行的自动驾驶功能结合时,一起提供asild级功能安全。此外,在加速器(401)或(402)之一发生故障的情况下,功能性加速器和gpu复合体(300)的组合一起确保了安全操作。在加速器(401)和(402)两者都发生故障的情况下,系统返回需要维修的故障消息,通知驾驶员,并执行将控制权返回给驾驶员的转换例程。

如上所讨论的,gpu复合体(300)和dla加速器(401)可以使用包括cnn的神经网络来执行所示的部分或全部高级别功能。gpu复合体(300)和dla加速器(401)可以使用深度神经网络和cnn来处理来自车辆运动传感器(诸如惯性传感系统)的信息以及可能地来自车辆半自主系统(sas)(82)或adas系统的其他输入。pva加速器(402)被优化为执行计算机视觉算法,并因此被设计为处理从sas系统(82)接收的信息。

图15错误!未找到参考源。示出了该技术的soc提供的多样的冗余处理,以增强功能安全性。首先,如图15所示,硬件加速集群(400)可以在pva(402)和dla(401)二者中执行冗余的多样化处理。pva(402)可执行预处理(150)、计算机视觉算法(152)、后处理,以提供经典的计算机视觉功能(156),诸如碰撞检测,标志检测,对象检测,车道检测或任何其他计算机视觉功能。高级soc可以将这些任务中的部分或全部卸载到cpu复合体(200),优选地包括预处理功能(150)。预处理任务可包括传感器融合,其可用于组合不同传感器的输出(诸如,通过使用卡尔曼(kalman)滤波、人工智能等),以便从传感器组合中学习到的比从任何个体传感器中可能学到的更多并提高性能(例如,当光学传感器由于恶劣的光照条件而无效时,可以改为使用radar传感器,或者将其与来自光学传感器的信息融合;并且当radar传感器由于金属排水格栅、大型金属面板和/或巷道中的井盖而效率较低时,可以替代地或附加地使用lidar或超声波)。在该示例中,这种传感器融合包括多样化的方法,诸如多样化的传感器融合软件,改变融合中传感器数据使用类型的顺序/序列,以及在可能的情况下对可运行对象/子功能的执行顺序进行重新排序/重新序列。这种有意的多样化方法提供了改进的容错能力。

其次,如图15所示,深度学习硬件加速器(dla)(401)可以执行在经训练的神经网络上进行推理(162)的预处理(160)和后处理(164),以提供可以由经训练的神经网络执行的任何功能(166),诸如碰撞检测、标志检测、对象检测、车道检测或其他功能。dla(401)优选地被优化以运行cnn,但是也可以用于运行其他神经网络。高级soc可以将这些任务中的部分或全部卸载到cpu复合体(200),优选地包括预处理功能(150)。

第三,如图15所示,gpu复合体(300)优选地被配置为执行任意数量的经训练的神经网络,包括cnn、dnn和任何其他类型的网络,以执行自动驾驶所必需的功能,包括对象检测、自由空间检测。gpu复合体(300)还被配置为运行经训练的神经网络,以执行车辆控制、车辆管理或安全所需的任何ai功能,包括感知、规划和控制的功能。感知功能使用传感器输入来产生优选地包括占用栅格的世界模型,规划采用世界模型并产生最佳方案,而控制则采用该方案并予以实现。这些步骤是不断迭代的。

为了执行感知和规划功能,gpu复合体(300)优选地还被配置为维持占用栅格(162),该占用栅格跟踪自主车辆(50)和/或(55)以及在给定的自主车辆范围内的对象,包括运动对象。gpu复合体(300)优选地被配置为确定预测的占用栅格,其预测对象将在何处,以使得soc(100)能够确定优选或期望的路径。高级soc可以将这些任务中的部分或全部卸载到cpu复合体(200),优选地包括预处理功能。cpu复合体可以从dla(401)、pva(402)和igpu(300)接收结果,比较和评估结果,并据此控制车辆。

根据一个或更多个实施例,高级soc(100)可以执行三个以上的多样的冗余处理任务以确保功能安全,并且可以在控制车辆中使用来自各种传感器(包括adas系统)的信息。例如,在优选实施例中,dla(401)可以运行被训练为识别包括雨、雪、冰或黑冰的道路状况的存在的神经网络。当识别出这种道路状况时,dla(401)将该状况通知给cplex、gpu和/或安全集群引擎,从而路径规划和控制例程可以考虑该状况。另外,如上面例如在本文中标题为“附加传感器和系统”的部分中所讨论的,cpu复合体(200)可以执行用于确定打滑道路的已知算法。在这样的实施例中,cpu复合体(200)从车轮速度传感器(80)接收至少一个动力驱动轴的第一角速度和至少一个自由旋转轴的第二角速度。cpu复合体将第一角速度和第二角速度进行比较,以确定道路表面上的摩擦级别-道路越滑,角速度之间的差越大。相对角速度的突然变化指示车辆遇到了光滑的表面,例如冰或油。cpu复合体可以进一步从振动传感器(85)接收有关轴振动的信息。动力驱动轴和自由旋转轴之间的振动差异指示道路表面打滑。相对振动的突然变化指示道路表面已经改变。打滑道路检测的结果可以用于训练和/或增强被设计为检测打滑道路状况的神经网络。

在某些实施例中,高级soc执行来自nvidia的软件栈,该软件栈提供包括感知、规划和控制的功能。

4.使用多个计算机的实施例。

图15示出了具有单个高级soc(100)的实施例。当然,车辆(50)通常包括控制其他基本和期望功能(例如,制动致动、电子点火、气候控制、信息娱乐系统、gps、radar和lidar处理等)的附加处理器、asic和soc。通过使用监视器/致动器架构和冗余,可以提高车辆的功能安全性。监视器/致动器架构将使用一个模块(致动器)监视器执行该主要功能,该致动器具有独立的监视器模块。如果致动器发生故障,则监视器模块将进入故障安全模式,从而超控致动器。

在另一个实施例中,高级soc可以与上一代soc集成在平台中,以提供冗余和故障安全功能,如图16所示。在此示例中,平台(1100)包括高级soc(100),其优选地包括结合图9更详细描述的组件,包括cpu复合体(200),gpu复合体(300),连接到cpu和gpu复合体的l3高速缓存,包括pva(402)和dla(401)的加速器(400),以及如上所述的cortexr5处理器(702)-(705)。平台(1100)还包括soc(200)。高级soc(100)和soc(200)可以分别连接到分立式图形处理单元(dgpu)(802)(例如,nvidia的pascal、volta或下一代gpu)。

在图16所示的示例中,第三soc(803)可以包括微处理器,该微处理器包括锁步(“ls”)tricore(三核心)(324)和两个非lstricore(325)。第三soc(803)可以包括安全管理单元(“smu”)(318)以及总线接口(320)、(322)。众所周知,锁步系统是容错计算机系统,它可以同时并行运行同一组操作。由于可以比较来自锁步操作的输出以确定是否存在故障并且可能地使用错误纠正技术进行纠正,因此冗余允许进行错误检测和错误纠正。

soc(100)、(200)和(803)中的每一个都可以连接到功率管理集成电路(“pmic”)(326),以提供独立的功率管理。在示例非限制性实施例中,soc(100)、(200)和(803)中的每一个可以具有独立的电源和相关联的机制。针对不同处理器的不同电源提供机制可以被不同地设计,以在系统级别上提供附加的覆盖范围。在一些实施例中,将存在三个独立的电源-三个独立运行的处理器各一个。在其他实施例中,将至少有两个独立的电源,为一个处理器供电的电源与为其他两个处理器供电的电源不同。

在优选实施例中,图8和图9所示的多个高级soc被包括在自主车辆的整个系统平台(800)中,如图17以示意性形式示出的。图17示出了两个高级soc(100),其通过高速互连(805)连接到分立式gpu。高速互连(805)优选地是nvidia的nvlink技术。

如图17所示,每个高级soc(100)连接到微控制器(“mcu”)(803)。mcu可以包括soc、独立asic或其他处理器。市售的mcu包括微控制器。在典型的实施例中,mcu被设计用于asild功能安全等级。

mcu(803)用作系统的主控制器。它可以重置两个高级soc(100),在两个高级soc之间切换显示,并控制摄像机电源。mcu和高级soc通过pcie交换机(804)连接。

如图17所示,高级soc(100)能够进行芯片到芯片(“c2c”)通信。这种通信可以是通过pcie交换机(804)或直接通过连接两个不同高级soc的安全消息层进行的。可以直接通过高速nvlink将高级soc彼此配对。当配置用于c2c通信时,两个高级soc的系统在某种程度上就像它是单个统一系统一样工作。当配置用于c2c通信时,每个高级soc都可以寻址另一个高级soc的dram和sysram。

另外,在图17所示的优选实施例中,每个高级soc(100)与分立式gpu(dgpu)(802)配对。因此,该系统能够将单个计算机用于自主无人驾驶系统,并通过在多个高级soc上的冗余计算的独立性来提供冗余。在示例非限制性实施例中,提供自主操作所需的许多功能在不同处理器之间的软件或固件中被复制。因此,在某些实现中,类似的算法在两个高级soc中甚至在所有四个处理器(包括soc和dgpu)中都运行。在任何一种情况下,传感器收集的所有相关输入都被馈送到每个处理器中。每个处理器可以独立地处理传感器数据,并且独立地提供可用于控制车辆致动器的致动信息和/或控制信号。mcu(803)从处理器接收致动信息和/或控制信号,并评估它们的一致性。在典型的实施例中,dgpu具有asilb功能安全等级。

如果一个高级soc出于任何原因发生故障,则其他一个或更多个高级soc继续运行。因为该高级soc正在执行的操作对于发生故障的高级soc已经执行的操作来说是冗余的,所以当任何一个处理器发生故障时,自主性及其相关联的关键功能仍然可以保持。

在一些示例非限制性实现中,两个高级soc都接收相同的输入,或者至少可以访问相同的输入。例如,两个高级soc都可以连接到诸如can总线之类的公共总线(或多个冗余总线的布置),从而能够访问相同的信息。另一方面,由于三个不同处理器执行的独立处理,因此不要求每个高级soc必须使用一个或更多个其他处理器用来计算结果的相同输入。例如,在一个可能的实现中,第一高级soc可以仅基于radar输入做出决策,而另一高级soc可以基于radar和lidar二者的融合或基于来自立体摄像机的输入做出类似决策。在另一可能的实现中,高级soc可以各自接收radar和lidar信息。

高级soc(100)和dgpu(802)可以使用深度神经网络来执行自主车辆控制所必需的部分或全部高级别功能。如上所述,每个高级soc中的gpu复合体(300)优选地被配置为执行包括cnn、dnn和任何其他类型的网络的任何数量的经训练的神经网络,以执行用于自动驾驶的必要功能,包括(例如但不限于)车道检测、对象检测和/或自由空间检测。gpu复合体(300)还被配置为运行经训练的神经网络,以执行车辆控制、车辆管理或安全所需的任何ai功能,包括感知、规划和控制功能。感知功能使用传感器输入来产生优选地包括占用栅格的世界模型,规划采用该世界模型并产生最佳规划,而控制则采用该规划并予以实现。这些步骤是不断迭代的。

每个高级soc可以将这些任务中的部分或全部卸载到分立式gpu(802)。dgpu(802)可以执行在高级soc上的gpu集群上运行的一个或更多个网络的冗余操作,从而增强功能安全性。替代地,dgpu(802)可以运行附加的神经网络以执行车辆控制、车辆管理或安全所需的任何ai功能。在优选实施例中,dgpu(802)可以用于训练网络,或者用于运行与在gpu集群(300)上运行的网络不同的影子网络,从而提供进一步的功能安全性。

在所示的示例中,组件(100)、(802)、(803)被安装到公共印刷电路板上,并放置在同一外壳或壳体内,从而提供“一体式(one-box)”控制器解决方案。一体式计算机解决方案优选地包括用于有效地冷却处理器和电路板的系统。在一个实施例中,冷却系统包括有源混合热传递模块,其适于与风扇散热器(fansink)集成。在该实施例中,风扇散热器包括但不限于一个或更多个风扇、壁和底板。在一个实施例中,系统还包括散热器盖,该散热器盖防止颗粒和其他污染物进入风扇,并防止从风扇吹出的空气逸出系统等。散热器盖与风扇散热器的壁和底板一起限定了多个空气通道。混合热传递模块包括适于传递热量的流体通道和空气通道两者。混合热传递模块和风扇散热器可以单独使用,也可以组合使用以散发处理器的热量。

图18错误!未找到参考源。示出了平台架构(900)的进一步实施例。该实施例与图17所示的实施例相同,只是增加了x86cpu(901),它通过pciex8总线(902)连接到pcie交换机(804)。

图19示出了平台架构(900)的另一实施例。该实施例与图18所示的实施例相同,只是增加了第二pcie交换机(804),其允许x86cpu(901)通过pciex8总线(902)与gpu(802)通信。

c.通信架构

图20示出了另一示例系统架构2000,其包括任意数量的协作和互连的片上系统(soc)2002(1),2002(2),…,2002(n)。在所示的特定的非限制性示例中,存在一个或更多个soc2002(1),2002(2),每个soc包括具有处理器、高速缓存存储器、存储器管理电路、通信和接口电路以及其他计算结构(诸如深度学习加速器(dla))的计算机。虽然所示的soc2002示例在同一集成电路封装内的同一基板上提供了给定soc2002的所有此种结构,但其他实现方式也是可能的。例如,每台计算机可以分布在多个集成电路(ic)封装和/或同一封装内的多个基板上(例如,多芯片模块或mcm)。

在所示的特定实施例中,两个soc2002(1)、2002(2)在某些应用中可以彼此相同,或者在其他应用中可以彼此不同。使用相同的soc2002可以提供编程便利和降低的成本。针对不同的soc2002使用不同的架构可以提供提高的容错能力,因为多样的硬件不太可能表现出相同的故障、意外的行为和详细的行为特征。在任何给定的实现中,一组多个soc2002可以彼此部分相同或完全相同,而另一组多个soc可以彼此部分不同或完全不同。

在所示示例中,每个soc2002具相关联的存储器系统2004。在所示示例中,soc2002(1)访问相应的存储器系统2004(1),而soc2002(2)访问相应的存储器系统2004(2)。在所示的示例中,存储器系统2004(1)、2004(2)是彼此分离且独立的,从而一个存储器系统2004中发生的故障、瓶颈或其他行为不会影响另一存储器系统的操作。在所示的示例实施例中,存储器系统2004(1)、2004(2)并不彼此通信以提供独立性,但是在其他实施例中,它们彼此之间可以有某种通信或交互,或者部分或全部存储器系统可以在soc2002之间共享。

每个存储器系统2004可以包括随机存取存储器(诸如dram)、只读存储器、读/写闪存和/或其他半导体或其他存储器类型。作为存储器系统2004的一部分的一些内存分区可以是安全地存储信息的安全存储器。存储器系统2004至少部分地构成非暂时性存储器,该非暂时性存储器存储相关联的soc2002执行的程序指令以执行任务。每个存储器系统2004还存储要由相关联的soc2002处理的数据和由soc产生的数据。

在所示的示例中,每个soc2002与至少一个相关联的图形处理单元(gpu)2006互连并与之交互。因此,soc2002(1)与相关联的gpu2006(1)互连并与之交互,并且soc2002(2)与相关联的gpu2006(2)互连并与之交互。这种布置提供了冗余和可扩展性。在一个实施例中,gpu2006为soc2002提供了大规模并行流式多处理器硬件计算和加速支持。这种互连可以经由高速专用通信链路2007。一些应用可以提供不具有gpu的soc2002,而其他应用可以提供具有多于一个gpu或在soc之间共享的gpu的soc2002。在一些实施例中,多个gpu2006可以彼此部分相同或完全相同,而在其他实施例中其可以彼此部分不同或完全不同。

在所示的示例中,每个gpu2006访问其自己的相关联的各自存储器2008。因此,gpu2006(1)访问各自存储器2008(1),而gpu2006(2)访问各自存储器2008(2)。每个gpu存储器2008可以包括随机存取存储器(诸如dram)、只读存储器、闪存和/或其他存储器类型。在所示的示例中,每个gpu存储器2008至少部分地构成非暂时性存储器,该非暂时性存储器存储指令、命令和/或配置格式,其指导或以其他方式定义相关联的gpu2006以执行指定的任务。gpu存储器2008存储要由相关联的gpu2006处理的数据和由gpu产生的数据。在所示的示例中,gpu存储器2008与soc存储器2004分离且独立,以提供附加的容错能力和存储器带宽。在其他实施例中,gpu2006可以与其他gpu、soc2002和/或其他组件或系统共享它们各自的一个或更多个存储器的部分或全部。

在所示的示例中,soc2002与一个或更多个微控制器单元(mcu)2003通信并与之交互。在非限制性示例中,mcu2003可以包括处理器以及存储那些处理器执行的指令的相关联的存储器。在所示的示例中,可以存在多个微控制器单元2003(a)、2003(b),其中一个或更多个单元在发生故障的情况下为另一个或其他单元提供回退或冗余。示例架构中的微控制器单元2003可以用于一个或更多个特定目的,诸如,例如故障监视、通信等。

在所示的示例中,除了与相关联的soc2002通信之外,部分或全部gpu2006还可与一个或更多个附加处理器2010通信。这样的一个或更多个附加处理器2010可以在系统2000的特定物理点位置/安装的内部或外部。例如,在一些实现方式中,一个或更多个处理器2010可以位于云中,并经由网络或其他通信链路与gpu2006进行通信。在其他实现方式中,一个或更多个处理器2010可以与soc2002共同位于同一板、背板或其他结构上。

在一些示例实施例中,一个或更多个处理器2010具有与soc2002不同的架构、指令集和功能,从而为应用提供了在其上执行的替代的计算平台。作为一个示例,一个或更多个处理器2010可以提供第一指令集和相关联的架构,以提供与针对该第一指令集和相关联的架构开发的应用的兼容性,而soc2002可以提供第二指令集和相关联的架构(不同于第一指令集和相关联的架构),以提供与针对该第二指令集和相关联的架构开发的应用的兼容性-从而使每种类型的应用都能够访问gpu2006提供的大规模并行多处理和加速硬件支持能力。在这样的实现中,块2002、2010提供的不同处理器架构可以各自与gpu2006交互。

在所示的示例中,soc2002经由交换机、总线或不透明的桥2012彼此通信。在所示的示例中,交换机或总线2012可以具有其自己的一个或更多个存储器2016,并且可以与一个或更多个扩展连接器2018互连。在所示示例中,总线或交换机2012提供soc2002(1)和soc2002(2)之间的通信。在所示的示例中,每个soc2002都可以充当总线主设备。在一些示例实施例中,同一总线或交换机2012还允许soc2002中的一个或两个经由端口2014和/或一个或更多个扩展连接器2018与一个或更多个其他设备通信。例如,为了提供可扩展性,一个实施例经由扩展连接器2018向附加soc2002提供所示结构的扩展,以便部分或全部soc可以经由扩展连接器彼此通信。交换机或总线2012还可以与一个或更多个外部通信连接进行接口,诸如,在一个特定的非限制性示例中,十(10)gbps或其他通信端口2014。在其他实施例中,单独的、独立的、非共享的、高速通信链路可用于使每个soc2002能够与其他设备进行通信。

在一个特定示例中,交换机或总线2012可以包括pcie(pci快速或外围组件互连快速)交换机,但是其他高速串行、并行或其他计算机扩展总线标准(诸如,pci、pci-x或agp总线标准)或pcie的将来增强、替代或替换,诸如(但不限于)nvlink,其是由nvidia公司开发的被实现为串行、多通道、近距离通信链路的基于有线的通信协议,可以被替代或补充使用。

在所示的示例中,soc2002还可以经由一个或更多个多端口交换机2020与其他设备(并且在一些实施例中彼此)通信。例如,多端口交换机2020可以提供经由一个或更多个以太网2020或一个或更多个其他通信链路或一个或更多个网络与任何数量的其他设备进行接口的能力(例如,通过复制)。例如,可以使用这种通信来允许soc2002从数据源(例如,wlan、调制解调器和其他通信数据源)以及从车辆上或车辆内的广泛的任意数量的传感器(诸如,摄像机传感器、lidar、radar、惯性测量单元(imu)和其他传感器)接收数据和信号。

在所示的示例中,soc2002还可以经由进一步的高速或其他通信链路以及一个或更多个串行器、解串器或串行器/解串器对(serdes)2024与其他设备通信。serdes对2024提供了并行和串行数据格式之间的有效转换。例如,serdes对2024可用于从摄像机、lidar、radar或其他传感系统接收多个高分辨率串行化视频数据流,将串行化数据流转换为并行化数据格式,并将并行化数据格式提供给soc2002用于存储和/或处理。例如,可以经由serdes对2024来支持24个或更多个串行接口摄像机。在一些实施例中,可以向多个soc2002中的两者冗余地提供相同的并行流。在其他实现中,可以向不同的soc2002提供不同的并行流。

soc2002还可经由接口2028和车辆连接器2030与车辆总线2032通信。在所示的示例中,mcu2003还可经由接口2028与车辆总线2032直接通信。在一个示例实施例中,车辆总线2032可以包括车辆控制器区域网络(can)多主设备、诸如在许多或大多数现代车辆中发现的消息广播系统总线2032。在一些实施例中,这样的车辆总线2032符合boschcan标准和iso-11898:2003,或其将来的版本、替换和/或替代。接口2028包括收发器,用于经由这种车辆总线2032进行通信。可以采用其他车辆接口2028,诸如rs-232、flexray、ptp、gpio、lin、uart等。

在这样的架构中,soc2002包括在车辆总线2032上的附加控制器,并且其可以与连接到车辆总线的其他控制器或致动器通信。以这种方式,soc2002可以经由车辆总线2030读取车辆传感器并控制输出和状态,与其他车辆控制器(例如,发动机控制模块)通信,并且向车辆致动器发送命令信号,车辆致动器包括但不限于制动致动器、转向致动器、发动机油门致动器、其他发动机控制致动器、变速器控制致动器和其他类型的车辆致动器。在所示示例中,mcu2003还可以经由接口2028与车辆总线2032通信。

图21错误!找不到参考源。示出了一个实施例,其中在如图17、图18或图19所示的平台中,多个高级soc(100(1)和100(2))控制自主车辆。如上所讨论的,高级soc(100)和dgpu(802)可以使用深度神经网络来执行自主车辆控制所必需的部分或全部高级别功能。如上所述,每个高级soc中的gpu复合体(300)优选地被配置为执行任意数量的经训练的神经网络,包括cnn、dnn和任何其他类型的网络,以执行用于自动驾驶的必要功能,包括对象检测、自由空间检测。在来自任何高级soc(100(1)和100(2))和adas系统和功能(82)的结果不一致的情况下,则mcu(803)进行仲裁。在图21中所示的系统被呈现但并不限于此;在本技术的精神内,可以使用不同数量和组合的传感器。此外,adas系统(82)是可选的;adas系统和传感器的全部、部分或没有可以用作级别3-5自动驾驶的系统的一部分。

图22错误!未找到参考源。示出了该技术的进一步实施例,包括旨在实现自动驾驶能力的复杂平台,其中使用了另一个被称为nvswitch(1001)的nvidia片外soc,将多达八个高级soc(100)与八个dgpu(802)配对。

nvswitch(1001)配置使用来自高级soc(100)之一的pcie链接(1003)。八个高级soc(100)可以通过八个pcie链接(902)与八个dgpu(802)配对,但是替代地,也可以使用nvlink。八个高级soc(100)和八个dgpu(802)使用nvlink连接(805)连接到nvswitch(1001)。此外,八个高级soc(100)使用i2c总线(1002)彼此直接通信。替代地,高级soc(100)可以通过高速nvlink彼此直接配对。每个高级soc都可以寻址其他高级soc的dram和sysram。

nvswitch(1001)是网络交换机,其使用nvlink在各个高级soc(100)和dgpu(802)之间提供点对点通信。nvlink是点对点通信协议,其可提供大于20gbit/s的数据传输速率。在替代实施例中,nvswitch(1001)可以被一个或更多个其他交换机、集线器或其他联网设备替代或用其补充,所述一个或更多个其他交换机、集线器或其他联网设备利用一个或更多个通信协议来允许在各个高级soc(100)和dgpu(802)之间发生通信。

在操作中,八个高级soc可各自都具有经训练并专注于特定任务(例如,行人检测、标志检测、距离估计、车道检测、碰撞避免、当前占用栅格、预测占用栅格和转向控制等)的网络。替代地,该技术允许对单个网络进行联合训练以处理多个任务,诸如对象检测、车道检测、自由空间、距离估计。

尽管先前的示例示出了用于每个高级soc(100)的一个分立式gpu(802),但是soc被设计和配置为与通过pcie链接(902)和通过nvlink(805)和nvswitchsoc(1001)连接的任意数量的分立式gpu一起工作,如图23所示。

1.用于增强功能安全性的附加实施例。

图8示出了用于执行该技术的高级soc的一个实施例,并且图17、图18、图19和图19示出了合并了用于执行该技术的高级soc的平台。每个平台可包括用于自动驾驶的板,其中组件(100)、(802)、(803)安装到公共印刷电路板上并设置于同一外壳或壳体内,从而提供“一体式”控制器或超级计算机解决方案。如上所述,超级计算机解决方案优选地包括用于有效冷却处理器和电路板的系统。在一个实施例中,冷却系统包括适于与风扇散热器集成的有源混合热传递模块。混合热传递模块包括适于传递热量的流体通道和空气通道二者。混合热传递模块和风扇散热器可以单独使用,也可以组合使用以散发处理器的热量。

自主车辆可以具有多个不同的超级计算机,从而确保系统安全性、可靠性和冗余性。例如,图24示出了根据该技术的一个实施例的具有多个计算机的架构。

该系统可以包括一个或更多个lidar传感器(300),以及多个其他传感器(400),其包括radar、摄像机、超声波和其他传感器。lidar传感器(300)和其他传感器(400)向主计算机(车载计算机)(100)提供输入。多个其他传感器(400)还向备用计算机(车载计算机)(200)提供输入。

可以根据图17、图18或图19配置主计算机(车载计算机)(100)和备用计算机(车载计算机)(200)的每一个。替代地,主计算机(车载计算机)(100)可以包括如图17、图18或图19所示的一个或更多个高级soc,以及备用计算机(车载计算机)(200)可以使用较旧代的处理器或完全使用另一种类型的处理器。例如,如上所述,备用计算机(200)可以包括上一代平台。

替代地,该技术提供了由单独且独立的实体设计和制造的辅助计算机,从而进一步增强了多样性和功能安全性。例如,在该技术的一个实施例中,备用计算机(200)可以包括一个或更多个adas系统。在这样的实施例中,辅助计算机(200)可以包括多个分立式adas系统,其包括自主/自适应/自动巡航控制(“acc”),前向碰撞警告(“fcw”),自动紧急制动(“aeb”),车道偏离警告(“ldw”),盲区警告(“bsw”),后方交叉交通警告(“rctw”)和打滑道路检测等。在这些实施例中,辅助计算机(200)不需要在单个框中,并且包括该计算机的多个adas系统不需要彼此之间直接通信,因为它们的功能是为功能安全性提供冗余执行。类似地,在实施例中,包括辅助计算机(200)的多个分立式adas系统可以依赖于不同的分立式传感器和处理器,其包括来自各种adas供应商和/或半导体制造商的cpu、fpga、soc和asic。在这样的实施例中,该技术通过组合较低asil的冗余且独立的子系统(诸如,两个asilb子系统或一个asilc子系统和asila、b或c的辅助子系统)来提供更高的asil功能安全性。

在一些实施例中,主计算机和辅助计算机是不同的。这种多样化的实现和有意的不对称性使整个系统对由软件(或软件-硬件接口)功能引起的故障更加容错。例如,如果在主计算机(100)上运行的软件中存在软件漏洞或错误,并且在辅助计算机(200)上运行的非相同软件代码提供了相同的总体结果,但设计和实现的方式不同,则系统可以有更大的信心认为总体结果是正确的,并且该漏洞不会引起实质性错误。这种有意分散的设计可减少基于软件设计缺陷或漏洞的单点故障的机会。在替代实施例中,可以在每台计算机(100)、(200)上使用相同的算法,以降低软件开发成本和复杂性,并且可以使用附加测试和验证来减少软件缺陷可能导致计算机(100)和(200)全部故障的风险。有意分散的软件提供了相应的硬件缩减和相关联的复杂性管理,从而提高了可靠性并降低了故障率。

图26是根据本技术的一个实施例的系统的进一步图示。如图26所示,该系统包括主计算机(车载计算机)(100)和辅助或备用计算机(车载计算机)(200)。主计算机(100)从多个传感器(700)接收传感器输入,所述多个传感器可以包括发动机传感器(701)、门和/或后备箱传感器(702),重量和平衡传感器(703)、轮胎传感器和轮胎振动传感器(704)、制动传感器(705)、转向传感器(706)。根据该技术,可以使用其他公知的传感器来向主计算机(100)提供输入。

重量和平衡传感器(703)可以通过使用商业级的低g加速度传感器来实现,该传感器精确记录底盘和车身的动态。合适的传感器包括单轴传感器。这样的传感器对于自主卡车和公共汽车特别有用,在下面标题为“使用该技术的无人驾驶车辆的附加示例”的部分中将进行更全面的讨论。

在多个传感器(700)的观察下的关键车辆运行状态参数包括:(1)前进车辆速度,(2)车辆航向,(3)油门位置,(4)制动激活,(5)转向角度和比率,(6)施加的转向扭矩,(7)变速箱驱动齿轮的选择,(8)主动稳定性控制参与(开/关)和(9)自动紧急制动参与(开/关)等。

主计算机(100)包含任务/主要控制功能。在某些优选实施例中,主计算机(100)执行来自nvidia的自动驾驶软件栈,其提供包括感知、规划和控制的功能。如上所讨论的,感知模块(101)接收传感器输入并产生世界模型或占用栅格,预测该世界模型中对象的行为,产生针对驾驶情况的最佳规划,并制定致动器命令以实现该规划。在优选实施例中,感知模块(201)指示关于合理动作过程的合理性模块(202)。感知模块(101)指示驾驶模块(102)执行动态驾驶任务。

在优选实施例中,尤其是当辅助计算机(200)包括与主计算机(100)相同或相似的硬件时,辅助计算机(200)运行冗余的多样化软件以检测感知和动态驾驶任务中的故障。它还包括感知模块(201),该感知模块接收传感器输入并产生世界模型,并针对驾驶情况产生最佳规划并予以实现。在辅助计算机(200)包括多个adas系统的实施例中,辅助计算机独立地操作多个adas系统并提供输出,该输出包括关于车道偏离、接近的对象、盲区中的对象、接近的后方交叉交通等潜在警告。

该系统包括监督mcu(600),其从主计算机(100)和辅助计算机(200)接收输入。监督mcu(600)评估输入,仲裁任何冲突,并将命令传递给致动器。在监督mcu的控制下的关键参数包括(1)油门,(2)制动器,(3)施加的转向扭矩和(4)变速箱驱动齿轮的选择。

监督mcu(600)监视共享资源并比较管线中多个阶段的结果;它比较来自主计算机(100)和辅助计算机(200)的输入,以确定两台计算机是否充分对齐,以便应遵循来自主计算机的命令。监督mcu(600)执行安全模块,该安全模块提供了一系列系统限制器。监督mcu(600)提供表格和曲线以将诸如转向角和扭矩之类的项限制为速度的函数。在将can命令向前传递给车辆控制器之前,这些曲线作为最后的关门人加强了安全关系。

当第一计算机和第二计算机提供的结果不同时,监督mcu(600)必须在它们之间进行仲裁,例如,如图25所示。

因为示例非限制性实施例通过相似但不相同的算法提供了独立的处理,所以来自不同处理器的致动控制结果可导致不同的决策。作为示例,当车辆摄像机指示前方车辆正在减速因此需要施加制动时,两个独立计算机(100)、(200)和/或独立处理传入的传感器数据的进程可以各自确定应当施加的制动,但它们在其各自确定应施加的制动量方面的量可能有所不同。两个独立的计算机和/或过程各自提供制动命令,并且两个独立的命令由外围制动控制器(700)仲裁,该外围制动控制器被连接以接收两个命令。如果两个独立操作的计算机(100)、(200)或进程中的每一个都生成相同的命令(例如,以0.5g施加制动),则所需的仲裁很简单,并且制动控制器将简单地按照指令施加0.5g制动。另一方面,如果制动控制器(700)接收到两个不同的命令以提供制动,但是制动量不同(例如,一个控制器命令0.5g制动,另一个控制器命令0.3g制动),则制动控制器需要在这两个不同的命令之间进行仲裁。

仲裁的一种方法是以最低值(例如0.3g)施加制动。在另一种场景下,假设制动阈值为0.5g,并且一个处理器/进程命令为施加制动,而另一个则是不施加制动。在一种场景下,制动模块(700)可以不施加任何制动。在另一种场景下,制动模块(700)可以施加制动,但是施加比处理器命令的以0.5g的请求制动(例如0.3g制动)更轻的制动。另一种可能性是遵循命令以指定的0.5g力施加制动,但要通知操作员(请参见图25的“警告”输出)自主系统并不是完全充满信心,并给予驾驶员机会以手动驾驶接管。

在示例非限制性实施例中,不需要不同处理器/进程之间的同步。而是,不同处理器的独立操作意味着处理和相关联的输出生成将仅松散地同步。当在从不同计算机或处理器接收的不同命令之间进行仲裁时,外围设备(700)执行的仲裁决策将这种缺乏同步考虑在内。

另外,用于将命令从处理器传送到外围设备的通信总线也可以是非确定性异步的(例如,由于总线上的竞争和其他机制),这是外围设备上的仲裁考虑在内的附加时序因素。作为示例,当制动控制器(700)从一个处理器接收命令时,它可以定义某个时序窗口(参见图25),在该时序窗口期间,它在做出仲裁决策之前等待看另一处理器是否提供了类似的命令。内置了这样的容限,以确保外围模块对多个独立处理器发出的命令作出响应。可以接受10-25毫秒范围内的此类时间窗口,以考虑不同计算机(100)、(200)或进程之间仅松散的同步。然而,时序窗口应该足够短,以使得外围设备(700)仍然可以检测到超时。如果在超时时间段之后第二消息到达,则外围设备(700)采用其合理性(plausibility)检查(702)检测该第二消息,并且可以忽略第二命令或第一命令。在一些实施例中,如果合理性检查指示独立控制信号中的一个或另一个是故障的结果,则制动模块(700)可以将反馈或通知提供回soc(100)。

通常,优选地,外围设备(700)接收冗余命令,以便它可以在两个不同的独立处理器之间仲裁结果,但是外围设备还能够仅基于来自单个处理器的命令来致动。

当计算机(100)和(200)均发生故障时,mcu如上所述向驾驶员提供警告信号。在这种情况下,示例系统没有信心继续自主操作,因此它对制动模块(700)、转向模块(62)和推进模块(56)执行“司机安全停车”命令或请求驾驶员接管。即使两台计算机(100)和(200)发生故障,该架构仍通过在mcu的锁步(ls)和非ls核心二者中执行冗余功能来保持冗余。因此,尽管有故障,该系统仍能够维持安全级别。

如在上文标题为“使用多个计算机的实施例”的部分中讨论的具有多个计算机的实施例中的情况一样,两台计算机优选地都可以访问相同的输入,并且优选地连接到公共总线,诸如can总线(或多个冗余总线的布置),从而能够访问相同的信息。此外,如上文在“使用多个计算机的实施例”中讨论的具有多个计算机的实施例中的情况一样,主计算机和辅助计算机可以接收和处理来自不同传感器的信息,从而提供进一步的冗余和安全性。

图27示出了一个实施例,其中备用计算机或辅助计算机(200)包括一个或更多个adas系统的全部或部分,包括可视计算adas系统。

一种合适的adassoc被设计用于车道偏离警告(“ldw”),其向驾驶员警报意外/未指示的车道偏离;前向碰撞警告(“fcw”),其指示在相对于前方车辆的当前动态情况下,即将发生碰撞,识别即将发生的碰撞的自动紧急制动(“aeb”),自适应巡航控制(“acc”),车道保持辅助(“lka”)和车道居中(“lc”)。

当根据该技术用作备用计算机(200)的一部分时,合适的adassoc(201)向备用计算机合理性模块(202)提供感知信息。合理性模块(202)在硬件组件上运行冗余的各种软件,以检测感知和动态驾驶任务中的故障。此后,系统将来自soc的输出提供给监督mcu(600)。

因此,可以通过将本技术的高级soc与nvidia的drivepx软件栈一起用于主要功能,以及移动处理器提供冗余、故障安全功能,来实现asil-d。

当主计算机(100)和辅助计算机(200)的输出冲突时,mcu必须确定如何协调这些输出以确保安全操作。如前所述,商用adas系统容易出现假阳性结果。当人驾驶汽车时,假阳性可能会令人烦恼和分散注意力,但通常不会造成灾难性的后果,因为adas会向人警报,该人可以决定安全状况是否确实存在以及是否采取相应措施。

在无人驾驶车辆(50)中,在结果冲突的情况下,车辆本身必须决定是听从主计算机(100)的结果还是辅助计算机(200)的结果。无人驾驶车辆(50)中的mcu(600)可以被配置为采用最保守的方法,即,如果主计算机(100)或辅助计算机(200)指示存在危险状况,则采取纠正措施。但是,在辅助计算机是adas系统的实施例中,保守的方法将导致假阳性,这会导致不可接受的性能,并且甚至产生危险的状况,例如,如果车辆突然在高速公路上刹车或转弯以避开实际上不是危险的对象,诸如排水格栅或井盖,它们会触发基于radar的adas系统发出的警报。

在一些优选实施例中,主计算机(100)被配置为向mcu提供置信度(confidence)分数,其指示主计算机对所选结果的置信度。如果置信度分数超过阈值,则无论辅助计算机是否提供冲突结果或不一致的结果,mcu都将遵循主计算机的指示。在置信度分数不满足阈值的情况下,并且在主计算机和辅助计算机指示不同结果的情况下,mcu在计算机之间进行仲裁以确定适当的结果。

在优选实施例中,mcu(600)被配置为运行神经网络,该神经网络被训练和配置为基于来自所述主计算机和所述辅助计算机的输出来确定所述辅助计算机提供虚假警报的条件。因此,在优选实施例中,mcu(600)中的神经网络学习何时可以信任辅助计算机的输出,以及何时不能信任该辅助计算机的输出。例如,当辅助计算机(200)是基于radar的fcwadas系统时,mcu(600)中的神经网络可以学习何时基于radar的adas系统正在识别实际上不是危险的金属对象,诸如排水格栅或井盖,其可触发基于radar的adas系统发出的警报。类似地,当辅助计算机(200)是基于摄像机的ldwadas系统时,当存在骑自行车的人或行人,并且事实上车道偏离是最安全的操作时,mcu(600)中的神经网络可以学习超控ldw。在包括在mcu上运行的神经网络的实施例中,mcu(600)优选地包括dla或gpu中的至少一个,适于运行具有相关联的存储器的网络。在优选实施例中,mcu可以包括上面“用于执行该技术的ai超级计算机平台”部分中描述的高级片上系统。

在其他实施例中,如图27所示,辅助计算机(200)可以是一个或更多个高级adas系统,包括例如使用传统计算机视觉规则执行adas功能的adas系统。在辅助计算机(200)使用经典计算机视觉规则(如果-那么)的情况下,mcu(600)中神经网络的存在提高了可靠性、安全性和性能。在该实施例中,多样化的实现方式和有意的非相同性使得整个系统对由软件(或软件-硬件接口)功能性引起的故障更加容错。例如,如果在主计算机(100)上运行的软件中存在软件漏洞或错误,并且在具有adassoc(201)的辅助计算机(200)上运行的非相同软件代码提供了相同的总体结果,则监督mcu(600)可以更有信心地相信总体结果是正确的,并且主计算机(100)上的软件或硬件中的漏洞不会引起实质性错误。

如图27所示,来自高级adas系统(201)的输出可以被馈送到主计算机的感知块(101(1))和/或主计算机的动态驾驶任务块(102(1))。例如,如果高级adas系统(201)由于紧靠前方的对象而指示前向碰撞警告,则感知块(101(1))可以在识别对象时使用该信息。

在其他实施例中,辅助计算机(200)具有其自己的神经网络,该神经网络经过训练,从而以上面讨论的方式降低了假阳性的风险。

在另一个实施例中,车辆(50)可以包括信息娱乐系统,其包括nvidia在众多生产车辆中提供的gpu功能。例如,在图4所示的实施例中,车辆(50)可包括主控制器(100(1)),辅助控制器(100(2))和信息娱乐控制器(100(3)),其中每个控制器为由一个或更多个gpu和/或高级soc(诸如在“用于执行该技术的高级片上系统”部分中描述的高级soc)提供动力。当信息娱乐系统耦合至监督mcu(600)时,在主计算机(100)和备用计算机(200)均发生故障的情况下,信息娱乐系统中的gpu可被提供以执行受限的无人驾驶功能。在该实施例中,信息娱乐系统将被配置为对制动模块(700)、转向模块(62)和推进模块(56)执行“司机安全停车”命令或请求驾驶员接管。

功能安全性还要求系统检测传感器故障并对其安全地响应。例如,当摄像机被灰尘或雨滴阻挡(block)时,用于控制自主车辆的系统仍必须能够可靠地工作。自动驾驶通常涉及多个传感器,并且由于系统需要可靠的信息,因此检测传感器系统阻挡至关重要。当摄像机被阻挡时,图像通常会包含一个模糊的区域,其细节量很少。一般而言,传感器阻挡(blockage)检测可以视为模式识别问题,并且可以训练神经网络以通过尝试识别模糊区域来检测传感器故障。

基于传感器的输出,神经网络可以将传感器分类为以下两种状态之一:正常状态或异常状态(传感器被阻挡或阻碍)。系统将系统分为两个阶段:特征提取和检测/分类。

在优选实施例中,边缘检测和香农熵(shannonentropy)被用于检测摄像机被浑水、油、油漆、浓雾或其他类似障碍物所阻挡。该方法基于这样的假设:当摄像机被这种障碍物阻挡时,被阻挡的摄像机拍摄的图像不包含太多的边缘信息,因为边缘被其遮盖(obscure)。在一种方法中,计算每个图像中的梯度信息,并且仅使用强度高于阈值的强边缘。强边缘会随着时间而积累,而稳定的边缘会通过积累过程得到增强。积累的边缘图像被分成块。对于每个块,块中的信息量通过香农熵来衡量。熵的变化指示由于摄像机的阻挡,相应块已被遮盖的可能性。

在另一个实施例中,前向雾检测例程假定当雾出现时,天空和道路的交点下降到消失点以下。在该实施例中,检测到的消失点和道路/天空高度被用于估计可见距离。

另外,检测算法可以仅基于当前帧,或者基于(例如,最近的)帧序列。在使用帧序列的情况下,将当前帧与学习到的背景模型进行比较以检测异常变化,并且阻挡检测基于输入与背景模型之间的比较。优选地,如果车辆配备有阻挡清除系统,则当系统检测到阻挡检测时,主计算机(100)执行例程以清除阻挡。阻挡清除系统可以像雨刮器一样简单,并且还可以包括用于在镜头上提供压缩空气流的喷嘴(nozzle)以清洁镜头。阻挡清除系统还可优选地包括除霜器或除雾系统,其被设计为加热镜头并减轻或消除结冰、结霜或其他凝结(condensation)。

d.虚拟化和功能安全

自动驾驶控制系统是复杂的。它们通常被认为是系统的系统。一个重大挑战是如何使如此大的系统安全。物理上单独的计算硬件可用于降低自主车辆操作的风险。这样的物理上单独的硬件可以通过在计算设备之间提供气隙来提供容错能力和安全性,从而针对一个硬件组件的问题或攻击不会影响其他硬件组件。然而,事实证明,针对自主车辆控制执行的不同计算任务通常需要许多相同的计算资源,但是在不同的时间。

因为需要大量的计算能力来执行密集的工作,诸如实时识别道路上的图像并确定车辆应该做什么,所以在某些应用、环境和特定实现中完全提供用于系统不同部分的单独但冗余且相对昂贵的硬件资源的成本可能不合算。相反,在某些应用和环境中,出于无人驾驶车辆控制的不同目的和方面,希望或可能希望使用数量较少的功能强大的计算设备,并随着时间的推移重新使用相同的计算硬件。换句话说,为了在成本通常是重要因素的情况下提供成本高效,可能希望在不同功能之间多路复用硬件。

在一些非限制性实施例中,可以通过对计算结构进行抽象化和虚拟化以提供冗余、独立性、分区和减轻安全威胁(例如,通过纵深防御(did)和不受干扰)来安全地实现在不同的自主车辆功能之间提供这种硬件共享或多路复用。例如,可以通过自主车辆的复杂性以及与自主车辆操作相关联的安全性和可靠性风险(例如,包括安全故障和功能障碍以及网络攻击)来通知这种虚拟化的安全和可靠架构。

作为一个示例,计算结构可以被构造为接受空中(ota)编程、数据和/或其他更新。但是,在某些情况下可能希望确保这种空中更新不会直接流入直接决定如何驾驶车辆的任何一个或更多个虚拟机或其他组件。这避免了未经授权的行为者使用外部因特网或直接访问正在运行车辆控制软件的一个或更多个虚拟机的其他网络的风险,并防止了攻击者破坏或以其他方式使用ota进程作为攻击的一部分。

架构也可以被虚拟化,使得对安全最重要的计算结构的一个或更多个部分和/或相关联的软件彼此隔离,以及与计算结构的其他部分和/或相关联的软件相隔离。例如,可以通过在单独的虚拟机中执行通信代码来将通信代码执行与其他功能进行隔离和分区。即使在使用考虑到安全性而设计的asil-d认证的一个或更多个实时操作系统(rtos)的情况下,虚拟化也可以有益于将不同程序安全合并和分区到同一计算资源上。另外,为了提高安全性,有限的或没有信任模型可提供对等方永远不会相互信任,父母不信任孩子,并且孩子对父母的信任有限,并且审计跟踪可能会为授权操作提供责任。

在一些示例实施例中,通信分区可以用于在虚拟化的外部接口(例如,以太网、can等)上拦截访客操作系统和外部世界之间的所有平台流量,并且安全分区可以用于执行检测和缓解入侵攻击。在一些示例非限制性实施例中,因此将通信隔离在单独的虚拟机中,并且提供了附加的预防和检测功能以识别可疑活动和行为,并采取主动和预防措施以确保嵌入式系统的安全性。深度分组检查还可用于扫描分组内容中是否包含恶意有效负载。

图28示出了示例非限制性虚拟化自主车辆控制计算平台4000。虚拟化平台4000包括在任意数量的虚拟化cpu4004上执行的任意数量的虚拟机4002。虚拟化cpu4004在任意数量的硬件cpu核心4006上执行。管理程序(hypervisor)或虚拟机管理器(vmm)优先级调度器4008调度不同硬件cpu核心4006上不同虚拟化cpu4004的任务的执行,同时在不同虚拟机之间提供隔离并为尝试共享共同资源的所有应用程序保证服务质量。参见例如共同转让的美国专利号9,742,869和美国专利公开号20150067672,以获取有关管理程序的更多信息。

作为一个非限制性说明性示例,可以存在一个、两个或任何n个虚拟机4002(0),…,4002(n)。平台4000提供了不同虚拟机4002之间的隔离。一个或更多个应用程序作为访客在每个主机虚拟机4002中运行。虚拟机4002(0),…,4002(n)可以在任意数量的虚拟cpu(诸如,vcpu04004(0),4004(1),4004(2),...4004(9),...4004(k))上执行。虚拟cpu4004可以在相同或不同的硬件cpu核心上运行。例如:

·vcpu4004(0)可以在核心4006(0)上执行;

·vcpu4004(1)可以在核心4006(1)上运行;

·vcpu4004(2)可以在核心4006(2)上执行;

·vcpu4004(3)可以在核心4006(3)上执行;

·vcpu4004(4)和4004(9)可以在核心4006(4)上运行;

·vcpu4004(5)可以在核心4006(5)上运行;

·vcpu4004(6)和4004(8)可以在核心4006(6)上运行;以及

·vcpu4004(7)可以在核心4006(7)上运行。

在某些情况下,虚拟化cpu4004与硬件cpu核心4006之间可能存在一一对应关系。在其他情况下,在给定的硬件cpu核心4006上可以执行一个以上的虚拟化cpu4004。也可能存在多个硬件cpu核心4006支持虚拟化cpu4004的情况。在一些示例实现中,虚拟cpu4004通过在分区配置表中定义的映射被静态地分配给物理cpu核心4006。在其他示例实现中,管理程序4008可以根据包括优先级、负载平衡和其他考虑因素在内的各种因素来动态地改变向虚拟化cpu4004的cpu核心4006的分配。管理程序4008可以使用优先级调度器来分时共享物理cpu核心4006上的虚拟cpu4004。

虚拟化平台4000还可包括任意数量的虚拟服务器,诸如资源管理器(rm)服务器4010(1),通信服务器4010(2)和其他服务器4010(3)…4010(l)。这样的服务器可以包括没有直接硬件支持的虚拟化硬件,以支持任何或所有虚拟机4002。例如,资源管理器服务器4010(1)可以包括对某些硬件或其他资源(例如,一个或更多个gpu和/或媒体引擎(诸如编码器、解码器和/或合成器))进行控制,并在多个客户端之间多路复用对硬件或其他资源的使用,以便客户端可以共享物理计算资源而不会发生冲突的服务器软件。通过非限制性示例,其他示例服务器4010可以包括:

·摄像机视频流服务器4010(3),用于管理摄像机输入;

·存储服务器4010(4),用于管理存储设备(并且例如,为每个虚拟机4002分配其自己的虚拟存储器地址空间,并防止任何访客通过过多的访问使物理存储不堪重负,从而无法实施服务质量保证);

·总线服务器4010(5),用于管理某些通信总线(诸如i2c)的使用;

·音频服务器4010(6),用于管理音频硬件资源;

·显示服务器4010(7),用于管理显示资源;

·安全服务器4010(8),用于管理安全引擎;

·调试服务器4010(9),用于调试;

·安全监视器(看门狗)服务器4010(10),其监视cpu核心4006上运行的所有其他功能,并将状态报告给片上硬件或其他资源;和/或

·其他。

在示例实现方式中,服务器4010也被虚拟化,在一个或更多个虚拟化cpu4004上执行,并且其执行由管理程序4008优先调度。在一些示例实施例中,虚拟化服务器4010提供服务,否则其可以由管理程序4008提供(并且通常由其他系统中的管理程序提供),但在此架构中与管理程序隔离,以使管理程序保持最小化、简单、直接和可验证。

在示例实施例中,虚拟机4002可以向在其上运行的自主车辆应用程序呈现或不呈现标准或统一硬件配置的错觉(illusion)。虽然可以在虚拟机4002的上下文中提供用于仿真硬件能力的软件,但是在实时自主车辆系统中,这种仿真就运行时性能而言可能太昂贵。因此,在主机虚拟机4002上执行的访客自主车辆应用程序不必被设计和构造为期望或依赖于任何标准化的虚拟硬件配置。通过最小化和/或消除任何仿真软件中间件,访客自主车辆应用程序(仍被限制在其上执行的主机虚拟机4002的“沙箱”中)可以直接访问并在核心4006和其他硬件组件(诸如gpu、硬件引擎等)的硬件能力上运行。同时,硬件核心4006和其他硬件可以被设计为支持虚拟化,最小化管理程序4008的负担,并通过允许访客直接访问功能来最大化运行时性能。例如,在一些实现方式中,可以允许访客直接访问由平台4000提供的多个引擎中的每个引擎,并允许其直接向那些引擎提交工作。同时,引擎被设计为使得引擎在为访客服务时执行的所有存储器访问均在该访客的已分配/可访问虚拟存储器的上下文中完成,以防止发生冲突,避免访客之间的意外通信,并防止任何访客破坏其他访客的一个或更多个状态。因此,即使各个访客共享相同的一个或更多个引擎和其他资源,也使它们在空间上保持隔离。

尽管该架构因此在共享相同基础资源(诸如引擎)的不同虚拟机之间提供了分区、隔离和分隔,但是当多个访客同时希望使用相同资源时会出现调度问题。示例实现中的rm服务器4010(1)解决了这种调度冲突。rm服务器4010(1)执行多路复用任务,诸如管理上下文和保护访客之间的存储器。在一些实现方式中,在普通或正常情况下,不需要访客在运行时与rm服务器4010(1)进行通信。在这样的实现中,当发生冲突或其他原因出错时,rm服务器4010(1)可以基于例外管理资源。例如,如果虚拟机4002和/或访客自主车辆应用程序开始使用资源然后不释放它,则rm服务器4010(1)可以迫使虚拟机4002释放资源并保证向前进度。

在所示的示例中,管理程序4008是用于实现平台4000所要满足的安全性和可靠性目标的基础。因此,可以对其进行安全测试和认证,示例实现中的管理程序4008被设计和构造为尽可能简单,并可以直接在硬件上运行,以实现其支持同时在多核心soc或其他计算设备上运行多个虚拟机4002的功能。在示例实施例中,管理程序4008被构造为无状态的或几乎无状态的,通过最小化竞争应用程序的资源锁定来提供高质量的服务等级。因为几乎没有或没有状态要维护,所以在这样的实施例中,管理程序4008不需要锁定资源来维持这样的状态。从与管理程序4008分开的存储服务器4010(b)提供服务(诸如存储访问)有助于管理程序的这种无状态操作。管理程序4008仍可以对服务器4010提供的各种服务执行优先级调度,以提供时间隔离,以通过同时在相同资源上执行操作,来确保服务器彼此不会发生冲突。

在示例非限制性实施例中,管理程序4008被保持在非常高的标准(例如,高于操作系统内核(kernel))。认证可以包括也可以不包括正确性的数学证明。还可以执行安全和可靠测试以证明其正确性。在具有保持系统的不同部分彼此分开的高度保证时,可以信任管理程序4008。在所示的示例中,管理程序4008与在其上执行的硬件之间没有软件-它是直接在处理器硬件上运行的“裸机(baremetal)”管理程序。其他实施例可以提供不同的管理程序部署。

图29示出了平台4000的另一视图。在该视图中,虚拟机4002由通道4012支持,通道4012提供虚拟机与计算所需资源之间的通信。可以将任何数量的通道4012分配给任何给定的虚拟机4002。例如:

·可以为虚拟机4002(0)分配通道4012(0),…4012(n);

·可以为虚拟机4002(1)分配通道4012(n+1),…4012(m);

·可以为虚拟机4002(2)分配通道4012(m+1),…4012(p);

·等等。

用于分配不同组的通道4012(其用于使不同的虚拟机4002能够与共享资源进行通信)的硬件和/或软件支持提供了每进程和每虚拟机的隔离。另外,可以通过通道分配在不同虚拟机4002之间进行对共享硬件资源(诸如gpu)的使用的负载平衡。可以为虚拟机4002上的主机自主车辆应用程序分配其自己的通道,以最小化上下文的软件管理和存储器保护。另外,如上所述,rm服务器4010(1)和/或其他一个或更多个服务器(诸如,存储服务器4010(4))可以负责保护存储器。优先级调度和计算指令级抢占可用于使得能够满足服务质量要求。

图30错误!未找到参考源。示出了示例细粒度(fine-grained)的计算指令级抢占。在此图中,命令推送缓冲区提供了分派到工作组的命令,这些命令最终被分配给在处理器上执行的线程。计算指令可以提供抢占。然而,在其他实时自主车辆实施例中,抢占的使用被最小化或避免,以防止不确定的执行结果。除了有必要纠正或防止故障时以外,否则避免抢占可以减少这样的情况:在可变的、不可预测的执行点处应用程序被中断,并且然后命令在这些不可预测的点处恢复。

通道重置能力可以用于防止自主车辆应用程序(或类似的冒名顶替者)有意或无意地消耗或占用不成比例的资源量和/或使gpu或其他资源崩溃。例如,当访客占用共享资源或导致共享资源发生故障时,可能会下降为降级的操作模式,在该模式下,资源和用于与其通信的通道可以被强制自动重置并返回到一个或更多个已知的、功能正常的运行状态。分区内支持的此类结构和功能可提供具有安全关键过程以及在安全关键过程之间的实时、安全和可靠的通信能力,如下所述。

通信也被外部设备(诸如云服务器)所支持,该外部设备提供例如地图绘制能力、可下载地图和其他信息。即使自主车辆平台的任何外部网络接口是安全的、加密的和经认证的,也应视为敌对环境。特别地,存在攻击者将突破所有其他防御并访问以太网或到soc或执行自主车辆控制的其他处理设备的其他输入/输出接口的风险。还可能有攻击者直接访问网络堆栈,并且有能力控制网络接口上的传入和/或传出分组的风险。如果攻击者能够利用网络堆栈中的缺陷或弱点,则攻击者可能能够控制网络堆栈。如果网络堆栈在也在执行安全关键工作的同一虚拟机4002中运行,则会造成攻击者能破坏或以其他方式影响安全关键工作的风险。攻击者将在执行安全关键工作的虚拟机4002的操作系统实例中占有一席之地,攻击者可能会使用该安全关键工作以造成伤害。例如,攻击者可能例如通过利用操作系统内核中的缺陷来生成恶意地图数据。一旦网络堆栈遭到破坏,攻击可能会级联成利用操作系统内核的漏洞或弱点来控制内核。优选实施例使用虚拟机分区以及其他结构和安全技术来防止此类攻击。

图31和图32示出了解决上述安全风险的示例非限制性实现。在该示例中,通信网络接口位于与执行驾驶安全关键处理的虚拟机/分区4002(p)分开的虚拟机/分区4002(l)中。通信分区4002(l)支持网络接口服务和相关联的堆栈4002,并且其可以充当用于通信网络接口过程的资源管理器。通信分区4002(l)例如还可以支持网络地址转换4040以提供附加的安全性。通信分区4002(l)管理与嵌入式系统相关联的通信硬件。这样的嵌入式系统可以包括但不限于用于自主车辆操作的片上系统(soc)。

根据优选实施例,通信分区4002(l)可以被实现为运行(例如)嵌入式安全操作系统的虚拟机。在优选实施例中,通信分区4002(l)可以包括虚拟路由器,该虚拟路由器执行虚拟机间通信,并通过虚拟化接口(例如,以太网、can等)拦截访客操作系统与外部网络或应用之间的平台流量。

示例通信分区特征和功能因此可以包括:

·以太网虚拟化

·防火墙

·网络地址转换(nat)

·用于xaviercan总线的can虚拟化

·用于外部mcucan总线的can虚拟化

·接口ddos对策

·其他汽车网络(flexray,most,lin)的虚拟化

·其他

在优选实施例中,通信分区4002(l)提供对多个虚拟机的支持。根据这样的部署,通信分区4002(l)能够向嵌入式系统所使用的车辆中的网络(例如,以太网)基础设施提交和接收完全形成的以太网帧(由上层形成)。通信分区4002(l)还强制执行虚拟机处的上级协议所需的带宽和延迟保证,其中每个vm负责从虚拟化以太网驱动器提交帧。在优选实施例中,通信分区4002(l)提供网络周边安全特征,诸如(但不限于):分布式拒绝服务(ddos)抵抗,流量过滤,无状态防火墙和受限锥形连接管理。通信分区4002(l)还可以利用基础设施编程特征来实现,例如但不限于:交换机配置,流量整形,流量类别仲裁器编程和vlan过滤。

在一个示例实施例中,通信分区4020(l)还与安全分区4002(m)交互。示例安全分区4002(m)特征可包括:

·ip有状态和无状态防火墙(包括nat)

·can防火墙

·ssl代理

·上传到远程审计服务器的用日志记录的安全审计和事件

·加密管理器-安全日志和配置文件加密

·ddos对策

·用于以太网和can上的深度分组检查(dpi)的机器学习

·虚拟机和文件完整性检查

·安全和通信虚拟机ota服务和备份管理

·其他汽车网络协议(flexray,most,lin)的安全性

与通信分区4020(l)一样,安全分区4002(m)可以实现为执行安全的、特定于嵌入式系统的操作系统的虚拟机。在优选实施例中,安全分区4002(m)可以访问和/或维护配置文件(加密并签名的),所述配置文件配置流量的检测和策略。一旦检测到攻击,安全分区4002(m)将负责制定针对该攻击的配置策略。每个访客vm具有与每个通信接口相关联的安全策略。这些安全策略可以彼此独立。因此,两个访客os的虚拟机对于同一物理接口可以具有不同的安全策略。

在一个示例非限制性实施例中,安全分区可以在逻辑上设置在通信分区与一个或更多个附加vm4002(p)之间。vm间通信以及在访客os中执行的应用程序与外部通信接口之间的通信可以通过安全分区进行路由,以进行检查和入侵检测。在一个或更多个示例实施例中,通信分区4002(l)、安全分区4002(m)和在另一分区4002(p)中运行的访客os之间的虚拟机间通信可以由在通信分区4002(l)中实现的虚拟路由器4032、在安全分区4002(m)中实现的虚拟桥4034和在附加虚拟机4002(p)上执行的访客os中的虚拟驱动器4036执行(参见图32错误!未找到参考源。)。可以在安全分区中执行的安全特征可以包括以下中的一个或更多个:用于一个或更多个通信接口(例如ip、can)的防火墙,安全套接层(ssl)代理,分布式拒绝服务(ddos)对策,vm和文件的完整性检查,以及ota服务的备份管理。

根据示例实施例,安全分区4002(m)还提供深度机器学习神经网络4046,其深度地检查由通信分区2002(l)接收和/或发送的网络分组(深度分组检查),并生成信息,如果网络通信开始看起来可疑,则该信息将停止网络通信(例如,经由禁用一个或更多个特征和/或数据处理或路由组件)。这种深度分组检查可包括扫描分组内容中的恶意有效载荷,以及检测以前未检测到的异常,并具有必要的授权,以便在检测到可疑内容时中断通信分区操作。安全分区4002(m)还可以提供不能被攻击者破坏的安全事件记录/审计跟踪4044(这样的日志和审计跟踪对于获得通用标准证明是有用的)。尽管示例实施例出于说明性目的示出了分区4002之间的直接通信,但是优选地在示例实现中使用用于在虚拟机/分区之间安全地通信的公知技术。

e.示例虚拟化安全框架

示例非限制性平台还包括安全框架,其连续地监视控制驾驶和其他系统或使命关键任务的软件和/或硬件功能的操作。安全框架收集有关驾驶控制功能如何操作的信息,可以运行诊断过程以确保系统组件正常操作,并向可能会采取纠正措施(诸如,根据需要的自动地结束/重新启动/重新开始进程)的单独的安全专用硬件(例如,一个或更多个安全微控制器)报告异常。

安全框架独立于其所监视的驾驶控制功能来操作,使得驾驶控制硬件/软件功能的故障不会导致安全框架也发生故障。示例非限制性实施例通过提供一种有弹性的多级/多层安全框架结构(其中一些安全框架组件看守和监视在不同硬件上执行的其他安全框架组件)回答了古老的问题“谁看守看守人?”。通过提供多个独立于硬件的看守/监视级别,多级/多层安全框架结构将监视功能分布在多个层和多个硬件处理器中,因此,安全框架本身某些部分的故障不会使整体安全框架的操作失效,并且实时看守高性能进程的需求不会使安全框架的任何部分过载或不堪重负。

例如,在高性能驱动应用处理器的虚拟机/分区内运行的应用程序看门狗监视功能可负责监视那些应用程序进程的操作的复杂细节。应用程序看门狗监视功能又将简要监视结果报告给可能在不同虚拟机/分区和/或不同硬件中运行的安全框架的一个或更多个较高级别。这种一个或更多个较高级别的安全框架本身并不需要参与处理应用程序看门狗监视器的应用程序的复杂细节;它们只需要处理应用程序看门狗监视功能报告的简要结果。因此,这些一个或更多个较高级别从较低级别接收有关所监视的计算结构的更详细操作的信息,同时还进行监视以确保较低级别的安全框架本身能够正确运行。这样,多级安全框架能够提供高水平的弹性和冗余性,同时还提供处理能力,以通过复杂的系统及时、有效地监视许多复杂的高性能实时驱动控制(和其他)控制功能,而不会变得不堪重负。

在一些示例实施例中,安全框架提供简化用于安全相关的硬件和软件错误的结构化处理的收集/分发的特征。在为asil-d系统设计的安全监督框架上分层的自动驾驶操作系统为安全性提供了强大的隔离/外部功能接口(ffi)。在这种情况下,ffi是一种机制,通过这种机制,以一种编程语言编写的或写到一个应用程序编程接口(api)的程序可以调用例程或使用以另一种编程语言和/或为另一种api编写的服务。

在一些实施例中,多级安全框架与受监督实体分开,并且其本身提供了独立运行但彼此监督的多个级别或多个层的功能。例如,在某些实现中,安全框架提供了监视组件,该监视组件监视高性能应用程序软件的健康状况。这些安全组件又由安全框架监视的其他独立层监视/看守,而该安全框架监视的其他独立层又由安全框架监视的另外其他独立层看守,依此类推。尽管在一些示例实施例中提供了三层安全框架架构,但是可以提供任何数量的这种监视层。在一些示例非限制性实施例中,安全框架管理软件安全诊断测试功能(“sdtf”)的有效执行,并且经由一个或更多个受保护的通道提供用于安全相关的查询/响应的层之间的通信。

图33示出了与附加安全特征有关的示例非限制性平台的示例性细节。在所示的示例中,执行应用程序进程5002并包括中间件5004、驱动器5006和安全操作系统5008的虚拟机/分区4002(k)还执行安全看门狗监视软件5010,其执行高性能应用程序进程5002的安全代理和监视。安全看门狗监视器5010例如可以看守和监视应用程序进程5002的健康状况。安全看门狗监视器5010被构造为例如确保正确进行排序,满足截止日期并且不占用比预期更长的执行时间。作为示例,在应用程序进程5002正在处理来自摄像机、radar、lidar等的传感器数据的情况下,安全看门狗监视器5010可以执行传感器数据完整性检查。如果安全看门狗监视器5010检测到错误或故障,则它可能会在安全框架中将错误通知传播到更高级别-就像工厂车间的检查人员告诉她的主管说,车间上观察到的某些过程出问题了,以防止缺陷过程制造出有缺陷的零件。

在所示的示例中,安全看门狗监视器5010向在同一处理器5050(核心cpu复合体或ccplex)上其自己的独立虚拟机/分区5014中运行的第一级(“l1ss”)安全监督程序5012(1)报告,所述同一处理器执行应用程序进程虚拟机/分区。该第一安全等级l1ss安全监督程序5012(1)可以进一步包括其自身的测试能力,诸如诊断5016和实用5018,以执行其自身测试。这样的诊断5016可以例如用于测试硬件功能。在一些示例实施例中,l1ss安全监督程序5012(1)还具有请求虚拟机/分区4002运行特定诊断并报告结果的能力,并确保应该运行的诊断实际上正在运行。诊断5016可以以适当的速率运行,以确保以足够的频率执行测试,以保证安全监督程序5012(1)能够及时检测到一个或更多个不正确的操作。诊断可以通过硬件和软件的组合来实现,以提供所需的覆盖范围。诊断和监视被构造为可以在故障时间容限间隔内(例如,每100毫秒)检测任何类型的故障。示例非限制性实施例支持几种不同类型的诊断,例如:

·诊断启动-在系统可以进入任务模式之前执行并验证的诊断,例如,硬件安全模块(hsm)配置;

·定期诊断-规则执行的诊断(通常在诊断测试时间间隔内,例如,针对黄金参考/校验和检查关键设备配置);

·按需诊断-将响应于事件发生而动态地请求的诊断,例如,在单个位错误报告超过预设阈值、在某时间量内丢弃某数量的帧等之后的存储器诊断;

·关机诊断-将在关机时运行的诊断。请注意,其中一些可能会在安全框架关闭后运行,以便在下次启动时使得结果可用;

·运行时诊断–作为常规软件流的一部分执行的诊断;根据实施例,这些不一定由安全框架独立地调用,但是有些可以由安全框架独立地调用。运行时诊断可根据软件驱动程序机会性地或按需要进行调用,并可使用安全框架中的标准错误流来通知其结果/状态。运行时诊断的示例包括:

-写入后进行软件寄存器回读验证,

-软件空闲任务对安全关键配置数据进行校验和验证,

-软件对计算出的信号值进行合理性检查,

-在软件控制下冗余执行和比较,以及

-在安全框架途径上发布的特定于域的围绕终端的挑战/响应。

还可以应用时间监视。需要时间隔离/ffi的软件应用程序可以将其受监督实体(例如,可运行对象)映射到不同的os任务对象上。受监督实体可以宣布程序流期间达到的检查点(cp)。专用的看门狗可以监视执行是否符合预先指定的时间表状态-存活率、到达率或最后期限和执行序列。由于缺少(或难以置信)通知,可能会将故障检测为伪像(artifact)。故障状态被汇总并反映在计数器/标志中,并经由心跳(heartbeat)发布到更高级别的安全框架。经由注册的处理程序执行操作。

总体安全框架被构造为保证及时检测出故障并对检测到的故障作出反应,所述及时即在故障引起不安全状况发生之前。然而,在示例非限制性实施例中,l1ss安全监督程序5012(1)是可重用的组件,其没有太多领域特定知识。因此,l1ss安全监督程序5012(1)充当代理或路由器,以将关于在安全框架的较低级别处发现的错误的信息正确地传播到安全框架的下一个较高级别。

第一安全级别l1ss安全监督程序5014(1)又与在不同虚拟机/分区5014(2)中执行的和/或在不同处理器5052(诸如相同或不同硅管芯上的相同soc封装5054中的双核心risc处理器,所述双核心以锁步方式运行)上执行的第二级别l2ss安全监督程序5014(2)通信并向其报告检测到的错误和故障。因此,根据特定实施例,第二级别安全监督程序5104(2)(其可以被虚拟化或可以不被虚拟化)独立于管理程序4008及其相关联的硬件而操作。在一些实现中,第二级别l2ss安全监督程序5014(2)在其上执行的不同处理器5052可以是比执行一个或更多个高性能应用程序5002的一个或更多个处理器更低级的执行处理器。

第二级别l2ss安全监督程序5014(2)包括另一个安全看门狗监视器5012(2)、诊断5012(2)和实用5012(2)。它与第一级别安全监督程序l1ss5012(1)通信并对其进行指导,并接收第一级别安全监督程序收集的结果。硬件支持可以允许l2ss安全监督程序5014(2)也保护周围的硬件逻辑,以检测瞬态或非瞬态故障。

soc硬件被设计和构造为隔离l2ss安全监督程序5014(2)及其相关联的处理器5052,以便soc5054硬件和软件的其他部分中发生的大多数故障也将不会导致l2ss安全监督程序5014(2)的故障。因此,系统被设计和构造为使得l2ss安全监督程序5014(2)在安全“岛”上执行,并且被隔离以不受soc5054的其他部分(即soc“大陆”)上可能发生的故障的影响,同时仍然能够查看和监视在soc大陆上正在执行的所有进程。

尽管图33的示意图示出了第二安全级别l2ss安全监督程序仅与一个附加分区/虚拟机5014(1)中的一个安全应用程序看门狗5010交互,但它可以与任何数量的分区/虚拟机中的任意数量的安全应用程序看门狗进行交互,这与吞吐量、带宽和性能标准一致(参见图35)。根据整个系统的复杂性和范围,可以有任意数量的第二级别l2ss安全监督程序,每个第二级别l2ss安全监督程序监视任意数量的应用程序虚拟机/分区或其他虚拟化的或非虚拟化的处理组件中的一个或更多个应用程序看门狗监视器。但是通常,在某些架构中,每个soc5054可以有至少一个第二级别l2ss安全监督程序。

在某些情况下,硬件可以直接向l2ss安全监督程序5014(2)通知发生了故障。在这种情况下,l2ss安全监督程序5014(2)可以将检测到的错误通知l1ss安全监督程序5014(1),以便l1ss安全监督程序可以通知虚拟机4002和相关联的应用程序进程5002。此外,一个或更多个第二级别l2ss安全监督程序5014(2)可以对其从l1ss安全监督程序5014(1)接收到的错误/故障报告执行一些过滤和处理,并且可以在某些有限的情况下自行采取纠正措施(例如,某些种类的本地存储器重置)。但是,一般而言,示例实施例中的l2ss安全监督程序5014(2)通过与第三安全级别l3ss5014(3)安全监督程序通信并向其报告检测到的错误/故障来充当错误路由器,所述第三安全级别l3ss5014(3)安全监督程序在不同封装中不同硅上的不同处理器上存在的不同分区中执行。

在该示例中,第三级别l3ss安全监督程序5014(3)包括另一个安全看门狗5012(3)、诊断5012(3)和实用5012(3)。在安全mcu5020上执行的此第三安全级别l3ss安全监督程序5014(3)与在soc5054上执行的安全组件进行通信,指导一个或更多个第二级别安全看门狗5012(2)并接收一个或更多个第二级别安全看门狗收集的结果。就像第二安全级别一样,第三安全级别l3ss安全监督程序可以与在任意数量的其他处理器/soc上执行的任意数量的第二安全级别l2ss安全监督程序组件进行交互并对其进行监视,并且在某些实现中,可能存在多个第三安全级别l3ss安全监督程序实例。例如,在一些实施例中,l3ss安全监督程序5014(3)可以与相应的soc5054上的多个l2ss安全监督程序5014(2)进行交互,并且因此可以监视多个soc5054,每个soc5054支持运行许多相应的应用程序5002的多个虚拟机/分区4002。

安全架构可扩大/可扩展至第四级别l4ss、第五级别l5ss等。但是,对于某些应用程序,如图33所示错误!未找到参考源的三个级别就足够了。在示例非限制性实施例中,最高安全框架级别(在这种情况下为l3ss安全监督程序)在单独的、独立于硬件的(不同的硅和封装)安全mcu5020(也可具有冗余备份,如本文其他地方所述)上执行,该安全mcu5020被授权关闭、重新开始、重新启动以及以其他方式控制应用程序进程5002和相关联的虚拟机/分区4002(k)以及安全框架看门狗5012和虚拟机/分区5014中的任何或全部。安全mcu5020与执行应用程序进程5002的一个或更多个处理器soc的硬件独立性将影响处理器soc5054的硬件故障也会影响安全mcu的风险最小化。例如,在一些实现方式中,mcu5020接收单独的电源或备用电池,从而影响执行应用程序进程5002的处理器soc的电源故障将不会影响安全mcu5020。

因此,多级监视提供了本地、中间和全局安全监视器,其中一些可以在彼此不同的硬件组件中执行。全局安全监视器监视中间安全监视器,中间安全监视器又监视本地监视器。在所示的示例中,安全mcu(微控制器)5020执行全局监视功能,并接收来自在不同硬件上运行的各个中间安全监视器功能的输入,而这些中间安全监视器功能又从各个本地安全监视器接收输入。在安全框架的不同级别(和硬件)上的安全看门狗的多个实例允许安全mcu5020监视在不同处理器soc上的各个分区4002中运行的许多高性能软件进程,而不会成为瓶颈。特别地,在这种情况下,l1ss是安全监视器,其监视高性能虚拟机和相关联的进程4002(k)。如果高性能虚拟机由l2ss安全监督程序直接监视,则ls22可能会过载。但是,l2ss安全监督程序不需要监视应用程序进程5002的每个安全方面,因为这样的详细监视由应用程序安全看门狗监视器5010替代执行。因此,l2ss安全监督程序不会变得不堪重负,而是仍热是应用程序看门狗监视器5010的有效实时监视器以及还可能是在附加应用程序虚拟机/分区中运行的其他应用程序看门狗监视器的有效实时监视器。类似地,在安全mcu5020上运行的l3ss安全监督程序安全监视级别不会因为由任何数量的第二级别l2ss安全监督程序执行的安全监视任务而变得不堪重负。参见图34。

图35示出了示例交互拓扑。此示意性框图示出了l1ss5014(1)可以监视任意数量的虚拟机分区4002(k),…,4002(n),每个虚拟机分区都包括其自己的各自的安全看门狗5010,该安全看门狗5010在一个或更多个本地访客操作系统下的各自虚拟机分区中本地运行,并与驱动器5006通信。l1ss5014(1)还可以监视在soc上执行的各个服务器4010(a),4010(b),…,每个服务器包括其自己的各自的安全看门狗软件组件5010。l1ss安全监督程序5014(1)可以与附加的安全看门狗监视器5010通信,所述附加的安全看门狗监视器5010正忙于监视在soc5054(例如gpu支持)上运行的其他基础进程以及管理程序4008硬件和/或软件的潜在方面。l1ss(1)安全监视器5014(1)可以在此类进程的初始化期间发挥作用。例如但不限于,在gpu支持的情况下,直接与硬件进行受保护的通信以将存储器分配给gpu并创建进入gpu的通道-这可以与命令gpu执行功能分开,因为应用程序进程5002可以直接访问gpu命令缓冲区。

在所示的示例中,l1ss安全监督程序5014(1)还经由启动服务器4010(a)与启动和功率管理处理器5060通信,并使用相关联的看门狗5010(a)监视启动服务器的操作。启动和功率管理处理器5060控制重置和时钟。尽管在某些实施例中,l2ss安全监督程序5014(2)可以与启动和功率管理处理器5060直接通信,但是在所示实施例中,l2ss安全监督程序仅经由l1ss安全监督程序5014(1)和启动服务器4010(a)与soc5054通信。l2ss安全监督程序5014(2)与未在图35中示出但仍包含在soc5054中的其他处理器之间的交互可以遵循类似的策略。这样避免了l2ss安全监督程序5014(2)与启动处理器5060和其他处理器之间的直接交互,从而降低了通信的复杂度(并因此增加了可验证性)。

在以下示例阶段中,在l3ss安全监督程序5014(3)的指导下,l2ss安全监督程序5014(2)可以命令启动处理器5060执行soc5054的安全受信启动:

还可以控制启动和功率管理处理器5060以调整时钟速度和提供给soc5054的电力,例如,以避免由于过热引起的故障。

在示例非限制性实施例中,l1ss安全监督程序5014(1)通过用于每个访客虚拟机参与者的单独的独立虚拟机间通信(ivc)通道与每个虚拟机安全看门狗监视器5010通信。管理程序4008的架构设计为通过避免锁定和其他依赖关系来允许和支持这种高性能通信,否则这些依赖关系会阻止虚拟机/分区之间的及时高性能通信。因此,管理程序4008被构造为允许l1ss安全监督程序5014(1)满足系统安全认证所需的故障和安全报告保证(例如,将在某安全时间间隔、某cpu运行时间、最大延迟等内检测到并纠正错误和故障)。l1ss安全监督程序5014(1)又与在这种情况下在同一soc5054中的单独处理器上运行的l2ss安全监督程序5014(2)通信。l2ss安全监督程序5014(2)和l3ss安全监督程序5014(3)(在一个示例实施例中其不是在同一soc5054上运行而是在不同硬件封装中的不同硅管芯上的不同处理器上运行)之间的通信可以经由提供心跳命令/响应通道的spi或其他通信总线5070来执行,并且还可能经由单独的错误信号线5072来执行,该错误信号线可以独立于通过spi总线5070传送的数据来发出错误信号。错误引脚信号5072可以是由硬件安全监视器基础设施处理的单向错误标志信号,其告知安全mcu5020出现问题、存在错误状况和/或系统可能无法安全运行。

周期性地,在单独的安全mcu5020上运行的l3ss安全监督程序进程5014(3)请求在soc5054内的处理器5052上运行的l2ss安全监督程序5014(2)提供更新l3ss安全监督程序(并且还指示l2ss安全监督程序是活动的并且感知的)的消息。如果l2ss安全监督程序5014(2)没有响应l3ss安全监督程序5014(3)的请求,则l3ss安全监督程序将认为l2ss安全监督程序已发生故障,并将采取纠正措施。在一些实施例中,安全系统被设计成使得如果在某安全时间间隔(例如,100ms)内不能成功地恢复故障的进程或组件,则使故障的进程或组件脱机并与车辆总线断开连接,以便不会导致不安全状况。

除了图35所示的路径之外,还可能提供从虚拟机4002到l3ss安全监督程序5014(3)的一个或更多个附加通信路径。这样的一个或更多个通信路径可以例如包括以太网和/或pcie链接,该以太网和/或pcie链接将冗余的和/或不同的信息传送给l3ss安全监督程序5014(3),并且即使在spi总线5070发生故障的情况下也可以起作用。

图36是流程图,其示出了检测到的错误如何通过安全框架传播的一个示例。在所示的示例中,假设摄像机传感器数据到达访客os分区和相关联的虚拟机4002中,以由图像处理应用程序5002(包括例如神经网络)进行处理。分区内的基于软件的看门狗5010监视到达的数据,执行完整性检查(框5102)并检测(例如,基于检测何时丢弃帧的帧计数器)完整性错误的发生(框5104)。作为一个非限制性示例,帧计数器不增加将指示某种类的错误,例如,卡住的帧状况,其中相同图像一遍又一遍地被发送。在这种情况下,本地看门狗5010将通知l1ss安全监督程序5014(1)已经检测到这种错误状况(框5104、框5106)。l1ss安全监督程序5014(1)接收错误通知,然后将错误通知发送到l2ss5014(2)(框5108),l2ss5014(2)又将错误通知发送到l3ss安全监督程序5014(3)(框5110)。l3ss安全监督程序5014(3)决定(框5112)如何处理该错误,即,是否采取行动以及采取什么行动。例如,l3ss安全监督程序5014(3)可以决定应该忽略一个丢失的帧,但是如果在y时间量内出现了x个故障的帧,它将采取纠正措施(框5114,例如,重新启动系统)。

对于在其他系统组件中检测到的错误,可以执行安全框架链上的类似错误报告。参见图37。

图38和图39分别示出了用于硬件和软件错误检测的示例错误处理序列。图38的硬件错误处理序列开始于soc5054硬件生成故障(“1”)。该硬件故障由常规的soc硬件检查器(例如,寄存器、奇偶校验器等)检测到(“2”)。硬件错误整理器将一个或更多个检测到的错误与其他硬件错误检测进行整理(“3”),并将一个或更多个错误发送信号到soc上的硬件安全模块(hsm)(“4”)。hsm能够经由错误信号引脚5072直接向l3ss安全监督程序5014(3)发送硬件错误的信号,并向l2ss安全监督程序5014(2)提供中断通知(“5b”),l2ss安全监督程序5014(2)又经由spi总线5070将错误状态传送至l3ss安全监督程序5014(3)(“5c”)。在所示的示例中,l2ss安全监督程序5014(2)向l1ss安全监督程序5014(1)通知硬件错误(“6”),l1ss安全监督程序5014(1)又通知在虚拟机/分区4002上运行的安全看门狗监视器5010(“7”)。安全看门狗监视器5010将硬件故障通知给应用程序进程5002(“8”)。当解决了硬件故障后,soc硬件可以经由驱动器直接将解决方案(或至少正确的或重新初始化的操作)通知应用程序进程5002(“9”)。在虚拟机/分区4002中运行的安全看门狗监视器5010从驱动器5006获悉解决方案(“10”),并通知l1ss安全监督程序5014(1)(“11”)。l1ss安全监督程序5014(1)又通知l2ss安全监督程序5014(2)(“12”)。同时,l3ss安全监督程序5014(3)可以使用质询/响应协议来询问硬件安全模块是否解决了硬件故障(“13”)。l2ss安全监督程序5014(2)可以经由spi总线5070向l3ss安全监督程序5014(3)报告错误解决方案(“14a”),和/或l3ss安全监督程序可以经由错误信号引脚直接从硬件安全模块获悉错误解决方案(“14a”)。

图39示出了在软件故障的情况下的另一示例错误检测和报告情形。在这种情况下,在应用程序进程5002中发生软件故障(“1”)。本地安全看门狗监视器5010检测到故障(“2”)并将其报告给l1ss安全监督程序5014(1)(“3”),l1ss安全监督程序5014(1)又将故障报告给l2ss安全监督程序5014(2)(“4”)。l2ss安全监督程序5014(2)可以分析故障(“5”),并经由错误信号引脚(“6a”)和spi总线(“6b”)将故障报告给l3ss安全监督程序5014(3)。在解决了故障后,例如通过硬件重新启动/重新开始(“7”),本地安全看门狗监视器5010检测到故障已解决(“8”),并将其报告给l1ss安全监督程序5014(1)(“9”),l1ss安全监督程序5014(1)又将错误解决方案报告给l2ss安全监督程序5014(2)(“10”)。同时,l3ss安全监督程序5014(3)可以向soc硬件安全模块发出质询或请求,以询问错误状态(“11”)。soc可以响应于质询/响应经由错误信号引脚(“12a”)和/或通过经由spi总线5070(“12b”)在l2ss和l3ss安全监督程序5014(2)、5014(3)之间的通信将错误状态传送给l3ss安全监督程序5014(3)。

图40示出了提供多个分区的另一示例实现:

·一个或更多个事件参与自适应分区4052;

·一个或更多个时间触发自适应分区4054;以及

·一个或更多个其他分区。

在此特定示例中,一个或更多个事件分区4052可以连接至输入和输出,诸如一个或更多个摄像机数据流通道4056(0),一个或更多个radar数据流通道4056(1),lidar数据流通道4056(2)和以太网数据流通道4056(3)。一个或更多个事件分区4052与一个或更多个事件处理分区4053异步地处理这些实时输入和输出,并将处理的结果提供给一个或更多个时间触发分区4054。一个或更多个时间触发分区4054包括缓冲区4058,一个或更多个看门狗或一个或更多个其他监视器4060以及一个或更多个时间触发图形执行器4062。缓冲区4058存储传入的随时可用的事件数据(其可以是带时间戳的和/或经过滤的)以及用于提供给时间触发事件执行器4062的全局触发信息。看门狗4060监视一个或更多个事件处理分区4053和一个或更多个时间触发图形执行器4062的相同或不同的输出或其他状态信息,并改变其他系统组件,诸如检测到故障或其他问题时的监视微控制器。

通信分区或服务器4010(2)的一个示例非限制性实现提供了可以以不同的抽象和/或划分级别在系统的不同部分之间工作的统一、有效且优化的通信接口。例如,这样的通信接口可用于以下之间的通信:

·不同的soc和/或

·在同一soc上运行的不同虚拟机,和/或

·同一虚拟机中的不同程序,和/或

·同一程序的不同线程。

在示例实施例中,该接口对于消息是统一的,并且还可以用于支持针对gpu和/或媒体用例的流缓冲区之间的通信。无论不同的通信节点有多近或多远,都可以使用相同的编程接口。但是,可以针对实际正在进行通信的距离优化通信接口。

f.自动驾驶软件系统

示例自动驾驶平台

示例非限制性实施例提供了一种自动驾驶平台,该自动驾驶平台感知可直接作用于驾驶的世界的属性。这些可操作的属性(其可以被称为“负担(affordance)”)可以包括以下总体类别:

·障碍物

·路径

·等待条件(例如,交通信号灯、四向(four-way)停车等)

·其他。

当从传感器输入中清除了定义的驾驶的负担并且充分操作为继续驾驶时,自动驾驶就成为可能。

示例非限制性实施例使用负担来定义明确的世界模型,该世界模型提供了问题的因数,并且其对于自动驾驶而言足够强壮和鲁棒。示例实现根据可以实时实况感知的障碍物、路径和等待条件的负担定义了世界模型。示例非限制性实施例使用映射和定位来将来自先前驾驶的负担估计带到当前驾驶上。示例非限制性实施例通过规划、控制以及最终致动,基于世界模型采取行动。

更详细地,图41示出了自动驾驶平台和相关联的架构3000的示例非限制性总体框图。示例非限制性架构3000提供了基于新收集的输入而不断地更新的世界模型3002,所述新收集的输入包括:

·障碍物感知3010

·路径感知3012

·等待条件感知3014

·地图感知3016

·其他(未示出)

这些各个感知器3010、3012、3014、3016由传感器3018和相关联的低级别处理3020通知,诸如(但不限于)摄像机特征跟踪和lidar点云对齐。在示例实施例中,感知器3010、3012、3014、3016例如由包括例如自校准3028和轨迹估计3030的一个或更多个另外的支持层3021支持。

感知器3010、3012、3014、3016用于生成和更新世界模型3002。世界模型3002用于规划3004、控制3006和车辆致动3008。

在示例非限制性实施例中,地图感知3016的各方面被提供给可以与自我车辆远程定位并且可以经由网络3024访问的云地图绘制应用3022。在这种情况下,“自我车辆”是指使用图41平台(以启动其自身的转向、制动、导航、决策)并结合其他系统完成自动驾驶的车辆的角度和/或实例。用于地图绘制的感知3016和定位3026在自我车辆的驾驶之间通过云3024进行通信,以将来自自我车辆的先前驾驶的负担估计带入当前。地图绘制的感知3016和定位3026还可以通过云3024进行通信,以将负担估计带到除了自我车辆之外的车辆的过去驾驶和当前驾驶。例如,云地图绘制3022可以从多个不同的同时期地和/或先前地操作的自主车辆和其他信息源接收输入。云地图绘制3022提供地图绘制输出,该地图绘制输出由定位3026基于例如自我车辆的特定位置来定位,并且该定位的输出用于帮助生成和/或更新世界模型3002。如此开发并实时维护的世界模型3002用于自主车辆规划3004、控制3006和致动3008。

以下简要描述了负担及其在示例非限制性实施例中的作用。下面结合图42给出更多细节。

障碍物感知3010

障碍物感知解决了围绕车辆可在何处驾驶以及其可驾驶多快而不会真正撞到直接感测到的障碍物(例如、对象、结构、实体)的估计的问题。为了安全自动驾驶,通常必须避免与障碍物碰撞,但这还不够。有许多车辆行为,其可以成功地避开障碍物,但是仍然被认为是不安全或不希望的。

路径感知3012

在示例非限制性实施例中,路径感知用于感知在特定情况下可用的标称路径(nominalpath)。路径负担的另一维度是一个或更多个车道变更的可用性。一些示例实施例利用被称为车道图的表示来表示路径负担。车道图可和高速公路匝道上的单条路径一样简单。其他车道图表示可以提供通往所期望的车道的路径,并指示沿高速公路的可用车道变化。更复杂或更完整的车道图可指示附近的车道、车道变更、岔路口、转弯、立体式立交和合并。

使路径明确不一定与估计车辆的方向盘位置或转弯半径的完全积分方法相同。但是,路径负担使得路径估计能够与其他信息相混合。它还允许在与纵向控制交互时有效地使用路径信息。路径负担还允许针对不同的车辆类型考虑不同的控制器3006而无需重新训练。另外,更多的几何自校准3028可以帮助使世界模型3002免于与每个个体自我车辆的细节的交互。

在某些情况下,诸如在开放地区中,可能没有分立式的标称路径集。这种情况可以被称为“区域驾驶”。在示例非限制性实施例中,在这种情况下,估计的路径负担用于将该地区识别为区域,以及指示规划3004和控制3006仅依赖于基本障碍物(障碍物感知3010)来实现驾驶目标。例如,这可适用于开阔水域的自主船或偏远地区的自主4wd卡车。

等待条件感知3014

示例非限制性实施例还可以通过一组规则、约定和/或实践考虑而在纵向上受到约束。一种示例约定是交通信号灯。交通信号灯规则坚持要求自我车辆停下并在某点等待,直到某条件变为真(即交通信号灯变为绿色)。在示例非限制性实施例中,这些规则、约定和实践考虑可以被称为等待条件负担,并且由等待条件感知3014来处理。

一些示例非限制性实施例将等待条件表示为纵向限制车辆并要求车辆等待或减速直到某些条件为真的任何情况,除了速度限制和清晰明显的障碍物。等待条件可包括,例如:

·交通信号灯交叉路口,

·多向停车,

·转弯(yield),

·合并,

·收费站,

·大门,

·指挥交通的警察或道路工人,

·停止的校车,

·单向桥梁仲裁

·轮渡入口

·其他。

等待条件通常由潜在的障碍物引起,诸如在十字路口处的交叉口交通。然而,可能无法从直接感测中感知到交叉口交通,因此示例非限制性实施例通过解决障碍物的危险而提供了自主的情境感知,而障碍物的危险并非总是可以通过可感知或学习的规则和约定立即感知到的。

地图感知3016

在示例非限制性实施例中,地图绘制自身不是负担。相反,它是识别行为的机制,尤其是用于确定在特定地点处应用哪些约定的特定示例。一些示例包括:

·在罗德岛州,在交通信号灯处等待左转的第一汽车在信号灯变为绿色时在迎面驶来的车辆之前转弯违反了法律。

·门控不同道路但彼此之间几乎没有并置的交通信号灯;

·周四下午4点至6点之间不准掉头;以及

·根据一天中的时间改变车道的方向的电子标志。

因此,地图绘制提供了将负担估计从先前驾驶转变为当前驾驶的方法。

可以从先前驾驶更容易获得负担估计,因为它们可以在事实之后产生(即,在选择了动作之后)。虽然地图绘制通常不会承受移动的障碍物,但通常会为静止的基础设施障碍物提供建议。地图绘制还可以提供有关路径和等待条件的非常具体的信息。例如,观察哪些信号灯必须为绿色以便车辆能走特定路径的统计数据是可能的。

更详细的示例架构

图42示出了示例平台3000的更详细细分。在图42中,带有黑线的框指示数据结构(通常存储在非暂时性存储器中),其他框指示处理模块或功能(通常由一个或多个处理器执行指令实现,该指令可包括-例如但不限于-一个或更多个经训练的神经网络的部署)。

图42的示例非限制性平台包括图41中所示的处理功能块,并且还示出了关于那些功能块之间的互连的附加细节。例如,轨迹估计3030已经扩展为包括基本轨迹估计3030和高级轨迹估计3030a。类似地,规划3004已经扩展为包括基本行为规划器3004a、高级行为规划器3004b、车道规划器3004c、路线规划器3004e以及行为选择器3004d。低级别处理3018被示为包括例如基本车道检测3160、垂直地标检测3158、lidar地平面检测3154、lidaricp3152、特征跟踪3150、自由空间跟踪3162、对象跟踪3164和动态占用栅格3102。自校准3028被示为接收规范信息3156作为输入,并且经由校准遥测3157与云系统3022通信。规范信息3156可以包括例如参考信息或第三方参考信息,并且在特定的示例实施例中的机械制图信息、技术规范数据、用户手册数据等。路径感知3012被扩展为包括具有各种能力的跟踪车道图3100以及路径内确定3120;等待条件感知3014被示为使用等待条件3106;地图感知3016被扩展为包括精确地图3105和路线地图3104。定位3026被分解为基本定位3026a和高级定位3026b。详细示出的云系统3022包括hd地图读取器3022a、云等待条件3022b、云车道图3022c以及驾驶匹配和分块3022d。

世界模型3002

示例非限制性世界模型3002的数据结构足够丰富,以容纳可来自地图的数据,并支持中间范围规划3004,诸如规划前方的一个转弯或两个转弯。它们还可仅基于来自实况感知的相对较少的负担来适应驾驶。对于基本高速公路自动驾驶仪,初始世界模型3004可以与所确定的具有路径内对象3120的单个车道图边缘3100b一样简单。在其他示例实施例和上下文中,世界模型3002可以使用车道变更可用性和相邻车道中的对象以及针对在更长距离处更详细的地图(3105)上进行的总体路线规划映射的路线(3104)来推进(advance)。进一步的添加可以包括等待条件3106、车道边界和动态占用栅格3102。在一些情况下,诸如区域驾驶,仅动态占用栅格3102中的对象可以是可用的,而在其他实施例中,等待条件3106也可以是可用的。可以根据驾驶系统的上下文、能力和要求添加不同的能力。

车道图3100

在一个示例非限制性实施例和上下文中,世界模型3002包括单个跟踪车道图3100b。在此上下文中,“跟踪(tracked)”的意思是当车道图被传送时,包括与一个或更多个先前车道图传递的对应关系。在图43所示的一个示例实施例中,跟踪车道图3100b可提供:

·可驾驶边缘的样条(spline),

·车道变更的存在和可用性,

·车道边界,

·一个或更多个等待条件3106(在这种情况下为分叉(fork)),

·一个或更多个路径内对象,

·一个或更多个其他对象3120,

·一个或更多个动态占用栅格3102,

·基本路线地图3104,

·车辆状态,

·一个或更多个争用(contention)区域,

·其他。

一个或更多个车道图3100和动态占用栅格3102通常被传递到车辆坐标系中的规划3004,这意味着实体从传递到传递移动。对于在数据上工作的规划器3004来说,能够更明确地链接到其先前规划以避免小差错(glitch)也是有用的。因此,示例非限制性实施例可以将该功能构建到通信接口中。

在示例非限制性实施例中,车道图可被描述为中心路径或车道或被描述为双车道边界。“样条”可以由有向图组成,其中边缘包含代表车道中心路径的坐标的定向曲线。含义是车辆可以沿着有向边缘行驶到节点中,并通过离开它的任何有向边缘离开。因此,进出节点的所有曲线都可在该节点处具有相同的点和切线。示例参数化是在每个节点上具有3d点和切线方向,并对与每个边缘相对应的曲线使用三次样条。然后,样条由其端点处的坐标和切线约束唯一地确定,并且参数在共享节点的边缘之间共享。

此外,存在从一个边缘到其他边缘的一组连接,这些连接指示这些边缘近似平行并且车道变更被允许进入其中。这些长度来自两个标量距离,该标量距离指示车道变更目标沿路径的距离。第一个是可以实际期望完成车道变更的最早点(这是规划时使用的目标点)。第二个是从该点开始前方的距离,在该距离内必须完成车道变更。这并不一定意味着车道变更立刻可用。

在示例实施例中,在车道图中的每个边缘也存在左车道边界和右车道边界,这也可以由具有其自己的端点和切线的三次样条来表示。为了简单起见,在一些示例性实施例中,不必在车道图边缘之间共享车道边界的数据,因此在表示中没有东西明确地强制边界在边缘之间是连续的或在相邻车道之间匹配。此方法简化了索引,并将图结构限制为可驾驶段(drivablesegment)的图。车道图还可包括用于路径内对象和等待条件的数据结构占位符(请参见下文)。

路径内对象

在示例非限制性实施例中,路径内对象就像捕捉到车道图的可驾驶线上的珠子一样。它们表示对象如何阻碍沿车道图段的前进。它们作为每个车道图段的列表提供。它们包含有关对象的信息,其包括沿着三次样条段从其起点到其第一对象点的距离。它们还包括沿三次样条段的速度。对于每个车道变更,也可能存在布尔(boolean)标志或其他数据元素,其供实况感知使用来指示车道变更是否可用(指示对象障碍物的更简单形式)。

等待条件

在示例非限制性实施例中,等待条件以路径内形式和自由形式提供(就像对象也可以以路径内形式和自由形式出现一样)。路径内等待条件被类似地编码到路径内对象,作为沿着车道图中可驾驶边缘之一的前进点。路径内等待条件可能具有速度。运动中的等待条件的示例会是像校车在停车过程中闪烁灯一样的东西,生成对在校车更远的后面的前进的限制。在示例非限制性实施例中,等待条件带有类型(停车/转弯/合并/特征扩展)、状态指示(例如,绿色/黄色/红色)以及当等待条件为红色时的推荐速度而提供。等待条件也可能带有空间长度,在应考虑该条件的开始点之后对条件的纵向范围进行编码。在非限制性实施例中,绿色意味着不存在等待条件或等待条件不处于活动状态,红色意味着等待条件禁止自我车辆在其间隔内以超过推荐速度(可以为零)的速度运动,而黄色意味着自我车辆应在间隔开始之前降低速度,但前提是必须能够舒适安全地这样做。

在示例非限制性实施例中,交通信号灯交叉路口可以通过在适当的等待线处对类型“停车”进行编码,然后是根据灯设置状态的某距离范围(例如,一米)以及推荐速度为零来实现。可以使用类似的编码来实现四向停车,但是感知将条件的状态调制为红色,直到车辆已停止并且条件的检查变为绿色为止。转弯类似,除了推荐速度不完全为零,而可能是爬行速度。合并可以像转弯一样进行处理,但由于车道图中即将出现合并点,因此明确建议从相应车道中寻找其他车辆/对象的争用。沿车道图在给定间隔内还可提供推荐速度,即使尚未感知到任何对象,也不应超过该速度。因此,示例非限制性实施例能够实现诸如爬行行为之类的事情,这些事情允许感知有机会“看到”所需的争用流量。交通信号灯的等待条件通常与示例车道图中示出的分叉(fork)一致,针对该车道图,不同的分叉对应于不同的交通信号灯。示例非限制性实施例可以通过将等待条件设置为沿着离开分叉的边缘而不是进入分叉的边缘以零进度前进来实现这一点。这允许具有不同状态的多个等待条件。

示例非限制性实施例还实现了自由形式等待条件,用于传达情况,诸如在区域驾驶时看到的交通信号灯。因此,自由形式等待条件可以不与特定的行进方向相联系,而是可以表示为向前的基本距离,但是在一些非限制性实施例中在其他方面是相同的。

在一些示例非限制性实施例中,感知和地图绘制将处理等待条件的大多数复杂性。等待条件的某些内部工作方式不必明确地放入等待条件中,但可以仍是内部感知和地图绘制工作内容的一部分。例如,实况感知可以找到交通信号灯及其角度,并且地图绘制可以表示3d中的交通信号灯的位置并在绘制的和实况感知的交通信号灯之间执行匹配。类似地,可以实况地和/或通过地图绘制估计交叉路口的争用区域,以及在前进通过多向停车之前必须检查的其他交通的争用区域(参见图43)。因此,这样的事情可能在地图中,但是没有被推入规划3004和控制3006所使用的世界模型中。这并不排除规划器3004在合并或多向停车期间通过建议性驾驶与其他车辆进行协商,但是可能会提示请求世界模型3002中的更多信息。

对象

在示例非限制性实施例中,如图43所示的对象由自我车辆坐标系中的3d点和3d速度组成或包括自我车辆坐标系中的3d点和3d速度。可以通过路径内确定3120和动态占用栅格3102来处理对象。

车辆状态

在示例非限制性实施例中,可以基于(自我)车辆的纵向速度、纵向加速度和横向曲率来对(自我)车辆状态进行编码。车辆状态还可以包括gps(地理位置)位置和指南针方向,这对于路线地图3104可能是有用的。还可以使规划3004和控制3006能够携带基本轨迹估计3030接口和can(致动)接口,基本轨迹估计3030接口用于最近的相对运动的快速估计,can(致动)接口用于感测和控制自我车辆。

动态占用栅格3102

图43错误!未找到参考源。所示的动态占用栅格3102在体阵列的示例非限制性实施例中构成,其中二维是空间的,一维是时间的。作为一个特定的非限制性示例,栅格3102可以包括围绕车辆并且以10cm为增量的100m×100m的栅格,在接下来的五秒内以十分之一秒的间隔渲染,从而形成1000x1000x50的栅格阵列。

路线地图3104

在一些实施例中,路线地图3104是大比例地图图形,其中节点是gps航路点,以及边缘链接航路点并指示预期的穿越时间。路线地图3104可以以多个比例存在,诸如用于国家、州、城市、社区等的单独比例。

传感器抽象3108

在车道图3100的上下文中,传感器抽象3158为相同类型的所有传感器提供统一格式,因此它们都可以与车道图的通用表示一起使用。也就是说,在示例非限制性实施例中,一种内部格式可以用于radar数据、lidar数据、摄像机数据等。类似的统一格式可以用于将控制应用回传感器的情况,诸如设置帧速率或执行增益控制。在一些实施例中,传感器抽象3108还提供用于每个传感器分组的时间戳。

基本车道检测3160

在示例实施例中,车道检测估计路径尽可能直接地有效。在示例非限制性实施例中的基本车道检测在图42中示出为从路径感知中分解出来,因为其支持自校准。

示例非限制性实施例可以使用在手动标记的数据集上训练的一个或更多个神经网络来执行基本车道检测3160。通过驾驶生成的自动标记的数据集可以替代中心路径,该中心路径提供了用于自校准和用于路径跟随的数据,但是手动标记可以帮助识别车道宽度。可以使用针对路径负担的标记过程。即,在标记时,可以标记图像中的有效路径。例如,这可以通过用指示路径的平行边(参见图44)的两条折线(polylines)为每个有效路径添加注释来完成。目的是使折线保持平滑,以使两条折线之间的区域具有沿该方向的路径。可以训练神经网络以在图像中提供关于此的数据,诸如每个点处的路径的方向性以及点是否在车道边缘上。还可以定义周期函数,该周期函数从路径中心中的一到路径之间的边缘处的零。在分叉和交叉路口的情况下,可能会有多个路径,其提供一些额外的编码复杂性。一个示例设计分别处理了行进的不同角度扇区。另一个示例明确地标识了此类区域(例如,交叉路口),并对这些区域使用一些更自由形式的路径估计,或者明确地估计了分叉的分叉路径(例如,无论其是否在视觉上得到明确标记的良好支持)。另一个示例非限制性方法是具有拥有不同偏好的一些不同网络(例如,左倾、前倾和右倾网络),其在某种程度上类似于扇区技术。另一示例实现方式定义网络,使得其以预期的路径(例如,由gps建议的)来查询,并返回最接近的有效选项。

出于自校准的目的,示例非限制性实施例提供了基本车道边缘检测3160,其在标记相当清晰时起作用,从而车辆可以从一些手动或自动高速公路驾驶中确定或完善校准。能量最小化可用于网络输出的顶部,其中理想形式的问题是从某些曲线族中找到在神经网络输出中具有最强支持(例如,最确证)的曲线。完成搜索的实践方式的非限制性示例是使用动态编程,其中中间状态是沿行和图像的x坐标,或者x坐标加上边缘线的角度,向上或向下前进以完成搜索,其得到从每列(或每个角度处的每列)开始的最佳支持曲线。如果示例非限制性实施例仅使用x坐标,则仅强制执行连续性。角度的使用提供了强制执行角度连续性的附加能力。

对于偏航的自校准,一些示例非限制性实施例使用基本跟踪的形式。可以通过在几何拟合之后进行基本的左/右分配并将该分类用于自校准的目的来提供这种基本跟踪(尽管提供关联的时间跟踪对于改变车道可能更具弹性)。示例非限制性实施例可以通过使用lidar中的亮度信息作为车道边缘支持的直接提示,来使用lidar执行相同的过程。为此也可以训练神经网络。

虚拟地标3158

示例非限制性实施例提供了虚拟地标检测3158(参见图45),用于自校准侧倾和用于地图绘制。垂直地标是可以被检测的一种示例非限制性地标。因为在一些实施例中,垂直地标检测支持自校准,因而可以从地图感知3016中摆脱(breakout)垂直地标检测3158。

在示例非限制性实施例中,用在自校准3028中期望校正的侧倾量来检测地标。侧倾通常应不大于一度或两度,但是可以更高,因此在一些实施例中,考虑+/-5度范围的侧倾可能是期望的。这可以通过变化的训练数据或训练数据的滚动增加来实现。在一些示例实施例中,神经网络被训练为对垂直地标进行像素级(pixelwise)语义分割,并且基本的后处理产生了由两个端点表示的线(其高度并不那么重要)。当执行几何提取时,这样的示例非限制性实施例可以校正径向变形。

特征跟踪3150

在某些示例非限制性实施例中,图像特征跟踪器3150始终在运行。图像特征跟踪器3150支持高级轨迹估计3030a以及对象跟踪3010二者,因此在图42中被分解为单独的模块。特征跟踪器3150可以对lidar图像、光学图像、radar图像和/或其他感测到的感知进行操作。

拐角点检测器可用于产生用于跟踪的有希望的特征(参见图46),从而开始补充跟踪的过程。在示例非限制性实施例中,通过平衡在所有区域上散布点以覆盖轨迹估计3030的大部分视图以及用足够的点覆盖所有对象的需要,来执行点的分布(尽管单独的跟踪机制也可以被强制到对象上)。在一个示例实施例中,每个跟踪通过分层金字塔中的相对标准的klt图像补丁对齐机制前进到下一帧。在第一跟踪图像中抽象出参考补丁(例如,16x16并且也许是某些的分层比例)。

在执行对准之后,检查新图像中的对准区域与参考路径之间的相关性。如果它太低,则特征跟踪将被删除。如果它是可接受的,但仍低于指示即将失败的危险的阈值,则可以接受跟踪,但会更新参考补丁。该过程在想要保持参考补丁尽可能长的时间以抑制由更新它引起的漂移,但与此同时想要经常更新它以适应跟踪且在跟踪中不会失败之间权衡。在示例非限制性实施例中,特征跟踪被存储在跟踪表数据结构中。在一些实施例中,该跟踪表数据结构被实现为滚动缓冲区,其中行是特征跟踪,而列是图像帧。该表包含最大的行数,并且每个活着的跟踪都可以占用一行。跟踪失败后,它将立即删除并释放表中的一行。

迭代最近点对准(lidaricp)3152

当存在lidar传感器时,示例非限制性实施例还执行某些空间分离的帧之间的迭代最近点对准。参见图47、图48。在一些实施例中,这是通过将第一帧(参考)作为深度图3304进行跟踪而将第二帧作为3d点云进行跟踪来完成的。示例非限制性实施例基于由基本轨迹估计模块3030给定的运动来初始化相对姿势3306,并且还使用该数据针对运动对lidar扫描进行预先校正(pre-correct)。然后,示例非限制性实施例预先计算深度图3304的平滑版本的导数(derivative)图像。来自新的帧的3d点被投影到参考深度图中(例如,通过并行计算),并且找到在深度图中很小的区域中的最佳匹配深度(如果距离相差很大,则出于鲁棒性而拒绝该点)。在一些实施例中,导数用于累加到诸如例如6×63d姿势更新方程的表达式。该过程是迭代的。在一些非限制性实施例中,该功能支持使用lidar的高级轨迹估计3030a和障碍物检测3010二者。

lidar地平面3154

对于lidar地平面3154,一个示例非限制性估计过程是执行强力(bruteforce)搜索,该强力搜索针对深度图中的所有接近点测试每个可能的地平面姿势。其他实施例可以使用稍微较少计算量的方法,该方法对车辆附近的深度图中的每个像素块执行最小二乘补丁拟合,并且然后对从车辆出发的地平面直到车辆附近的深度图中的块的每一列进行对线的二维搜索。然后,一些示例实施例使用这组线作为输入数据来运行随机抽样一致性(ransac)过程,每对线提供假设,并且这些线本身用作一致性测试。示例非限制性实施例可以使用执行迭代最近点对准(icpa)的相同代码,但是使用平面作为参考深度图。

自校准3028

为了执行任何形式的配准(registration),无论是在相同驾驶的各时刻之间还是在不同驾驶的各时刻之间,示例非限制性实施例通常希望在车辆上的不同传感器之间具有精确的配准。这通常称为校准,并且其分为内(intrinsic)校准和外(extrinsic)校准。内校准可以涉及给定传感器的规范(canonical)姿势时传感器从世界角度到图像角度执行的地图绘制。外校准可涉及传感器相对于世界坐标系或车辆上的某些参考坐标系的姿势。此类配准的不同来源包括规范信息3156,标称(nominal)设计值(诸如,针对镜头的变形效果),工厂或服务中心处的校准以及自校准,其中自校准是指(仅)使用在正常操作期间收集的传感器数据(例如,使用一个或更多个传感器来校准一个或更多个其他传感器)来确定校准参数。

自校准是一种强大的工具,因为它带来了灵活性、操作简便性以及高级别自动化的潜力。在实践中,工厂校准程序(虽然很有吸引力,因为它们可以被设计为使用专门设计的标记或刚性金属3d群(constellation)来简化手头的估计任务)具有实际挑战,因为存在诸如丢失校准文件、软件漏洞、在车辆出厂后无法恢复的程序或校准环境和/或由于传感器上的机械力而导致的校准变化之类的真实世界问题。然而,应该说,在一些实施例中,工厂校准通常有助于控制过程变化并避免车辆被超出规范而构建。

一旦考虑到规范信息3156和光学形变的标称值,最大剩余可变性通常归因于传感器的旋转姿势。在一些实施例中,应将摄像机、radar和lidar的安装位置再现到厘米(或甚至毫米)精度,这意味着对传感器数据的剩余平移影响最小。内校准可能会产生重大影响,但是由于上述原因,在某些实施例中,可以优选地在已知的标称值附近仔细地控制变化,并且仅在必要时对每个传感器应用特定的内校准。这将使传感器(摄像机、radar、lidar)的侧倾、俯仰和偏航变化保持在其安装位置。

图48错误!未找到参考源。示出了使用非常高级别的冗余的示例非限制性的全自动自校准器3028。校准通常会在很长一段时间内保持稳定(如果不稳定,则通常应在机械级别上进行处理)。这意味着示例非限制性实施例可以在一段时间内(例如,几小时内),从许多独立时刻收集自校准证据。然后,示例非限制性实施例可以从这些独立的数据点中寻找清晰一致性,仅在结果清晰明确时才接受该结果,否则拒绝结果。拒绝可能导致在允许自动操作或数据收集前等待更多数据,使用最后已知的良好值,或者最终如果经过了太多时间,则将车辆标记为要维修。这种方式使用高级别的冗余本质上是交叉验证的一种应用,交叉验证是统计和机器学习中的长期存在的方法,在这里应用于更几何性的自校准问题。在示例实施例中,规范信息3156还可包括自校准统计的遥测(telemetry)信息3156,其被发送回云3022中的中央监视功能(参见图42)。

图48示出了示例非限制性自校准器3028,其部分地基于车辆里程表(odometry)自校准光学摄像机、lidar检测器和radar检测器。摄像机针对俯仰(pitch)3206、侧倾(roll)3212和偏航(yaw)3218进行自校准;lidar传感器针对俯仰3232、侧倾3234和偏航3240进行自校准;并且radar针对偏航3252进行自校准。还执行传感器之间的交叉估计(例如,针对摄像机和lidar之间的俯仰和偏航3220)。

图48的示例非限制性实施例可以通过以下方式来管理冗余:一次对一个参数执行校准,并针对每个参数使用原则上由其自身确定参数的小的片段(snippet)数据,并允许该片段数据投票到该参数的投票直方图中。然后,通过考虑直方图与理想单峰的接近程度,可以确定一段时间内的成功与失败,如果每个片段单独指示正确的校准值,则会产生该理想单峰。由于校准值可能偶然地改变,因此示例实施例考虑了长但有限的时间窗口。例如,这可以通过明确的投票滚动缓冲区来实现,也可以通过采用衰减设置缓慢地衰减投票直方图以达到所需的半衰期来实现。

一些影响可以比合理的自校准时间窗口更快地改变传感器的姿势值。例如,施加制动通常会使车辆稍微向前俯仰。然而,这样的影响通常整体地施加于车辆,而不是施加于传感器之间的相对姿势,因此,将在下面的部分中考虑作为轨迹估计3030的一部分加以更好地处理。

摄像机的侧倾

示例非限制性实施例确定传感器相对于地平面的旋转。这为传感器的侧倾3212和俯仰3206提供了参考(但没有为偏航3218提供参考)。原则上,侧倾和俯仰是相互依赖的,联合起来形成“向上向量(upvector)”,意思是从传感器中观察到的地平面的法向向量(normalvector)。

在某些情况下,对于驾驶目的,侧倾3212的确定不是绝对关键的,因为侧倾变化在机械上是相对可控的,并且轻微侧倾的影响不太即时。然而,侧倾经常或甚至通常是不可忽略的,特别是出于地图绘制目的以及对于联合汽车周围的传感器。

为了对侧倾进行自校准,一些示例实施例使用如图45所示的垂直地标3158。如果侧倾不显著,则基于神经网络的检测器可以在场景中找到垂直地标。在某些示例实施例中,可能在对径向变形和内参数进行某种形式的后处理和校正之后,其结果是在摄像机的内校准坐标系中的一组线。神经网络应被训练以反映实践中预期的侧倾变化。在一些示例实施例中,两条或更多条不同的线将向上向量精确定位为它们在投影坐标系中的交点。可替代地,示例非限制性实施例可以假设俯仰3206是已知的(其通常至少近似为真)。这在图像中的无穷远处的线附近提供了一条线,仅留下侧倾3212要由与来自垂直地标的单个附加线的交点确定。这允许示例实施例随着时间针对侧倾角进行直方图投票。

前摄像机的俯仰

为了确定俯仰,示例非限制性实施例假设完成了侧倾校准和校正。自校准前置摄像机的俯仰3206的一种方法是经由车道检测3160利用道路车道线。这可以直接链接到驾驶遇到的问题,并且在很长一段时间内,几乎任何汽车都会遇到足够量的车道线观察以支持俯仰校准。在一些实施例中,可以采用具有潜在的后处理的基于神经网络的车道线检测3160,并输出连接的曲线或点列表。如果示例非限制性实施例从那些连接的曲线之一中获取一对点,一个点靠近图像的底部,而一个点稍高一些,则在大多数情况下,它们可以用来形成沿着汽车附近的地平面的与车道线平行的线。通过使用两条这样的线并将它们相交(例如,使用齐次坐标中的叉积(crossproduct)),示例非限制性实施例获得了图像中的交点。理想情况下,该点应在图像中的水平线上,其是汽车周围局部地平面的消失线。因此,示例非限制性实施例可以使用图像中交点的垂直坐标来对水平消失线投票。

前摄像机的偏航

传感器的偏航3218在意义上是不同的,因为在世界上没有什么比它所引用的地面更规范的了。另一方面,地平面可以简单地认为是连接车辆的车轮底部接触点的平面。类似地,可以相对于由具有若干个传感器位置的规范信息3156进行的机械制图中的姿势来定义偏航。但是,出于驾驶目的,至少对于前置摄像机,了解摄像机相对于驾驶前进方向的偏航3218,并且尤其是相对于示例非限制性实施例在命令零度转向角时获得的控制的偏航,很有帮助。理想地,这也应导致车辆沿直线驾驶。

在可能的范围内,一些示例实施例将偏航校准视为转向架(steeringrack)的自校准的任务。在任何情况下,示例非限制性实施例可以使用车辆里程表来确定车辆驾驶了多远以及车辆可能转向了多少。然后,示例非限制性实施例可以使用任何车道线上的点(参见框3160)从一个时间点向前投影到另一时间点,并要求这些点在时间的第二时刻与相应的车道线对齐。这涉及通过摄像机的未知偏航反向投影到地面,并在时间的第二时刻通过摄像机的未知偏航投影回去。这允许以与车辆的控制回路(loop)非常紧密相关的方式解决摄像机的偏航。由于距离变化,偏航对车辆更近行驶的点的图像的影响是不同的。例如,如果距离缩小到一半,则施加力的杠杆臂相差两倍,导致移动图像点的偏航相差两倍。

其他摄像机的俯仰和偏航

如图48所示,对于所有摄像机,都可以以相同的方式解决侧倾问题,尽管出于诸如立体之类的高精度目的,一些实施例使用将一个摄像机的侧倾与其他摄像机进行匹配的标准图像匹配技术来解决相对侧倾问题。俯仰和偏航的相似之处在于,相对技术通常是最好的。例如,假设示例非限制性实施例已经计算了前摄像机之一的侧倾3212、俯仰3206和偏航3218。然后,对于在已经校准的摄像机和要校准的摄像机两者中的车道线的任何观察,示例非限制性实施例获得针对尚未校准的摄像机的俯仰3224和偏航3226的建议。在示例非限制性实施例中,俯仰和偏航使车道线到地面的两个投影对齐(lineup)。这样的示例非限制性实施例能够解决车辆的高度(由于气压、悬架(suspension)和负载)。由于每个摄像机的侧倾、俯仰和偏航原则上都可以自己解决,因此,正确的高度则是将从不同摄像机到地平面的投影对齐的高度,如果摄像机之间有基线,则这会导致唯一的高度。通过使用车辆里程表来预测驾驶时道路线和其他内容的移动,可以对不与初始摄像机具有即时重叠的其他摄像机继续执行此过程。例如,通过观察先前在前摄像机中观察到的车道线,可以很好地限制侧面摄像机的俯仰。

如果示例非限制性实施例具有许多对应关系,则它们可以利用已知的内校准来解决两个摄像机之间的对极(epipolar)几何形状。对极几何形状的子极(epipole)指示两个传感器之间的基线方向(这是规范信息3156中已知的线)。对极几何形状还给出了围绕该基线的摄像机之间的相对旋转。唯一剩下的歧义是围绕基线的关节(joint)旋转,其可以以与一个摄像机的俯仰相同的方式确定。更一般地,可以由对应关系确定摄像机的关节几何形状和投影中心,并且如果摄像机不是共线的(collinear),则它们与投影中心具有唯一的3d姿势对齐,例如在规范信息3156中引用的机械制图中。然后,除了总的偏航旋转(其可由驾驶方向确定)以外,相对于地平面的车框架(机械制图)的姿势由地平面中的多立体三角点确定。

lidar的侧倾和俯仰

示例实施例使用以下假设来确定任何lidar传感器的侧倾3234和俯仰3232:车辆附近的点应具有与地平面相对应的频繁模式(frequentmode),并且这些点的结构在两个方向上均应水平。例如,示例非限制性实施例可以寻找每个框架中车辆附近的地平面(3154)的稳固的平面拟合(planarfit),并使用其产生用于侧倾和俯仰的单独的投票。然后,还可以在lidar距离中观察高度。使用迭代最近点算法可以很好地估计多个lidar之间的相对位置。

lidar的偏航

车道线可以在lidar强度数据以及摄像机中观察到,因为车道线(参见3160')通常是反射性的,并导致lidar有源光(activelight)的较强反射。出于这个原因,示例非限制性实施例可以使用与用于摄像机的本质上相同的技术来相对于驾驶方向校准lidar传感器的偏航3240。

与摄像机一样,示例非限制性实施例也可以使用一般运动估计,并将其与基于里程表预期的运动进行比较。使用车道线可以看作是这种情况的一种特殊情况,但似乎更为直接,因为它是在对驾驶最重要的区域中,并基于随偏航角而强烈变化的特征完成的。

radar

由于汽车radar在距离、相对速度和方位角(bearingangle)方面最有用,因此要校准的主要事项是偏航角3252。有趣的是,示例非限制性实施例可以使用与摄像机类似的算法。由于radar返回点目标并且还有对它们是否是静止的确定,因此示例非限制性实施例可以使用每个静止目标轨迹,并寻找radar传感器的偏航,该偏航导致目标轨迹最接近在补偿了当前车辆运动后的点。对于前指向的radar中的目标,侧向变化是与偏航角联系最紧密的一个,并且提示与摄像机偏航角校准中使用的提示相同(并且与后指向的radar的提示也类似)。

轨迹估计3030

示例非限制性实施例可以具有传感器,只要它们起作用并且正确地传达给主估计过程,就可以提供不太容易发生完全故障的近似轨迹估计。车轮“滴答声(tick)”(例如,感测到的旋转角度变化)与方向盘角度(例如,来自方向盘角度传感器)一起已经提供了基本的平面轨迹。一些示例非限制性实施例添加了带有陀螺仪传感器的惯性测量单元(imu),以提供准确的相对旋转。这意味着示例非限制性实施例可以将轨迹估计视为始于用那些传感器建立的近似估计的非线性优化问题,而不必担心维护多个替代解决方案。

基本轨迹估计3030

基本轨迹估计3030是近似但快速且方便的估计。这对于控制器3006以及对于在所有感知任务、障碍物、路径、等待条件内部的前向预测以及对于地图绘制都是有帮助的。对于这些任务,示例非限制性实施例不依赖于gps,并且应该访问一致的平滑路径。因此,用于基本轨迹估计3030的接口是可以在其中放置对两个不同时间之间的相对运动的查询的接口。该实现是一个轻量级且快速扩展的卡尔曼(kalman)滤波器,其以车辆里程表和imu作为输入,并用结果保持滚动缓冲区以便服务于查询。

基本定位3026a

某些其他任务,诸如在地图中找到当前车辆位置的起点,用gps姿势更好地服务(在这种情况下,gps姿势意味着完整的六个自由度,而不仅仅是纬度/经度或朝北/朝东)。在一些实施例中,这由基本定位模块3026a服务,该基本定位模块与gps、车辆里程表和imu一起工作,并且执行与基本轨迹估计类似的过滤,但是在gps坐标系中。

高级轨迹估计3030a

图49示出了示例非限制性轨迹估计器3030a的框图。对于高级轨迹估计3030a,任务是基于良好注册的摄像机或lidar传感器读数提供非常准确的相对轨迹,以支持视觉地标或lidar地图绘制的详细视觉三角测量。

在示例实施例中,轨迹估计是用于配准的基石。可以争辩说,示例非限制性实施例可以将驾驶的所有时刻定位到地图,并且这将给出轨迹的估计。然而,示例非限制性实施例应考虑使某些配准任务困难或容易的实际条件。对于传感器之间的校准,此任务很有帮助,但通过对相同几何形状进行多次冗余观察,并经由来自时间上相同时刻或接近相同时刻的环境针对每个时刻,可以使这项任务变得容易。

对于轨迹估计3030a,一些示例非限制性实施例具有一组观测值,但是具有一些冗余,因为示例非限制性实施例可以使用车辆里程表、视觉里程表、lidar点云配准和radar轨迹来估计轨迹。示例非限制性实施例还具有简化了问题的平滑度和运动模型。由于所有那些测量都与驾驶轨迹在时间上非常接近地进行,因此跟踪视觉特征更加容易,并且更容易信任生成点云的表面没有改变。由于这些原因,在实践中,一个驾驶的各时刻之间的约束要比各个驾驶之间(或等效地,从驾驶到地图)的约束强。因此,示例非限制性实施例估计了驾驶轨迹,从而它们可以将驾驶之间的配准时刻问题提升到配准驾驶轨迹(这将估计的自由度从很多个降低到了多半为三个,稍后将讨论)。

对于地图绘制,示例非限制性实施例估计驾驶轨迹,以便它们可以在驾驶之间进行配准,这进而允许将来自先前驾驶的信息带入当前。这样的结果之一是,示例非限制性实施例仅需要将在某个时间窗口内估计的轨迹作为“相对形状”,而不需要在全球范围内的自由漂移或在gps坐标系中的轨迹。示例非限制性实施例仅需要足够长的窗口以确保在区段上看到足够多的稀疏地标,并且它们的相对位置不会太变形以至于不同驾驶的区段不能对准。

一些示例非限制性实施例使用所谓的“滑动窗口”滤波器3312,其中通过利用所有传感器的似然贡献的非线性细化在时间窗口上估计轨迹,然后向前滑动该时间窗口并重复该估计。出于实时目的,在一些实施例中,可以在后台线程上执行高级估计,同时可以在前景线程中运行基本轨迹估计中的快速滤波器,以将估计转发到最高频率imu/车辆里程表测量的头部。驾驶间估计或驾驶到地图的估计也可能在后台线程中发生,因此快速滤波器仅用于为了实时目的校正最新的当前车辆运动数据。

加窗轨迹估计问题被参数化为车辆的姿势序列(如上所讨论的,传感器校准可被用于确定公共坐标系中的传感器姿势序列)。示例性约束如下。车轮刻度线(tick)提供姿势之间的预期的距离。方向盘角度提供了预期的轨迹局部平面曲率。imu给定局部相对姿势约束,以及可选的重力向量约束。视觉特征跟踪3308被三角测量3310,并包括在束(bundle)调整3312中,其提供相对姿势约束(特别是当摄像机覆盖车辆全部周围时,这些约束尤其强大,因为众所周知高视场可以提高视觉里程表的可靠性和准确性)。后续lidar点云段之间的迭代最近点的结果提供了相对姿势约束。静止的radar目标可以以与视觉上跟踪的点类似的方法使用,并且提供限制相对姿势的距离和方位观察。原则上也可以使用gps,但是如果窗口足够长,以至于gps可以通过抑制漂移来提供帮助,则相对位置的变形已经达到比示例非限制性实施例所要求的对准精度更高的误差幅度。设计良好的示例实施例的漂移的合理预期可能是百分之一,这意味着窗口可以对应于例如30-50m,最大例如100m。一些实施例在执行相互对准时强调窗口的较新的部分。

障碍物感知3010

示例非限制性障碍物建模产生对象跟踪3164、自由空间3162和动态占用栅格3102。

对象检测

示例实施例在各个摄像机帧中使用深度学习(参见图50),以产生像素级分类输出图像和像素级回归输出。为了产生对象,将像素级分类图像与多个四路(fourleg)的标量回归图像组合。将像素级分类地图返回对象核心,其中对象核心像素是回归器有效的像素。回归器产生对边界框的投票。此输出被后处理到检测边界框中。单独的分类映射可以确定对象的子类。可以对用于表示圆柱深度图(进行一次扫描并将其表示为深度图)的lidar数据使用类似的过程。在去除自我运动的影响之后,其他实施例在两个后续对准的lidar扫描中执行基于运动的检测。

对象跟踪3164

示例实施例出于几个原因执行对象跟踪3164。对象跟踪3164可以通过桥接检测较弱的帧来提供粘性检测(参见图51)。对象跟踪3164可以通过在跳过检测的帧之间进行桥接来提供性能增益,因为它是比现代神经网络更轻的处理。对象跟踪3164还用于提供对运动的仔细理解,因为在时间帧之间它比两个独立检测的比较更精确。

与将特定对象的帧与通过训练在各种各样的对象上获得的对象的一般模型进行匹配相比,实施例在几分之一秒钟前为其提供模板的帧的匹配过程更容易。另外,示例实施例将对象检测跨时间关联以进行一些简单的前向运动预测(例如,用于路径内确定),这可以更好地通过跟踪来完成。对象在时间上的运动轨迹也用于将视觉跟踪与radar跟踪或lidar相关联。

一些示例实施例将边界框跟踪以及与radar关联和其他处理有关的信息存储在滚动缓冲区表中(类似于特征跟踪)。

对于较早的帧中的每个边界框,示例非限制性实施例在其边界内使用特征跟踪。首先,示例非限制性实施例以对由所有特征点对指示的比例变化的中值的异常值具有鲁棒性的方式估计比例变化。然后,示例非限制性实施例在调整缩放比例之后,通过所有特征点将两个转换标量估计为该维度中的转换的中值。这样就可以将每个边界框逐帧转换和缩放为新帧。然后,示例非限制性实施例将向前跟踪的边界框与边界框的新检测进行调和(如果针对新帧运行检测)。最后,为了使到达时间测量的准确性最大化,对于每个边界框,根据每个边界框的大小,一些示例非限制性实施例在时间上从当前帧向后到具有适当时间基线的较早帧运行特征跟踪分析。该处理是基于特征跟踪提供的特征跟踪表完成的。

到达时间

示例非限制性实施例使用各种技术来确定正确的时间基线。这样的时间基线例如取决于相对运动直至特定速度(例如,当前驾驶速度)的范围。然而,时间基线也受到运动对象的一个或更多个速度(例如,另一车辆或以某最大速度接近车辆的其他对象的速度)的影响。时间基线还可以取决于例如最大所需距离范围和相对标称的对象大小。示例非限制性实施例分析在最大距离范围内,一个像素的图像大小的变化是否应该是由最紧急的可能相对运动引起的像素变化数目的某给定部分。参见图52。因此,例如,假设示例非限制性实施例针对最大运动中的n个像素变化,测试对象的尺寸为w,并且最大距离为d。像素中的投影大小s为s=fw/d,其中f为某焦距缩放比例。假设最大闭合速度为v,则每时间单位的大小变化为导数s’=-fwv/d^2。注意,示例非限制性实施例可以将该s的表达式替换到此式中以获得s’=sv/d。对于长度为t的短时间间隔,大小变化的绝对值为tsv/d。如果示例非限制性实施例要求它至少为n个像素,则得出要求tsv/d>=n。示例非限制性实施例可以将其用作在给定的某大小上执行运动分析需要多少时间的方法:

t=dn/(sv)。

因此,边界框越小,示例非限制性实施例应等待的时间越长。示例非限制性实施例可以将固定值用于d(例如说100m),n(例如说6个像素)和v(例如说30m/s)。利用这些示例,示例非限制性实施例得到t=20/s。

对于20个像素大小,这等于一秒钟,而对于100像素大小,则等于五分之一秒。特别地,该分析表明,对后续帧执行计算将需要600个像素大小。到达时间可以帮助消除与radar测量的对应关系,并且对于非常大的对象,角度就足够了,因此运动扩展通常与仅视觉巡航控制以及远处对象最相关。

示例实施例如下确定到达时间(根据时间t2处的最新帧测量)。从时间t1到时间t2行进的距离与要行进的剩余距离之间的比例为(d2/(d1-d2))。假设是恒定运动,因此,如果示例非限制性实施例将该比例乘以(t2-t1),则结果为到达时间:

t=d2(t2-t1)/(d1-d2)

一些示例实施例以到达时间的倒数(被称为紧急度u)工作。如果将以像素为单元的投影大小的公式求反,得出d=fw/s,则使用该求反来代替d可以得出紧急度的公式:

u=(d1-d2)/(d2(t2-t1))=(s2/s1-1)/(t2-t1)

注意,当第二个比例大于第一个比例时,紧急度变为正,并且在较短的时间段内以较大的比例差异增加。请注意,准确时间戳t1和t2(或至少准确的时间差)的重要性。

对于没有生成足够数量的特征跟踪的任何对象(例如,不足够大的对象),一些示例实施例执行特殊的klt对齐,其包括除了转换之外的其模型的缩放。对于不具有超过某些最小数量的特征跟踪的所有边界框,都可以执行此操作,并且提供与处理的多特征跟踪版本相同的关联和到达时间测量。

距离

一些示例实施例使用来自自校准的长期俯仰,通过将观察对象的最低图像行映射到平坦地面的假设而推导出摄像机对象的粗略距离感测,可选地在短时间尺度上通过图像稳定或imu辅助的基本轨迹估计进行调整。虽然简单,但此方法的一个特性是它表现为实际距离的连续变形。对于高速度,道路通常较为平坦,因此在与某反应时间相关的比例范围内,估算往往是明智的。更靠近地平线的距离变得越来越延展,因此在到达地平线之前限制距离更好些。一些示例实施例通过启发性地将地平面重新定义为越来越陡并且在某高度(例如40-50m;见图53)弯向墙壁的平滑斜坡来实现这一目的,将图像行投影到该斜坡上并获取结果距离。然后,将到达时间值用于确定对象速度,其“模拟”所测量的到达时间。给出模拟的相对速度(闭合速率)只是距离乘以紧急度。使用此输出的巡航控制模块可以假装这些是物理值。

这会使远处的对象在该最大距离处变形为近似“棍(stick)”。但是,最需要距离提供反应时间保持(hold-off)距离并为视觉-radar关联提供粗略建议。用于估计距离的更复杂的方法(诸如,训练神经网络以直接估计距离)可能会有用。如果存在lidar,则可以使用它提供高达lidar范围的精确距离(取决于lidar,该距离可能短于视觉可检测到的范围和radar可以提供的距离)。

radar检测与跟踪

示例实施例将radar轨迹存储在与视觉跟踪相似的滚动缓冲区表中。radar跟踪通常具有准确的距离和距率(rangerate)、近似的方位角,以及不那么有用的高度角。

视觉radar关联

为了匹配视觉和radar跟踪(参见图54),示例实施例使用在radar和视觉跟踪之间共有的属性,其主要是方位角和紧急度。示例实施例以此方式在跟踪之间形成匹配分数。示例实施例还可以使用具有大方差(匹配分数的这一部分的低权重)的视觉的粗略逆距离。然后,示例实施例使用短的时间滑动窗口来关联跟踪。即,示例实施例在很小的时间间隔内使用跟踪表中的数据解决了该问题。使用时间窗口的好处在于,示例实施例可以根据不仅来自当前时刻的信息做出决定,同时仍然做出可以随着新数据变得可用而改变的试探性(tentative)决定。示例实施例计算逐对的关联分数矩阵,并且然后开始以贪婪的方式分配匹配。示例实施例还可以检查哪些配对是“快乐”配对,该检查是就该对内两个配对者(mate)比任何其他匹配都更喜欢对方而言的。不具有此属性的配对是可疑的。在这里可以采取保守的方法,并使用最能限制纵向加速度的所有合理匹配之一,但假阳性和假阴性都是个问题。

自由空间3162

示例实施例执行深度学习处理,该深度学习处理还产生指示图像中所有可驾驶区域的像素级自由空间图像。就实施例还需要“自由空间速度”或自由空间变化的速度而言,这还不够。这种情况的一个例子是在另一辆车的尾部之后驾驶的自我车辆,在这种情况下,自我车辆应该确信自由空间会通过领先的车辆驶离而在其前方打开。处理此问题的一种示例方法是使用驻留在对象边界框内的区域,并假定那些像素根据边界框的运动分析而移动。进一步的语义分割(诸如知道什么是可以移动的对象以及什么是静态背景)可能在那方面很有用。对于未归类为车辆的所有像素,某些实施例可能还需要保持保守(因此例如永远不要假设行人离开)。一个更完整的尝试是对自由空间边界附近的所有区域执行运动分析。

对于lidar,该过程是相似的。示例非限制性实施例可以使用车辆附近的地平面估计,并将具有高于地平面的点的大量聚合的区域或者具有显著变化率的区域声明为障碍物区域。示例实施例还可以使用运动分割来验证车辆正在驶出提供足够的自由空间变化率的道路或者可以组合视觉跟踪和lidar距离。另一个选择是基于在视为深度图的lidar数据上运行的卷积神经网络来确定自由空间。

动态占用栅格3102

使用任何可用数据来渲染动态占用栅格3102(参见图55),诸如使用自由空间和跟踪的边界框、动态radar跟踪、地平面上方的lidar点以及通过被视为深度图的lidar数据中深度的变化率进行的运动估计。示例实施例可以进行某种形式的运动分割和对地面点的分类,以便避免错误分配的数据片段。

路径感知3012

示例实施例利用了可用于路径感知3012的所有提示(参见图56的场景)。它们可以根据偏离中心参数(从路径中心的正向或负向横向偏移)、偏离方向参数(从路径方向的正向或负向角度偏移)和曲率参数获得相对于车辆的对主路径的估计。在一些实施例中,这是由神经网络产生的,该神经网络是根据时间上向前驾驶的路径的许多示例并与当前图像相结合而训练的。在保持车道稳定的同时获取训练数据,然后基于主摄像机和两个偏移摄像机使用合成渲染在横向上和方向上进行增强。示例实施例可以类似地利用lidar数据来做到这一点。该过程可以与经典的规划器/控制器一起使用,以定义给定的特定的偏离中心/偏离方向/曲率的情况下返回中心的路径,并利用路径开始处的反向转弯半径(具有一定的时间偏移)来定义训练示例。该训练时间控制将训练网络以预测到该控制器3006的输入,从而使路径估计明确,从而提供期望的分解因子和机会,以将结果与其他输入相组合并在需要时将其暂时融合。

可以以不同的方式来整理数据,以提供适合于左分叉和右分叉、左转和右转以及直行的训练数据。同时运行这些网络可在每种情况下给予多个路径选择的负担,而无需依赖地图或甚至路线。其他实施例使用对道路网以及导航路线(基本上是两层,其表示道路/无道路以及路线/非路线)的渲染,所述导航路线在当前gps姿势周围的窗口中的地图的鸟瞰图切口中是期望的,该窗口足够大以捕获定位的不确定性以及足够的前方选择的复杂性。与仅向左/直行/向右相比,该路线可用作更精细的意图,并为转弯的形状提供提示,仅要求网络估计当前姿势的变换。可以通过驾驶并移位被切掉与典型gps误差相近的量的地图,来自动生成用于此的训练数据。示例实施例还使用来自基本车道检测3100b的输出,该输出可以给出中心路径以及车道边缘的估计。

来自视觉-radar相关联的跟踪的车辆轨迹也用于提供路径提示。这在标记模糊不清或几乎消失了,而存在自我车辆正在跟随的一排汽车或至少一个领先车辆的情况下很有用。来自保持相同速度的自我车辆前面的领先车辆的radar关联的视觉跟踪(与radar和角度的距离,例如边界框的底部中心的距离,与视觉的距离)提供了连续的“面包屑(bread-crumbing)”路径。示例实施例可以将那些用作对车道中心在何处的投票。如果车辆正在改变车道,这可能是误导,但在非常模糊的情况下仍然有帮助,并且如果没有其他提示,则允许实施例遵循约定。可以通过从自校准获得的偏航的值来调整所有上述测量值(并且俯仰被用于地面投影)。根据另外的实施例,也可以使用来自地图的道路的直接形状。

然后,示例实施例在时间滑动窗口上执行估计。时间滑动窗口相比卡尔曼滤波器可能是更优选的,因为它允许实施例暂时接受和拒绝信息。卡尔曼滤波器需要一个永久性地接受或拒绝的测量,而新的测量可能会到达以证实或使先前的测量无效。使用时间滑动窗口,示例实施例可以使用时间窗口上的所有输入源来执行鲁棒的拟合过程。估计的输出是车道图的组成部分。最重要的是车道中心以及左右车道边缘的样条。示例实施例不仅估计自我车道(其中心最接近自我车辆的车道),而且还估计该车道的左右车道(如果有足够的支持)。这是为了支持车道变更,以及在车辆不在车道中完美居中时表现良好。示例非限制性实施例还产生与车道图的先前实况估计的时间关联。车道中心和车道边缘跨时间对应。由于它们在帧与帧之间的移动不多,并且自我运动估计可用,因此与确定车道边缘是在左还是在右(这在车道变更期间可能定义不清)相比,这是一个更容易的确定。但是,一旦做出新的估计,就可以反向进行与先前估计的对应,并且唯一的平滑机制是滑动窗口使用相似的重叠数据。

关联信息可以用于保持累积标量(scalar),其对在时间上任意两个时刻之间向左或向右发生的车道变更的小数的量进行计数。示例实施例将其实现为标量值的滚动缓冲区,并在通过该缓冲区完成一次传导时重置标量。然后,该界面允许读取最近过去的任何两个时刻之间的车道变更的量。

路径内确定3120

图57示出了路径内确定的问题。示例实施例在跟踪的对象与每个相关路径之间执行路径内确定3120。所考虑的路径被投影到被渲染为像素图的图像(或lidar坐标系)中(请参见图57)。示例实施例获取所讨论的边界框中已被确定为对象的一部分的所有像素(例如,边界框中的所有非自由空间点,或者通过语义分割被确定为对象点的所有像素),并通过进行前向预测对其进行调节(例如,使用向前外推的一秒或更多秒的最后半秒上的边界框的运动),然后在对象的像素图和路径的像素图之间执行比较。然后,示例实施例可以在任何重叠区域上使用某些阈值来确定对象是否正在侵占所测试的路径。为了提高效率,可以按照适合边界框大小的金字塔比例完成此操作,以便在测试中使用近似固定数量的像素。

在一些实施例中,该过程在所有对象与主路径以及在左侧和右侧与其平行的路径之间进行。然后对象可以被分配给多个车道,就像当前的自我车辆可以被分配一样。如果侧面摄像机可用,则也可以在两侧当前车辆旁边的车道上进行(并且还会为此类检测生成距离和速度信息)。

等待条件感知3014

图58错误!未找到参考源。示出了典型的等待条件场景。示例实施例使用具有分类层加上用于边界框的回归器的深度学习类似于障碍物来检测交通灯。单独的层可预测红色/绿色/黄色,并且交通信号灯的跟踪方式与其他对象相同。停车信号和转弯信号也被类似地检测。示例实施例还通过标记整个可视交叉路口区域并为其预测边界框来训练用于检测交叉路口。在此,示例实施例可以在语义分割类别指示交叉路口所针对的整个区域上进行更仔细的几何分析,并寻找针对底部、顶部、左侧和右侧投票的中位数。示例实施例还使用具有预测终点的回归器的深度学习来检测可见的等待线。所有这些检测被传递到地图感知3016以进行三角测量,并发送到云2022中的地图绘制。具有高级定位3026b的地图还用于验证并添加到信息中,以及建议交通信号灯转弯关联。

在映射的交通信号灯和实况感知之间执行关联,以便可以使用该状态来门控(gate)适当的路径。对于转弯和多向停车,将检查周围环境中是否有竞争交通(contendingtraffic)。特别是对于多向停车,示例实施例等待,直到自我车辆已经停止,并跟踪正在移动的自我车辆前面的一般区域中的所有其他交通以及跟踪从相邻区域指向交叉路口并在自我车辆之前停止的交通。示例实施例考虑等待条件,其在以下情况时被清除:当没有其他物体移动到预期的行驶路径或朝着预期的行驶路径移动,以及在交叉路口附近等待的竞争交通在自我车辆之后停止或者长时间没有移动,或者实施例已经基于映射统计信息建立了其具有道路的通行权并且它们不移动。然后,示例实施例在交叉路口的协商期间监视车辆周围的对象。

地图感知3016

图59错误!找不到参考源。示出示例非限制性地图感知场景。由于传感器校准和轨迹估计,该问题可大致减少到找到对齐两个驾驶段的三个自由度。这两个驾驶轨迹的姿势在gps坐标系中已知近似为(例如但不限于)10m数量级(gps定位精度可能有时会更好,但最终会包含不确定性更高的分布)。这意味着在彼此相距10m之内通过的驾驶轨迹具有残余对齐,其可以建模为沿局部地面形状的局部平移和旋转,只要这些轨迹足够靠近以共享公共可驾驶地面。

地图绘制地标检测

相关的视觉地标是道路标记(平行的实线、点划线、垂直线、道路图像),道路边界(可驾驶表面过渡到可被视为静止的非可驾驶表面的点),垂直地标(诸如,杆子(pole)、交通标志和交通信号灯)。在一些实施例中,视觉地标由具有适当后处理的神经网络检测。

示例实施例还使用固定的radar目标作为地标,其特别具有改善纵向定位精度的潜力,并且其自身可用于提供关于固定的radar目标在基础设施中是预期的还是非预期的(诸如停止的车辆)的信息。

lidar点云或密集的视觉特征跟踪的三角测量也可以被存储并用作“地标”,因为它们可以有助于驾驶之间的对齐。由于它们产生的较高数据速率,示例实施例可以将它们视为单独的层。一些实施例以不对整个表面形状进行编码而支持对齐的方式总结了点云,诸如使用平面、线或表面拟合,或者通过检测特征。另一种替代方案是使用2d投影或切片(slice)。

地标跟踪和三角测量

在一些实施例中,道路标记和道路边界的3d位置是通过在车辆附近向地平面反投影来确定的(请注意,这甚至可能发生在车辆通过那部分地面之后)。如果lidar可用,则可以通过距车辆更远的确切地面形状来改善这一点。垂直地标、交通标志和交通信号灯使用观察的时间窗口进行跟踪和三角测量。如果lidar可用,则可以使用lidar距离。固定的radar目标是从单个radar观察中以3d近似确定的,但要从多个观察中仔细估计。相对于车辆姿势之一确定所有3d位置,从而可以使用估计的驾驶轨迹将来自驾驶段的所有地标链接到同一坐标系中。但是注意到,避免了使用全局坐标系的必要性。

地图流编码

来自轨迹估计3030、3030a的姿势链与地标3158一起构成了由每个驾驶车辆产生的“地图流”。示例实施例对此进行足够高效的编码,以至于每米驾驶仅折合(amountto)几个字节。通过现代移动数据通道传输每米几个字节到云3022的成本与推进车辆的成本比相形见绌。这样就可以让每个车辆实时贡献地图流,并缓存数据,直到可以使用wifi热点或仅挑选一些驾驶段才能降低成本。

地标(诸如交通信号灯、垂直地标和交通标志)很少出现,以至于利用相对于当前车辆姿势的几个坐标字节对其进行编码不会破坏带宽预算。道路标记被仔细编码为带有“开/关事件”的曲线。例如,即使在考虑合适的熵编码之前,用于仪表板的开/关事件也可以用少于每仪表板一个字节来完成(因为通常每米少于一个仪表板,并且厘米精度通常就足够了)。可以通过在给定其过去轨迹的情况下预测其横向位置可能性,来对道路标记序列的侧向(sideways)曲率进行熵编码。例如,示例实施例可以以25cm的步长向前预测,并且使用3个位产生用于横向位置的8个分立式选择,相加达到每米12个位。完整的工业强度解决方案可以在更细粒度的分布上使用算术编码。单个地图流可以平均包含多条四路并发道路标记线。假设变换曲率保持恒定,还可以利用相对于预测的差的算术编码对车辆运动的时刻到时刻变换进行编码。车辆获得的gps读数也被编码在地图流中。

如所提及的,点云可以被处理为单独的层。它们被压缩为一维或二维信号。

高级定位3026b

高级定位3026b将车辆定位到先前的驾驶,从而实现引入来自先前驾驶的数据以协助当前驾驶任务的最后步骤。

高级定位3026b可以组合来自不同地标源的输出,并且还可以打包来自不同时刻的信息。即使该实现方式更多是单一模式类型,或者基于某种形式的随机或目标采样,这也适用。示例实施例评估搜索空间中的一些位置,然后渲染到整个搜索空间中。例如,如果实施例选择具有高斯模式和鲁棒异常值混合的单个获胜者,则其可以渲染该高斯和异常值混合至整个空间。该强力表示也与gpu并行性很好地对齐,从而允许该实施例以可管理的计算负载来明确地测试所有可能性。通过找到可以被假设是完整的搜索空间,因为它捕获了具有不可忽略的似然的所有可能性,实施例可以“反转(invert)”进行决策的顺序。其他实施例可以以系统级搜索、优化或采样来整合来自不同数据源和时刻的可能性的所有细节,以避免过早地送交给在模块之一内部的模式。

示例实施例可以完全独立地或者部分利用来自先前姿势的先前数据来计算每个时刻的姿势(对数(log))似然(likelihood)空间,以建议要测试的姿势。该实施例可以使用估计的车辆轨迹来在时间上反向聚合证据。对于最新姿势空间中的每个姿势假设,估计的车辆轨迹暗示着每个先前时刻的反向姿势链。由于轨迹是在完全的六个自由度(6dof)上估计的,因此那些姿势可能会稍微落在先前姿势空间的外部,因此实施例然后可以将它们投影到恰好在空间内部的最近的姿势。这允许从先前的姿势空间中获取值到与最新的姿势空间相同的坐标系中。然后,实施例可以使用任何组合,诸如将对数似然与随时间的某些衰减权重相加。实施例还可以通过允许区域中的最高似然对下一时刻的累加似然做出贡献来适应轨迹估计中的漂移。这导致了用于累加向前估计的动态编程过程。然后可以确定组合似然空间中的最大点,并且可以对(例如但不限于)置信度形状、是否存在多个模式以及最佳解决方案的支持程度执行分析。

用于测量每个数据源的似然贡献的所采用的证据类型是投影对象的数据(例如,道路标记、道路边界、垂直地标、交通标志、交通信号灯、固定的radar目标等)与当前传感器值(作为非限制性示例,使用预先计算的图像,诸如每种地标类型的距离变换的单调映射,以使分数由投影、查找和累加组成)的匹配程度。对于lidar点云,实施例可以类似地通过将当前传感器值视为深度图并与针对该姿势的地图点云的渲染进行比较来进行。

云地图绘制3022

地图流存储(驾驶存储)

在一个示例实施例中,完整的地图绘制解决方案包括云服务组件群,这些云服务组件从车辆接收数据,处理该数据以将驾驶配准在一起并为车辆提供地图数据。与传统地图相比,它们更像是“聚合驾驶”。

该地图服务群的第一组件是地图流存储。该组件保存由车辆贡献的原始数据,并按gps图块进行分割和链接,以便可以通过gps图块向前和反向跟随这些原始数据,并基于时间和冗余进行某量的修剪。在一些实施例中,由于数据已经被很好地压缩,因此以原始形式保存数据,因此为用于索引、匹配和地图生成的不同算法提供了最大的灵活性。

驾驶索引

驾驶索引器与存储密切相关。它允许通过gps检索驾驶段,并可选地通过近似的区段路线进行过滤。

驾驶匹配

驾驶匹配是将多个驾驶小心地对准由地标所负担的精度的任务。典型的操作是使用驾驶索引器找到驾驶段的候选集。假设候选集是与通过相同道路段或道路段序列的行驶略有不同的路。基本操作是要能够匹配两个驾驶段,然后可以通过几个成对的操作将其扩展以对齐多个段。该操作与由定位执行的操作非常相似,唯一的区别是驾驶匹配器现在从某个时间点开始拥有整个驾驶(不仅是过去)。因此,示例实施例可以使用在一些示例中修改的相同机制,以将所有证据带到以驾驶段的中间为中心的姿势似然空间。另一种替代方案是使用完全的6dof迭代最近点过程。实施例可以匹配固定长度的段,例如50m,这与其gps跟踪所判断的相似,并且匹配的结果是区段内(例如,在区段的中间附近)的姿势之间的6dof姿势链接(pose-link)。

驾驶图

驾驶图是系统地执行驾驶匹配的结果,以在映射工作的整个范围内尽可能多地进行有希望的匹配。对驾驶之间的姿势链接的引用以它们可以轻易从驾驶段找到的方式存储。因此,与允许前向和反向遍历驾驶的驾驶存储相结合,姿势链接允许在它们被预期为最佳匹配的位置处的匹配驾驶之间跳跃(hopping)。

相对坐标系

上面讨论的驾驶图可以被索引到(例如,经由gps坐标),但是通过驾驶匹配,驾驶段可能比原始gps坐标所允许的更精确地相关,并且示例实施例不会强制所有驾驶转换成通用的全局坐标系(例如一个gps)。某些实体的坐标总是相对于某个其他参考。在gps情况下,参考系是卫星群。在摄影测量学中,坐标系的选择称为量规(gauge)。量规的不同选择使事物看起来不同地不确定。例如,基于三角测量的地标点的量规将使点看起来更确定,但摄像机位置更不确定,反之亦然。类似地,使用卫星系统作为车道线或停车线所在位置的参考,将通过定位相对于卫星的车道线或停车线的能力来限制准确性。如果实施例改为使用在其中观察到车道线或停车线的参考驾驶,则精度可以与将当前驾驶配准到参考驾驶的能力一样高。由于实施例依赖于车辆附近的视觉/lidar/radar地标,而不是经由卫星系统来回,因此这可能更为准确。因此,一些实施例使用根据驾驶定义的坐标系而不是gps坐标系工作。在一些实施例中,每个图块(tile)的最佳精度不是相对于卫星而是相对于图块自身的坐标系,并且通过将一个图块的坐标系与其相邻图块的坐标系相关联的姿势链接来考虑图块之间的关系(或可以在每个图块中独立执行工作,这也是一种功能方法)。

图块地图

为了简化在图块中使用驾驶工作而不必不断重新评估坐标系,示例实施例构造了图块地图。参见图60。这相当于在每个驾驶和每个已配准到其中的gps图块之间添加了姿势链接。也就是说,示例实施例已基于gps坐标系将地球分块为多个图块,例如以50m正方形图块,并且对于每个驾驶,都配准了从驾驶到它通过或即将通过的每个图块的双向索引链接(几乎由10mgps不确定性定义)。对于每个图块,实施例尝试匹配其通过驾驶匹配链接到的所有驾驶,从而导致多个姿势链接和驾驶的多个连接的组件。可以经由姿势链接将这些连接的组件变换(transform)到相同的坐标系,例如通过从某些根驾驶开始执行dijkstra过程。这导致这些驾驶的配准可能比gps所允许的精度更高。作为最后的步骤,示例非限制性实施例竭尽全力找到将联合配准的驾驶对齐gps坐标系的变换(单个变换)(自然地基于来自所有聚类的驾驶的所有gps观察,例如针对每个驾驶的单个平移偏移量的模型(例如,建模大气条件偏差)加上针对每个gps观察的独立的鲁棒高斯误差的模型。与各个gps测量甚至是跟踪相比,这可能更精确地配准每个连接的组件,因为实施例可能会利用非常精确的地标对齐方式将许多经过偏差校正的gps测量结合在一起以配准到图块中。这类似于“基于视觉地标的差分gps”。

然而,由于图块之间的关系是“未认证的”,因此实施例还估计并存储每个图块中的每个连接的组件与相邻图块中(以及相同的图块,如果适用的话)的连接的组件之间的姿势链接。这些姿势链接可能并不总是存在,这意味着所讨论的连接的组件之间的配准并不比gps精度更精确。当从一个区段到另一个区段跟随驾驶时,驾驶本身是两个图块之间的自然姿势链接(因为它被记录为相对链)。图块地图将驾驶配准到两个不同的图块中,并且无论链在图块之间的边界处的哪个位置被断开,驾驶中的姿势链接都将略微不同于其之前的姿势(到一个图块)和其后的姿势(到另一图块)的配准。因此,该姿势链接提供了图块之间的姿势链接,其通知了图块之间的预期的毛刺(glitch)。实施例可以直接与各个驾驶一起工作,或者可以使用将两个连接的组件联合起来并将它们在图块之间的姿势链接融合为联合估计的所有驾驶。

总之,图块地图允许示例实施例与在它们之间具有姿势链接的图块形状连接的组件一起工作,并且在每个连接的组件中,已经为所涉及的驾驶的所有数据建立了坐标位置。仍然没有任何地方都没有毛刺的世界数据的单一强制布局,因此处理数据的一种方法是从一个图块的一个连接的组件开始,然后使用dijkstra进程作为根将数据布局。图块地图提供了一些功能,用于基于指定图块和作为根的连接的组件,或者只是给定的指定图块,在给定的图块集上对数据进行布局(在这种情况下,功能将找到并从一个连接的组件开始,然后继续进行以添加其他组件,直到所有数据都已布局好为止)。

定位图块生成

为了定位的目的,示例实施例融合了图块图中每个图块的每个连接的组件的地标信息。对齐后,这相当于将诸如道路标记、道路边界、垂直地标、交通标志、交通信号灯、固定的radar目标和点云表面之类的地标关联起来,对它们进行去重复并为其提供最佳估计。通常,由于已尽最大努力进行配准,因此从概念上讲,这相当于基于一些径向衰减的支持测量内核以及使用具有某些相关半径的非最大抑制来找到峰值支持。然后,类似于地图流的编码,执行定位图块的紧凑编码。

多个图块中的定位

每个图块(或更确切地说,图块中每个连接的组件)进行定位。当接近图块的边缘时,连接的组件之间的姿势链接被用于从下一个图块定位该连接的组件。

其他实施例在重叠的图块中使用单独的定位。只要重叠的图块是可用的,并且在离开先前图块之前具有足够的重叠以定位到新的图块,就可以支持对地图信息的连续访问,而不必将整个地图强制到单个全局坐标系。例如,可以通过具有四向冗余的简单正方形分块、在每行中具有移位以具有三向冗余的正方形分块或具有三向冗余的六边形栅格来实现分块。图块大小是一个权衡,因为它应该足够大以通过足够的地标来支持强定位,而又足够小以不会由于轨迹估计的不准确性而具有对齐问题。图块也应合宜地足够小以不装载不必要的数据。

地图绘制元数据

与配准没有直接关系的数据称为元数据。元数据分为两个不同的类,一类直接帮助驾驶,并且另一类真正是辅助(auxiliary)数据。例如,帮助驾驶的元数据的类型是交叉路口的位置和等待条件,哪些交通信号灯的哪些状态允许哪些车道轨迹继续前进(或继续前进但让路),在哪个区域寻找多向停车处的竞争交通,停车场的位置和轨迹统计(尽管后者是从核心配准数据中提取的)。更多辅助数据的示例包括:哪个地址对应于哪个业务,在一天中的特定时间和一周中的一天的特定车道中的典型交通密度是多少。为了将元数据功能与配准实现分开,允许用户相对于要进入驾驶存储的任何驾驶的车辆姿势插入元数据的片段(piece)。如果信息仅在gps级别上精确,则可以通过相对于gps坐标插入信息来简单地进行处理。但是,如果信息需要更高的精度,则由向用户发布坐标系锚点的核心配准层来处理该请求。从用户的角度来看,坐标系锚点是guid,并且坐标系相对于车辆的当前姿势进行表达。核心配准层所服务的机制是,如果用户引用了相同的guid,则配准将(尽最大努力)恢复与在将guid提供给用户时使用的相同的坐标系。然后,更高级别的服务组件可以通过参考核心配准层发布的坐标系来插入和检索精确定位和定向的信息。这种机制允许将数据的存储和所有权与支持其精确配准的服务分开(尽管精确定位确实取决于核心配准服务)。

示例实施例实现了核心配准层,其内部保持坐标锚点的目标密度,并响应于用户请求发布那些锚点。还可以响应于请求即时(onthefly)生成锚点。后一种实现允许更仔细地控制所发布的锚点的密度。

云车道图

在图块地图所隐含的驾驶布局中,实施例寻找具有足够共同支持的区段,从而得出支持驾驶的车道图。可以通过使至少一定数量的区段遵循同一路径且小于一些平移偏差(例如30cm)和方向偏差(例如5度)来测量支持。

实施例通过开发在每个节点处具有点和切线的有向图来解决核心车道图估计问题。参见图60。这是一个混合的分立式/连续估计问题,从原理上讲,它适合于表述为具有出现的可能性估计的贝叶斯(bayesian)估计问题。这样做的好处是,它清楚地将参数化、似然确定和先验定义以及搜索/优化方法分开。通过使用驾驶中车道变更的统计以及在驾驶中检测到的道路标记和自由空间的类型,在建立基本车道图之后,在第二步中估计车道变更。

先验概率分布可以包括有利于更简单的图、更少的节点、更少的边缘、更少的具有多个边缘的节点的成本项(负对数先验似然项)。这是为了避免不解释任何驾驶数据的虚假车道段。实施例还可以包括使平行但不共享节点的车道段彼此排斥直到最小车道宽度为止的项(使用诸如s形状(sigmoidshape)或其他快速衰减到最小车道宽度之外的恒定值的某物)。这是为了在具有多个驾驶的平行道路段上保持稳定性,并调整车道数量。实施例还可以包括支持边缘的标称长度的项(例如10m)。

可能性包括所有驾驶被给予图的可能性。这就像在接近的平行段之间可能发生任意的车道变更的情况下,通过图任意地选择路径的生成式可能性。为了给驾驶评分,实施例实现了通过图找到最可能的路径来解释驾驶的过程。此过程可能对两件事有用,既可以为驾驶分配通过现有车道图的路径,又可以调整样条的连续参数。此过程通过动态编程进行。对于每个姿势,实施例找到在适当方向上合理接近的样条路径,并测量每个样条路径的可能性。这意味着每个姿势都会获得可能的边缘点分配的短列表。然后,实施例增加了某些边缘过渡的可能性,这导致了从驾驶中每个姿势的一组边缘点分配的意义上来说,通过图的最佳路径的动态编程问题。然后,实施例可以相对于节点参数计算最佳路径的成本的导数。如果实施例已经具有图拓扑和近似布局,则它们可以由此使用非线性细化来微调一个图块的节点参数(更精确地,图块的一个连接的组件)。

实施例在三个步骤中提出了初始图拓扑和近似布局:首先确定基本车道段,然后找到分叉/合并,并且最后是车道变更连接。

为了确定基本车道段,将驾驶的每个无穷小部分(其具有点和方向)建模为在点+方向的三维空间中的对该点和方向的投票。实施例应用小波形状的内核,其以小角度在平行于方向的车道宽度的一部分处掉落,然后将点和方向抑制到一些最小车道宽度和角度间隔,然后变为零。然后,实施例在点+方向空间中搜索连接的点集,该点集在局部最大值处与该方向平行并且具有正内核投票累加(可能具有滞后性)。

然后,实施例识别出分叉/合并。最好将这些识别为对两个个体(individual)区段有强大支持过渡到对一个区段有强大支持的点。这不一定完全在分叉/合并点本身处,而是在它周围稍大的结构中。一些实施例分析邻域以获得最佳结果。例如,实施例可以确定圆的半径并分析每个圆的半径大小,查看有多少个良好支持的区段进入圆和退出圆。可以对每个入口段和出口段执行分析,以分别确定哪个是其最常用的对应出口和入口。当两个不同的出口段共享相同的入口段时,即为分叉,并且当两个不同的入口段共享相同的出口段时,即为合并。

为了考虑车道变更,实施例识别出车辆越过车道线的清楚情况。这是通过实况感知(以及可选地还包括指示器信号)标记可能发生车道变更的区段来完成的,然后可以从核心车道图投票中删除这些区段,但反而有助于车道变更连接所在位置。还可以分析车道标记和平行度,以确定被允许且安全的车道变更的位置。

云等待条件

如果地图中的路径信息给出了要跟随的“可切换轨道(switchablerail)”栅格,等待条件是纵向约束,在由于车辆前方障碍物而不能立即变得明显的情况下,其可能需要等待或转弯。地图绘制允许实施例以比实况感知更多的信息来估计这些。参见图61,该图示出了地图上的等待条件,如粗线段所指示的。

基于实况出现捕捉交叉路口交通信号灯和多向停车的交叉路口检测器,发送与地图数据流捆绑在一起的信息。这还允许实施例聚合来自映射的驾驶的该信息。这采用来自映射的驾驶的驾驶模式信息、交叉的驾驶方向以及在可重复位置处等待/停止的汽车得到增强。

检测到的视觉停车线也与地图流一起发送。这细化了交叉路口检测给出的停车点。同样,通过映射的驾驶和检测沿轨道的公共停车点,也可增强停车线信息。

交通信号灯是配准地标的一部分,但是就其状态而言当然也很关键。实施例挖掘(mine)用于到交通信号灯的停车线和特定于车道路径的链接的驾驶。特别地,如果车辆被认为是在停在停车线后面的第一汽车,则实施例收集在该车辆沿着特定路线前进之前和之后从该停车线正好看到的交通信号灯的状态的统计。这允许实施例检测哪个交通信号灯切换状态以允许特定路线。该实施例还注意到诸如在交通左转期间的转弯模式。

通过使中心区域连接到每个停车点来处理多向停车(基本上是没有交通信号灯的停车行为的交叉路口,其中没有一个具有完全的通行权)。在一定程度上可以将该区域感知为实况的或将其估计为停车点前面的可驾驶区域,但也可以通过地图绘制来增强。在中心区域以及围绕中心区域的竞争者区域中检测并跟踪其他交通。如果在此区域中检测到其他交通(车辆、骑自行车的人、行人)并指向中心区域,则将其视为竞争者。如果它们存在并且在车辆停止时已经停止或已经在前进,则判断它们在车辆前方。如果它们仍在以不直接威胁的方式移动并且尚未与中心区域邻近,则车辆在它们的前面。

尽管实施例寻找高速与当前车辆路径交叉或合并到当前车辆路径中的其他交通,但是在车辆必须停止或减速以使其自身有机会感知竞争交通的情况下,频繁发生转弯和合并。该情况的证据是,在特定位置经常减速或停车,以及交通模式为交叉或合并。如果实施例在没有前者的情况下遇到后者,则它判断合并更像是高速公路入口,而如果同时具有两者,则将其判断为停车合并。在这样的点处,实施例使用针对每个车道收集的速度统计,并估计其具有与该速度相对应的足够可见性的最早点以及实际的第一争用点。这可以允许其小心地减速、停车并适当爬行。转弯还包括其他车辆有通行权的交叉路口,通过交通左转弯和即将来临的转弯(即,多个车辆都同意哪个车辆具有“下一”转弯)瓶颈。

地图匹配

地图匹配找到定位的地图与其他现有地图之间的对应关系。这会在定位的地图上注入辅助信息,诸如出口名称、兴趣点、地址和人们可理解的路线目的地。参见图62,该图示出了一个代表性视图,它示意性地示出了路径之外的附加定义信息。它可能以适应辅助信息的若干提供者多种形式出现。

示例方法不将地图的自动生成基于具有人工注释的现有地图,而是随后执行较轻形式的匹配。出于连续性原因,基于最尽力gps坐标来维护某些数据是很有吸引力的,因为这样可以以稳定方式更轻松地进行长期维护。但是,对于需要非常精确的定位的数据而言,可能并非如此。

规划3004

示例实施例使用规划层次结构。参见图63。从概念上讲,路线规划器3004e可以以提供针对离开城市的路线的分数的国家规模运行,并且可以以提供针对离开区域的路线的分数的城市规模运行。然后,有一个车道规划器3004c,它为接下来的几个街区提供车道序列的分数,并提出了对最合乎需要行为的要求。然后,有一个行为规划器3004a、3004b,用于对不同行为(诸如,车道变更或停留在车道中)进行评分或仅确定其可行性。最后,做出行为选择3004d作为最合乎需要的可行行为,并将其传递给控制3006和致动3008。对于某些行为,诸如车道变更,实施例坚持它,直到确定其完成或中止。规划以某频率重复(对于较小规模的规划层其可以更高)。

路线规划器3004e

路线规划器3004e从路线图以及目标节点和当前节点获取大规模地图图形。目标节点和当前节点可能已经基于gps目标点和最后已知的良好gps读数通过简单最近邻查找获得。在一些实施例中,路线规划器3004e运行图搜索算法(如果图很小,则诸如a*/d*或dijkstra)。它通过图形从当前节点到目标节点返回最佳路线。对于大规模的问题,这可以分层进行,诸如以仅具有高速公路的更简单图形的美国大陆规模,以及以具有更详细的图形的城市规模。分层规划使用来自较大规模规划的道路点(way-point),该道路点距离足够远(但在较小规模规划器的范围内),因此交接(hand-off)点处的任何潜在小故障(由于规划粒度之间的差异)都可以忽略不计。整个路线规划(无论是否分层)都会产生规划的路径,该规划的路径由gps道路点列表组成。这样的道路点包括将来用作道路规划器目标的许多城市街区(例如,公里)的道路点。其他实施例具有用于下一级详细规划器的多个备选方案的每个规划器输出成本。

车道规划器3004c

车道规划器3004c将路线规划器3004e的输出作为输入。它可以与映射的车道图(并且根据高级定位,在其中的对象姿势)以及从路线规划器到未来一些城市街区的目标点和方向一起工作。目标点和方向被映射到车道图中最匹配的可驾驶点和方向(通常使用gps和指南针方向)。然后,在车道图上从车道图中的当前边缘开始运行图搜索算法,以找到到达目标点的最短路径。包括从当前点处开始以及从具有车道变更的车道图中的每个边的起点处开始的车道变更。车道变更会受到距离惩罚(例如50m)的惩罚,如果立即开始车道变更则距离惩罚较少(例如25m),因此,如果需要车道变更,则规划在可用时勤勉进行。

基本行为规划器3004a

行为规划器3004确定基本行为(诸如停留在车道或向左或向右变更车道)的可行性,从而使可行行为可以与来自车道规划器3004c的最期望的行为相匹配。如果不确定车道变更安全且可用,则默认行为是停留在车道中。由基本行为规划器3004a测试的主要三种行为是停留在车道中,以及遵循车道图中的任何分叉或选择,以使与车道规划器所请求的匹配最大化,或者向左或向右变更车道并使匹配最大化。

基本行为规划器3004a以具有等待条件和路径内对象的跟踪的车道图作为输入。跟踪的车道图可以来自地图制图或实况感知。规划器3004a在不进行车道变更的情况下,考虑针对短距离(例如50-100m)的主路径树中可用的每条路径,并将它们中的每一个与车道规划器3004c的输出进行比较,以找到最近的路径。如果高级定位3026b不可用,则改为使用路线规划器3004e的输出。可替代地,如果路线规划器3004e中的下一个硬曲率是右或左,则该实施例可以支持(favor)向右分叉或者向左分叉,以及向右车道变更或者向左车道变更。除了主车道图树以外,一些实施例还在从当前车道图边缘(如果存在的话)立即向左和向右变更车道后,从车道图边缘开始相同的过程。这给出了通过车道图的三条路径,以及由与车道规划器3004c输出相匹配所支持的一条路径。同样,路径之一应对应于先前的根车道图边缘。

在一些示例实施例中,基本上通过运行具有与该行为有关的纵向约束的纵向控制器,来独立地处理所有三个路径以进行纵向控制。对于停留在车道中,例如,车道可包括主车道路径中的对象和等待条件。对于车道变更,还添加了目标车道中的对象和等待条件,包括自我车辆旁边和后面的对象。结果是最小减速量(或最大加速量)或完全的安全拒绝。在用于车道变更的基本行为规划器3004a中,一些实施例在主车道和目标车道之间创建简单的速度相关的样条插值,并且将其发送到行为选择器3004d以表示车道变更。实施例可以创建这样的路径,使得其对于自我车辆已经处于车道变更中的情况是可用的。如果车道图中只有主路径可用,则备用路径将使用位于车道边缘之外的路径。

高级行为规划器3004b

高级行为规划器3004b比基本行为规划器3004a考虑更多的自由形式前向轨迹。为此,高级行为规划器3004b除了基本短期规划器3004a的输入之外,还将动态占用栅格3102作为输入。然后,高级行为规划器3004b生成围绕所讨论行为的标称路径的路径的扇区(fan),诸如在末端随着转向量的变化而稍微横向偏移的路径。原则上,可以使用任何路径系列,但是二维或三维路径系列可能是合理的选择。高级行为还可以考虑对象跟踪。将这些路径与动态占用栅格进行比较,从而检查其安全性和合意性,例如舒适性和与标称路径的一致性。

行为选择器3004d

行为选择器3004d基于行为规划器3004a、3004b的输出以及来自车道规划器3004c的请求,执行一些简单的逻辑。除非自我车辆已经处于车道变更中,否则一些实施例可以应用以下逻辑:如果车道规划器3004c请求自我车辆停留在车道中,则其仅停留在车道中(这意味着该实施例将中心路径从车道图中的主车道传递到控制器3006)。如果车道规划器3004c请求车道变更,则本实施例启动车道变更,前提是通过车道图确定它是可用的,通过行为规划器3004a、3004b确定它安全且无过度制动。

如果自我车辆已经在车道变更中,则通常继续车道变更,直到确定完成为止。通过在跟踪的车道图中查看偏离中心参数并处理车道变更的四分之一、一半、四分之三,然后声明车道变更已完成,可以对此进行监视。在车道变更期间,发送到控制器3006的路径是由行为规划器3004d产生的车道变更路径。

控制3006

在许多实现方式中,没有精确地定义规划3004和控制3006之间的描绘。控制器模块3006的任务是尽可能接近地遵循从行为选择器3004d发送的并且接近于可以由自我车辆实现的东西的前向轨迹(横向和纵向)选择。参见例如图64。控制器3006使用紧密反馈来处理未被建模的规划外事件或行为,或导致与理想差异的任何事物(诸如未期望的延迟)。在一些实施例中,类似于规划器,控制器3006使用将控制作为输入变量的前向预测模型。前向预测模型会产生可以与所需状态(在这种情况下为所请求的横向和纵向路径)进行比较的预测。找到了将差异最小化的控制,并进行了时间过滤。时间过滤(诸如在标准pid控制器中)在某些情况下很有用,因为如果没有时间元素,则任何未建模的延迟都可能导致振荡(oscillation)。在基本的纯追赶模型中,可以将简单的前向预测模型与在其处测量差异的单个前看(look-ahead)点一起使用。

实施例也可以使用模型预测控制。在这样的控制器3005中,可以采用对车辆运动建模的微分方程的欧拉(euler)正向积分(或任何形式的正向积分)。然后可以在将来的多个点处测量差异,并通过一些目标函数来平衡差异。车辆运动的建模可以包括车轮打滑以及任何对精确路径再现有用的东西。对于纵向控制,一些实施例基于相对距离、相对速度和自我速度使用具有查找表的标准pid控制器。舒适度限制被用于加速度(例如5m/s^2)和急动(jerk)。类似地,速度相关限制被用于转向角和转向角速率。g.使用该技术的无人驾驶车辆的附加示例。

该技术还可以用于由执法部门或公司安全部门使用的无人驾驶巡逻车。无人驾驶巡逻车是上述无人驾驶车(50)的改良版本,具有专为巡逻和保安功能设计的其他功能。当用作无人驾驶巡逻车时,该技术包括车身,用于控制车辆的具有高级片上系统的计算机以及经过训练以执行巡逻和/或安全功能的一个或更多个神经网络。例如,无人驾驶巡逻车可包括在汽车的dla上运行的cnn,该cnn被训练为识别以下中的任何一个:(1)至少一个其他车辆,通过识别其他车辆的车牌、品牌或外观(例如,型号、颜色)中的一个或更多个,(2)交通事故,(3)受伤的人,诸如骑自行车的人、行人或其他旁观者,(4)起火,(5)人与人之间的对抗,(6)犯罪活动,诸如闯入或贩毒,或(7)道路危险,诸如倒下的树木、电源线、杂物或坑洼。

红外摄像机优选地用于无人驾驶巡逻车上,该摄像机通常用于夜间巡逻,以侦查犯罪活动、起火和定位人员。合适的红外摄像机包括具有36度视野以及对于人来说有效距离为300m的紧凑型热像仪,大约是较大的热辐射对象(诸如汽车)的两倍。在优选实施例中,可以使用长波红外(“lwir”)热像仪核心来提供变焦能力,并且当计算机识别出无法以足够置信度识别出的可能的高度兴趣项目时,计算机将车辆停止在安全的位置并放大该项目以进行更准确的评估。

无人驾驶巡逻车可以被配置为使用车辆的蜂窝无线调制解调器和天线来发送关于所识别出的事件的存在和位置的无线通知。尽管dla被设计用于使用经训练的cnn进行快速高效的推理,但cnn可以替代地在片上系统的gpu上运行。

无人驾驶巡逻车可以接收全点公告或安珀(amber)警报的无线通知,识别执法机构寻求的车辆的品牌、型号和/或车牌。可以通过警察频段无线电、lte、wcdma甚至wifi接收此无线通知。可以在无人驾驶巡逻车的dla上运行的cnn,通过品牌、型号和/或车牌识别车辆,并将信息传递给无人驾驶巡逻车的cpu,该cpu在由dla提供的信息和寻找的车辆之间执行比较。或者,可以在单独的x86cpu上执行比较,也可以在无人驾驶巡逻车的pva上执行比较。

无人驾驶巡逻车可以具有多个高级片上系统,例如,如图22所示。在此示例中,一个或更多个高级片上系统将被配置为执行自动驾驶功能,而其他高级片上系统将被配置为执行巡逻功能,如上文所讨论的。例如,无人驾驶巡逻车可以具有被配置为执行自动驾驶的两个高级片上系统,以及用于巡逻的六个高级片上系统,六个中的每一个都配置为使用在dla或gpu上运行的神经网络执行以识别以下中的至少之一:(1)至少一个其他车辆,通过识别车牌、品牌或外观,(2)交通事故,(3)受伤的人,诸如骑自行车的人、行人或其他旁观者,(4)起火,(5)人与人之间的对抗,(6)犯罪活动,诸如闯入、侵入或交易非法物品,或(7)道路危险,诸如倒下的树木、电源线、杂物或坑洼。

图65示出了无人驾驶的长途卡车(50)和拖车(55)。卡车(50)和拖车(55)包括许多在图4的无人驾驶车辆(50)的上下文中描述的传感器。此外,拖车(55)包括重量和平衡传感器(82),其向控制器(100)提供关于拖车的重量和重量分布的信息。拖车还包括两个惯性传感器(82(1)和82(2)),它们向控制器(100)提供关于拖车的速度、偏航、俯仰、侧倾的信息。

另外,拖车(55)包括多个环绕摄像机(72),其足以在拖车周围提供完整的360度视频。

拖车(55)优选地在拖车的右舷(starboard)和左舷(port)侧都包括阵风(gust)传感器(81),以帮助无人驾驶卡车(50)识别和减轻突然的和/或大的侧风(cross-wind)的影响。侧风稳定性和性能对于许多类型的车辆而言都是重要的问题,并且根据车辆类型、负载、速度和路面状况而变化。卡车、公共汽车、航天飞机(shuttle)甚至汽车对不同程度的侧风都很敏感。侧风可能是一个主要的安全问题,尤其是对于卡车、公共汽车和航天飞机而言。对于较轻的车辆、高速和道路状况(例如,冰、湿的或光滑的路面),对侧风的敏感性最大。经常在桥梁上经历的强烈的侧向阵风特别危险。车辆承受不同的空气动力,包括阻力、升力、侧向力和空气动力力矩(包括易于引起偏航、侧倾和俯仰的力矩)。万一侧风很强烈,侧向力和升力可能会导致车辆倾覆(overturn)、摆尾(fishtail)、弯折(jackknife)或削弱车辆的操纵能力。

阵风传感器(81)优选地确定垂直于拖车的纵向轴线和横向轴线上的空速(airspeed),从而向控制器(100)提供关于拖车所经历的侧风的信息。可以使用风速计,该风速计安装在拖车的内部,皮托(pitot)管延伸穿过拖车侧面的孔,以使皮托管的末端暴露于环境空气中。在优选实施例中,传感器(81)测量气压,并通过接口(例如,usb)报告结果。控制器(100)比较右舷和左舷侧的传感器(81)的结果,并且在大的差异的情况下,识别阵风事件的存在、方向和大小,并在必要时采取纠正措施。当存在时,也可以在双核心安全集群引擎(“sce”)(704)上执行这种比较。

为了防止假阳性并提供额外的安全性,控制器(100)还可以评估重量和平衡传感器(82)提供的信号,在大阵风事件的情况下,该信号应记录阵风相对的一侧(右舷或左舷)上重量和平衡的变化。替代地,控制器(100)可以使用惯性传感器(82(1),82(2))的结果来验证阵风传感器(81)的结果。例如,如果imu(82)被放置在拖车(55)的上部角附近,则大阵风应被记录为imu(82)报告的横向加速度的峰值(spike)。使用从阵风传感器(81)、惯性传感器(82)以及重量和平衡传感器(83)接收到的信息的组合,控制器(100)可以确定是否存在强烈的侧向阵风并采取纠正措施-通常会使车辆减速或在狂风中–以减轻卡车翻倒或偏离车道的风险。在优选实施例中,当存在阵风状况时,控制器(100)使用来自地图(212)的信息来识别阵风更可能发生的区域并相应地主动做出响应。例如,地图(212)识别具有与大阵风相关联的立交桥、树木线和空旷地带的区域;当卡车接近这些区域时,控制器(100)会预料阵风并降低速度。附加措施包括增加与车辆的跟随距离,并使用无人驾驶卡车的危险信号灯,以警报其他车辆潜在的危险情况。当阵风状况超过阈值使得卡车不能安全前进时,控制器(100)执行“司机安全停车”模式,将卡车拉到路边。控制器使用阵风传感器(81)继续监视状况,并与片上系统的始终开启传感器处理引擎进行通信。

在优选实施例中,控制器(100)还监视阵风传感器(81)以识别皮托管中的潜在故障和/或冰块,并且可以可选地控制加热线圈或其他合适的设备以清除传感器(81)中的任何冰或堵塞。

拖车(55)通过can总线互连与卡车(50)电连接。替代地,拖车(55)可以无线连接到卡车(50)的网络。

因为卡车具有大的惯性并且可能具有大的动量以及难以停车,所以卡车(50)进一步优选地包括远程前摄像机(79),其向控制器(100)提供附加信息。

图66示出了无人驾驶的二级公共汽车(56)。公共汽车(56)包括上面描述的,以及在图4的无人驾驶车辆(50)和图65的卡车和拖车的上下文中进行描述的许多传感器。此外,公共汽车还包括四个内部摄像机(77),这些摄像机用于监视公共汽车及其乘客的安全与可靠性。

图67示出了无人驾驶铰接式(articulated)公共汽车(57)。公共汽车(57)包括上面描述的以及在图4、图65和图66中描述的无人驾驶车辆的上下文中的许多传感器。

图68示出了无人驾驶舵杆卡车(58),其典型地长度超过50英尺,从而允许该卡车运送应对大火和紧急情况所必需的人员、工具、设备。卡车(58)包括上面描述的以及在图4、图65、图66和图67中描述的无人驾驶车辆的上下文中的许多传感器。

舵杆卡车被设计用于增强的可操纵性,其前轮和后轮可独立转向,允许车辆通过急转弯,这是应急车辆的关键特征。就像人类驾驶的舵杆卡车有两个驾驶员,其前轮和后轮的方向盘是分开的,无人驾驶的舵杆卡车(58)具有两个控制器(100),用于控制车辆的前部和后部。第一控制器(100(1))控制至少第一轴,而第二控制器(100(2))控制至少第二轴。每个控制器可以包括上面结合图17、图18、图19或图22描述的用于无人驾驶的计算机,并且可以使用上面结合图8、图9和图13描述的高级soc。

无人驾驶舵杆卡车(58)中的两个控制器(100)相互通信并在驾驶车辆时进行协调,从而消除了舵杆卡车的两个人类驾驶员之间经常发生的误解和混乱。在一个实施例中,由人类驾驶员控制前轴(1)的转向以及车辆的速度和加速度,并且用于本技术的无人驾驶的高级计算机控制后轴(2),并在必要时超控人类驾驶员以避免碰撞、车道偏离和其他安全事件。

另外,无人驾驶舵杆卡车(58)优选地包括多个红外摄像机,其用于检测热点、起火并定位人员。合适的红外摄像机包括具有36度视野的紧凑型热像仪,并且对于人来说有效距离为300m,并且有效范围大约是较大的热辐射对象(例如,汽车)的两倍。在优选实施例中,可以使用长波红外(“lwir”)热像仪核心来提供变焦能力,并且当计算机识别出可能无法以足够信任识别出的可能的高兴趣项目时,计算机将车辆停在安全的位置并放大该项目以进行更准确的评估。

与无人驾驶巡逻车的情况一样,无人驾驶舵杆卡车(58)可以被配置为使用车辆的蜂窝无线调制解调器和天线发送关于已识别事件的存在和位置的无线通知。尽管dla被设计用于使用经训练的cnn进行快速高效的推理,但cnn可以替代地在片上系统的gpu上运行。

根据该技术的一个方面,提供了一种用于无人驾驶车辆的片上系统。在一个或更多个实施例中,soc包括中央处理单元复合体,图形处理单元和嵌入式硬件加速复合体,其包括可编程视觉加速器、深度学习加速器和片上存储器。在一些实施例中,图形处理单元包括多个流式微处理器,其包括独立的并行整数和浮点数据路径和/或独立的线程调度能力。在一个或更多个实施例中,soc的图形处理单元包括基本上符合高带宽存储器(hbm)标准的存储器,其包括(但不限于)hbm2存储器。在一些实施例中,图形处理单元包括统一存储器。根据另外的实施例,统一存储器为中央处理单元复合体和图形处理单元提供单个统一虚拟地址空间。

根据一个或更多个实施例,soc还可以包括安全集群引擎,该安全集群引擎包括被配置为以锁步模式操作并用作单个核心的多个处理器核心,以及检测由多个处理器核心执行的操作之间的任何差异的比较逻辑。soc还可以包括存储器控制器。soc还可以包括启动和功率管理处理器,所述启动和功率管理处理器被配置为控制片上系统的功率状态转换和/或监视片上系统的热状况并响应地管理片上系统的功率状态。

在一些实施例中,片上系统还可以包括由中央处理单元复合体和图形处理单元共享的l3高速缓存。实施例还可以包括多个温度传感器,其可以(并不限于此)被配置为检测中央处理单元复合体组、图形处理单元和加速集群中的一个或更多个的温度,和/或用输出频率与温度成正比的一个或更多个环形振荡器(ring-oscillator)实现。

中央处理单元复合体包括多个cpu核心,在某些实施例中,cpu核心被实现为一个或更多个cpu核心集群。在一个或更多个实施例中,多个cpu核心中的每个cpu核心耦合至片上l2高速缓存存储器。同样地,在以一个或更多个cpu核心集群实现的实施例中,cpu核心集群可以耦合至片上l2高速缓存存储器。在另外的实施例中,多个集群中的每个集群被耦合到专用的片上l2高速缓存存储器。多个集群中的每个集群可以被配置为独立于中央处理单元复合体中的其他集群的状态而是活动的。在一个或更多个实施例中,多个集群中的每个集群被配置为与多个集群中的一个或更多个集群进行异构多处理。

soc还可以包括功率管理处理器。在非限制性实施例中,功率管理处理器独立地对每个核心和/或每个集群进行功率门控。在一个或更多个实施例中,soc包括耦合至可编程视觉加速器和深度学习加速器中的一者或两者的存储器(诸如但不限于,静态随机存取存储器或“sram”)。

soc还可以包括视频图像合成器处理器,在一些实施例中,该视频图像合成器处理器被配置为对来自至少一个鱼眼或广角摄像机传感器的图像数据执行镜头畸变(distortion)校正。视频图像合成器处理器还可以被配置为对来自至少一个摄像机传感器的输入执行时间上的降噪,和/或对从两个摄像机接收到的图像数据进行立体矫正。

在某些实施例中,soc还可以包括实时摄像机引擎、处理器核心、耦合到处理器核心的ram以及中断控制器。其他实施例可以包括始终开启的传感器处理引擎,其本身包括处于低功率模式的处理器核心,耦合至处理器核心的ram以及中断控制器。

在优选实施例中,始终开启的传感器处理引擎包括被训练以识别车辆的授权操作者的神经网络。始终开启的传感器处理引擎(例如但不限于,使用神经网络)可被配置为在神经网络指示车辆的授权操作者在车辆上时解锁车辆,并在神经网络指示车辆的授权操作者已离开车辆时锁定车辆。

根据一个或更多个实施例,连接中央处理单元复合体和视频图像合成器处理器的系统一致性结构也可以包括在soc中。系统一致性结构包括一致性高速缓存冲刷(flush)引擎,该引擎促进了与系统中非一致性客户端的基于软件的一致性。系统一致性结构还可以用于连接中央处理单元复合体和实时摄像机引擎,和/或中央处理单元复合体和始终开启的传感器处理引擎。

soc的实施例的可编程视觉加速器可以包括至少一个处理器和至少一个直接存储器访问引擎。在优选实施例中,可编程视觉加速器本身可以包括第一向量处理器,与第一向量处理器相关联的第一指令高速缓存,与第一向量处理器关联的第一向量存储器,与第一向量处理器相关联的第一直接存储器访问引擎,第二向量处理器,与第二向量处理器相关联的第二指令高速缓存,与第二向量处理器相关联的第二向量存储器以及与第二向量处理器相关联的第二直接存储器访问引擎。

在示例实施例中,第一向量处理器被配置为执行第一计算机视觉算法,并且第二向量处理器被配置为执行第二计算机视觉算法。例如,第一向量处理器可以被配置为在图像的一个部分上执行第一计算机视觉算法,并且第二向量处理器可以被配置为在图像的不同部分上执行第二计算机视觉算法。

例如,第一向量处理器可以被实现为数字信号处理器(dsp)或用dsp实现。同样,第二向量处理器也可以同样地被实现为dsp或用dsp实现。在进一步的实施例中,第一向量处理器和第二向量处理器中的一者或两者可以被实现为单指令、多数据(simd)和/或非常长的指令字(vliw)dsp。

在示例非限制性实施例中,可编程视觉加速器可以进一步包括,针对计算机视觉而优化的数字信号处理器,与数字信号处理器相关联的存储器以及与数字信号处理器相关联的指令高速缓存。

该技术的一个方面可以被实现为用于无人驾驶车辆的片上系统。在优选实施例中,soc包括:中央处理单元复合体,其包括多个cpu核心和专用的l2高速缓存存储器,图形处理单元,其包括多个gpu核心和专用的l2高速缓存存储器,以及嵌入式硬件加速复合体,其包括可编程视觉加速器、深度学习加速器以及连接到可编程视觉加速器和深度学习加速器的专用sram。

在此方面的一个或更多个实施例中,图形处理单元包括hbm存储器,诸如(但不限于)hbm2存储器。图形处理单元还可以包括多个流式微处理器,该流式微处理器包括独立的并行整数和浮点数据路径和/或独立的线程调度能力。根据进一步的实施例,图形处理单元包括统一存储器,该统一存储器为中央处理单元复合体和图形处理单元提供单个统一虚拟地址空间。soc的实施例还可包括由中央处理单元复合体和图形处理单元共享的l3高速缓存。

在该方面的一个或更多个实施例中,可编程视觉加速器包括至少一个数字信号处理器和至少一个直接存储器访问引擎。可编程视觉加速器可以包括一个或更多个子组件,其包括(但不限于):针对计算机视觉优化的数字信号处理器,与数字信号处理器相关联的存储器以及与数字信号处理器相关联的指令高速缓存。

该技术的另一方面可以被实现为用于控制自主车辆的计算机。在一个或更多个实施例中,计算机可以被实现为包括第一片上系统,第二片上系统,耦合到第一片上系统的第一分立式图形处理单元,耦合到第二片上系统的第二分立式图形处理单元,以及耦合到第一片上系统和第二片上系统的微控制器。

根据优选实施例,计算机还可以包括六轴惯性测量单元,该六轴惯性测量单元在非限制性示例实施例中可以被耦合至第一片上系统,以向第一片上系统提供关于车辆的加速度和旋转的信息。根据这样的实施例,第一片上系统被配置为对与车辆的加速度和旋转有关的信息执行传感器融合。

根据第三方面的计算机可以进一步包括用于耦合第一片上系统、第二片上系统和微控制器的交换机。所述交换机可以被实现为pcie交换机,并且在一个或更多个实施例中,分立式cpu(诸如但不限于x86cpu)可以被耦合到所述交换机。

第一片上系统和第二片上系统被耦合到用于接收传感器数据的多个输入端口,其中多个分立式图形处理单元中的每一个被耦合到其中一个片上系统。还可以包括(第三)片上系统,以互连多个片上系统和多个分立式图形处理单元。根据实施例,多个片上系统通过(例如但不限于)内部集成电路(i2c)总线彼此耦合。

根据实施例,每个soc都安装在公共印刷电路板上并布置在同一壳体内。壳体可以包括冷却系统,该冷却系统包括(例如)风扇散热器和用于从片上系统传输热量的流体通道。可替代地,壳体可以包括风扇散热器和混合热传输模块,该混合热传输模块包括用于从片上系统传输热量的流体通道和/或空气通道。

在优选实施例中,计算机可以包括多个(例如,8个或更多)soc和相似数量的分立式gpu,每个gpu被耦合到微控制器和相应的soc。soc和分立式gpu之间的点对点通信可由网络交换机提供。

各种神经网络可以在一个或更多个soc上执行。在示例非限制性实施例中,可以在每个soc上执行不同的神经网络。例如,第一片上系统可以执行用于行人检测的神经网络,第二片上系统可以执行用于标志检测的神经网络,第三片上系统可以执行用于距离估计的神经网络,第四片上系统可以执行用于车道检测的神经网络,第五片上系统可以执行用于避免碰撞的神经网络,第六片上系统可以执行用于当前占用栅格的神经网络,第七片上系统可以执行用于预测占用栅格的神经网络,第八片上系统可以执行用于转向控制的神经网络。

根据实施例,可以针对特定目的并且在特定数据上对一个或更多个神经网络进行专门训练。例如,可以针对由lidar传感器生成的数据并在其上训练用于距离估计的神经网络。

技术的另一方面针对用于控制自主车辆的系统,该系统包括主计算机,辅助计算机,耦合至第一计算机和第二计算机的监督微控制器单元(mcu),耦合到第一计算机和第二计算机的多个摄像机传感器,以及耦合到第一计算机和第二计算机中的至少一个的多个车辆监视传感器。根据进一步的实施例,主计算机被配置为接收来自摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,并且辅助计算机被配置为接收来自摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号。同时,监督mcu(在一个或更多个实施例中被实现为第三计算机)可以被配置为比较来自主计算机和辅助计算机的输出。

根据优选实施例,系统还可以包括无线设备,该无线设备电耦合至主计算机并且被配置为与无线网络通信。作为非限制性示例,无线设备可以被配置为传送无线网络以接收关于至少一个神经网络的更新信息,或者响应于该信息来更新至少一个神经网络。

主计算机可以被配置为通过与当前神经网络并行运行并比较结果来测试和验证更新的神经网络,并在其被完全下载、测试和验证之后执行该更新的神经网络。无线网络可以是任何数量的无线网络之一;在示例非限制性实施例中,无线网络可以是lte网络、wcdma网络、umts网络和/或cdma2000网络。

根据一个或更多个实施例,该系统还可以包括数据中心,该数据中心包括一个或更多个gpu服务器,该gpu服务器被耦合到无线网络并且被配置为执行许多计算和操作任务,诸如但不限于,接收由一个或更多个车辆收集并通过无线网络发送的训练信息,使用该信息训练一个或更多个神经网络,并将经训练的神经网络提供给无线网络以发送到一个或更多个自主车辆。

数据中心可非常适合执行其他任务,诸如接收由车辆收集并通过无线网络发送的图像和对象检测信息,在一个或更多个gpu服务器上执行神经网络,使用图像信息作为输入,将在一个或更多个gpu服务器上运行的神经网络的结果与从车辆接收的对象检测信息进行比较,并向车辆发送无线控制信号,如果比较结果低于置信度阈值,则该无线控制信号指示车辆通知乘客并执行安全停车操作。

该系统可以包括电耦合到主计算机的无线设备。具体地,无线设备可以被配置为与无线网络通信和/或从无线网络接收更新的地图信息。更新的地图信息可以由主计算机存储在存储器中。在一个或更多个实施例中,用于该目的的无线网络也可以是lte、wcdma、umts、cdma2000网络中的任何一个或更多个。在一个或更多个实施例中,无线设备还可被配置为从网络接收关于另一车辆的协作自适应巡航控制(cacc)信息。

在一个或更多个实施例中,该系统包括hmi显示器,该hmi显示器被耦合至主计算机并被配置为指示系统何时已识别出道路中的交通信号、交通标志、自行车、行人或障碍物。hmi显示器可以进一步被配置为响应于识别出的交通信号、交通标志、自行车、行人或道路上的障碍物,指示系统正在采取适当的措施。根据这些和其他实施例,如果来自第一计算机和第二计算机的输出不一致,则监督mcu可以进一步被配置为输出警报信号。

根据另一方面,提供了用于控制自主车辆的系统,该系统包括主计算机;辅助计算机,其包括adas系统;监督mcu,其被耦合到主计算机和辅助计算机;多个摄像机传感器,其被耦合到主计算机;一个或更多个辅助传感器,其被耦合到辅助计算机;以及多个车辆监视传感器,其被耦合到主计算机。根据一个或更多个实施例,主计算机被配置为接收来自摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,辅助计算机被配置为接收来自辅助传感器的输入并输出关于车辆的操作的至少一个第二信号,并且监督mcu被配置为比较来自主计算机和辅助计算机的信号。

adas系统可以包括来自任何数量的供应商的一个或更多个系统或soc。adas系统可以包括(例如但不限于)由现场可编程门阵列(fpga)和立体视频摄像机实现的前向碰撞警告单元。在其他合适的实施例中,前向碰撞警告单元可以实现为fpga和远程(long-range)radar单元,和/或处理器和远程radar单元。

adas系统可以包括(例如但不限于)车道偏离警告单元,其用现场可编程门阵列(fpga)和立体视频摄像机实现。在其他合适的实施例中,车道偏离警告单元可以实现为fpga和单眼摄像机单元,和/或处理器和单眼摄像机单元。

adas系统可以包括(例如但不限于)自动紧急制动(aeb)单元,其用现场可编程门阵列(fpga)和立体视频摄像机实现。在其他合适的实施例中,aeb单元可以被实现为fpga和远程radar单元,处理器和远程radar单元,和/或应用程序专用集成电路(asic)和远程radar单元。

adas系统可以包括(例如但不限于)自动巡航控制(acc)单元,诸如(但不限于)纵向acc单元和/或横向acc单元。纵向acc单元可以被配置为基于与紧接领先车辆的距离和自我车辆的当前速度来调节自主车辆的速度。在一个或更多个实施例中,一个或更多个acc单元可以利用前向radar传感器来实现。在其他合适的实施例中,aeb单元可以被实现为fpga和前向radar传感器、处理器和前置radar传感器和/或asic和前置radar传感器。在一个或更多个实施例中,aeb单元可以利用前置摄像机,fpga和前向摄像机,处理器和前置摄像机,和/或asic和前置摄像机来实现。在某些实施例中,前置摄像机可以包括立体摄像机。

adas系统可以包括(例如但不限于)后方交叉交通警告单元。在一个或更多个实施例中,后方交叉交通警告单元可以利用fpga和一个或更多个后置摄像机;和/或fpga(或处理器)和后置中程radar单元来实现。adas系统还可以包括盲区警告单元。在一个或更多个实施例中,盲区警告单元可以用fpga和一个或更多个摄像机;和/或fpga(或处理器)和一个或更多个radar单元来实现。

在一些实施例中,adas系统包括在一个或更多个实施例中用第一角速度检测器、第二角速度检测器和处理器实现的打滑道路检测单元,该第一角速度检测器用于确定至少一个动力驱动轴的第一角速度,该第二角速度检测器用于检测至少一个自由旋转轴的第二角速度,该处理器被配置为比较第一角速度和第二角速度以确定道路表面上的摩擦水平。根据实施例,打滑道路检测单元还包括:第一振动传感器,用于确定动力驱动轴的第一振动;第二振动传感器,用于确定至少一个自由旋转轴的第二振动。在这些实施例中,处理器可以进一步被配置为比较第一振动和第二振动,以确定道路表面上的摩擦水平。

在任何这些adas实现中的处理器其本身可以包括cpu和/或asic。在优选实施例中,监督mcu还被配置为:如果来自主计算机和辅助计算机的输出一致,则根据第一信号控制车辆的至少一个致动器,和/或如果来自主计算机和辅助计算机的输出不一致,则输出警报信号。在进一步的实施例中,监督mcu还被配置为:即使来自主计算机和辅助计算机的输出不一致,但如果mcu确定主计算机的输出超过置信度阈值,则监督mcu根据第一信号来控制车辆。

在一个或更多个实施例中,adas系统包括至少一个radar传感器,并且监督mcu执行神经网络,该神经网络被配置为基于来自主计算机和辅助计算机的输出来确定辅助计算机提供虚假警报的条件。由mcu执行的神经网络被训练,以减少由一个或更多个adas系统引起的虚假警报的可能性。在某些实施例中,mcu可以被训练,以减少由对象(诸如金属排水格栅、金属井盖、金属垃圾桶等)引起的虚假警报的可能性。

该技术的下一方面针对用于控制自主车辆的系统。该系统可以包括主计算机,包括adassoc的辅助计算机,耦合到第一计算机和第二计算机的监督mcu,耦合到第一计算机的第一多个摄像机传感器,耦合到辅助计算机的第二多个摄像机传感器,以及耦合到第一计算机的多个车辆监视传感器。在一个或更多个实施例中,第一计算机被配置成接收来自摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,第二计算机被配置成接收来自摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,并且监督mcu被配置为比较来自第一计算机和第二计算机的输出。

在优选实施例中,监督mcu还被配置为如果来自第一计算机和第二计算机的输出不一致,则输出警报信号。

该技术的下一方面针对用于控制自主车辆的系统。在一个或更多个实施例中,该系统包括主计算机,包括至少一个cpu和一个gpu的辅助计算机,耦合到第一计算机和第二计算机的监督mcu,耦合到第一计算机和第二计算机的多个摄像机传感器,以及耦合到第一计算机的多个车辆监视传感器。根据优选实施例,第一计算机被配置为接收来自摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,第二计算机被配置为接收来自摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,并且监督mcu被配置为比较来自第一计算机和第二计算机的输出。

在一个或更多个实施例中,监督mcu还被配置为如果来自第一计算机和第二计算机的输出不一致,则输出警报信号。多个摄像机传感器可以包括具有不同能力和/或配置的摄像机传感器。例如,摄像机传感器可以包括以下列表中的一个或更多个摄像机:1)一个或更多个远程摄像机,每个远程摄像机具有大约25度的视野,2)一个或更多个具有大约50度视野的短程摄像机,3)一个或更多个具有约150度视野的鱼眼前向摄像机,4)一个或更多个广角摄像机,和/或5)一个或更多个红外摄像机。

根据实施例,主计算机融合来自至少一个红外摄像机的数据和来自至少一个其他摄像机的数据,以增强行人检测。一个或更多个红外摄像机中的至少一个红外摄像机可以包括无源红外系统。与一个或更多个红外摄像机的单独红外摄像机可以包括有源红外系统。另一红外摄像机可以是门控红外摄像机。

在示例非限制性实现中,多个摄像机传感器包括水平视野在15度至45度之间的至少一个远程摄像机,以及水平视野在45度至75度之间的至少一个短程摄像机。

在另一示例非限制性实现中,第一多个摄像机传感器包括具有90度至180度之间水平视野的至少一个鱼眼前向摄像机。在另一示例非限制性实现中,多个摄像机传感器包括至少四个广角摄像机。在另一示例非限制性实现中,第一多个摄像机传感器包括至少一个红外摄像机。在另一示例非限制性实现中,所述至少一个红外摄像机包括无源红外系统和/或有源红外系统和/或门控红外系统。根据这些实现中的一个或更多个,主计算机融合来自至少一个红外摄像机的数据和来自至少一个其他摄像机的数据,以增强行人检测。

在另一示例非限制性实现中,多个摄像机传感器包括至少四个红外摄像机。在另一示例非限制性实现中,系统包括耦合至第一计算机的lidar传感器。lidar传感器可以是(但不限于)闪光lidar传感器;和/或固态lidar传感器;和/或被安装在自主车辆的前部,水平视野在45度至135度之间。

在示例非限制性实现中,用于控制自主车辆的系统包括设置在车辆周围的各个位置处的多个传感器。示例配置可以包括设置在车辆前部处的第一闪光lidar传感器,设置在车辆前部处的第二闪光lidar传感器,设置在车辆前部处的第三闪光lidar传感器以及设置在车辆后部处的第四闪光lidar传感器。根据这样的实施例,第一计算机被配置为从闪光lidar传感器接收信息。第一计算机可以被耦合到其他传感器,并且被配置为从其他传感器接收信息。示例配置可以包括例如耦合到第一计算机的radar传感器,和/或耦合到第一计算机的超声波(ultrasonic)/超音(ultrasound)传感器,和/或耦合到选自radar传感器、lidar传感器和超声波传感器组的第一计算机的至少一个传感器。

在优选实施例中,该系统可以包括在第一计算机上的至少一个深度学习加速器上执行的神经网络。在一个或更多个实施例中,在第一计算机上的至少一个深度学习加速器上执行的神经网络包括卷积神经网络(cnn)。在另一个示例实施例中,cnn包括基于区域的卷积神经网络。cnn可以针对特定的对象检测和/或分类任务进行训练。示例实现包括针对对象检测和/或交通标志检测、行人检测或车辆检测中的至少一个而训练的cnn。

在进一步的实施例中,可以训练cnn来检测摄像机镜头被障碍物阻挡的状况。响应于cnn对镜头阻挡状况的检测,主计算机发送控制信号以执行镜头清洁例程。根据这样的实施例,该系统可以包括以下中的一个或更多个:喷嘴,用于在由执行镜头清洁例程的主计算机指示时在一个或更多个镜头上提供压缩空气流,和/或加热器,用于在由执行镜头清洁例程的主计算机指示时加热镜头以减少凝结水、结霜或结冰。

在优选实施例中,还可以训练由系统执行的一个或更多个cnn以检测摄像机故障。

在优选实施例中,该系统可以包括计算机视觉算法,该计算机视觉算法在第一计算机上的至少一个可编程视觉加速器上执行以执行某些任务。例如,计算机视觉算法可以被执行以实施交通标志检测、距离估计或车辆检测中的至少一种。

该系统的一个或更多个实施例可以包括音频处理引擎,该音频处理引擎包括用于处理音频信号的数字信号处理器和内部ram。根据这样的实施例,第一计算机可以执行被训练为识别紧急车辆警报器(siren)的cnn。第一计算机可以被配置为在识别出这样的紧急车辆警报器时执行紧急车辆安全例程。紧急车辆安全例程可以包括例如一个或更多个操作,诸如使车辆减速、拉到道路侧边、停车和使车辆空转,直到紧急车辆通过。该系统可以包括一个或更多个超声波传感器。当执行紧急车辆安全例程时,第一计算机可以使用来自一个或更多个超声波传感器的信息。耦合到第一计算机的分立式cpu(诸如,x86cpu)可以被配置为执行紧急车辆安全例程。

技术的另一方面针对用于控制具有asild功能安全等级的自主车辆的系统。在一个或更多个实施例中,该系统可以包括用于控制自主车辆的计算机,具有(例如但不限于)至少asil-b功能安全等级的前向碰撞警告系统。根据这样的实施例,用于控制自主车辆的计算机可以具有(作为示例并且不限于)至少asil-c功能安全等级。根据特定实施例,自主车辆可以包括无人驾驶卡车中的任何一个或更多个,该无人驾驶卡车包括拖拉机(tractor)和拖车。在一个或更多个实施例中,拖车包括多个重量和平衡传感器。拖车也可以电耦合到拖拉机。

进一步的实施例可包括与拖车相关联的至少一个阵风传感器,用于检测施加于拖车的侧风。阵风传感器可使用例如在拖车的一侧上具有皮托管的第一传感器和在拖车的另一侧上具有皮托管的第二传感器来实现。第一传感器和第二传感器可以电耦合到主计算机,并且主计算机被配置为比较来自第一传感器和第二传感器的结果以识别横向阵风。

其他实施例包括用于控制卡车的加速度、制动和转向的多个车辆致动器,其中主计算机被配置为使用比较来控制一个或更多个车辆致动器。在优选实施例中,可以设置多个重量和平衡传感器以测量拖车的重量和平衡,并且多个重量和平衡传感器电耦合到主计算机,以向主计算机提供有关拖车的重量和平衡的信息,主计算机使用这些信息验证来自第一传感器和第二传感器的结果的比较以识别阵风。

根据优选实施例,自主车辆(例如,无人驾驶卡车)可以包括与拖车相关联的多个惯性传感器,用于检测拖车的俯仰、侧倾和偏航中的至少一个。系统中的mcu被配置为使用来自重量和平衡传感器的信息来限制卡车的速度、加速度或减速度中的至少一个。

根据优选实施例,自主车辆可以包括布置在拖车中并且电耦合至系统的soc的摄像机传感器。其他传感器可以包括在拖车中的烟雾探测器。soc可以被配置为响应于来自烟雾探测器指示拖车中发生火灾的信号,执行火灾响应协议。火灾响应协议可以包括任何一个或更多个操作,诸如发送指示火灾存在的无线信号,发送指示卡车位置的无线信号以及执行卡车的停车操作。

根据技术的另一方面,提供了无人驾驶卡车,其包括第一可控轴,用于控制第一可控轴并且包括第一soc的第一控制器,第二可控轴,用于控制第二可控轴并且包括第二soc的第二控制器。在一个或更多个实施例中,第二控制器包括深度学习加速器。在一个或更多个实施例中,无人驾驶卡车包括位于车辆前部的至少一个红外摄像机。红外摄像机可以包括例如变焦功能。无人驾驶卡车还可包括位于车辆的前部、后部和侧面的多个红外摄像机(其任何一个均可包括变焦功能)。

该技术的另一方面包括无人驾驶多乘客车辆,其包括车身;车身内用于多个乘客的座位区;用于控制车辆的计算机;车身中用于监控座位区的至少一个摄像机,该摄像机电耦合到计算机;被训练为识别安全状况并在计算机上执行的至少一个神经网络;用于与蜂窝网络通信的无线设备。根据实施例,计算机可以被配置为经由无线(例如,蜂窝)网络(诸如lte网络和wcdma网络中的任何一个或更多个)发送安全状况的通知。

该技术的另一方面针对无人驾驶巡逻车,其包括车身;用于控制车辆的计算机;围绕车身布置的多个摄像机,这些摄像机电耦合到计算机;在计算机上运行的至少一个神经网络,该神经网络被训练为定位至少一个其他车辆;以及电耦合到计算机的无线设备,该无线设备用于与无线网络进行通信。根据一个或更多个实施例,计算机被配置为经由无线(例如,蜂窝)网络(诸如lte网络和wcdma网络中的任何一个或更多个)发送至少一个其他车辆的存在和位置的通知。

至少一个实施例包括位于车辆前部的至少一个红外摄像机。在某些实施例中,红外摄像机包括变焦功能。还可以包括位于车辆的前部、后部和侧面的多个红外摄像机,每个红外摄像机可以具有但不要求具有变焦功能。在一个或更多个实施例中,神经网络可以被配置为执行推理和其他处理任务。这些任务可以包括,例如但不限于,通过识别车牌来识别至少一个其他车辆,通过识别车牌的一部分以及至少一个其他车辆的品牌和型号来识别该其他车辆,以及通过识别至少一个其他车辆的外观来识别该其他车辆。

在优选实施例中,神经网络可以由计算机在深度学习加速器上执行。在其他实施例中,计算机在gpu上执行神经网络。

该技术的另一方面包括无人驾驶巡逻车,其包括车身;用于控制车辆的计算机;围绕车身布置的多个摄像机,这些摄像机电耦合到计算机;在计算机上运行的至少一个神经网络,该神经网络被训练为识别至少一种安全状况,以及用于与蜂窝网络通信的无线设备。在优选实施例中,计算机被配置为经由蜂窝网络发送至少一种安全状况的存在和位置的通知。安全状况可包括但不限于起火;汽车事故;受伤的人和/或人与人之间的身体冲突。

在一个或更多个实施例中,计算机在深度学习加速器和gpu中的至少一个上执行神经网络。在一个或更多个实施例中,深度学习加速器和gpu之一或两者包含在soc上。

技术的另一方面涉及用于控制自主车辆的方法,该方法包括:在片上系统上的深度学习加速器上执行第一神经网络;在片上系统上的gpu上执行第二神经网络;在片上系统上的可编程视觉加速器上执行第一计算机视觉算法,以及响应于第一神经网络、第二神经网络和计算机视觉算法的输出来控制自主车辆上的一个或更多个致动器。

根据一个或更多个实施例,控制自主车辆还可以包括:检测至少一个动力驱动轴的第一角速度;检测至少一个自由旋转轴的第二角速度;比较第一角速度和第二角速度以确定道路表面上的摩擦水平,以及响应于第一神经网络、第二神经网络、计算机视觉算法的输出以及对第一角速度和第二角速度的比较来控制自主车辆上的一个或更多个致动器。

根据一个或更多个实施例,控制自主车辆还可以包括:检测动力驱动轴的第一振动,检测第二振动传感器以确定至少一个自由旋转轴的第二振动,以及比较第一振动和第二振动以确定道路表面上的摩擦水平。

根据示例实施例,控制自主车辆还可以包括:将来自至少一个摄像机传感器的图像信息作为输入提供给第一神经网络和第二神经网络中的一个或两个。根据示例实施例,控制自主车辆还可包括:将来自至少一个红外摄像机传感器的图像信息作为输入提供给第一神经网络和第二神经网络中的一个或两个。

根据另一示例实施例,控制自主车辆还可包括:将来自至少一个单眼摄像机传感器的图像信息作为输入提供给第一神经网络和第二神经网络中的一个或两个。根据示例实施例,控制自主车辆还可包括将来自至少一个立体摄像机传感器的图像信息作为输入提供给第一神经网络和第二神经网络的一个或两者。

根据另一示例实施例,控制自主车辆还可以包括将来自radar传感器、lidar传感器和超声波传感器中的至少一个或更多个的信息作为输入提供给第一计算机视觉算法。在一个或更多个实施例中,lidar传感器可以被实现为闪光lidar传感器和固态lidar传感器中的一个或更多个。

根据另一示例实施例,控制自主车辆还可以包括:在第二片上系统上的深度学习加速器上运行第三神经网络,在第二片上系统上的gpu上运行第四神经网络,在第二片上系统上的可编程视觉加速器上执行第二计算机视觉算法,比较第一片上系统和第二片上系统的输出,以及响应于该比较控制自主车辆上的一个或更多个致动器。

根据另一示例实施例,控制自主车辆还可包括:将来自至少一个摄像机传感器的图像信息作为输入提供给第一神经网络,以及将来自至少一个摄像机传感器的图像信息作为输入提供给第三神经网络。

根据另一示例实施例,控制自主车辆还可以包括:将来自至少一个摄像机传感器的图像信息作为输入提供给第二神经网络,以及将来自至少一个摄像机传感器的图像信息作为输入提供给第四神经网络。

根据另一示例实施例,控制自主车辆还可包括:将来自至少一个红外摄像机传感器的图像信息作为输入提供给第一神经网络,以及将来自至少一个摄像机传感器的图像信息作为输入提供给第三神经网络。

根据另一示例实施例,控制自主车辆还可包括:将来自至少一个红外摄像机传感器的图像信息作为输入提供给第二神经网络,以及将来自至少一个摄像机传感器的图像信息作为输入提供给第四神经网络。

根据另一示例实施例,控制自主车辆还可以包括:将来自至少一个立体摄像机传感器的图像信息作为输入提供给第一神经网络;以及将来自至少一个lidar传感器的信息作为输入提供给第三神经网络。

根据另一示例实施例,控制自主车辆还可以包括:将来自至少一个单眼摄像机传感器的图像信息作为输入提供给第二神经网络,以及将来自至少一个lidar传感器的信息作为输入提供给第四神经网络。

根据另一示例实施例,控制自主车辆还可以包括:将来自至少一个立体摄像机传感器的图像信息作为输入提供给第一神经网络,以及将来自至少一个单眼摄像机传感器的图像信息作为输入提供给第三神经网络。

根据另一示例实施例,控制自主车辆还可包括:将来自至少一个立体摄像机传感器的图像信息作为输入提供给第二神经网络,以及将来自至少一个单眼摄像机传感器的图像信息作为输入提供给第四神经网络。

根据另一示例实施例,控制自主车辆还可以包括:将来自至少一个radar传感器的信息作为输入提供给第一计算机视觉算法,以及将来自至少一个radar传感器的信息作为输入提供给第二计算机视觉算法。

根据另一示例实施例,控制自主车辆还可包括:将来自至少一个lidar传感器的信息作为输入提供给第一计算机视觉算法,以及将来自至少一个lidar传感器的信息作为输入提供给第二计算机视觉算法。

根据另一示例实施例,控制自主车辆还可以包括:将来自至少一个超音传感器的信息作为输入提供给第一计算机视觉算法,以及将来自至少一个超音传感器的信息作为输入提供给第二计算机视觉算法。

根据另一示例实施例,控制自主车辆还可以包括:将来自至少一个闪光lidar传感器的信息作为输入提供给第一计算机视觉算法,以及将来自至少一个闪光lidar传感器的信息作为输入提供给第二计算机视觉算法。

该技术的一个方面针对用于控制自主车辆的方法。该方法可以包括:在片上系统上的深度学习加速器上运行第一多个神经网络,在片上系统上的gpu上运行第二多个神经网络,在片上系统上的可编程视觉加速器上执行多个计算机视觉算法,以及响应于第一多个神经网络、第二多个神经网络和多个计算机视觉算法的输出来控制自主车辆上的一个或更多个致动器。

根据示例实施例,控制自主车辆还可以包括:在第二片上系统上的深度学习加速器上运行第三多个神经网络,在第二片上系统上的gpu上运行第四多个神经网络,在第二片上系统上的可编程视觉加速器上执行第二多个计算机视觉算法,比较第一片上系统和第二片上系统的输出,以及响应于该比较来控制自主车辆上的一个或更多个致动器。

根据另一示例实施例,控制自主车辆还可以包括:将来自一个或更多个摄像机传感器的输入提供给主计算机;在主计算机上执行第一神经网络;在第一计算机中生成至少一个第一信号,用于控制至少一个车辆致动器;将来自一个或更多个摄像机传感器的输入提供给辅助计算机;在辅助计算机上执行第二cnn;在第二计算机中生成至少一个第二信号,用于控制至少一个车辆致动器;将第一信号和第二信号提供给监督mcu;以及在mcu中比较第一信号和第二信号。在一个或更多个实施例中,如果第一信号和第二信号不一致,则mcu可以被配置为生成警报信号。

该技术的另一方面针对用于控制自主车辆的方法,该方法包括:将来自一个或更多个摄像机传感器的输入提供给主计算机;在主计算机上执行第一神经网络,以响应于来自摄像机传感器的输入而生成至少一个第一信号;在可编程视觉加速器上执行计算机视觉算法以生成第二信号;以及使用第一信号和第二信号来控制至少一个车辆致动器。

该技术的另一方面针对用于控制自主车辆的方法,其包括:在第一片上系统上执行用于行人检测的神经网络,以生成至少一个第一信号,在第二片上系统上执行用于标志检测的神经网络,以生成至少一个第二信号,在第三片上系统上执行用于距离估计的神经网络,以生成至少一个第三信号,在第四片上系统上执行用于车道检测的神经网络,以生成至少一个第四信号,在第五片上系统上执行用于碰撞避免的神经网络,以生成至少一个第五信号,在第六片上系统上执行用于当前占用栅格的神经网络,以生成至少一个第六信号,在第七片上系统上执行用于预测的占用栅格的神经网络,以生成至少一个第七信号,在第八片上系统上执行用于转向控制的神经网络,以生成至少一个第八信号,在中央处理单元上执行计算机视觉算法以生成至少一个第九信号,以及使用所述信号来控制至少一个车辆致动器。

另一个方面提供了用于控制自主车辆的方法,包括:将来自一个或更多个摄像机传感器的输入提供给主计算机,响应于该输入而生成第一控制信号,从自动巡航控制单元接收第二信号,评估第一控制信号是否与第二信号冲突,以及响应于该评估来控制一个或更多个车辆致动器。在优选实施例中,自动巡航控制单元可以是纵向自动巡航控制单元和横向自动巡航控制单元中的一个或两者。自动巡航控制单元还可包括前向radar传感器。

可以使用用于控制自主车辆的方法来实现该技术的一个或更多个方面,该方法包括:将来自一个或更多个摄像机传感器的输入提供给主计算机;以及响应于该输入而生成第一控制信号;从以下中的一个或更多个接收第二信号:1)自动紧急制动单元,2)前向碰撞警告单元,3)车道偏离警告单元,4)碰撞警告单元以及5)盲区警告单元;评估第一控制信号是否与第二信号冲突,以及响应于该评估来控制一个或更多个车辆致动器。在此方面的一个或更多个实施例中,自动紧急制动单元、前向碰撞警告单元、车道偏离警告单元、碰撞警告单元和盲区警告单元中的每一个可包括fpga以及立体视频摄像机和单眼摄像机中的一个或更多个。

另一个示例方面提供了用于控制自主车辆的方法,该方法包括:将来自一个或更多个摄像机传感器的输入提供给在gpu中执行卷积神经网络的主计算机,响应于该输入生成第一控制信号,接收来自自动巡航控制单元的第二信号,评估第一控制信号是否与第二信号冲突,以及响应于该评估来控制一个或更多个车辆致动器。

该技术的一个方面还可以包括用于控制自主车辆的方法,该方法包括:将来自一个或更多个摄像机传感器的输入提供给在gpu上执行卷积神经网络的主计算机,响应于该输入生成第一控制信号;从以下中的一个或更多个接收第二信号:1)自动紧急制动单元;2)前向碰撞警告单元;3)车道偏离警告;4)碰撞警告单元;以及5)盲区警告单元;评估第一控制信号是否与第二信号冲突;以及响应于所述评估来控制一个或更多个车辆致动器。在这些方面的一个或更多个实施例中,自动紧急制动单元包括fpga和立体视频摄像机。在此方面的一个或更多个实施例中,自动紧急制动单元、前向碰撞警告单元、车道偏离警告单元、碰撞警告单元和盲区警告单元中的每一个可包括fpga以及立体视频摄像机和单眼摄像机中的一个或更多个。

示例方面包括用于控制自主车辆的方法,该方法包括:将来自一个或更多个摄像机传感器的输入提供给在dla上执行卷积神经网络的主计算机;以及响应于输入而生成第一控制信号;从以下一个或更多个接收第二信号:1)自动紧急制动单元;2)前向碰撞警告单元;3)车道偏离警告单元;4)碰撞警告单元;以及5)盲区警告单元;评估第一控制信号是否与第二信号冲突;以及响应于所述评估来控制一个或更多个车辆致动器。在此方面的一个或更多个实施例中,自动紧急制动单元、前向碰撞警告单元、车道偏离警告单元、碰撞警告单元和盲区警告单元中的每一个均可包括fpga以及立体视频摄像机和单眼摄像机中的一个或更多个。

该技术的一个或更多个方面可以针对用于控制自主车辆的方法,该方法包括:在gpu数据中心中训练第一神经网络,将第一神经网络提供给自主车辆,在gpu数据中心中训练第二神经网络,将第二神经网络提供给自主车辆,将第一神经网络存储在自主车辆的存储器中,将第二神经网络存储在自主车辆的存储器中,从设置在自主车辆的前部的至少一个立体摄像机传感器接收图像信息,从设置在自主车辆的前部的至少一个lidar传感器接收lidar信息,使用图像信息作为输入,在自主车辆中的主计算机上运行第一神经网络,使用lidar信息作为输入,在自主车辆中的主计算机上运行第二神经网络,以及响应于第一神经网络和第二神经网络的输出控制自主车辆。

在一个或更多个实施例中,该方法可以进一步包括经由无线网络(诸如(但不限于),lte网络、wcdma网络、umts网络和cdma2000网络)接收第一神经网络的更新的实例。在一个或更多个实施例中,lidar传感器是3d闪光lidar。

在一个或更多个实施例中,该方法还可以包括:将图像信息应用于前向碰撞警告系统,并且比较主计算机和前向碰撞警告系统的结果。根据实施例,可以在深度学习加速器和/或gpu上执行第一神经网络和第二神经网络中的一个或两者。

示例方面可以包括用于控制包括拖拉机和拖车的自主卡车的方法,该方法包括:将来自设置在拖拉机上的一个或更多个摄像机传感器的输入提供给在gpu上执行至少一个卷积神经网络的主计算机,响应于该输入而生成至少一个第一信号,从设置在拖车上的阵风传感器接收第二信号,评估第二信号是否识别出阵风状况,以及响应于该第一信号和该评估来控制一个或更多个车辆致动器。

另一示例方面可以被实现为用于控制包括拖拉机和拖车的自主卡车的方法,该方法包括:将来自设置在拖拉机上的一个或更多个摄像机传感器的输入提供给执行dla上运行的至少一个卷积神经网络的主计算机,响应于该输入生成至少一个第一信号,从设置在拖车上的至少一个阵风传感器接收第二信号,评估第二信号是否识别出阵风状况,以及响应于该第一信号和该评估来控制一个或更多个车辆致动器。

另一个方面可以包括用于控制无人驾驶巡逻车的方法,该方法包括:将来自一个或更多个摄像机传感器的输入提供给主计算机;在主计算机上的一个或两个gpu上执行第一神经网络;在主计算机中生成至少一个第一信号以控制至少一个车辆致动器,将来自一个或更多个摄像机传感器的输入提供给辅助计算机;(在辅助计算机上)执行第二cnn,该第二cnn被训练为从图像信息中识别至少一个其他车辆;在第二计算机中生成识别至少一个其他车辆的存在或不存在的至少一个第二信号;以及经由无线网络发送所述至少一个其他车辆的存在和位置的通知。

另一个示例方面可以实现为用于控制无人驾驶巡逻车的方法,其包括:将第一图像信息提供给包括cpu、gpu和一个或更多个硬件加速器的主计算机;以所述第一图像信息作为输入,在所述主计算机上的所述gpu和一个或更多个硬件加速器中的至少一个上执行第一神经网络;在主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器;将第二图像信息提供给包括cpu、gpu和一个或更多个硬件加速器的辅助计算机;以所述第二图像信息作为输入,在所述辅助计算机上的所述gpu和所述一个或更多个硬件加速器中的至少一个上执行第二神经网络;在所述辅助计算机中,生成至少一个第二信号,所述第二信号指示至少一个其他车辆的存在或不存在;以及经由无线网络发送所述至少一个其他车辆的存在和位置的通知。无线网络可以包括(但不限于):lte网络、wcdma网络、umts网络和cdma2000网络。

另一个方面可以实现为用于控制无人驾驶巡逻车的方法,其包括:将第一图像信息提供给包括cpu、gpu和一个或更多个硬件加速器的主计算机;以所述第一图像信息作为输入,在所述主计算机上的所述gpu和一个或更多个硬件加速器中的至少一个上执行第一神经网络;在主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器;将第二图像信息提供给包括cpu、gpu和一个或更多个硬件加速器的辅助计算机;以所述第二图像信息作为输入,在所述辅助计算机上的所述gpu和一个或更多个硬件加速器中的至少一个上执行第二神经网络;在所述辅助计算机中生成至少一个第二信号,所述第二信号指示至少一个安全状况的存在或不存在;以及经由无线网络发送至少一个安全状况的存在和位置的通知。无线网络可以包括(但不限于):lte网络、wcdma网络、umts网络和cdma2000网络。在一个或更多个实施例中,安全状况可以包括(但不限于)以下中的一个或更多个:火灾、交通事故、受伤的人以及人与人之间的身体冲突。在一个或更多个实施例中,第一图像信息和第二图像信息中的一个或两个包括来自一个或更多个红外摄像机的信息。

该技术的各方面包括实现用于控制无人驾驶舵杆卡车的方法,该方法包括:将第一图像信息提供给包括cpu、gpu和一个或更多个硬件加速器的主计算机;以所述第一图像信息作为输入,在所述主计算机上的所述gpu和一个或更多个的硬件加速器中的至少一个上执行第一神经网络;在主计算机中生成至少一个第一信号,用于控制与第一可控轴相关联的至少一个车辆致动器;将第二图像信息提供给包括cpu、gpu和一个或更多个硬件加速器的辅助计算机;以所述第二图像信息作为输入,在所述辅助计算机上的所述gpu和一个或更多个硬件加速器中的至少一个上执行第二神经网络;以及在辅助计算机中生成至少一个第二信号,用于控制与第二可控轴相关联的至少一个车辆致动器。

技术的各方面可以包括用于控制无人驾驶公共汽车的方法,其包括:将第一图像信息提供给包括cpu、gpu和一个或更多个硬件加速器的主计算机;以所述第一图像信息作为输入,在所述主计算机上的所述gpu和一个或更多个硬件加速器中的至少一个上执行第一神经网络;在主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器;将第二图像信息提供给包括cpu、gpu和一个或更多个硬件加速器的第二计算机,该第二图像信息包括公共汽车的乘客室的内部的至少一部分的图像;以所述第二图像信息作为输入,在所述辅助计算机上的所述gpu和一个或更多个硬件加速器中的至少一个上执行第二神经网络;以第二图像信息作为输入,在第二计算机上的硬件加速器之一上执行第二神经网络;在所述辅助计算机中生成至少一个第二信号,所述第二信号指示至少一个安全状况的存在或不存在;以及经由无线网络发送至少一个安全状况的存在和位置的通知。无线网络可以包括(但不限于):lte网络、wcdma网络、umts网络和cdma2000网络。在一个或更多个实施例中,安全状况可以包括(但不限于)以下中的一项或更多项:火灾、受伤的公共汽车乘客或行人以及公共汽车乘客之间的身体冲突。在一个或更多个实施例中,第一图像信息和第二图像信息中的一个或两个包括来自一个或更多个红外摄像机的信息。

出于所有目的,本文中所引用的所有文件均以引用的方式明确地并入本文,如同明确地阐述一样。

虽然已经根据目前被认为是最实际和优选的实施例描述了本发明,但是应该理解,本发明不限于所公开的实施例。例如,除非明确说明,否则本发明不限于任何类型或数量的传感器。可以使用落入权利要求的语言范围内的任何数量或类型的传感器。此外,作为示例,尽管已经使用nvidia硬件作为示例进行了上述讨论,但是可以使用任何类型或数量的处理器。相反,旨在函盖所附权利要求的精神和范围内包括的各种修改和等效布置。

权利要求书(按照条约第19条的修改)

1.一种片上系统,其特征在于:

支持虚拟化的至少一个cpu,

提供大规模并行处理的至少一个gpu,

至少一个基于硬件的计算机视觉加速器,以及

至少一个基于硬件的深度学习加速器,

其中,所述片上系统的特征还在于至少一个存储器设备接口,所述至少一个存储器设备接口被构造为将所述片上系统连接到至少一个存储器设备,所述至少一个存储器设备存储指令,所述指令在由所述片上系统执行时,使所述片上系统能够操作为自主车辆控制器。

2.根据权利要求1所述的片上系统,其特征还在于,所述片上系统被构造和设计为使所述自主车辆控制器基本上符合由sae规范j3016定义的级别5完全自动驾驶。

3.根据前述权利要求中任一项所述的片上系统,其特征还在于,所述片上系统被构造和设计为使所述自主车辆控制器基本上符合由iso标准26262定义的完整性等级“d”。

4.一种片上系统,其特征在于:

支持虚拟化的至少一个cpu,

提供大规模并行处理的至少一个gpu,

至少一个基于硬件的计算机视觉加速器,以及

至少一个基于硬件的深度学习加速器,

所述片上系统的特征还在于至少一个存储器设备接口,所述至少一个存储器设备接口被构造为将所述片上系统连接到至少一个存储器设备,所述至少一个存储器设备存储指令,所述指令在由所述片上系统执行时,使所述片上系统能够操作为自主车辆控制器。

5.根据权利要求4所述的片上系统,其特征还在于,所述至少一个cpu、所述至少一个gpu、所述至少一个基于硬件的计算机视觉加速器和所述至少一个基于硬件的深度学习加速器被构造和互连,以使所述自主车辆控制器能够基本上符合由国际标准化组织的标准26262定义的完整性等级“d”。

6.一种用于控制自主车辆的系统,其特征在于:

至少一个片上系统,其包括cpu、gpu和深度学习加速器;

所述至少一个片上系统的特征还在于连接到所述片上系统的至少一个存储器设备,所述存储器设备存储指令,所述指令在由所述cpu、所述gpu和/或所述深度学习加速器执行时,提供自主车辆控制,所述自主车辆控制基本上符合由国际标准化组织的标准26262定义的汽车安全完整性等级d。

7.根据权利要求6所述的用于控制自主车辆的系统,其特征还在于,所述片上系统包括至少一个计算机视觉加速器,所述计算机视觉加速器提供自主车辆控制,所述自主车辆控制基本上符合国际标准化组织的标准26262内的安全完整性等级d。

8.一种片上系统,其特征在于:

至少一个计算机视觉加速器,以及

至少一个深度学习加速器,

所述片上系统的特征还在于至少一个存储器设备接口,所述至少一个存储器设备接口用于将所述片上系统连接到存储自主车辆控制指令的至少一个存储器设备,所述自主车辆控制指令在由所述计算机视觉加速器和/或所述深度学习加速器执行时,使能基本上符合由国际标准化组织的标准26262定义的功能安全完整性等级“d”的自主车辆控制。

9.一种自主车辆,其特征在于:

车轮支撑的车身;

动力传动系;以及

传感器;

所述车辆的特征还在于耦合到所述动力传动系和所述传感器的片上系统,所述片上系统接收来自所述传感器的数据,并至少部分地控制所述动力传动系,所述片上系统包括:

支持虚拟化的至少一个cpu,

提供大规模并行处理的至少一个gpu,

至少一个基于硬件的计算机视觉加速器,

至少一个基于硬件的深度学习加速器,以及

至少一个存储器设备接口,所述至少一个存储器设备接口被构造为将所述片上系统连接到至少一个存储器设备,所述至少一个存储器设备存储指令,所述指令在由所述片上系统执行时,使所述片上系统能够操作为自主车辆控制器。

10.根据权利要求9所述的片上系统,其特征还在于,所述片上系统被构造和设计为使所述自主车辆控制器基本上符合iso和sae标准下完整性等级“d”的级别3-5自主车辆性能。

11.一种自主车辆控制系统,其特征在于:

用于预处理传感器数据的预处理器;

一个或更多个感知器,用于从所述预处理器预处理的传感器数据中感知负担;以及

导航器,用于执行至少部分地基于世界模型生成的路线规划;

所述系统的特征还在于,至少部分地基于来自所述一个或更多个感知器的感知的负担来维持的世界模型。

12.根据权利要求11所述的系统,其特征还在于,所述一个或更多个感知器包括所述多个感知器中的至少一个感知器,所述多个感知器包括:

用于感知障碍物负担的障碍物感知器;

用于感知路径负担的路径感知器;

用于感知等待条件负担的等待条件感知器;以及

用于感知地图负担的地图感知器。

13.根据权利要求12所述的系统,其特征还在于,所述一个或更多个感知器至少包括用于感知地图负担的所述地图感知器,其特征还在于,所述系统包括用于基于来自所述地图感知器的输出对自主车辆执行定位的定位器。

14.根据权利要求13所述的系统,其特征还在于,所述定位器通过处理来自所述地图感知器的所述输出和来自地图绘制数据供应商的地图数据来对所述自主车辆执行定位。

15.根据权利要求14所述的系统,其特征还在于,所述地图绘制数据供应商包括云地图绘制数据供应商。

16.根据权利要求11所述的系统,其特征还在于,所述预处理器包括来自预处理器列表中的至少一个预处理器,所述预处理器列表包括:

车道预处理器;

自校准器;

自我运动估计器;以及

轨迹估计器。

17.根据权利要求16所述的系统,其特征还在于,所述传感器数据包括由来自传感器集的一个或更多个传感器生成的数据,所述传感器集包括:

摄像机传感器;

激光雷达传感器;

雷达传感器;以及

惯性测量单元。

18.根据权利要求17所述的系统,其特征还在于,所述自校准器对所述一个或更多个传感器执行自校准。

19.根据权利要求17所述的系统,其特征还在于,所述自校准器基于由所述一个或更多个传感器产生的传感器输出和传感器参考数据集对所述一个或更多个传感器执行自校准。

20.根据权利要求16所述的系统,其特征还在于,所述传感器数据包括摄像机传感器数据和激光雷达传感器数据,特征还在于,所述车道预处理器至少基于所述摄像机传感器数据和所述激光雷达传感器数据来执行车道检测。

21.根据权利要求16所述的系统,其特征还在于,所述预处理器包括轨迹估计器,所述传感器数据包括激光雷达传感器数据,并且所述一个或更多个感知器包括障碍物感知器,

特征还在于,所述障碍物感知器至少基于所述激光雷达传感器数据和来自所述轨迹估计器的轨迹估计来感知障碍物负担。

22.根据权利要求11所述的系统,其特征还在于,所述导航器包括:

路线规划器,用于基于所述世界模型生成路线规划;

控制规划器,用于基于所述路线规划生成用于完成路线的一个或更多个控制操作;以及

致动器,用于执行所述一个或更多个控制操作以执行所述路线规划。

23.根据权利要求12所述的系统,其特征还在于,所述一个或更多个感知器包括障碍物感知器,

特征还在于,所述障碍物感知器的输出包括输出列表中的至少一个输出,所述输出列表包括:

动态占用栅格;

自由空间负担;以及

与一个或更多个感知的对象相对应的轨迹集。

24.根据权利要求12所述的系统,其特征还在于,所述一个或更多个感知器包括路径感知器,

特征还在于,所述路径感知器的输出包括跟踪的车道图。

25.根据权利要求12所述的系统,其特征还在于,所述一个或更多个感知器包括障碍物感知器、路径感知器和等待条件感知器,

特征还在于,基于以下各项生成路径内确定:

自由空间负担和与来自所述障碍物感知器的一个或更多个感知的对象相对应的轨迹集;

来自所述路径感知器的跟踪的车道图;以及

来自所述等待条件感知器的对一个或更多个等待条件的识别。

26.根据权利要求25所述的系统,其特征还在于,所述路径内确定由来自所述障碍物感知器、路径感知器和等待条件感知器的输出连续地更新,

特征还在于,基于所述路径内确定来维持所述世界模型。

27.一种车辆自校准器,其特征在于:

摄像机方向校准器,其连接以从摄像机传感器接收图像数据;

激光雷达方向校准器,其连接以从激光雷达传感器接收激光雷达数据;以及

雷达方向校准器,其连接以从雷达传感器接收雷达数据,

特征还在于,所述摄像机方向校准器、所述激光雷达方向校准器和所述雷达方向校准器中的至少一个生成数据,所述数据用于校准除了提供所述校准器接收的数据的传感器以外的传感器的方向。

28.一种驾驶控制系统,其包括:

世界模型存储器,用于存储世界模型;

通信器,所述通信器与基于云的地图绘制系统通信,所述通信器从所述基于云的地图绘制系统接收地理信息,并响应于接收的地理信息来更新存储的世界模型;

大规模并行传感器输入处理器,所述大规模并行传感器输入处理器被配置为处理传入图像和其他传感器输入数据以检测障碍物和位置提示;以及

车道跟踪引擎,所述车道跟踪引擎可操作地耦合到所述大规模并行传感器输入处理器以及耦合到所述存储的世界模型,所述车道跟踪引擎使用至少一个神经网络,通过深度学习硬件加速器进行加速,以生成行为控制信号以使车辆在车道中行驶。

29.根据权利要求28所述的驾驶控制系统,其特征还在于,所述车道跟踪引擎和大规模并行传感器输入处理器以处理布置实现,所述处理布置包括彼此互连的多个片上系统。

30.根据权利要求29所述的驾驶控制系统,其特征还在于,所述处理布置提供执行高性能应用程序的虚拟机,所述虚拟机隔离正在执行的高性能应用程序。

31.根据权利要求30所述的驾驶控制系统,其特征还在于,所述虚拟机包括错误监视器,所述错误监视器将错误报告给错误报告链,所述错误报告链包括与所述多个片上系统分离的微控制器。

32.根据权利要求31所述的驾驶控制系统,其特征还在于,所述错误监视器包括深度分组错误检测器。

33.根据权利要求28所述的驾驶控制系统,其特征还在于,轨迹估计器被参数化为车辆姿态序列,并且至少部分地基于深度映射来操作,所述深度映射至少部分地基于里程表和/或惯性感测执行。

34.根据权利要求28所述的驾驶控制系统,其特征还在于,动态占用栅格是具有空间维度和时间维度的体阵列。

35.根据权利要求28所述的驾驶控制系统,其特征还在于,传感器自校准器被配置为至少部分地基于感测的垂直地标和/或感测的地平面来校准用于方向的至少一个传感器。

36.根据权利要求28所述的驾驶控制系统,其特征还在于,路径内和自由性等待条件处理。

37.根据权利要求28所述的驾驶控制系统,其特征还在于,行为规划器、车道规划器和路线规划器,所述行为规划器向所述车道规划器提供输入,所述车道规划器处理所述行为规划器输入并生成输出以应用于所述路线规划器,所述路线规划器与所述存储的世界模型协作以通过所述世界模型规划路线。

38.一种虚拟驾驶控制系统,其特征在于:

至少一个片上系统,所述至少一个片上系统的特征在于分配给虚拟机的处理核心;以及

在硬件上或硬件附近运行的管理程序,所述管理程序调度所述虚拟机对处理资源例如gpu的使用;

所述虚拟机中的至少一个虚拟机,所述至少一个虚拟机包括检测和减轻入侵攻击的神经网络。

39.一种分区的驾驶控制系统,其特征在于:

至少一个片上系统,所述至少一个片上系统的特征在于分配给多个分区的处理核心;以及

管理程序,所述管理程序调度所述多个分区对处理资源的使用;

所述分区中的至少一个分区,所述至少一个分区的特征在于检测和减轻入侵攻击的基于神经网络的安全分区。

40.一种分区的驾驶控制系统,其特征在于:

至少一个片上系统,所述至少一个片上系统的特征在于分配给执行高性能应用程序的多个分区的处理核心;

看门狗监视器,所述看门狗监视器监视所述多个分区,所述看门狗监视器被构造为监视正在执行的高性能应用程序,检测错误状况并将检测到的错误状况报告给与所述多个分区隔离的安全分区。

41.根据权利要求40所述的分区的驾驶控制系统,其特征还在于,所述安全分区和所述多个分区在不同的硬件上运行。

42.根据权利要求40所述的分区的驾驶控制系统,其特征还在于,所述安全分区和所述多个分区包括在相同硬件上运行的不同虚拟机。

43.根据权利要求40所述的分区的驾驶控制系统,其特征还在于,所述安全分区在安全处理器核心上执行。

44.根据权利要求43所述的分区的驾驶控制系统,其特征还在于,所述安全处理核心是所述片上系统的一部分。

45.根据权利要求43所述的分区的驾驶控制系统,其特征还在于,所述安全处理核心不是所述片上系统的一部分。

46.根据权利要求43所述的分区的驾驶控制系统,其特征还在于,所述安全处理核心是所述片上系统的一部分,并且所述系统还包括不是所述片上系统的一部分的附加安全处理核心,特征还在于,是所述片上系统的一部分的所述安全处理核心与不是所述片上系统的一部分的所述附加安全处理核心进行通信。

47.根据权利要求46所述的分区的驾驶控制系统,其特征还在于,所述附加安全处理核心被连接以经由错误信号引脚接收错误信号。

48.根据权利要求46所述的分区的驾驶控制系统,其特征还在于,所述附加安全处理核心通过总线执行质询/响应协议,所述总线使不是所述片上系统的一部分的所述附加安全处理核心能够与是所述片上系统的一部分的所述安全处理核心通信。

49.根据权利要求40所述的分区的驾驶控制系统,其特征还在于,所述看门狗监视器包括硬件错误检测器。

50.一种车辆控制平台,其特征在于:

世界模型;

连接到所述世界模型的一个或更多个感知器,所述一个或更多个感知器的特征在于障碍物感知器、路径感知器、等待条件感知器和地图感知器,所述一个或更多个感知器在包括深度学习加速器的至少一个片上系统上执行;以及

至少与所述地图感知器通信的基于云的系统,所述基于云的系统使得能够基于历史驾驶和/或多个车辆的驾驶来更新所述模型。

51.一种车辆控制器,其特征在于:

行为规划器;

车道规划器;

路线规划器;以及

行为选择器,

特征还在于,所述行为规划器、车道规划器和路线规划器是分层互连的,并使用一个或更多个基于硬件的深度学习加速器来执行。

52.一种asild自主车辆控制器,其特征在于:

路线绘制器,所述路线绘制器配置为绘制路线;

定位器,所述定位器配置为确定定位的地理数据;以及

基于云的匹配器和图块器,所述基于云的匹配器和图块器可操作地至少耦合到所述路线绘制器和所述定位器,

所述车辆控制器的特征还在于,所述路线绘制器处理使用硬件加速器大规模并行处理的多维传感器数据的结果。

53.一种自主车辆控制器,其特征在于:

cpu,以及

特征还在于,深度学习加速器。

54.一种自主车辆控制器,其特征在于:

cpu,以及

特征还在于,虚拟化执行系统。

55.一种自主车辆控制器,其特征在于:

cpu,以及

特征还在于,光线追踪加速器。

56.一种自主车辆控制器,其特征在于:

cpu,以及

特征还在于,耦合至神经网络的世界模型。

57.一种自主车辆控制器,其特征在于:

cpu,以及

特征还在于,安全监视器mcu。

58.一种自主车辆控制器,其特征在于:

cpu,以及

特征还在于,级别3安全监视器。

59.一种自主车辆,其包括:

动力传动系;以及

包括深度学习加速器的控制器。

60.一种自主车辆,其包括:

动力传动系;以及

包括深度学习加速器的soc。

61.一种自主车辆,其包括:

动力传动系;以及

asildsoc控制器。

62.一种自主车辆,其包括:

can总线;以及

asildsoc。

63.一种自主车辆,其包括:

gpu,所述gpu包括预处理摄像机数据的大规模并行处理器;以及

asildsoc。

64.一种自主车辆,其包括:

动力传动系;以及

自主控制器,所述自主控制器包括一个以上且少于三个soc,

其中所述控制器基本上符合asild。

65.一种自主车辆,其包括:

动力传动系;以及

自主控制器,所述自主控制器包括一个以上且少于三个soc,

其中所述控制器基本上符合asild,以完成自主车辆操作。

66.一种自主车辆,其包括:

制动系统;以及

控制器,所述控制器自动地致动所述制动系统,所述控制器包括一个以上且少于三个soc,每个soc包括深度学习加速器。

67.一种自主车辆,其包括:

制动系统;以及

控制器,所述控制器自动地致动所述制动系统,所述控制器包括监视虚拟分区的多级安全监视器。

68.一种自主车辆,其包括:

视频流传感器;以及

控制器,所述控制器包括一个以上且少于三个soc,每个soc包括深度学习加速器,所述控制器对所述传感器的输出执行深度分组检查。

69.一种soc,其包括:

cpu,

gpu,

存储器,以及

三级安全监视器。

70.一种自主车辆控制器模块,其包括:

外壳,

冷却风扇,以及

基板,在其上具有第一soc和第二soc,所述第一soc和第二soc中的至少一个包括深度学习加速器,

其中所述控制器模块基本上符合由iso标准26262定义的asild。

71.根据权利要求70所述的模块,其中所述soc中的至少一个包括实时光线追踪加速硬件。

72.根据权利要求71所述的模块,其中所述光线追踪硬件被配置为执行空间碰撞分析。

73.根据权利要求70所述的模块,还包括总线,所述总线在所述第一soc与第二soc之间提供高速通信。

74.根据权利要求73所述的模块,其中所述总线向第三soc提供扩展。

75.根据权利要求70所述的模块,还包括与所述第一soc和第二soc通信的安全监视器微控制器。

76.根据权利要求75所述的模块,其中所述第一soc和第二soc各包括与所述安全监视器微控制器通信的看门狗监视器。

77.根据权利要求76所述的模块,其中所述看门狗监视器包括软件。

78.根据权利要求76所述的模块,其中所述看门狗监视器包括硬件。

79.根据权利要求76所述的模块,其中所述看门狗监视器包括软件和硬件。

80.根据权利要求76所述的模块,其中所述看门狗监视器在虚拟分区中执行。

81.根据权利要求80所述的模块,其中所述虚拟分区包括高性能应用分区和安全分区。

82.根据权利要求81所述的模块,其中所述分区包括在公共cpu上运行的虚拟机。

83.根据权利要求82所述的模块,其中所述虚拟机彼此隔离。

84.根据权利要求83所述的模块,其中所述虚拟机经由虚拟机间通信彼此通信。

85.根据权利要求83所述的模块,其中所述虚拟机执行神经网络。

86.根据权利要求85所述的模块,其中所述神经网络执行模式识别。

87.根据权利要求86所述的模块,其中所述神经网络执行碰撞检测。

88.根据权利要求87所述的模块,其中所述神经网络执行车道规划。

89.根据权利要求87所述的模块,其中所述神经网络包括深度神经网络。

90-100:保留。

90.一种用于无人驾驶车辆的片上系统,其特征在于:

中央处理单元复合体,

图形处理单元,

嵌入式硬件加速复合体,其特征还在于:

可编程视觉加速器,

深度学习加速器,以及

片上存储器。

91.根据权利要求101所述的片上系统,其特征还在于:

所述图形处理单元包括hbm存储器。

92.根据权利要求102所述的片上系统,其特征还在于:

所述hbm存储器是hbm2存储器。

93.根据权利要求101所述的片上系统,其特征还在于:

所述图形处理单元包括多个流式微处理器,所述多个流式微处理器包括独立并行整数和浮点数据路径。

94.根据权利要求101所述的片上系统,其特征还在于:

所述图形处理单元包括多个流式微处理器,所述多个流式微处理器包括独立线程调度能力。

95.根据权利要求101所述的片上系统,其特征还在于:

所述图形处理单元包括统一存储器。

96.根据权利要求106所述的片上系统,其特征还在于:

所述统一存储器为所述中央处理单元复合体和所述图形处理单元提供单个统一虚拟地址空间。

97.根据权利要求101所述的片上系统,其特征还在于:

安全集群引擎,其特征在于:

多个处理器核心,其配置为以锁步模式操作并用作单个核心,以及

比较逻辑,用于检测由所述多个处理器核心执行的所述操作之间的任何差异。

98.根据权利要求101所述的片上系统,其特征还在于:

存储器控制器。

99.根据权利要求101所述的片上系统,其特征还在于:

启动和功率管理处理器,所述启动和功率管理处理器被配置为控制所述片上系统的功率状态转换。

100.根据权利要求110所述的片上系统,其特征还在于:

所述启动和功率管理处理器还被配置为监视所述片上系统的热状况,并响应地管理所述片上系统的功率状态。

101.根据权利要求109所述的片上系统,其特征还在于:

由所述中央处理单元复合体和所述图形处理单元共享l3高速缓存。

102.根据权利要求101所述的片上系统,其特征还在于:

多个温度传感器。

103.根据权利要求113所述的片上系统,其特征还在于:

所述多个温度传感器,每个所述温度传感器的特征在于一个或更多个环形振荡器,其输出频率与温度成比例。

104.根据权利要求114所述的片上系统,其特征还在于:

所述多个温度传感器被配置为检测所述中央处理单元复合体组、所述图形处理单元和所述加速集群中的一个或更多个的温度。

105.根据权利要求101所述的片上系统,其特征还在于:

所述中央处理单元复合体包括多个cpu核心。

106.根据权利要求101所述的片上系统,其特征还在于:

所述中央处理单元复合体包括cpu核心集群。

107.根据权利要求116所述的片上系统,其特征还在于:

所述多个cpu核心中的每个cpu核心被耦合到片上l2高速缓存存储器。

108.根据权利要求117所述的片上系统,其特征还在于:

所述cpu核心集群被耦合到片上l2高速缓存存储器。

109.根据权利要求101所述的片上系统,其特征还在于:

所述中央处理单元复合体包括多个cpu核心集群。

110.根据权利要求120所述的片上系统,其特征还在于:

所述多个集群中的每个集群被耦合到专用的片上l2高速缓存存储器。

111.根据权利要求121所述的片上系统,其特征还在于:

所述多个集群中的每个集群被配置为独立于所述中央处理单元复合体中的其他集群的状态而是活动的。

112.根据权利要求122所述的片上系统,其特征还在于:

所述多个集群中的每个集群被配置为与所述多个集群中的一个或更多个集群进行异构多处理。

113.根据权利要求112所述的片上系统,其特征还在于:

功率管理处理器。

114.根据权利要求124所述的片上系统,其特征还在于:

所述功率管理处理器独立地对每个核心进行功率门控。

115.根据权利要求124所述的片上系统,其特征还在于:

所述功率管理处理器独立地对每个集群进行功率门控。

116.根据权利要求112所述的片上系统,其特征还在于:

所述中央处理单元复合体包括cpu核心集群。

117.根据权利要求127所述的片上系统,其特征还在于:

每个cpu核心被耦合到l2高速缓存存储器。

118.根据权利要求127所述的片上系统,其特征还在于:

所述cpu核心集群被耦合到l2高速缓存存储器。

119.根据权利要求112所述的片上系统,其特征还在于:

所述中央处理单元复合体包括多个cpu核心集群。

120.根据权利要求130所述的片上系统,其特征还在于:

所述多个集群中的每个集群被耦合到专用的l2高速缓存存储器。

121.根据权利要求131所述的片上系统,其特征还在于:

所述多个集群中的每个集群被配置为独立于所述中央处理单元复合体中的其他集群的状态而是活动的。

122.根据权利要求132所述的片上系统,其特征还在于:

所述多个集群中的每个集群被配置为与所述多个集群中的一个或更多个集群进行异构多处理。

123.根据权利要求127所述的片上系统,其特征还在于:

功率管理处理器。

124.根据权利要求134所述的片上系统,其特征还在于:

所述功率管理处理器独立地对每个核心进行功率门控。

125.根据权利要求134所述的片上系统,其特征还在于:

所述功率管理处理器独立地对每个集群进行功率门控。

126.根据权利要求101所述的片上系统,其特征还在于:

耦合到可编程视觉加速器的sram存储器。

127.根据权利要求101所述的片上系统,其特征还在于:

耦合到深度学习加速器的sram存储器。

128.根据权利要求109所述的片上系统,其特征还在于:

视频图像合成器处理器。

129.根据权利要求139所述的片上系统,其特征还在于:

所述视频图像合成器处理器被配置为对来自至少一个鱼眼或广角摄像机传感器的图像数据执行镜头畸变校正。

130.根据权利要求139所述的片上系统,其特征还在于:

所述视频图像合成器处理器被配置为对来自至少一个摄像机传感器的输入执行时间降噪。

131.根据权利要求140所述的片上系统,其特征还在于:

所述视频图像合成器处理器还被配置为对从两个摄像机接收的图像数据执行立体校正。

132.根据权利要求141所述的片上系统,其特征还在于:

所述视频图像合成器处理器还被配置为对从两个摄像机接收的图像数据执行立体校正。

133.根据权利要求109所述的片上系统,其特征还在于:

实时摄像机引擎,其特征在于:

处理器核心,

耦合到所述处理器核心的ram,以及

中断控制器。

134.根据权利要求109所述的片上系统,其特征还在于:

始终开启传感器处理引擎,其特征在于:

低功耗模式下的处理器核心,

耦合到所述处理器核心的ram,以及

中断控制器。

135.根据权利要求145所述的片上系统,其特征还在于:

所述始终开启传感器处理引擎包括神经网络,所述神经网络被训练以识别车辆的授权操作者。

136.根据权利要求146所述的片上系统,其特征还在于:

所述始终开启传感器处理引擎被配置为当所述神经网络指示车辆的所述授权操作者在所述车辆上时解锁所述车辆。

137.根据权利要求147所述的片上系统,其特征还在于:

所述始终开启传感器处理引擎被配置为在所述神经网络指示车辆的所述授权操作者已经离开所述车辆时锁定所述车辆。

138.根据权利要求139所述的片上系统,其特征还在于:

连接所述中央处理单元复合体和所述视频图像合成器处理器的系统一致性结构。

139.根据权利要求149所述的片上系统,其特征还在于:

所述系统一致性结构包括一致性高速缓存刷新引擎,所述一致性高速缓存刷新引擎促进与所述系统中的非一致性客户端的基于软件的一致性。

140.根据权利要求144所述的片上系统,其特征还在于:

系统一致性结构用于连接所述中央处理单元复合体和所述实时摄像机引擎。

141.根据权利要求151所述的片上系统,其特征还在于:

所述系统一致性结构包括一致性高速缓存刷新引擎,所述一致性高速缓存刷新引擎促进与所述系统中的非一致性客户端的基于软件的一致性。

142.根据权利要求145所述的片上系统,其特征还在于:

系统一致性结构用于连接所述中央处理单元复合体和所述始终开启传感器处理引擎。

143.根据权利要求153所述的片上系统,其特征还在于:

所述系统一致性结构包括一致性高速缓存刷新引擎,所述一致性高速缓存刷新引擎促进与所述系统中的非一致性客户端的基于软件的一致性。

144.根据权利要求101所述的片上系统,其特征还在于:

所述可编程视觉加速器包括:

至少一个处理器,以及

至少一个直接存储器访问引擎。

145.根据权利要求101所述的片上系统,其特征还在于:

所述可编程视觉加速器包括:

第一向量处理器,

与所述第一向量处理器相关联的第一指令高速缓存,

与所述第一向量处理器相关联的第一向量存储器,

与所述第一向量处理器相关联的第一直接存储器访问引擎,

第二向量处理器,

与所述第二向量处理器相关联的第二指令高速缓存,

与所述第二向量处理器相关联的第二向量存储器,以及

与所述第二向量处理器相关联的第二直接存储器访问引擎。

146.根据权利要求156所述的片上系统,其特征还在于:

所述第一向量处理器被配置为执行第一计算机视觉算法,以及

所述第二向量处理器被配置为执行第二计算机视觉算法。

147.根据权利要求156所述的片上系统,其特征还在于:

所述第一向量处理器被配置为对图像的一部分执行第一计算机视觉算法,以及

所述第二向量处理器被配置为对所述图像的不同部分执行第二计算机视觉算法。

148.根据权利要求157所述的片上系统,其特征还在于:

所述第一向量处理器是dsp,以及

所述第二向量处理器是dsp。

149.根据权利要求157所述的片上系统,其特征还在于:

所述第一向量处理器是simdvliwdsp,以及

所述第二向量处理器是simdvliwdsp。

150.根据权利要求155所述的片上系统,其特征还在于:

所述可编程视觉加速器还包括:

针对计算机视觉优化的数字信号处理器,

与所述数字信号处理器相关联的存储器,以及

与所述数字信号处理器相关联的指令高速缓存。

151.一种用于无人驾驶车辆的片上系统,其特征在于:

中央处理单元复合体,其特征在于多个cpu核心和专用的l2高速缓存存储器,

图形处理单元,其特征在于多个gpu核心和专用的l2高速缓存存储器,

嵌入式硬件加速复合体,其特征在于:

可编程视觉加速器,

深度学习加速器,

专用sram,所述专用sram连接到所述可编程视觉加速器和所述深度学习加速器。

152.根据权利要求162所述的片上系统,其特征还在于:

所述图形处理单元包括hbm存储器。

153.根据权利要求163所述的片上系统,其特征还在于:

所述hbm存储器是hbm2存储器。

154.根据权利要求162所述的片上系统,其特征还在于:

所述图形处理单元包括多个流式微处理器,所述多个流式微处理器包括独立的并行整数和浮点数据路径。

155.根据权利要求162所述的片上系统,其特征还在于:

所述图形处理单元包括多个流式微处理器,所述多个流式微处理器包括独立线程调度能力。

156.根据权利要求162所述的片上系统,其特征还在于:

所述图形处理单元包括统一存储器。

157.根据权利要求167所述的片上系统,其特征还在于:

所述统一存储器为所述中央处理单元复合体和所述图形处理单元提供单个统一虚拟地址空间。

158.根据权利要求162所述的片上系统,其特征还在于:

由所述中央处理单元复合体和所述图形处理单元共享的l3高速缓存。

159.根据权利要求162所述的片上系统,其特征还在于:

所述可编程视觉加速器包括:

至少一个数字信号处理器,以及

至少一个直接存储器访问引擎。

160.根据权利要求170所述的片上系统,其特征还在于:

所述可编程视觉加速器还包括:

针对计算机视觉优化的数字信号处理器,

与所述数字信号处理器相关联的存储器,以及

与所述数字信号处理器相关联的指令高速缓存。

161.一种用于控制自主车辆的计算机,其特征在于:

如权利要求101所述的第一片上系统,

如权利要求101所述的第二片上系统,

第一分立式图形处理单元,所述第一分立式图形处理单元耦合到所述第一片上系统,

第二分立式图形处理单元,所述第二分立式图形处理单元耦合到所述第二片上系统,以及

微控制器,所述微控制器耦合到所述第一片上系统和第二片上系统。

162.根据权利要求172所述的用于控制自主车辆的计算机,其特征还在于:

六轴惯性测量单元。

163.根据权利要求173所述的用于控制自主车辆的计算机,其特征还在于:

所述六轴惯性测量单元被耦合到所述第一片上系统,以将关于所述车辆的加速度和旋转的信息提供给所述第一片上系统,以及

所述第一片上系统被配置为对关于所述车辆的加速度和旋转的所述信息执行传感器融合。

164.根据权利要求172所述的用于控制自主车辆的计算机,其特征还在于:

交换机,所述交换机用于耦合所述第一片上系统、第二片上系统和所述微控制器。

165.根据权利要求175所述的用于控制自主车辆的计算机,其特征还在于:

所述交换机是pcie交换机。

166.根据权利要求175所述的用于控制自主车辆的计算机,其特征还在于:

耦合到所述交换机的分立式cpu。

167.根据权利要求177所述的用于控制自主车辆的计算机,其特征还在于:

所述分立式cpu是x86cpu。

168.根据权利要求172所述的用于控制自主车辆的计算机,其特征还在于:

所述第一片上系统和所述第二片上系统被耦合到用于接收传感器数据的多个输入端口。

169.一种用于控制自主车辆的计算机,其特征在于:

如权利要求101所述的多个片上系统,

多个分立式图形处理单元,每个所述分立式图形处理单元耦合到所述片上系统之一,

片上系统,所述片上系统用于互连所述多个片上系统和所述多个分立式图形处理单元。

170.根据权利要求180所述的用于控制自主车辆的计算机,其特征还在于:

所述多个片上系统彼此耦合。

171.根据权利要求181所述的用于控制自主车辆的计算机,其特征还在于:

所述多个片上系统通过i2c总线彼此耦合。

172.根据权利要求182所述的用于控制自主车辆的计算机,其特征还在于:

所述多个片上系统被安装在公共印刷电路板上,并且被设置在同一壳体内。

173.根据权利要求183所述的用于控制自主车辆的计算机,其特征还在于:

所述壳体还包括冷却系统,所述冷却系统包括风扇散热器和用于从所述片上系统传输热量的流体通道。

174.根据权利要求184所述的用于控制自主车辆的计算机,其特征还在于:

所述壳体还包括冷却系统,所述冷却系统包括风扇散热器和用于从所述片上系统传输热量的空气通道。

175.根据权利要求185所述的用于控制自主车辆的计算机,其特征还在于:

所述壳体还包括风扇散热器和混合式热传输模块,所述风扇散热器和混合式热传输模块的特征在于流体通道和空气通道,用于从所述片上系统传输热量。

176.一种用于控制自主车辆的计算机,其特征在于:

如权利要求101所述的第一片上系统,

如权利要求101所述的第二片上系统,

如权利要求101所述的第三片上系统,

如权利要求101所述的第四片上系统,

如权利要求101所述的第五片上系统,

如权利要求101所述的第六片上系统,

如权利要求101所述的第七片上系统,

如权利要求101所述的第八片上系统,

第一分立式图形处理单元,所述第一分立式图形处理单元耦合到所述第一片上系统,

第二分立式图形处理单元,所述第二分立式图形处理单元耦合到所述第二片上系统,

第三分立式图形处理单元,所述第三分立式图形处理单元耦合到所述第三片上系统,

第四分立式图形处理单元,所述第四分立式图形处理单元耦合到所述第四片上系统,

第五分立式图形处理单元,所述第五分立式图形处理单元耦合到所述第五片上系统,

第六分立式图形处理单元,所述第六分立式图形处理单元耦合到所述第六片上系统,

第七分立式图形处理单元,所述第七分立式图形处理单元耦合到所述第七片上系统,

第八分立式图形处理单元,所述第八分立式图形处理单元耦合到所述第八片上系统,

微控制器,所述微控制器耦合到每个所述片上系统,以及

网络交换机,所述网络交换机在所述高级soc与分立式gpu之间提供点对点通信。

177.根据权利要求187所述的用于控制自主车辆的计算机,其特征还在于:

所述片上系统、所述分立式图形处理单元、所述微控制器和所述网络交换机被安装在公共印刷电路板上,并被设置在所述同一壳体内。

178.根据权利要求188所述的用于控制自主车辆的计算机,其特征还在于:

所述壳体还包括冷却系统,所述冷却系统包括风扇散热器和用于从所述片上系统传输热量的流体通道。

179.根据权利要求189所述的用于控制自主车辆的计算机,其特征还在于:

所述壳体还包括冷却系统,所述冷却系统包括风扇散热器和用于从所述片上系统传输热量的空气通道。

180.根据权利要求190所述的用于控制自主车辆的计算机,其特征还在于:

所述壳体还包括风扇散热器和混合式热传输模块,所述风扇散热器和混合式热传输模块的特征在于流体通道和空气通道,用于从所述片上系统传输热量。

181.根据权利要求187所述的用于控制自主车辆的计算机,其特征还在于:

所述第一片上系统执行用于行人检测的神经网络。

182.根据权利要求192所述的用于控制自主车辆的计算机,其特征还在于:

所述第二片上系统执行用于信号检测的神经网络。

183.根据权利要求193所述的用于控制自主车辆的计算机,其特征还在于:

所述第三片上系统执行用于距离估计的神经网络。

184.根据权利要求194所述的用于控制自主车辆的计算机,其特征还在于:

所述第四片上系统执行用于车道检测的神经网络。

185.根据权利要求195所述的用于控制自主车辆的计算机,其特征还在于:

所述第五片上系统执行用于避免碰撞的神经网络。

186.根据权利要求196所述的用于控制自主车辆的计算机,其特征还在于:

所述第六片上系统执行用于当前占用栅格的神经网络。

187.根据权利要求197所述的用于控制自主车辆的计算机,其特征还在于:

所述第七片上系统执行用于预测的占用栅格的神经网络。

188.根据权利要求198所述的用于控制自主车辆的计算机,其特征还在于:

所述第八片上系统执行用于转向控制的神经网络。

189.根据权利要求194所述的用于控制自主车辆的计算机,其特征还在于,

用于距离估计的所述神经网络是由激光雷达数据训练的网络。

190.一种用于控制自主车辆的系统,其特征在于:

主计算机,其特征在于如权利要求179所述的第一计算机,

辅助计算机,其特征在于如权利要求179所述的第二计算机,

监督mcu,所述监督mcu耦合到所述第一计算机和所述第二计算机,

多个摄像机传感器,所述多个摄像机传感器耦合到所述第一计算机和所述第二计算机,

多个车辆监视传感器,所述多个车辆监视传感器耦合到所述第一计算机,

其特征还在于:

所述主计算机被配置为接收来自所述摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,

所述辅助计算机被配置为接收来自所述摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,以及

所述监督mcu被配置为比较来自所述主计算机和所述辅助计算机的所述输出。

191.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于,所述mcu包括如权利要求179所述的第三计算机。

192.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

电耦合到所述主计算机的无线设备,所述无线设备用于与无线网络进行通信,

所述无线设备被配置为从无线网络接收关于至少一个神经网络的更新信息,

所述主计算机被配置为响应于所述信息更新至少一个神经网络。

193.根据权利要求203所述的用于控制自主车辆的系统,其特征还在于:

所述主计算机被配置为通过与当前神经网络并行运行更新的神经网络并比较所述结果来测试和验证所述更新的神经网络,以及

所述主计算机被配置为在所述更新的神经网络已经被完全下载、测试和验证之后依赖于所述更新的神经网络。

194.根据权利要求203所述的用于控制自主车辆的系统,其特征还在于:

所述无线网络是lte网络。

195.根据权利要求203所述的用于控制自主车辆的系统,其特征还在于:

所述无线网络是wcdma网络。

196.根据权利要求203所述的用于控制自主车辆的系统,其特征还在于:

所述无线网络是umts网络。

197.根据权利要求203所述的用于控制自主车辆的系统,其特征还在于:

所述无线网络是cdma2000网络。

198.根据权利要求203所述的用于控制自主车辆的系统,其特征还在于:

数据中心,其特征在于一个或更多个gpu服务器,所述一个或更多个gpu服务器耦合到所述无线网络并且被配置为:

接收由一个或更多个车辆收集并通过所述无线网络传输的训练信息,

使用所述信息训练一个或更多个神经网络,以及

将所述经训练的神经网络提供给所述无线网络,以传输到一个或更多个自主车辆。

199.根据权利要求203所述的用于控制自主车辆的系统,其特征还在于:

数据中心,其特征在于一个或更多个gpu服务器,所述一个或更多个gpu服务器耦合到所述无线网络并且被配置为:

接收由车辆收集并通过所述无线网络传输的图像和对象检测信息,

使用所述图像信息作为输入,在所述gpu服务器中的一个或更多个上运行神经网络,

将在所述gpu服务器中的一个或更多个上运行所述神经网络的结果与从所述车辆接收的所述对象检测信息进行比较,以及

如果所述比较的所述结果降到置信度阈值以下,则向所述车辆发送无线控制信号,指示所述车辆指示乘客并执行安全停车操作。

200.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

电耦合到所述主计算机的无线设备,所述无线设备用于与无线网络进行通信,

所述无线设备被配置为从无线网络接收更新的地图信息,

所述主计算机被配置为将所述更新的地图信息存储在存储器中。

201.根据权利要求211所述的用于控制自主车辆的系统,其特征还在于:

所述无线网络是lte网络。

202.根据权利要求211所述的用于控制自主车辆的系统,其特征还在于:

所述无线网络是wcdma网络。

203.根据权利要求211所述的用于控制自主车辆的系统,其特征还在于:

所述无线网络是umts网络。

204.根据权利要求211所述的用于控制自主车辆的系统,其特征还在于:

所述无线网络是cdma2000网络。

205.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

电耦合到所述主计算机的无线设备,所述无线设备用于与无线网络进行通信,

所述无线设备被配置为从所述网络接收关于另一车辆的cacc信息。

206.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述主计算机的hmi显示器,

所述hmi显示器被配置为指示所述系统何时已经识别出交通信号、交通标志、自行车、行人或道路上的障碍物。

207.根据权利要求217所述的用于控制自主车辆的系统,其特征还在于:

所述hmi显示器还被配置为响应于识别出的交通信号、交通标志、自行车、行人或所述道路上的障碍物,指示所述系统正在采取适当的动作。

208.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

所述监督mcu还被配置为如果来自所述第一计算机和所述第二计算机的所述输出不一致,则输出警报信号。

209.一种用于控制自主车辆的系统,其特征在于:

主计算机,其特征在于如权利要求179所述的第一计算机,

辅助计算机,其特征在于adas系统,

监督mcu,所述监督mcu耦合到所述主计算机和所述辅助计算机,

多个摄像机传感器,所述多个摄像机传感器耦合到所述主计算机,

一个或更多个辅助传感器,所述一个或更多个辅助传感器耦合到所述辅助计算机,

多个车辆监视传感器,所述多个车辆监视传感器耦合到所述主计算机,

其特征还在于:

所述主计算机被配置为接收来自所述摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,

所述辅助计算机被配置为接收来自所述辅助传感器的输入并输出关于所述车辆的操作的至少一个第二信号,以及

所述监督mcu被配置为比较来自所述主计算机和所述辅助计算机的所述信号。

210.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于,所述adas系统包括eyeqsoc。

211.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括前向碰撞警告单元。

212.根据权利要求222所述的用于控制自主车辆的系统,其特征还在于:

所述前向碰撞警告单元包括fpga和立体视频摄像机。

213.根据权利要求222所述的用于控制自主车辆的系统,其特征还在于:

所述前向碰撞警告单元包括fpga和远程雷达单元。

214.根据权利要求222所述的用于控制自主车辆的系统,其特征还在于:

所述前向碰撞警告单元包括处理器和远程雷达单元。

215.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括车道偏离警告单元。

216.根据权利要求226所述的用于控制自主车辆的系统,其特征还在于:

所述车道偏离警告单元包括fpga和立体视频摄像机。

217.根据权利要求226所述的用于控制自主车辆的系统,其特征还在于:

所述车道偏离警告单元包括fpga和单眼摄像机单元。

218.根据权利要求226所述的用于控制自主车辆的系统,其特征还在于:

所述车道偏离警告单元包括处理器和单眼摄像机单元。

219.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括自动紧急制动单元。

220.根据权利要求230所述的用于控制自主车辆的系统,其特征还在于:

所述自动紧急制动单元包括fpga和立体视频摄像机。

221.根据权利要求230所述的用于控制自主车辆的系统,其特征还在于:

所述自动紧急制动单元包括fpga和远程雷达单元。

222.根据权利要求230所述的用于控制自主车辆的系统,其特征还在于:

所述自动紧急制动单元包括处理器和远程雷达单元。

223.根据权利要求230所述的用于控制自主车辆的系统,其特征还在于:

所述自动紧急制动单元包括asic和远程雷达单元。

224.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括自动巡航控制单元。

225.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括纵向自动巡航控制单元。

226.根据权利要求236所述的用于控制自主车辆的系统,其特征还在于:

所述纵向巡航控制单元被配置为基于到前面车辆的距离和所述自主车辆的当前速度来调节所述自主车辆的速度。

227.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括横向自动巡航控制单元。

228.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括前向雷达传感器。

229.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括fpga和前向雷达传感器。

230.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括处理器和前向雷达传感器。

231.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括asic和前向摄像机。

232.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括前向摄像机。

233.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括fpga和前向摄像机。

234.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括处理器和前向摄像机。

235.根据权利要求235所述的用于控制自主车辆的系统,其特征还在于:

所述自动巡航控制单元包括asic和前向摄像机。

236.根据权利要求243所述的用于控制自主车辆的系统,其特征还在于:

所述前向摄像机是立体摄像机。

237.根据权利要求244所述的用于控制自主车辆的系统,其特征还在于:

所述前向摄像机是立体摄像机。

238.根据权利要求245所述的用于控制自主车辆的系统,其特征还在于:

所述前向摄像机是立体摄像机。

239.根据权利要求246所述的用于控制自主车辆的系统,其特征还在于:

所述前向摄像机是立体摄像机。

240.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括后方交叉交通警告单元。

241.根据权利要求251所述的用于控制自主车辆的系统,其特征还在于:

所述后方交叉交通警告单元包括fpga和一个或更多个后置摄像机。

242.根据权利要求251所述的用于控制自主车辆的系统,其特征还在于:

所述后方交叉交通警告单元包括fpga和后置的中程雷达单元。

243.根据权利要求251所述的用于控制自主车辆的系统,其特征还在于:

所述后方交叉交通警告单元包括处理器和后置的中程雷达单元。

244.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括盲区警告单元。

245.根据权利要求255所述的用于控制自主车辆的系统,其特征还在于:

所述盲区警告单元包括fpga和一个或更多个摄像机。

246.根据权利要求255所述的用于控制自主车辆的系统,其特征还在于:

所述盲区警告单元包括fpga和一个或更多个雷达单元。

247.根据权利要求255所述的用于控制自主车辆的系统,其特征还在于:

所述盲区警告单元包括处理器和一个或更多个雷达单元。

248.根据权利要求255所述的用于控制自主车辆的系统,其特征还在于:

所述盲区警告单元包括处理器和一个或更多个雷达单元。

249.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括打滑道路检测单元。

250.根据权利要求260所述的用于控制自主车辆的系统,其特征还在于:

所述打滑道路检测单元包括:

第一角速度检测器,用于确定至少一个动力驱动轴的第一角速度,

第二角速度检测器,用于检测至少一个自由旋转轴的第二角速度,

处理器,所述处理器被配置为比较所述第一角速度和所述第二角速度,以确定所述道路表面上的摩擦水平。

251.根据权利要求261所述的用于控制自主车辆的系统,其特征还在于:

所述打滑道路检测单元还包括:

第一振动传感器,用于确定所述动力驱动轴的第一振动,

第二振动传感器,用于确定所述至少一个自由旋转轴的第二振动,以及

其特征还在于:所述处理器还被配置为比较所述第一振动和第二振动,以确定所述道路表面上的摩擦水平。

252.根据权利要求262所述的用于控制自主车辆的系统,其特征还在于:

所述处理器包括cpu。

253.根据权利要求262所述的用于控制自主车辆的系统,其特征还在于:

所述处理器包括asic。

254.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述监督mcu还被配置为如果来自所述主计算机和所述辅助计算机的所述输出一致,则根据所述第一信号来控制所述车辆的至少一个致动器。

255.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述监督mcu还被配置为如果来自所述主计算机和所述辅助计算机的所述输出不一致,则输出警报信号。

256.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述监督mcu还被配置为即使来自所述主计算机和所述辅助计算机的所述输出不一致,如果所述mcu确定所述主计算机的输出超过置信度阈值,则根据所述第一信号控制所述车辆。

257.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述监督mcu还包括:

神经网络,所述神经网络被配置为基于来自所述主计算机和所述辅助计算机的输出来确定所述辅助计算机提供虚假警报的条件。

258.根据权利要求268所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括至少一个雷达传感器,以及

所述mcu上的所述神经网络被训练以减少由金属排水格栅引起的虚假警报的可能性。

259.根据权利要求268所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括至少一个雷达传感器,以及

所述mcu上的所述神经网络被训练以减少由金属排水格栅引起的虚假警报的可能性。

260.根据权利要求268所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括至少一个雷达传感器,以及

所述mcu上的所述神经网络被训练以减少由金属井盖引起的虚假警报的可能性

261.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述辅助计算机还包括神经网络,所述神经网络被配置为减少来自所述adas系统的虚假警报的可能性。

262.根据权利要求272所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括至少一个雷达传感器,以及

所述辅助计算机上的所述神经网络被训练以减少由金属排水格栅引起的虚假警报的可能性。

263.根据权利要求272所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括至少一个雷达传感器,以及

所述辅助计算机上的所述神经网络被训练以减少由金属井盖引起的虚假警报的可能性。

264.根据权利要求272所述的用于控制自主车辆的系统,其特征还在于:

所述adas系统包括至少一个雷达传感器,以及

所述辅助计算机上的所述神经网络被训练以减少由金属垃圾桶引起的虚假警报的可能性。

265.一种用于控制自主车辆的系统,其特征在于:

主计算机,其特征在于如权利要求179所述的第一计算机,

辅助计算机,其特征在于eyeqsoc,

监督mcu,所述监督mcu耦合到所述第一计算机和所述第二计算机,

第一多个摄像机传感器,所述第一多个摄像机传感器耦合到所述第一计算机,

第二多个摄像机传感器,所述第二多个摄像机传感器耦合到所述辅助计算机,

多个车辆监视传感器,所述多个车辆监视传感器耦合到所述第一计算机,

其特征还在于:

所述第一计算机被配置为接收来自所述摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,

所述第二计算机被配置为接收来自所述摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,以及

所述监督mcu被配置为比较来自所述第一计算机和所述第二计算机的输出。

266.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

所述监督mcu还被配置为如果来自所述第一计算机和所述第二计算机的所述输出不一致,则输出警报信号。

267.一种用于控制自主车辆的系统,其特征在于:

主计算机,其特征在于如权利要求179所述的第一计算机,

辅助计算机,其特征在于具有至少一个cpu和一个gpu的第二计算机,

监督mcu,所述监督mcu耦合到所述第一计算机和所述第二计算机,

多个摄像机传感器,所述多个摄像机传感器耦合到所述第一计算机和所述第二计算机,

多个车辆监视传感器,所述多个车辆监视传感器耦合到所述第一计算机,

其特征还在于:

所述第一计算机被配置为接收来自所述摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,

所述第二计算机被配置为接收来自所述摄像机传感器的输入并输出用于控制至少一个车辆致动器的至少一个信号,以及

所述监督mcu被配置为比较来自所述第一计算机和所述第二计算机的输出。

268.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

所述监督mcu还被配置为如果来自所述第一计算机和所述第二计算机的所述输出不一致,则输出警报信号。

269.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括具有25度视场的至少一个远程摄像机,具有50度视场的至少一个较短程摄像机。

270.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括具有150度视场的至少一个鱼眼前向摄像机。

271.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括至少四个广角摄像机。

272.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括至少一个红外摄像机。

273.根据权利要求283所述的用于控制自主车辆的系统,其特征还在于:

所述主计算机融合来自所述至少一个红外摄像机的数据和来自至少一个其他摄像机的数据,以增强行人检测。

274.根据权利要求283所述的用于控制自主车辆的系统,其特征还在于:

其中所述至少一个红外摄像机包括无源红外系统。

275.根据权利要求283所述的用于控制自主车辆的系统,其特征还在于:

其中所述至少一个红外摄像机包括有源红外系统。

276.根据权利要求283所述的用于控制自主车辆的系统,其特征还在于,

所述有源红外系统是门控红外系统。

277.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括水平视场在15度至45度之间的至少一个远程摄像机,以及水平视场在45度至75度之间的至少一个较短程摄像机。

278.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括水平视场在90度至180度之间的至少一个鱼眼前向摄像机。

279.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括至少四个广角摄像机。

280.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括至少一个红外摄像机。

281.根据权利要求291所述的用于控制自主车辆的系统,其特征还在于:

所述至少一个红外摄像机包括无源红外系统。

282.根据权利要求291所述的用于控制自主车辆的系统,其特征还在于:

所述至少一个红外摄像机包括有源红外系统。

283.根据权利要求291所述的用于控制自主车辆的系统,其特征还在于:

所述有源红外系统是门控红外系统。

284.根据权利要求291所述的用于控制自主车辆的系统,其特征还在于:

所述主计算机融合来自所述至少一个红外摄像机的数据和来自至少一个其他摄像机的数据,以增强行人检测。

285.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括水平视场在15度至45度之间的至少一个远程摄像机,以及水平视场在45度至75度之间的至少一个较短程摄像机。

286.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括水平视场在90度至180度之间的至少一个鱼眼前向摄像机。

287.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括至少四个广角摄像机。

288.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括至少一个红外摄像机。

289.根据权利要求299所述的用于控制自主车辆的系统,其特征还在于:

所述主计算机融合来自所述至少一个红外摄像机的数据和来自至少一个其他摄像机的数据,以增强行人检测。

290.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括水平视场在15度至45度之间的至少一个远程摄像机,以及水平视场在45度至75度之间的至少一个较短程摄像机。

291.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括水平视场在90度至180度之间的至少一个鱼眼前向摄像机。

292.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括至少四个广角摄像机。

293.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

所述第一多个摄像机传感器包括至少四个红外摄像机。

294.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的激光雷达传感器。

295.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的激光雷达传感器。

296.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的激光雷达传感器。

297.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的激光雷达传感器。

298.根据权利要求305所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器被安装在所述自主车辆的前部,所述激光雷达传感器具有的水平视场在45度至135度之间。

299.根据权利要求306所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器被安装在所述自主车辆的前部,所述激光雷达传感器具有的水平视场在45度至135度之间。

300.根据权利要求307所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器被安装在所述自主车辆的前部,所述激光雷达传感器具有的水平视场在45度至135度之间。

301.根据权利要求308所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器被安装在所述自主车辆的前部,所述激光雷达传感器具有的水平视场在45度至135度之间。

302.根据权利要求305所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器是闪光激光雷达传感器。

303.根据权利要求306所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器是闪光激光雷达传感器。

304.根据权利要求307所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器是闪光激光雷达传感器。

305.根据权利要求308所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器是闪光激光雷达传感器。

306.根据权利要求305所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器是固态激光雷达传感器。

307.根据权利要求306所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器是固态激光雷达传感器。

308.根据权利要求307所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器是固态激光雷达传感器。

309.根据权利要求308所述的用于控制自主车辆的系统,其特征还在于:

所述激光雷达传感器是固态激光雷达传感器。

310.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

设置在所述车辆的前部的第一闪光激光雷达传感器,

设置在所述车辆的前部的第二闪光激光雷达传感器,

设置在所述车辆的前部的第三闪光激光雷达传感器,

设置在所述车辆的后部的第四闪光激光雷达传感器,

所述第一计算机被配置为从所述闪光激光雷达传感器接收信息。

311.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

设置在所述车辆的前部的第一闪光激光雷达传感器,

设置在所述车辆的前部的第二闪光激光雷达传感器,

设置在所述车辆的前部的第三闪光激光雷达传感器,

设置在所述车辆的后部的第四闪光激光雷达传感器,

所述第一计算机被配置为从所述闪光激光雷达传感器接收信息。

312.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

设置在所述车辆的前部的第一闪光激光雷达传感器,

设置在所述车辆的前部的第二闪光激光雷达传感器,

设置在所述车辆的前部的第三闪光激光雷达传感器,

设置在所述车辆的后部的第四闪光激光雷达传感器,

所述第一计算机被配置为从所述闪光激光雷达传感器接收信息。

313.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

设置在所述车辆的前部的第一闪光激光雷达传感器,

设置在所述车辆的前部的第二闪光激光雷达传感器,

设置在所述车辆的前部的第三闪光激光雷达传感器,

设置在所述车辆的后部的第四闪光激光雷达传感器,

所述第一计算机被配置为从所述闪光激光雷达传感器接收信息。

314.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的雷达传感器。

315.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的雷达传感器。

316.根据权利要求176所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的雷达传感器。

317.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的雷达传感器。

318.根据权利要求325所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的超声波传感器。

319.根据权利要求326所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的超声波传感器。

320.根据权利要求327所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的超声波传感器。

321.根据权利要求328所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的超声波传感器。

322.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的至少一个传感器,所述至少一个传感器选自雷达、激光雷达和超声波传感器的组。

323.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的至少一个传感器,所述至少一个传感器选自雷达、激光雷达和超声波传感器的组。

324.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的至少一个传感器,所述至少一个传感器选自雷达、激光雷达和超声波传感器的组。

325.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的至少一个传感器,所述至少一个传感器选自雷达、激光雷达和超声波传感器的组。

326.根据权利要求201所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个深度学习加速器上执行的神经网络。

327.根据权利要求337所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个深度学习加速器上执行的所述神经网络包括cnn。

328.根据权利要求338所述的用于控制自主车辆的系统,其特征还在于:

所述cnn包括基于区域的卷积神经网络。

329.根据权利要求338所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练用于对象检测。

330.根据权利要求338所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练用于交通标志检测、行人检测或车辆检测中的至少一个。

331.根据权利要求338所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练以检测摄像机镜头被障碍物阻挡的情况。

332.根据权利要求342所述的用于控制自主车辆的系统,其特征还在于:

响应于所述cnn对所述镜头阻挡情况的检测,所述主计算机发送控制信号以执行镜头清洁例程。

333.根据权利要求343所述的用于控制自主车辆的系统,其特征还在于:

喷嘴,所述喷嘴用于在由执行所述镜头清洁例程的所述主计算机指示时,在一个或更多个镜头上提供压缩空气流。

334.根据权利要求343所述的用于控制自主车辆的系统,其特征还在于:

加热器,所述加热器用于在由执行所述镜头清洁例程的所述主计算机指示时,加热所述镜头以减少结水、结霜或结冰。

335.根据权利要求338所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练以检测摄像机故障。

336.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个深度学习加速器上执行的神经网络

337.根据权利要求347所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个深度学习加速器上执行的所述神经网络包括cnn。

338.根据权利要求348所述的用于控制自主车辆的系统,其特征还在于:

所述cnn包括基于区域的卷积神经网络。

339.根据权利要求348所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练用于对象检测。

340.根据权利要求350所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练用于交通标志检测、行人检测或车辆检测中的至少一个。

341.根据权利要求348所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练以检测摄像机镜头被障碍物阻挡的情况。

342.根据权利要求352所述的用于控制自主车辆的系统,其特征还在于:

响应于所述cnn对所述镜头阻挡情况的检测,所述主计算机发送控制信号以执行镜头清洁例程。

343.根据权利要求353所述的用于控制自主车辆的系统,其特征还在于:

喷嘴,所述喷嘴用于在由执行所述镜头清洁例程的所述主计算机指示时,在一个或更多个镜头上提供压缩空气流。

344.根据权利要求353所述的用于控制自主车辆的系统,其特征还在于:

加热器,所述加热器用于在由执行所述镜头清洁例程的所述主计算机指示时,加热镜头以减少结水、结霜或结冰。

345.根据权利要求348所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练以检测摄像机故障。

346.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个深度学习加速器上执行的cnn。

347.根据权利要求357所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练用于对象检测。

348.根据权利要求358所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练用于交通标志检测、行人检测或车辆检测中的至少一个。

349.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个深度学习加速器上执行的cnn。

350.根据权利要求360所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练用于对象检测。

351.根据权利要求361所述的用于控制自主车辆的系统,其特征还在于:

所述cnn被训练用于交通标志检测、行人检测或车辆检测中的至少一个。

352.根据权利要求201所述的用于控制自主车辆的系统,其特征在于:

在所述第一计算机上的至少一个可编程视觉加速器上执行的计算机视觉算法。

353.根据权利要求220所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个可编程视觉加速器上执行的计算机视觉算法。

354.根据权利要求276所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个可编程视觉加速器上执行的计算机视觉算法。

355.根据权利要求278所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个可编程视觉加速器上执行的计算机视觉算法。

356.根据权利要求363所述的用于控制自主车辆的系统,其特征还在于:

所述计算机视觉算法执行交通标志检测、距离估计或车辆检测中的至少一个。

357.根据权利要求364所述的用于控制自主车辆的系统,其特征还在于:

所述计算机视觉算法执行交通标志检测、距离估计或车辆检测中的至少一个。

358.根据权利要求365所述的用于控制自主车辆的系统,其特征还在于:

所述计算机视觉算法执行交通标志检测、距离估计或车辆检测中的至少一个。

359.根据权利要求366所述的用于控制自主车辆的系统,其特征还在于:

所述计算机视觉算法执行交通标志检测、距离估计或车辆检测中的至少一个。

360.根据权利要求341所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个可编程视觉加速器上执行的计算机视觉算法。

361.根据权利要求351所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个可编程视觉加速器上执行的计算机视觉算法。

362.根据权利要求359所述的用于控制自主车辆的系统,其特征还在于:

在所述第一计算机上的至少一个可编程视觉加速器上执行的计算机视觉算法。

363.根据权利要求371所述的用于控制自主车辆的系统,其特征还在于:

所述计算机视觉算法执行交通标志检测、距离估计或车辆检测中的至少一个。

364.根据权利要求372所述的用于控制自主车辆的系统,其特征还在于:

所述计算机视觉算法执行交通标志检测、距离估计或车辆检测中的至少一个。

365.根据权利要求373所述的用于控制自主车辆的系统,其特征还在于:

所述计算机视觉算法执行交通标志检测、距离估计或车辆检测中的至少一个。

366.根据权利要求325所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的超声波传感器。

367.根据权利要求326所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的超声波传感器。

368.根据权利要求327所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的超声波传感器。

369.根据权利要求328所述的用于控制自主车辆的系统,其特征还在于:

耦合到所述第一计算机的超声波传感器。

370.根据权利要求172所述的用于控制自主车辆的系统,其特征还在于:

至少一个麦克风,所述至少一个麦克风电耦合到所述第一计算机。

371.根据权利要求381所述的用于控制自主车辆的系统,其特征还在于:

音频处理引擎,其特征在于用于处理音频信号的数字信号处理器和内部ram。

372.根据权利要求382所述的用于控制自主车辆的系统,其特征还在于:

所述第一计算机包括被训练以识别紧急车辆警报器的cnn。

373.根据权利要求383所述的用于控制自主车辆的系统,其特征还在于:

所述第一计算机被配置为在识别出紧急车辆警报器时执行紧急车辆安全例程。

374.根据权利要求384所述的用于控制自主车辆的系统,其特征还在于:

所述紧急车辆安全例程包括使所述车辆减速、驶到道路侧边、停放所述车辆以及使所述车辆空转,直到紧急车辆通过。

375.根据权利要求385所述的用于控制自主车辆的系统,其特征还在于:

一个或更多个超声波传感器,其特征还在于:

所述第一计算机被配置为在执行所述紧急车辆安全例程时使用来自一个或更多个超声波传感器的信息。

376.根据权利要求386所述的用于控制自主车辆的系统,其特征还在于:

分立式x86cpu,所述分立式x86cpu耦合到所述第一计算机,所述分立式x86cpu被配置为执行所述紧急车辆安全例程。

377.一种用于控制具有asild功能安全等级的自主车辆的系统,其特征在于:

根据权利要求172所述的用于控制自主车辆的计算机,

具有asil-b功能安全等级的前向碰撞警告系统,

其特征还在于,用于控制自主车辆的所述计算机具有asil-c功能安全等级。

378.一种无人驾驶卡车,其特征在于:

拖拉机,其特征在于如权利要求201所述的自主车辆系统,

拖车,其特征在于多个重量和平衡传感器,

所述拖车电耦合到所述拖拉机。

379.一种无人驾驶卡车,其特征在于:

拖拉机,其特征在于如权利要求219所述的自主车辆系统,

拖车,其特征在于多个重量和平衡传感器,

所述拖车电耦合到所述拖拉机。

380.一种无人驾驶卡车,其特征在于:

拖拉机,其特征在于如权利要求220所述的自主车辆系统,

拖车,其特征在于多个重量和平衡传感器,

所述拖车电耦合到所述拖拉机。

381.一种无人驾驶卡车,其特征在于:

拖拉机,其特征在于如权利要求265所述的自主车辆系统,

拖车,其特征在于多个重量和平衡传感器,

所述拖车电耦合到所述拖拉机。

382.一种无人驾驶卡车,其特征在于:

拖拉机,其特征在于如权利要求276所述的自主车辆系统,

拖车,其特征在于多个重量和平衡传感器,

所述拖车电耦合到所述拖拉机。

383.一种无人驾驶卡车,其特征在于:

拖拉机,其特征在于如权利要求277所述的自主车辆系统,

拖车,其特征在于多个重量和平衡传感器,

所述拖车电耦合到所述拖拉机。

384.一种无人驾驶卡车,其特征在于:

拖拉机,其特征在于如权利要求278所述的自主车辆系统,

拖车,其特征在于多个重量和平衡传感器,

所述拖车电耦合到所述拖拉机。

385.根据权利要求389所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的至少一个阵风传感器,用于检测施加到所述拖车的侧风。

386.根据权利要求396所述的无人驾驶卡车,其特征还在于,所述阵风传感器包括:

在所述拖车的一侧上的具有皮托管的第一传感器,

在所述拖车的另一侧上的具有皮托管的第二传感器,

所述第一传感器和所述第二传感器电耦合到所述主计算机,

其特征还在于:所述主计算机被配置为比较来自所述第一传感器和所述第二传感器的结果,以识别侧面阵风。

387.根据权利要求397所述的无人驾驶卡车,其特征还在于:

多个车辆致动器,用于控制所述卡车的加速度、制动和转向,

其特征还在于:

所述主计算机被配置为使用所述比较来控制所述车辆致动器中的一个或更多个。

388.根据权利要求398所述的无人驾驶卡车,其特征还在于:

多个重量和平衡传感器,所述多个重量和平衡传感器被设置为测量所述拖车的重量和平衡,并电耦合到所述主计算机,以向所述主计算机提供有关所述拖车的所述重量和平衡的信息,

其特征还在于:

所述主计算机被配置为使用所述重量和平衡信息来验证来自所述第一传感器和所述第二传感器的所述结果的所述比较以识别阵风。

389.根据权利要求390所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的至少一个阵风传感器,用于检测施加到所述拖车的所述侧风。

390.根据权利要求400所述的无人驾驶卡车,其特征还在于,所述阵风传感器包括:

在所述拖车的一侧上的具有皮托管的第一传感器,

在所述拖车的另一侧上的具有皮托管的第二传感器,

所述第一传感器和所述第二传感器电耦合到所述主计算机,

其特征还在于:所述主计算机被配置为比较来自所述第一传感器和所述第二传感器的所述结果,以识别侧面阵风。

391.根据权利要求401所述的无人驾驶卡车,其特征还在于:

多个车辆致动器,用于控制所述卡车的加速度、制动和转向,

其特征还在于:

所述主计算机被配置为使用所述比较来控制所述车辆致动器中的一个或更多个。

392.根据权利要求402所述的无人驾驶卡车,其特征还在于:

多个重量和平衡传感器,所述多个重量和平衡传感器被设置为测量所述拖车的重量和平衡,并电耦合到所述主计算机,以向所述主计算机提供有关所述拖车的所述重量和平衡的信息,

其特征还在于:

所述主计算机被配置为使用所述重量和平衡信息来验证来自所述第一传感器和所述第二传感器的所述结果的所述比较,以识别阵风。

393.根据权利要求391所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的至少一个阵风传感器,用于检测施加到所述拖车的侧风。

394.根据权利要求404所述的无人驾驶卡车,其特征还在于,所述阵风传感器包括:

在所述拖车的一侧上的具有皮托管的第一传感器,

在所述拖车的另一侧上的具有皮托管的第二传感器,

所述第一传感器和所述第二传感器电耦合到所述主计算机,

其特征还在于:所述主计算机被配置为比较来自所述第一传感器和所述第二传感器的所述结果,以识别侧面阵风。

395.根据权利要求405所述的无人驾驶卡车,其特征还在于:

多个车辆致动器,用于控制所述卡车的加速度、制动和转向,

其特征还在于:

所述主计算机被配置为使用所述比较来控制所述车辆致动器中的一个或更多个。

396.根据权利要求406所述的无人驾驶卡车,其特征还在于:

多个重量和平衡传感器,所述多个重量和平衡传感器被设置为测量所述拖车的重量和平衡,并电耦合到所述主计算机,以向所述主计算机提供有关所述拖车的所述重量和平衡的信息,

其特征还在于:

所述主计算机被配置为使用所述重量和平衡信息来验证来自所述第一传感器和所述第二传感器的所述结果的所述比较,以识别阵风。

397.根据权利要求392所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的至少一个阵风传感器,用于检测施加到所述拖车的侧风。

398.根据权利要求408所述的无人驾驶卡车,其特征还在于,所述阵风传感器包括:

在所述拖车的一侧上的具有皮托管的第一传感器,

在所述拖车的另一侧上的具有皮托管的第二传感器,

所述第一传感器和所述第二传感器电耦合到所述主计算机,

其特征还在于:所述主计算机被配置为比较来自所述第一传感器和所述第二传感器的所述结果,以识别侧面阵风。

399.根据权利要求409所述的无人驾驶卡车,其特征还在于:

多个车辆致动器,用于控制所述卡车的加速度、制动和转向,

其特征还在于:

所述主计算机被配置为使用所述比较来控制所述车辆致动器中的一个或更多个。

400.根据权利要求410所述的无人驾驶卡车,其特征还在于:

多个重量和平衡传感器,所述多个重量和平衡传感器被设置为测量所述拖车的重量和平衡,并电耦合到所述主计算机,以向所述主计算机提供有关所述拖车的所述重量和平衡的信息,

其特征还在于:

所述主计算机被配置为使用所述重量和平衡信息来验证来自所述第一传感器和所述第二传感器的所述结果的所述比较,以识别阵风。

401.根据权利要求393所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的至少一个阵风传感器,用于检测施加到所述拖车的侧风。

402.根据权利要求412所述的无人驾驶卡车,其特征还在于,所述阵风传感器包括:

在所述拖车的一侧上的具有皮托管的第一传感器,

在所述拖车的另一侧上的具有皮托管的第二传感器,

所述第一传感器和所述第二传感器电耦合到所述主计算机,

其特征还在于:所述主计算机被配置为比较来自所述第一传感器和所述第二传感器的所述结果,以识别侧面阵风。

403.根据权利要求413所述的无人驾驶卡车,其特征还在于:

多个车辆致动器,用于控制所述卡车的加速度、制动和转向,

其特征还在于:

所述主计算机被配置为使用所述比较来控制所述车辆致动器中的一个或更多个。

404.根据权利要求414所述的无人驾驶卡车,其特征还在于:

多个重量和平衡传感器,所述多个重量和平衡传感器被设置为测量所述拖车的重量和平衡,并电耦合到所述主计算机,以向所述主计算机提供有关所述拖车的所述重量和平衡的信息,

其特征还在于:

所述主计算机被配置为使用所述重量和平衡信息来验证来自所述第一传感器和所述第二传感器的所述结果的所述比较,以识别阵风。

405.根据权利要求394所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的至少一个阵风传感器,用于检测施加到所述拖车的侧风。

406.根据权利要求416所述的无人驾驶卡车,其特征还在于,所述阵风传感器包括:

在所述拖车的一侧上的具有皮托管的第一传感器,

在所述拖车的另一侧上的具有皮托管的第二传感器,

所述第一传感器和第二传感器电耦合到所述主计算机,

其特征还在于:所述主计算机被配置为比较来自所述第一传感器和所述第二传感器的结果以识别侧面阵风。

407.根据权利要求417所述的无人驾驶卡车,其特征还在于:

多个车辆致动器,用于控制所述卡车的加速度、制动和转向,

其特征还在于:

所述主计算机被配置为使用所述比较来控制所述车辆致动器中的一个或更多个。

408.根据权利要求418所述的无人驾驶卡车,其特征还在于:

多个重量和平衡传感器,所述多个重量和平衡传感器被设置为测量所述拖车的重量和平衡,并电耦合到所述主计算机,以向所述主计算机提供有关所述拖车的所述重量和平衡的信息,

其特征还在于:

所述主计算机被配置为使用所述重量和平衡信息来验证来自所述第一传感器和所述第二传感器的所述结果的所述比较,以识别阵风。

409.根据权利要求395所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的至少一个阵风传感器,用于检测施加到所述拖车的侧风。

410.根据权利要求420所述的无人驾驶卡车,其特征还在于,所述阵风传感器包括:

在所述拖车的一侧上的具有皮托管的第一传感器,

在所述拖车的另一侧上的具有皮托管的第二传感器,

所述第一传感器和第二传感器电耦合到所述主计算机,

其特征还在于:所述主计算机被配置为比较来自所述第一传感器和所述第二传感器的结果以识别侧面阵风。

411.根据权利要求421所述的无人驾驶卡车,其特征还在于:

多个车辆致动器,用于控制所述卡车的加速度、制动和转向,

其特征还在于:

所述主计算机被配置为使用所述比较来控制所述车辆致动器中的一个或更多个。

412.根据权利要求422所述的无人驾驶卡车,其特征还在于:

多个重量和平衡传感器,所述多个重量和平衡传感器被设置为测量所述拖车的重量和平衡,并电耦合到所述主计算机,以向所述主计算机提供有关所述拖车的所述重量和平衡的信息,

其特征还在于:

所述主计算机被配置为使用所述重量和平衡信息来验证来自所述第一传感器和所述第二传感器的所述结果的所述比较,以识别阵风。

413.根据权利要求396所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的多个惯性传感器,用于检测拖车的俯仰、侧倾和偏航中的至少一个。

414.根据权利要求400所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的多个惯性传感器,用于检测拖车的俯仰、侧倾和偏航中的至少一个。

415.根据权利要求404所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的多个惯性传感器,用于检测拖车的俯仰、侧倾和偏航中的至少一个。

416.根据权利要求408所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的多个惯性传感器,用于检测拖车的俯仰、侧倾和偏航中的至少一个。

417.根据权利要求412所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的多个惯性传感器,用于检测拖车的俯仰、侧倾和偏航中的至少一个。

418.根据权利要求416所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的多个惯性传感器,用于检测拖车的俯仰、侧倾和偏航中的至少一个。

419.根据权利要求420所述的无人驾驶卡车,其特征还在于:

与所述拖车相关联的多个惯性传感器,用于检测拖车的俯仰、侧倾和偏航中的至少一个。

420.根据权利要求389所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述重量和平衡传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

421.根据权利要求390所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述重量和平衡传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

422.根据权利要求391所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述重量和平衡传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

423.根据权利要求392所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述重量和平衡传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

424.根据权利要求393所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述重量和平衡传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

425.根据权利要求394所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述重量和平衡传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

426.根据权利要求395所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述重量和平衡传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

427.根据权利要求396所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

428.根据权利要求400所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

429.根据权利要求404所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

430.根据权利要求408所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

431.根据权利要求412所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

432.根据权利要求416所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

433.根据权利要求420所述的无人驾驶卡车,其特征还在于:

所述mcu被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

434.根据权利要求396所述的无人驾驶卡车,其特征还在于:

所述可编程视觉加速器被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

435.根据权利要求400所述的无人驾驶卡车,其特征还在于:

所述可编程视觉加速器被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

436.根据权利要求404所述的无人驾驶卡车,其特征还在于:

所述可编程视觉加速器被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

437.根据权利要求408所述的无人驾驶卡车,其特征还在于:

所述可编程视觉加速器被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

438.根据权利要求412所述的无人驾驶卡车,其特征还在于:

所述可编程视觉加速器被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

439.根据权利要求416所述的无人驾驶卡车,其特征还在于:

所述可编程视觉加速器被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

440.根据权利要求420所述的无人驾驶卡车,其特征还在于:

所述可编程视觉加速器被配置为使用来自所述阵风传感器的所述信息来限制所述卡车的速度、加速度或减速度中的至少一个。

441.根据权利要求420所述的无人驾驶卡车,其特征还在于:

设置在所述拖车中的摄像机传感器,

所述传感器电耦合到所述片上系统。

442.根据权利要求420所述的无人驾驶卡车,其特征还在于:

设置在所述拖车中的烟雾探测器,

所述传感器电耦合到所述片上系统,

所述片上系统被配置为响应于来自所述烟雾探测器的指示所述拖车中起火的信号而执行火警响应协议,

所述火警响应协议的特征在于:

发送指示存在起火的无线信号,

发送指示所述卡车的位置的无线信号,以及

执行所述卡车的停车操作。

443.一种无人驾驶卡车,其特征在于:

第一可控轴,

第一控制器,用于控制所述第一可控轴,

第二可控轴,

第二控制器,用于控制所述第二可控轴,

所述第一控制器的特征在于如权利要求179所述的片上系统,

所述第二控制器的特征在于如权利要求179所述的片上系统。

444.一种无人驾驶卡车,其特征在于:

第一可控轴,

第一控制器,用于控制所述第一可控轴,

第二可控轴,

第二控制器,用于控制所述第二可控轴,

所述第一控制器的特征在于如权利要求179所述的片上系统,

所述第二控制器的特征在于深度学习加速器。

445.根据权利要求454所述的无人驾驶卡车,其特征还在于:

至少一个红外摄像机,所述至少一个红外摄像机位于所述车辆的前部。

446.根据权利要求456所述的无人驾驶卡车,其特征还在于:

所述红外摄像机包括变焦功能。

447.根据权利要求455所述的无人驾驶卡车,其特征还在于:

多个红外摄像机,所述多个红外摄像机位于车辆的前部、后部和侧面。

448.根据权利要求458所述的无人驾驶卡车,其特征还在于:

所述红外摄像机中的一个或更多个包括变焦功能。

449.一种无人驾驶多乘客车辆,其特征在于:

车身,

所述车身内用于多个乘客的座位区,

用于控制所述车辆的计算机,其特征在于如权利要求179所述的计算机,

所述车身中用于监视所述座位区的至少一个摄像机,所述摄像机电耦合至所述计算机,

在所述计算机上运行的至少一个神经网络,所述神经网络被训练以识别安全状况,

用于与蜂窝网络通信的无线设备,

所述计算机被配置为经由所述蜂窝网络发送所述安全状况的通知。

450.根据权利要求460所述的无人驾驶多乘客车辆,其特征还在于:

所述蜂窝网络包括lte网络。

451.根据权利要求460所述的无人驾驶多乘客车辆,其特征还在于:

所述蜂窝网络包括wcdma网络。

452.一种无人驾驶巡逻车,其特征在于:

车身,

用于控制所述车辆的计算机,其特征在于如权利要求179所述的计算机,

围绕所述车身设置的多个摄像机,所述摄像机电耦合至所述计算机,

在所述计算机上运行的至少一个神经网络,所述神经网络被训练以定位至少一个其他车辆,

电耦合到所述计算机的无线设备,所述无线设备用于与无线网络进行通信,

所述计算机被配置为经由所述蜂窝网络发送所述至少一个其他车辆的存在和位置的通知。

453.根据权利要求463所述的无人驾驶巡逻车,其特征还在于:

至少一个红外摄像机,所述至少一个红外摄像机位于所述车辆的前部。

454.根据权利要求464所述的无人驾驶巡逻车,其特征还在于:

所述红外摄像机包括变焦功能。

455.根据权利要求463所述的无人驾驶巡逻车,其特征还在于:

多个红外摄像机,所述多个红外摄像机位于所述车辆的前部、后部和侧面。

456.根据权利要求466所述的无人驾驶巡逻车,其特征还在于:

所述红外摄像机中的一个或更多个包括变焦功能。

457.根据权利要求463所述的无人驾驶巡逻车,其特征还在于:

所述蜂窝网络包括lte网络。

458.根据权利要求463所述的无人驾驶巡逻车,其特征还在于:

所述蜂窝网络包括wcdma网络。

459.根据权利要求463所述的无人驾驶巡逻车,其特征还在于:

所述神经网络通过识别车牌来识别所述至少一个其他车辆。

460.根据权利要求463所述的无人驾驶巡逻车,其特征还在于:

所述神经网络通过识别车牌的一部分以及所述其他车辆的品牌和型号来识别所述至少一个其他车辆。

461.根据权利要求463所述的无人驾驶巡逻车,其特征还在于:

所述神经网络通过识别所述其他车辆的外观来识别所述至少一个其他车辆。

462.根据权利要求463所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述深度学习加速器上执行所述神经网络。

463.根据权利要求463所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述gpu上执行所述神经网络。

464.一种无人驾驶巡逻车,其特征在于:

车身,

用于控制所述车辆的计算机,其特征在于如权利要求179所述的计算机,

围绕所述车身设置的多个摄像机,所述摄像机电耦合至所述计算机,

在所述计算机上运行的至少一个神经网络,所述神经网络被训练以识别至少一个安全状况,

用于与蜂窝网络通信的无线设备,

所述计算机被配置为经由所述蜂窝网络发送所述至少一个安全状况的存在和位置的通知。

465.根据权利要求475所述的无人驾驶巡逻车,其特征还在于:

所述安全状况是起火。

466.根据权利要求475所述的无人驾驶巡逻车,其特征还在于:

所述安全状况是交通事故。

467.根据权利要求475所述的无人驾驶巡逻车,其特征还在于:

所述安全状况是受伤的人。

468.根据权利要求256所述的无人驾驶巡逻车,其特征还在于:

所述安全状况是人与人之间的身体冲突。

469.根据权利要求476所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述深度学习加速器上执行所述神经网络。

470.根据权利要求477所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述深度学习加速器上执行所述神经网络。

471.根据权利要求478所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述深度学习加速器上执行所述神经网络。

472.根据权利要求479所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述深度学习加速器上执行所述神经网络。

473.根据权利要求476所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述gpu上执行所述神经网络。

474.根据权利要求477所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述gpu上执行所述神经网络。

475.根据权利要求478所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述gpu上执行所述神经网络。

476.根据权利要求479所述的无人驾驶巡逻车,其特征还在于:

所述计算机在所述gpu上执行所述神经网络。

477.一种用于控制自主车辆的方法,其特征在于:

在片上系统的深度学习加速器上运行第一神经网络,

在所述片上系统的gpu上运行第二神经网络,

在所述片上系统的可编程视觉加速器上执行第一计算机视觉算法,以及

响应于所述第一神经网络、第二神经网络和所述计算机视觉算法的输出来控制所述自主车辆上的一个或更多个致动器。

478.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

检测至少一个动力驱动轴的第一角速度,

检测至少一个自由旋转轴的第二角速度,

比较所述第一角速度和所述第二角速度以确定所述道路表面上的摩擦水平,

响应于所述第一神经网络、第二神经网络、所述计算机视觉算法的所述输出以及所述第一角速度和所述第二角速度的所述比较,控制所述自主车辆上的一个或更多个致动器。

479.根据权利要求489所述的用于控制自主车辆的方法,其特征还在于:

检测所述动力驱动轴的第一振动,

检测第二振动传感器以确定所述至少一个自由旋转轴的第二振动,以及

比较所述第一振动和第二振动以确定所述道路表面上的摩擦水平。

480.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个摄像机传感器的图像信息作为输入提供给所述第一神经网络。

481.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个摄像机传感器的图像信息作为输入提供给所述第二神经网络。

482.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个红外摄像机传感器的图像信息作为输入提供给所述第一神经网络。

483.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个红外摄像机传感器的图像信息作为输入提供给所述第二神经网络。

484.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个单眼摄像机传感器的图像信息作为输入提供给所述第一神经网络。

485.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个单眼摄像机传感器的图像信息作为输入提供给所述第二神经网络。

486.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个立体摄像机传感器的图像信息作为输入提供给所述第一神经网络。

487.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个立体摄像机传感器的图像信息作为输入提供给所述第二神经网络。

488.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少雷达传感器的信息作为输入提供给所述第一计算机视觉算法。

489.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个激光雷达传感器的信息作为输入提供给所述第一计算机视觉算法。

490.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个超声波传感器的信息作为输入提供给所述第一计算机视觉算法。

491.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个闪光激光雷达传感器的信息作为输入提供给所述第一计算机视觉算法。

492.根据权利要求488所述的用于控制自主车辆的方法,其特征还在于:

在第二片上系统上的深度学习加速器上运行第三神经网络,

在所述第二片上系统的gpu上运行第四神经网络,

在所述第二片上系统的可编程视觉加速器上执行第二计算机视觉算法,

比较所述第一片上系统和第二片上系统的输出,以及

响应于所述比较,控制所述自主车辆上的一个或更多个致动器。

493.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个摄像机传感器的图像信息作为输入提供给所述第一神经网络,以及

将来自至少一个摄像机传感器的图像信息作为输入提供给所述第三神经网络。

494.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个摄像机传感器的图像信息作为输入提供给所述第二神经网络,以及

将来自至少一个摄像机传感器的图像信息作为输入提供给所述第四神经网络。

495.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个红外摄像机传感器的图像信息作为输入提供给所述第一神经网络,以及

将来自至少一个摄像机传感器的图像信息作为输入提供给所述第三神经网络。

496.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个红外摄像机传感器的图像信息作为输入提供给所述第二神经网络,以及

将来自至少一个摄像机传感器的图像信息作为输入提供给所述第四神经网络。

497.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个立体摄像机传感器的图像信息作为输入提供给所述第一神经网络,以及

将来自至少一个激光雷达传感器的信息作为输入提供给所述第三神经网络。

498.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个单眼摄像机传感器的图像信息作为输入提供给所述第二神经网络。

将来自至少一个激光雷达传感器的信息作为输入提供给所述第四神经网络。

499.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个立体摄像机传感器的图像信息作为输入提供给所述第一神经网络。

将来自至少一个单眼摄像机传感器的图像信息作为输入提供给所述第三神经网络。

500.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个立体摄像机传感器的图像信息作为输入提供给所述第二神经网络。

将来自至少一个单眼摄像机传感器的图像信息作为输入提供给所述第四神经网络。

501.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个雷达传感器的信息作为输入提供给所述第一计算机视觉算法。

将来自至少一个雷达传感器的信息作为输入提供给所述第二计算机视觉算法。

502.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个激光雷达传感器的信息作为输入提供给所述第一计算机视觉算法。

将来自至少一个激光雷达传感器的信息作为输入提供给所述第二计算机视觉算法。

503.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个超声波传感器的信息作为输入提供给所述第一计算机视觉算法。

将来自至少一个超声波传感器的信息作为输入提供给所述第二计算机视觉算法。

504.根据权利要求503所述的用于控制自主车辆的方法,其特征还在于:

将来自至少一个闪光激光雷达传感器的信息作为输入提供给所述第一计算机视觉算法。

将来自至少一个闪光激光雷达传感器的信息作为输入提供给所述第二计算机视觉算法。

505.一种用于控制自主车辆的方法,其特征在于:

在片上系统的深度学习加速器上运行第一多个神经网络,

在所述片上系统的gpu上运行第二多个神经网络,

在所述片上系统的可编程视觉加速器上执行多个计算机视觉算法,以及

响应于所述第一多个神经网络、第二多个神经网络和所述多个计算机视觉算法的输出,控制所述自主车辆上的一个或更多个致动器。

506.根据权利要求516所述的用于控制自主车辆的方法,其特征还在于:

在第二片上系统上的深度学习加速器上运行第三多个神经网络,

在所述第二片上系统的gpu上运行第四多个神经网络,

在所述第二片上系统的可编程视觉加速器上执行第二多个计算机视觉算法,

比较所述第一片上系统和第二片上系统的输出,以及

响应于所述比较,控制所述自主车辆上的一个或更多个致动器。

507.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于如权利要求179所述的第一计算机,

在所述主计算机上执行第一神经网络,

在所述第一计算机中生成用于控制至少一个车辆致动器的至少一个第一信号,

提供来自一个或更多个摄像机传感器的输入到辅助计算机,所述辅助计算机的特征在于如权利要求179所述的第二计算机,

在所述辅助计算机上执行第二cnn,

在所述第二计算机中生成用于控制至少一个车辆致动器的至少一个第二信号,

将所述第一信号和所述第二信号提供给监督mcu,以及

在所述mcu中比较所述第一信号和所述第二信号。

508.根据权利要求484所述的用于控制自主车辆的方法,其特征还在于:

如果所述第一信号和所述第二信号不一致,则在所述mcu中生成警报信号。

509.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,其特征在于如权利要求179所述的第一计算机,

在所述主计算机上执行第一神经网络,以响应于来自所述摄像机传感器的所述输入而生成至少一个第一信号,

在可编程视觉加速器上执行计算机视觉算法以生成第二信号,

使用所述第一信号、所述第二信号来控制至少一个车辆致动器。

510.一种用于控制自主车辆的方法,其特征在于:

在第一片上系统上执行用于行人检测的神经网络,以生成至少一个第一信号,

在第二片上系统上执行用于标志检测的神经网络,以生成至少一个第二信号,

在第三片上系统上执行用于距离估计的神经网络,以生成至少一个第三信号,

在第四片上系统上执行用于车道检测的神经网络,以生成至少一个第四信号,

在第五片上系统上执行用于避免碰撞的神经网络,以生成至少一个第五信号,

在第六片上系统上执行用于当前占用栅格的神经网络,以生成至少一个第六信号,

在第七片上系统上执行用于预测的占用栅格的神经网络,以生成至少第七第一信号,

在第八片上系统上执行用于转向控制的神经网络,以生成至少一个第八信号,

在中央处理单元上执行计算机视觉算法以生成至少一个第九信号,以及

使用所述信号来控制至少一个车辆致动器。

511.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于如权利要求179所述的第一计算机,

响应于所述输入而生成第一控制信号,

从自动巡航控制单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

512.根据权利要求522所述的用于控制自主车辆的方法,其特征还在于:

所述自动巡航控制单元是纵向自动巡航控制单元。

513.根据权利要求522所述的用于控制自主车辆的方法,其特征还在于:

所述自动巡航控制单元是横向自动巡航控制单元。

514.根据权利要求522所述的用于控制自主车辆的方法,其特征还在于:

所述自动巡航控制单元包括前向雷达传感器。

515.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于如权利要求179所述的第一计算机,

响应于所述输入而生成第一控制信号,

从自动紧急制动单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

516.根据权利要求526所述的用于控制自主车辆的方法,其特征还在于:

所述自动紧急制动单元包括fpga和立体视频摄像机。

517.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于如权利要求179所述的第一计算机,

响应于所述输入而生成第一控制信号,

从前向碰撞警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

518.根据权利要求528所述的用于控制自主车辆的方法,其特征还在于:

所述前向碰撞警告单元包括fpga和立体视频摄像机。

519.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于如权利要求179所述的第一计算机,

响应于所述输入而生成第一控制信号,

从车道偏离警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

520.根据权利要求530所述的用于控制自主车辆的方法,其特征还在于:

所述车道偏离警告单元包括fpga和单眼摄像机。

521.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于如权利要求179所述的第一计算机,

响应于所述输入而生成第一控制信号,

从碰撞警告系统接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

522.根据权利要求532所述的用于控制自主车辆的方法,其特征还在于:

所述碰撞警告系统包括fpga和立体视频摄像机。

523.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从自动巡航控制单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

524.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从自动紧急制动单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

525.根据权利要求535所述的用于控制自主车辆的方法,其特征还在于:

所述自动紧急制动包括fpga和立体视频摄像机。

526.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从前向碰撞警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

527.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从车道偏离警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

528.根据权利要求538所述的用于控制自主车辆的方法,其特征还在于:

所述车道偏离警告单元包括fpga和单眼摄像机

529.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从前向碰撞警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

530.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在dla上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从前向碰撞警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

531.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从自动紧急制动单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

532.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在dla上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从自动紧急制动单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

533.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从车道偏离警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

534.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在dla上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从车道偏离警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

535.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从车道保持辅助单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

536.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从盲区警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

537.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在dla上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

从盲区警告单元接收第二信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

538.一种用于控制自主车辆的方法,其特征在于:

提供来自一个或更多个摄像机传感器的输入到主计算机,所述主计算机的特征在于在gpu上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

提供来自一个或更多个摄像机传感器的所述输入到辅助计算机,所述辅助计算机的特征在于在dla上运行的卷积神经网络,

响应于所述输入而生成第一控制信号,

评估所述第一控制信号是否与所述第二信号冲突,以及

响应于所述评估来控制一个或更多个车辆致动器。

539.一种用于控制自主车辆的方法,其特征在于:

在gpu数据中心中训练第一神经网络,

将所述第一神经网络提供给所述自主车辆,

在gpu数据中心中训练第二神经网络,

将所述第二神经网络提供给所述自主车辆,

将所述第一神经网络存储在所述自主车辆的存储器中,

将所述第二神经网络存储在所述自主车辆的存储器中,

从设置在所述自主车辆的前部上的至少一个立体摄像机传感器接收图像信息,

从设置在所述自主车辆的前部上的至少一个激光雷达传感器接收激光雷达信息,

使用所述图像信息作为输入,在所述自主车辆的主计算机上运行所述第一神经网络,

使用所述激光雷达信息作为输入,在所述自主车辆的主计算机上运行所述第二神经网络,

响应于所述第一神经网络和第二神经网络的输出来控制所述自主车辆。

540.根据权利要求550所述的用于控制自主车辆的方法,其特征还在于:

经由无线网络接收所述第一神经网络的更新的实例。

541.根据权利要求551所述的用于控制自主车辆的方法,其特征还在于:

所述无线网络是lte网络。

542.根据权利要求551所述的用于控制自主车辆的方法,其特征还在于:

所述无线网络是wcdma网络

543.根据权利要求551所述的用于控制自主车辆的方法,其特征还在于:

所述无线网络是umts网络

544.根据权利要求551所述的用于控制自主车辆的方法,其特征还在于:

所述无线网络是cdma2000网络。

545.根据权利要求550所述的用于控制自主车辆的方法,其特征还在于:

所述激光雷达传感器是3d闪光激光雷达。

546.根据权利要求550所述的用于控制自主车辆的方法,其特征还在于:

将所述图像信息应用于前向碰撞警告系统,以及

比较所述主计算机和所述前向碰撞警告系统的结果。

547.根据权利要求550所述的用于控制自主车辆的方法,其特征还在于:

所述自主车辆在深度学习加速器上执行所述第一神经网络。

548.根据权利要求550所述的用于控制自主车辆的方法,其特征还在于:

所述自主车辆在gpu上执行所述第一神经网络。

549.根据权利要求550所述的用于控制自主车辆的方法,其特征还在于:

所述自主车辆在深度学习加速器上执行所述第二神经网络。

550.根据权利要求550所述的用于控制自主车辆的方法,其特征还在于:

所述自主车辆在gpu上执行所述第二神经网络。

551.一种用于控制自主卡车的方法,所述自主卡车的特征在于拖拉机和拖车,所述方法的特征在于:

将来自设置在所述拖拉机上的一个或更多个摄像机传感器的输入提供给主计算机,所述主计算机的特征在于在gpu上运行的至少一个卷积神经网络,

响应于所述输入而生成至少一个第一信号,

从设置在所述拖车上的阵风传感器接收第二信号,

评估所述第二信号是否识别出阵风状况,以及

响应于所述第一信号和所述评估来控制一个或更多个车辆致动器。

552.一种用于控制自主卡车的方法,所述自主卡车的特征在于拖拉机和拖车,所述方法的特征在于:

将来自设置在所述拖拉机上的一个或更多个摄像机传感器的输入提供给主计算机,所述主计算机的特征在于在dla上运行的至少一个卷积神经网络,

响应于所述输入而生成至少一个第一信号,

从设置在所述拖车上的至少一个阵风传感器接收第二信号,

评估所述第二信号是否识别出阵风状况,以及

响应于所述第一信号和所述评估来控制一个或更多个车辆致动器。

553.一种用于控制无人驾驶巡逻车的方法,其特征在于:

将来自一个或更多个摄像机传感器的输入提供给主计算机,所述主计算机的特征在于如权利要求179所述的第一计算机,

在所述主计算机上的gpu上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将来自一个或更多个摄像机传感器的输入提供给辅助计算机,所述辅助计算机的特征在于如权利要求179所述的第二计算机,

在所述辅助计算机上执行第二cnn,所述第二cnn被训练以从图像信息中识别至少一个其他车辆,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号识别至少一个其他车辆的存在或不存在,

经由无线网络发送所述至少一个其他车辆的存在和位置的通知。

554.一种用于控制无人驾驶巡逻车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的gpu上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的gpu上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号指示至少一个其他车辆的存在或不存在,

经由无线网络发送所述至少一个其他车辆的存在和位置的通知。

555.一种用于控制无人驾驶巡逻车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的所述硬件加速器之一上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的gpu上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号指示至少一个其他车辆的存在或不存在,

经由无线网络发送所述至少一个其他车辆的存在和位置的通知。

556.一种用于控制无人驾驶巡逻车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的gpu上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的所述硬件加速器之一上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号指示至少一个其他车辆的存在或不存在,

经由无线网络发送所述至少一个其他车辆的存在和位置的通知。

557.一种用于控制无人驾驶巡逻车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的所述硬件加速器之一上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的所述硬件加速器之一上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号指示至少一个其他车辆的存在或不存在,

经由无线网络发送所述至少一个其他车辆的存在和位置的通知。

558.一种用于控制无人驾驶巡逻车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的gpu上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的gpu上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号指示至少一个安全状况的存在或不存在,

经由无线网络发送所述至少一个安全状况的存在和位置的通知。

559.一种用于控制无人驾驶巡逻车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的所述硬件加速器之一上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的gpu上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号指示至少一个安全状况的存在或不存在,

经由无线网络发送所述至少一个安全状况的存在和位置的通知。

560.一种用于控制无人驾驶巡逻车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的gpu上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将第二图像信息提供给辅助计算机息,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的所述硬件加速器之一上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号指示至少一个安全状况的存在或不存在,

经由无线网络发送所述至少一个安全状况的存在和位置的通知。

561.一种用于控制无人驾驶巡逻车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的所述硬件加速器之一上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的所述硬件加速器之一上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号指示至少一个安全状况的存在或不存在,

经由无线网络发送所述至少一个安全状况的存在和位置的通知。

562.根据权利要求569所述的方法,其特征还在于:

所述安全状况是起火。

563.根据权利要求570所述的方法,其特征还在于:

所述安全状况是交通事故。

564.根据权利要求571所述的方法,其特征还在于:

所述安全状况是受伤的人。

565.根据权利要求572所述的方法,其特征还在于:

所述安全状况是人与人之间的身体冲突。

566.根据权利要求569所述的方法,其特征还在于:

所述安全状况是起火。

567.根据权利要求570所述的方法,其特征还在于:

所述安全状况是交通事故。

568.根据权利要求571所述的方法,其特征还在于:

所述安全状况是受伤的人。

569.根据权利要求572所述的方法,其特征还在于:

所述安全状况是人与人之间的身体冲突。

570.根据权利要求569所述的方法,其特征还在于:

所述安全状况是起火。

571.根据权利要求570所述的方法,其特征还在于:

所述安全状况是交通事故。

572.根据权利要求571所述的方法,其特征还在于:

所述安全状况是受伤的人。

573.根据权利要求572所述的方法,其特征还在于:

所述安全状况是人与人之间的身体冲突。

574.根据权利要求569所述的方法,其特征还在于:

所述第一图像信息包括来自一个或更多个红外摄像机的信息。

575.根据权利要求570所述的方法,其特征还在于:

所述第一图像信息包括来自一个或更多个红外摄像机的信息。

576.根据权利要求571所述的方法,其特征还在于:

所述第一图像信息包括来自一个或更多个红外摄像机的信息。

577.根据权利要求572所述的方法,其特征还在于:

所述第一图像信息包括来自一个或更多个红外摄像机的信息。

578.根据权利要求569所述的方法,其特征还在于:

所述第二图像信息包括来自一个或更多个红外摄像机的信息。

579.根据权利要求570所述的方法,其特征还在于:

所述第二图像信息包括来自一个或更多个红外摄像机的信息。

580.根据权利要求571所述的方法,其特征还在于:

所述第二图像信息包括来自一个或更多个红外摄像机的信息。

581.根据权利要求572所述的方法,其特征还在于:

所述第二图像信息包括来自一个或更多个红外摄像机的信息。

582.一种用于控制无人驾驶舵杆卡车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的所述硬件加速器之一上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制与第一可控轴相关联的至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的所述硬件加速器之一上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,用于控制与第二可控轴相关联的至少一个车辆致动器。

583.一种用于控制无人驾驶舵杆卡车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的gpu上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制与第一可控轴相关联的至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的所述硬件加速器之一上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,用于控制与第二可控轴相关联的至少一个车辆致动器。

584.一种用于控制无人驾驶舵杆卡车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的所述硬件加速器之一上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制与第一可控轴相关联的至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的gpu上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,用于控制与第二可控轴相关联的至少一个车辆致动器。

585.一种用于控制无人驾驶舵杆卡车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的gpu上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制与第一可控轴相关联的至少一个车辆致动器,

将第二图像信息提供给辅助计算机,所述辅助计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第二图像信息作为输入,在所述辅助计算机上的gpu上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,用于控制与第二可控轴相关联的至少一个车辆致动器。

586.一种用于控制无人驾驶公共汽车的方法,其特征在于:

将第一图像信息提供给主计算机,所述主计算机的特征在于cpu、gpu和一个或更多个硬件加速器,

以所述第一图像信息作为输入,在所述主计算机上的gpu上执行第一神经网络,

在所述主计算机中生成至少一个第一信号,用于控制至少一个车辆致动器,

将第二图像信息提供给第二计算机,所述第二计算机的特征在于cpu、gpu和一个或更多个硬件加速器,所述第二图像信息包括所述公共汽车的乘客厢内部的至少一部分的图像,

以所述第二图像信息作为输入,在所述辅助计算机上的gpu上执行第二神经网络,

以所述第二图像信息作为输入,在所述辅助计算机上的所述硬件加速器之一上执行第二神经网络,

在所述辅助计算机中生成至少一个第二信号,所述至少一个第二信号指示至少一个安全状况的存在或不存在,

经由无线网络发送所述至少一个安全状况的存在和位置的通知。

587.根据权利要求597所述的用于控制无人驾驶公共汽车的方法,其特征还在于:

所述安全状况是起火。

588.根据权利要求597所述的用于控制无人驾驶公共汽车的方法,其特征还在于:

所述安全状况是受伤的公共汽车乘客。

589.根据权利要求597所述的用于控制无人驾驶公共汽车的方法,其特征还在于:

所述安全状况是公共汽车乘客之间的身体冲突。

590.根据权利要求597所述的用于控制无人驾驶公共汽车的方法,其特征还在于:

所述无线网络是lte网络。

591.根据权利要求597所述的用于控制无人驾驶公共汽车的方法,其特征还在于:

所述无线网络是wcdma网络。

592.根据权利要求597所述的用于控制无人驾驶公共汽车的方法,其特征还在于:

所述无线网络是umts网络。

593.根据权利要求597所述的用于控制无人驾驶公共汽车的方法,其特征还在于:

所述无线网络是cdma2000网络。

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