会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 区块链账本 / 区块链账本验证和服务

区块链账本验证和服务

申请号 CN202080067574.4 申请日 2020-07-22 公开(公告)号 CN114514515A 公开(公告)日 2022-05-17
申请人 动态AD有限责任公司; 发明人 小詹姆斯·约翰·玛格里亚;
摘要 公开了使用区块链技术来维护和验证运载工具账本的系统和技术。该技术包括在系统中的主节点处接收更新与构成该系统的第一运载工具节点相关联的运载工具账本的请求。如果满足第一标准,则该系统更新运载工具账本,包括:使用与主节点相关联的主账本中存储的运载工具数据来生成运载工具账本的更新版本,以及将运载工具账本的更新版本传输到第一运载工具节点。如果不满足第一标准,则系统放弃更新运载工具账本。运载工具数据对应于与第一运载工具节点相关联的第一运载工具。使用包含与系统相关联的运载工具的运载工具记录的区块链来实现主账本。区块链包括包含与第一运载工具相对应的运载工具数据的第一区块。
权利要求

1.一种系统,包括:

一个或多于一个计算机处理器;以及一个或多于一个非暂时性存储介质,其存储有指令,所述指令当由所述一个或多于一个计算机处理器执行时,使得进行包括如下的操作:在分布式网络架构中的主节点处接收更新与包括所述分布式网络架构的多个运载工具节点中的第一运载工具节点相关联的运载工具账本的请求;

根据确定为满足第一标准,更新所述运载工具账本,包括:使用与所述主节点相关联的主账本中所存储的运载工具数据来生成所述运载工具账本的更新版本,其中所述运载工具数据对应于与所述第一运载工具节点相关联的第一运载工具,并且其中所述主账本使用包含与所述分布式网络架构相关联的多个运载工具的运载工具记录的区块链来实现,所述区块链包括包含与所述第一运载工具相对应的运载工具数据的第一块;以及

将所述运载工具账本的更新版本传输到所述第一运载工具节点;以及根据确定为不满足所述第一标准,放弃更新所述运载工具账本。

2.根据权利要求1所述的系统,其中:所述主账本是所述区块链的第一副本;

所述运载工具账本是所述区块链的第二副本;以及当所述区块链的所述第一副本和所述区块链的所述第二副本不相同时,满足所述第一标准。

3.根据权利要求1‑2中任一项所述的系统,其中,接收所述请求包括接收与所述第一运载工具节点相关联的第一运载工具处存储的所述运载工具账本的第一版本,所述运载工具账本的所述第一版本包括对所述主账本中未存储的所述第一运载工具的运载工具数据的一个或多于一个改变。

4.根据权利要求3所述的系统,其中,所述运载工具账本的多个副本存储在所述第一运载工具处,所述操作还包括:

根据确定为所述第一运载工具处存储的运载工具账本的多个副本中的超过一半的副本包括对所述第一运载工具的运载工具数据的一个或多于一个改变,发起用于评估对所述第一运载工具的运载工具数据的一个或多于一个改变的处理。

5.根据权利要求3所述的系统,所述操作还包括:根据确定为满足第二标准,更新所述主账本以包括对所述第一运载工具的运载工具数据的一个或多于一个改变;以及

根据确定为不满足所述第二标准,放弃更新所述主账本以包括对所述第一运载工具的运载工具数据的一个或多于一个改变。

6.根据权利要求5所述的系统,其中,在当所述第一运载工具不与所述主节点通信时对所述运载工具数据做出一个或多于一个改变的情况下,不满足所述第二标准。

7.根据权利要求5所述的系统,其中,当从所述主节点接收到所述一个或多于一个改变时,满足所述第二标准。

8.根据权利要求5所述的系统,其中,放弃更新所述主账本以包括对所述第一运载工具的运载工具数据的一个或多于一个改变包括利用更新的运载工具账本来替换所述运载工具账本的第一版本。

9.根据权利要求1‑8中任一项所述的系统,其中,使用所述主账本中存储的运载工具数据来生成所述运载工具账本的更新版本包括将运载工具数据添加到所述区块链。

10.根据权利要求1‑9中任一项所述的系统,其中,所述主账本相对于所述第一运载工具是远程的。

11.根据权利要求1‑10中任一项所述的系统,其中,所述运载工具账本包括所述第一运载工具的运载工具数据,所述运载工具数据包括从由以下项所组成的组中选择的一个或多于一个项:

运载工具组件、相应运载工具组件的软件、以及所述相应运载工具组件的修订级别。

12.根据权利要求1‑11中任一项所述的系统,其中,所述请求响应于检测到预定事件而从所述第一运载工具节点发送。

13.根据权利要求12所述的系统,其中,所述预定事件是运载工具启动。

14.根据权利要求12所述的系统,其中,所述预定事件是在所述第一运载工具节点和所述第一运载工具之间建立通信会话。

15.根据权利要求12所述的系统,其中,所述预定事件是预定时间量的到期。

16.根据权利要求1‑15中任一项所述的系统,所述操作还包括:使用包含与所述分布式网络架构相关联的多个运载工具的运载工具记录的区块链来维护主账本。

17.一种用于在分布式网络架构中维护运载工具账本的方法,所述方法包括:在所述分布式网络架构中的主节点处接收更新与包括所述分布式网络架构的多个运载工具节点中的第一运载工具节点相关联的运载工具账本的请求;

根据确定为满足第一标准,更新所述运载工具账本,包括:使用与所述主节点相关联的主账本中所存储的运载工具数据来生成所述运载工具账本的更新版本,其中所述运载工具数据对应于与所述第一运载工具节点相关联的第一运载工具,并且其中所述主账本使用包含与所述分布式网络架构相关联的多个运载工具的运载工具记录的区块链来实现,所述区块链包括包含与所述第一运载工具相对应的运载工具数据的第一块;以及

将所述运载工具账本的更新版本传输到所述第一运载工具节点;以及根据确定为不满足所述第一标准,放弃更新所述运载工具账本。

18.根据权利要求17所述的方法,其中:所述主账本是所述区块链的第一副本;

所述运载工具账本是所述区块链的第二副本;以及当所述区块链的所述第一副本和所述区块链的所述第二副本不相同时,满足所述第一标准。

19.根据权利要求17‑18中任一项所述的方法,其中,接收所述请求包括接收与所述第一运载工具节点相关联的第一运载工具处存储的所述运载工具账本的第一版本,所述运载工具账本的所述第一版本包括对所述主账本中未存储的所述第一运载工具的运载工具数据的一个或多于一个改变。

20.根据权利要求19所述的方法,其中,所述运载工具账本的多个副本存储在所述第一运载工具处,所述方法还包括:

根据确定为所述第一运载工具处存储的运载工具账本的多个副本中的超过一半的副本包括对所述第一运载工具的运载工具数据的一个或多于一个改变,发起用于评估对所述第一运载工具的运载工具数据的一个或多于一个改变的处理。

21.根据权利要求19所述的方法,所述方法还包括:根据确定为满足第二标准,更新所述主账本以包括对所述第一运载工具的运载工具数据的一个或多于一个改变;以及

根据确定为不满足所述第二标准,放弃更新所述主账本以包括对所述第一运载工具的运载工具数据的一个或多于一个改变。

22.根据权利要求21所述的方法,其中,在当所述第一运载工具不与所述主节点通信时对所述运载工具数据做出一个或多于一个改变的情况下,不满足所述第二标准。

23.根据权利要求21所述的方法,其中,当从所述主节点接收到所述一个或多于一个改变时,满足所述第二标准。

24.根据权利要求21所述的方法,其中,放弃更新所述主账本以包括对所述第一运载工具的运载工具数据的一个或多于一个改变包括利用更新的运载工具账本来替换所述运载工具账本的第一版本。

25.根据权利要求17‑24中任一项所述的方法,其中,使用所述主账本中存储的运载工具数据来生成所述运载工具账本的更新版本包括将运载工具数据添加到所述区块链。

26.根据权利要求17‑25中任一项所述的方法,其中,所述主账本相对于所述第一运载工具是远程的。

27.根据权利要求17‑26中任一项所述的方法,其中,所述运载工具账本包括所述第一运载工具的运载工具数据,所述运载工具数据包括从由以下项所组成的组中选择的一个或多于一个项:

运载工具组件、相应运载工具组件的软件、以及所述相应运载工具组件的修订级别。

28.根据权利要求17‑27中任一项所述的方法,其中,所述请求响应于检测到预定事件而从所述第一运载工具节点发送。

29.根据权利要求28所述的方法,其中,所述预定事件是运载工具启动。

30.根据权利要求28所述的方法,其中,所述预定事件是在所述第一运载工具节点和所述第一运载工具之间建立通信会话。

31.根据权利要求28所述的方法,其中,所述预定事件是预定时间量的到期。

32.根据权利要求17‑31中任一项所述的方法,还包括:使用包含与所述分布式网络架构相关联的多个运载工具的运载工具记录的区块链来维护主账本。

33.一个或多于一个非暂时性存储介质,其存储有指令,所述指令当由一个或多于一个计算装置执行时,使得进行根据权利要求17‑32中任一项所述的方法。

说明书全文

区块链账本验证和服务

[0001] 相关申请的交叉引用
[0002] 本申请要求于2019年7月23日提交的题为“Blockchain Ledger Validation and Service”的美国临时专利申请62/877,566,以及2020年7月22日提交的题为“Blockchain 
Ledger Validation and Service”的美国专利申请16/935,591的优先权。这些申请中的各
申请的内容通过引用全部并入本文。

技术领域

[0003] 本说明涉及使用区块链技术来维护和验证运载工具活动账本(ledger)。

背景技术

[0004] 运载工具活动账本可用于在网络中跟踪与运载工具相对应的数据。例如,账本可以包括系统组件、维护日志、软件修订级别(revision level)以及与运载工具相关的其他
信息的记录。

发明内容

[0005] 本说明书中描述的主题指向使用区块链技术来维护和验证运载工具活动账本(本文也称为“运载工具账本”)的计算机系统和技术。通常,计算机系统被配置为提供分布式网
络架构,该架构可用于使用所公开的技术来维护运载工具账本。该技术包括:在分布式网络
架构中的主节点处接收更新与包括所述分布式网络架构的多个运载工具节点中的第一运
载工具节点相关联的运载工具账本的请求;根据确定为满足第一标准,更新所述运载工具
账本,包括:使用与所述主节点相关联的主账本中所存储的运载工具数据来生成所述运载
工具账本的更新版本,其中所述运载工具数据对应于与所述第一运载工具节点相关联的第
一运载工具,并且其中所述主账本使用包含与所述分布式网络架构相关联的多个运载工具
的运载工具记录的区块链来实现,所述区块链包括包含与所述第一运载工具相对应的运载
工具数据的第一块;以及将所述运载工具账本的更新版本传输到所述第一运载工具节点;
以及根据确定为不满足所述第一标准,放弃更新所述运载工具账本。
[0006] 这些和其他方面、特征和实现可表示为用于进行功能的方法、设备、系统、组件、程序产品、部件或步骤,以及以其他方式表示。
[0007] 根据包括权利要求的以下描述,这些和其他方面、特征和实现将变得明显。

附图说明

[0008] 图1示出具有自主能力的自主运载工具的示例。
[0009] 图2例示示例“云”计算环境。
[0010] 图3例示计算机系统。
[0011] 图4示出自主运载工具的示例架构。
[0012] 图5示出感知模块可以使用的输入和输出的示例。
[0013] 图6示出LiDAR系统的示例。
[0014] 图7示出操作中的LiDAR系统。
[0015] 图8示出LiDAR系统的操作的附加细节。
[0016] 图9示出规划模块的输入和输出之间的关系的框图。
[0017] 图10示出路径规划中所使用的有向图。
[0018] 图11示出控制模块的输入和输出的框图。
[0019] 图12示出控制器的输入、输出和组件的框图。
[0020] 图13示出分布式网络架构的示例。
[0021] 图14a和图14b示出示例运载工具账本。
[0022] 图15a和图15b示出示例主账本。
[0023] 图16是用于使用区块链来维护和验证运载工具账本的示例处理的流程图。

具体实施方式

[0024] 在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,本发明可以在没有这些具体细节的情况下实施将是明显的。在其他实例中,众
所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。
[0025] 在附图中,为了便于描述,示出了示意要素(诸如表示装置、模块、指令块和数据要素的那些要素)的具体排列或次序。然而,本领域技术人员应当理解,附图中示意要素的具
体次序或排列并不意在意味着要求特定的处理次序或序列、或处理过程的分离。此外,在附
图中包含示意要素并不意在意味着在所有实施例中都需要这种要素,也不意在意味着由这
种要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其他要素结合。
[0026] 此外,在附图中,连接要素、诸如实线或虚线或箭头用于例示两个或多于两个其他示意要素之间的连接、关系或关联,没有任何此类连接要素并不意在意味着不能存在连接、
关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中示出,以便不使本公
开内容模糊。此外,为了便于例示,使用单个连接要素来表示要素之间的多个连接、关系或
关联。例如,如果连接要素表示信号、数据或指令的通信,本领域技术人员应理解,这种要素
表示影响通信可能需要的一个或多于一个信号路径(例如,总线)。
[0027] 现在将详细参考实施例,其示例在附图中例示出。在以下的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人
员来说将明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其他
情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地使实施
例的方面模糊。
[0028] 下面描述的若干特征各自可以彼此独立地使用,也可以与其他特征的任何组合一起使用。然而,任何个别特征可能不能解决以上所讨论的任何问题,或者只能解决以上所讨
论的问题之一。以上所讨论的一些问题可能不能通过本文所描述的任何一个特征得到充分
解决。虽然提供了标题,但在本说明书的其他地方也可以找到与具体标题有关但在具有该
标题的部分中未找到的信息。本文根据以下概要描述实施例:
[0029] 1.总体概述
[0030] 2.硬件概述
[0031] 3.自主运载工具架构
[0032] 4.自主运载工具输入
[0033] 5.自主运载工具规划
[0034] 6.自主运载工具控制
[0035] 7.使用区块链技术来维护和验证运载工具账本
[0036] 8.使用区块链技术来维护和验证运载工具账本的示例处理
[0037] 总体概述
[0038] 在复杂环境(例如,城市环境)中驾驶的自主运载工具引起了巨大的技术挑战。为了让自主运载工具在这些环境中导航,运载工具使用诸如LIDAR或RADAR等的传感器来实时
检测各种类型的对象,诸如运载工具、行人和自行车等。为了便于自主运载工具在这些环境
中的操作,使用网络来维护包含针对一个或多于一个自主运载工具所记录的数据的运载工
具账本。现有的用于维护运载工具账本的解决方案容易受到各种安全威胁,并且缺少工业
化所需的透明性、安全性或可审计性。例如,工作人员或第三方可以在没有适当授权的情况
下将新的组件或软件添加到运载工具的配置中。另外,运载工具中的组件可能被第三方黑
客攻击,以例如改变软件和/或修订级别或者启用其他不良行为者的活动。
[0039] 本公开提供了用于使用区块链架构来维护运载工具账本的一个或多于一个实施例。所公开的实施例包括用于使用区块链架构来维护和验证一个或多于一个自主运载工具
的运载工具账本的系统和技术。使用区块链技术使得活动的账本能够不容易被改变,并且
不易于被黑客攻击。因此,这些实施例提供了用于维护和验证运载工具账本的系统和方法,
该系统和方法是冗余的、不可变的和安全的。
[0040] 硬件概述
[0041] 图1示出具有自主能力的自主运载工具100的示例。
[0042] 如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地操作,而无需实时的人类干预,包括但不限于完全自主
运载工具、高度自主运载工具和有条件自主运载工具。
[0043] 如本文所使用的,自主运载工具(AV)是一种具有自主能力的运载工具。
[0044] 如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的
示例。
[0045] 如本文所使用的,“轨迹”是指将AV从第一时空地点导航到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的
地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多于一个路段(例
如,道路的数段)组成,并且各路段由一个或多于一个块(例如,车道或交叉口的一部分)组
成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人
员或货物上车或下车。
[0046] 如本文所使用的,“(一个或多于一个)传感器”包括一个或多于一个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件组件可包括感测组件(例如,图像传感器、
生物特征传感器)、传输和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件
(诸如,模数转换器)、数据存储装置(诸如,RAM和/或非易失性存储器)、软件或固件组件和
数据处理组件(诸如,专用集成电路)、微处理器和/或微控制器。
[0047] 如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由AV运载工具上的一个或多于一个传感器检测到的一个或多于一个经分类或标记的对象,或由
AV外部的源提供的一个或多于一个分类或标记的对象。
[0048] 如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋
或办公楼内的车行道、停车场的一段、空置停车场的一段、乡村区域的污物通道等)。因为有
些运载工具(例如,四轮驱动的小卡车、越野车(SUV)等)能够穿过各种不特别适合运载工具
行驶的物理区域,因此“道路”可以是任何市政当局或其他政府或行政机构没有正式定义为
一条通道的物理区域。
[0049] 如本文所使用的,“车道”是道路的可被运载工具穿过的部分,并且可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的部分空间(例如,小于50%)。例
如,具有相距很远的车道标记的道路可能容纳两个或多于两个运载工具,使得一个运载工
具可以在不穿过车道标记的情况下超过另一个运载工具,因此可被解释为车道比车道标记
之间的空间窄,或车道之间有两个车道。在没有车道标记的情况下,也可以对车道进行解
释。例如,可以基于环境的物理特征(例如,农村地区的岩石和沿着大道的树木)来定义车
道。
[0050] “一个或多于一个”包括由一个要素执行的功能、由多个要素例如以分布式的方式执行的功能、由一个要素执行的若干功能、由若干要素执行的若干功能、或上述的任何组
合。
[0051] 还将理解的是,尽管在一些情况下,术语“第一”、“第二”等在本文中是用来描述各种要素的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个
要素。例如,在未背离各种所描述的实施例的范围的情况下,第一触点可被称为第二触点,
并且类似地,第二触点可被称为第一触点。除非另外规定,否则第一触点和第二触点两者都
是触点,但它们不是相同触点。
[0052] 在本文所描述的各种实施例的说明书中使用的术语仅用于描述特定实施例的目的,而不是意在限制。如在所描述的各种实施例的说明书和所附权利要求书中所使用的,单
数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还将理解的是,
如本文所使用的“和/或”是指并且包括一个或多于一个相关清单项目的任何和所有可能的
组合。还将理解的是,当在本说明书中使用术语“包括”、“包含”、“具备”和/或“具有”时,具
体说明存在所陈述的特征、整数、步骤、操作、要素和/或组件,但并不排除存在或添加一个
或多于一个其他特征、整数、步骤、操作、要素、组件、和/或其群组。
[0053] 如本文所使用的,取决于上下文,术语“如果”可选地被理解为意指“当”或“在当时”或“响应于确定为”或“响应于检测到”。类似地,取决于上下文,短语“如果已确定”或“如
果[所陈述的条件或事件]已被检测到”可选地被理解为意指“在确定时”或“响应于确定为
“或”在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0054] 如本文所使用的,AV系统是指AV以及支持AV操作的硬件、软件、存储的数据和实时生成的数据的阵列。在实施例中,AV系统并入在AV内。在实施例中,AV系统跨若干地点分布。
例如,AV系统的一些软件是在类似于下面关于图2描述的云计算环境200的云计算环境上实
现的。
[0055] 一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全自主运载工具、高度自主运载工具和有条件自主运载工具,诸如分别为所谓的
第5级、第4级和第3级运载工具(见SAE国际标准J3016:道路上机动车自动驾驶系统相关术
语的分类和定义,通过引用将其全部内容并入本文件,用于了解运载工具自主权等级的更
多详细信息)。本文件所描述的技术也适用于部分自主运载工具和驾驶员辅助运载工具,诸
如所谓的第2级和第1级运载工具(见SAE国际标准J3016:道路上机动车自动驾驶系统相关
术语的分类和定义)。在实施例中,一个或多于一个第1级、第2级、第3级、第4级和第5级运载
工具系统可基于对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例
如,转向、制动和使用地图)。本文件中所描述的技术可以使从完全自主运载工具到人类操
作的运载工具范围内的任何级别的运载工具受益。
[0056] 参考图1,AV系统120使AV 100沿着轨迹198操作,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其
他障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。
[0057] 在实施例中,AV系统120包括用于从计算机处理器146接收操作命令并对其进行操作的装置101。在实施例中,计算处理器146与下面参考图3描述的处理器304相似。装置101
的示例包括转向控制器102、制动器103、挡位、加速踏板或其他加速控制机构、挡风玻璃雨
刮器、侧门锁、窗控器和转向指示器。
[0058] 在实施例中,AV系统120包括用于测量或推断AV 100的状态或条件的属性的传感器121,这些属性诸如是AV的位置、线速度和角速度及线加速度和角加速度、以及航向(例
如,AV 100的前端的方向)。传感器121的示例是GPS、测量运载工具线加速度和角速率两者
的惯性测量单元(IMU)、用于测量或估计轮滑移率的轮速率传感器、轮制动压力或制动扭矩
传感器、引擎扭矩或轮扭矩传感器以及转向角度和角速率传感器。
[0059] 在实施例中,传感器121还包括用于感测或测量AV的环境的属性的传感器。例如,可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122,LiDAR 123,RADAR,超声波传
感器,飞行时间(TOF)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器。
[0060] 在实施例中,AV系统120包括数据存储单元142和存储器144,用于存储与计算机处理器146相关联的机器指令或由传感器121收集的数据。在实施例中,数据存储单元142与以
下关于图3描述的ROM 308或存储装置310类似。在实施例中,存储器144与下面描述的主存
储器306类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时
和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条
件。在实施例中,与环境190有关的数据从远程数据库134通过通信信道传输到AV 100。
[0061] 在实施例中,AV系统120包括通信装置140,用于将对其他运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度、以及线航向和角航向)测量或推断的属
性传送到AV 100。这些装置包括运载工具到运载工具(V2V)和运载工具到基础设施(V2I)通
信装置以及用于通过点对点或自组织(ad hoc)网络或两者进行无线通信的装置。在实施例
中,通信装置140跨电磁频谱(包括无线电和光通信)或其他介质(例如,空气和声介质)进行
通信。运载工具对运载工具(V2V)、运载工具对基础设施(V2I)通信(以及在一些实施例中为
一种或多种其他类型的通信)的组合有时被称为运载工具对所有事物(V2X)通信。V2X通信
通常符合一个或多于一个通信标准,用于与自主运载工具进行的和在自主运载工具之间的
通信。
[0062] 在实施例中,通信装置140包括通信接口。例如,有线、无线、WiMAX、WiFi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到AV系统
120。在实施例中,远程数据库134嵌入在如图2中所描述的云计算环境200中。通信接口140
将从传感器121收集的数据或与AV 100操作有关的其他数据传输到远程数据库134。在实施
例中,通信接口140向AV 100传输与遥操作有关的信息。在一些实施例中,AV 100与其他远
程(例如,“云”)服务器136通信。
[0063] 在实施例中,远程数据库134还存储和传输数字数据(例如,存储诸如道路和街道地点的数据)。这些数据存储在AV 100上的存储器144中,或者通过通信信道从远程数据库
134传输到AV 100。
[0064] 在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速度分布)。在一个实现中,这种
数据可以存储在AV 100上的存储器144中,或者通过通信信道从远程数据库134传输到AV 
100。
[0065] 位于AV 100上的计算装置146基于实时传感器数据和先验信息两者以算法方式生成控制动作,允许AV系统120执行其自主驾驶能力。
[0066] 在实施例中,AV系统120包括耦接到计算装置146的计算机外围设备132,用于向AV 100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例
中,外围设备132类似于下面参考图3讨论的显示器312、输入装置314和光标控制器316。耦
接是无线的或有线的。任意两个或多于两个接口装置可以集成到单个装置中。
[0067] 图2例示示例“云”计算环境。云计算是一种服务交付模式,用于使得能够方便、按需地在网络上访问可配置计算资源(例如网络、网络带宽、服务器、处理、内存、存储、应用程
序、虚拟机和服务)的共享池。在典型的云计算系统中,一个或多于一个大型云数据中心容
纳用于交付云所提供的服务的机器。现在参考图2,云计算环境200包括通过云202互连的云
数据中心204a、204b和204c。数据中心204a、204b和204c为连接到云202的计算机系统206a、
206b、206c、206d、206e和206f提供云计算服务。
[0068] 云计算环境200包括一个或多于一个云数据中心。一般而言,云数据中心(例如图2中所示的云数据中心204a)是指构成云(例如图2中所示的云202或云的特定部分)的服务器
的物理排列。例如,服务器在云数据中心中物理排列成房间、组、行和机架。云数据中心有一
个或多于一个区域,其中包括一个或多于一个服务器房间。每个房间有一行或多行服务器,
并且每行包括一个或多于一个机架。每个机架包括一个或多于一个单独的服务器节点。在
一些实现中,区域、房间、机架和/或行中的服务器基于数据中心设施的物理基础设施要求
(包括电力、能源、热力、热源和/或其他要求)被排列成若干组。在实施例中,服务器节点类
似于图3中描述的计算机系统。数据中心204a具有许多分布在多个机架上的计算系统。
[0069] 云202包括云数据中心204a、204b和204c以及用于连接云数据中心204a、204b和204c并有助于促进计算系统206a‑f对云计算服务的访问的网络和网络资源(例如,网络设
备、节点、路由器、交换机和网络电缆)。在实施例中,该网络表示一个或多于一个本地网络、
广域网或通过使用地面或卫星连接部署的有线或无线链路耦接的网际网络的任意组合。通
过网络交换的数据使用多种网络层协议(诸如,因特网协议(IP)、多协议标签交换(MPLS)、
异步传输模式(ATM)、帧中继(Frame Relay)等)进行传输。此外,在网络表示多个子网络的
组合的实施例中,在每个底层子网络上使用不同的网络层协议。在一些实施例中,网络表示
一个或多于一个互连网际网络(诸如公共因特网等)。
[0070] 计算系统206a‑f或云计算服务消费者通过网络链路和网络适配器连接到云202。在实施例中,计算系统206a‑f被实现为各种计算装置,例如服务器、台式机、膝上型计算机、
平板电脑、智能手机、物联网(IoT)装置、自主运载工具(包括小汽车、无人机、航天飞机、火
车、公共汽车等)和消费电子产品。在实施例中,计算系统206a‑f在其他系统中实现或作为
其他系统的一部分实现。
[0071] 图3例示计算机系统300。在实现中,计算机系统300是一种专用计算装置。专用计算装置被硬连线以执行这些技术,或包括诸如一个或多于一个专用集成电路(ASIC)或现场
可编程门阵列(FPGA)的被持久编程为执行上述技术的数字电子装置,或可包括一个或多于
一个通用硬件处理器,这些硬件处理器经编程以根据固件、存储器、其他存储器、或者组合
中的程序指令执行这些技术。这种专用的计算装置还可以将定制的硬线逻辑、ASIC或FPGA
与定制的编程相结合来完成这些技术。在各种实施例中,专用计算装置是台式计算机系统、
便携式计算机系统、手持装置、网络装置或包含硬线和/或程序逻辑以实现这些技术的任何
其他装置。
[0072] 在实施例中,计算机系统300包括总线302或用于传达信息的其他通信机制、以及与总线302耦接以处理信息的硬件处理器304。硬件处理器304是例如通用微处理器。计算机
系统300还包括主存储器306,诸如随机存取存储器(RAM)或其他动态存储装置,该主存储器
306耦接到总线302以存储信息和指令,该信息和指令由处理器304执行。在一个实现中,主
存储器306用于在执行要由处理器304执行的指令期间存储临时变量或其他中间信息。当这
些指令存储在处理器304可访问的非暂时性存储介质中时,使计算机系统300变成一个专用
机器,该机器被定制以执行指令中指定的操作。
[0073] 在实施例中,计算机系统300还包括只读存储器(ROM)308或耦接到总线302的其他静态存储装置,用于存储处理器304的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或
三维交叉点存储器的存储装置310,并且该存储装置310耦接到总线302以存储信息和指令。
[0074] 在实施例中,计算机系统300通过总线302耦接到诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器、发光二极管(LED)显示器或用于向计算机用户显示信息的有机
发光二极管(OLED)显示器的显示器312。包括字母数字键和其他键的输入装置314耦接到总
线302,用于向处理器304传送信息和命令选择。另一种类型的用户输入装置是光标控制器
316,诸如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择传送到处理
器304,并用于控制光标在显示器312上的移动。这种输入装置通常具有两个轴(第一轴(例
如,x轴)和第二轴(例如,y轴))上的两个自由度,这两个轴允许装置指定平面上的位置。
[0075] 根据一个实施例,本文的技术由计算机系统300响应于处理器304执行主存储器306中包含的一个或多于一个指令的一个或多于一个序列而执行。这些指令从诸如存储装
置310的另一存储介质读入主存储器306。执行主存储器306中包含的指令序列使处理器304
执行本文所描述的过程步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使
用。
[0076] 如本文所使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式操作。这种存储介质包括非易失性介质和/或易失性
介质。非易失性介质例如包括诸如存储装置310的光盘、磁盘、固态驱动器或三维交叉点存
储器。易失性介质包括动态存储器,诸如主存储器306。存储介质的常见形式包括例如软盘、
软磁盘、硬盘、固态驱动器、磁带或任何其他磁数据存储介质、CD‑ROM、任何其他光数据存储
介质、任何具有孔型的物理介质、RAM、PROM和EPROM、FLASH‑EPROM、NV‑RAM、或任何其他存储
芯片或存储盒。
[0077] 存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线302的电
线。传输介质也可以采取声波或光波的形式,诸如在无线电波和红外数据通信过程中产生
的声波或光波。
[0078] 在实施例中,各种形式的介质涉及将一个或多于一个指令的一个或多于一个序列承载到处理器304以供执行。例如,这些指令最初是在远程计算机的磁盘或固态驱动器上执
行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指
令。计算机系统300的本地调制解调器接收电话线路上的数据,并使用红外发射器将数据转
换为红外信号。红外检测器接收红外信号中承载的数据,并且适当的电路将数据放置在总
线302上。总线302将数据承载到主存储器306,处理器304从主存储器306检索并执行指令。
主存储器306接收的指令可以可选地在处理器304执行之前或之后存储在存储装置310上。
[0079] 计算机系统300还包括耦接到总线302的通信接口318。通信接口318提供耦接到连接至本地网络322的网络链路320的双向数据通信。例如,通信接口318是综合业务数字网
(ISDN)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信
连接的调制解调器。作为另一示例,通信接口318是局域网(LAN)卡,用于提供与兼容LAN的
数据通信连接。在一些实现中,无线链路也被实现。在任何这种实现中,通信接口318发送和
接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。
[0080] 网络链路320通常通过一个或多于一个网络向其他数据装置提供数据通信。例如,网络链路320通过本地网络322提供与主计算机324或与由因特网服务提供商(ISP)326运营
的云数据中心或设备的连接。ISP 326又通过现在通常称为“因特网”328的世界范围分组数
据通信网络来提供数据通信服务。本地网络322和因特网328两者都使用承载数字数据流的
电、电磁或光信号。通过各种网络的信号以及网络链路320上并通过通信接口318的信号是
传输介质的示例形式,其中这些信号承载了进出计算机系统300的数字数据。在实施例中,
网络320包含上述云202或云202的一部分。
[0081] 计算机系统300通过(一个或多于一个)网络、网络链路320和通信接口318发送消息和接收包括程序代码的数据。在实施例中,计算机系统300接收用于处理的代码。接收到
的代码在接收到时由处理器304执行,和/或存储在存储装置310中,或存储在其他非易失性
存储装置中以便以后执行。
[0082] 自主运载工具架构
[0083] 图4示出用于自主运载工具(例如,图1所示的AV 100)的示例架构400。架构400包括感知模块402(有时称为感知电路)、规划模块404(有时称为规划电路)、控制模块406(有
时称为控制电路)、定位模块408(有时称为定位电路)和数据库模块410(有时称为数据库电
路)。各模块在AV 100的操作中发挥作用。共同地,模块402、404、406、408和410可以是图1所
示的AV系统120的一部分。在一些实施例中,模块402、404、406、408和410中的任何模块是计
算机软件(例如,计算机可读介质上所存储的可执行代码)和计算机硬件(例如,一个或多于
一个微处理器、微控制器、专用集成电路[ASIC]、硬件存储器装置、其他类型的集成电路、其
他类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。
[0084] 在使用中,规划模块404接收表示目的地412的数据,并且确定表示AV100为了到达(例如,抵达)目的地412而可以行驶的轨迹414(有时称为路线)的数据。为了使规划模块404
确定表示轨迹414的数据,规划模块404从感知模块402、定位模块408和数据库模块410接收
数据。
[0085] 感知模块402使用例如也如图1所示的一个或多于一个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包
括经分类的对象416的场景描述提供至规划模块404。
[0086] 规划模块404还从定位模块408接收表示AV位置418的数据。定位模块408通过使用来自传感器121的数据和来自数据库模块410的数据(例如,地理数据)以计算位置来确定AV
位置。例如,定位模块408使用来自GNSS(全球导航卫星系统)传感器的数据和地理数据来计
算AV的经度和纬度。在实施例中,定位模块408所使用的数据包括具有行车道几何属性的高
精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运
载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们
的组合)的地图、以及描述道路特征(诸如人行横道、交通标志或各种类型的其他行驶信号
等)的空间地点的地图。
[0087] 控制模块406接收表示轨迹414的数据和表示AV位置418的数据,并且以将使得AV 100行驶轨迹414到达目的地412的方式来操作AV的控制功能420a~420c(例如,转向、油门、
制动、点火)。例如,如果轨迹414包括左转,则控制模块406将以如下方式操作控制功能420a
~420c:转向功能的转向角度将使得AV 100左转,并且油门和制动将使得AV 100在进行转
弯之前暂停并等待经过的行人或运载工具。
[0088] 自主运载工具输入
[0089] 图5示出感知模块402(图4)所使用的输入502a‑502d(例如,图1中所示的传感器121)和输出504a‑504d(例如,传感器数据)的示例。一个输入502a是LiDAR(光检测和测距)
系统(例如,图1所示的LiDAR 123)。LiDAR是使用光(例如,诸如红外光等的一道光)来获得
与其视线中的物理对象有关的数据的技术。LiDAR系统产生LiDAR数据作为输出504a。例如,
LiDAR数据是用于构造环境190的表示的3D或2D点(也称为点云)的集合。
[0090] 另一输入502b是RADAR(雷达)系统。RADAR是使用无线电波来获得与附近的物理对象有关的数据的技术。RADAR可以获得与不在LiDAR系统的视线内的对象有关的数据。RADAR
系统502b产生RADAR数据作为输出504b。例如,RADAR数据是用于构造环境190的表示的一个
或多于一个射频电磁信号。
[0091] 另一输入502c是照相机系统。照相机系统使用一个或多于一个照相机(例如,使用诸如电荷耦接器件[CCD]等的光传感器的数字照相机)来获取与附近的物理对象有关的信
息。照相机系统产生照相机数据作为输出504c。照相机数据通常采用图像数据(例如,诸如
RAW、JPEG、PNG等的图像数据格式的数据)的形式。在一些示例中,照相机系统具有例如为了
立体影像(立体视觉)的目的的多个独立照相机,这使得照相机系统能够感知深度。尽管照
相机系统所感知的对象在这里被描述为“附近”,但这是相对于AV而言的。在使用中,照相机
系统可被配置为“看见”远处的(例如,AV前方的远至1公里或更远的)对象。因此,照相机系
统可以具有为了感知遥远的对象而优化的诸如传感器和镜头等的特征。
[0092] 另一输入502d是交通灯检测(TLD)系统。TLD系统使用一个或多于一个照相机来获得与交通灯、街道标志和提供视觉导航信息的其他物理对象有关的信息。TLD系统产生TLD
数据作为输出504d。TLD数据经常采用图像数据(例如,诸如RAW、JPEG、PNG等的图像数据格
式的数据)的形式。TLD系统与包含照相机的系统的不同之处在于:TLD系统使用具有宽视场
(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉导航信息的物
理对象有关的信息,使得AV 100能够访问这些对象所提供的所有相关导航信息。例如,TLD
系统的视角可以为约120度或更大。
[0093] 在一些实施例中,使用传感器融合技术来组合输出504a‑504d。因而,将个体输出504a‑504d提供至AV 100的其他系统(例如,提供至如图4所示的规划模块404),或者可以采
用相同类型的单个组合输出或多个组合输出(例如,使用相同组合技术或组合相同输出或
者这两者)或不同类型的单个组合输出或多个组合输出(例如,使用不同的各个组合技术或
组合不同的各个输出或者这两者)的形式,将组合输出提供至其他系统。在一些实施例中,
使用早期融合技术。早期融合技术的特征在于:在将一个或多于一个数据处理步骤应用到
组合输出之前,将输出组合。在一些实施例中,使用后期融合技术。后期融合技术的特征在
于:在将一个或多于一个数据处理步骤应用到个体输出之后,将输出组合。
[0094] 图6示出LiDAR系统602的示例(例如,图5所示的输入502a)。LiDAR系统602从发光器606(例如,激光发射器)发射光604a‑604c。LiDAR系统所发射的光通常不在可见光谱中;
例如,经常使用红外光。所发射的光604b中的一些光遇到物理对象608(例如,运载工具)并
且反射回到LiDAR系统602。(从LiDAR系统发射的光通常不会穿透物理对象,例如,实心形式
的物理对象。)LiDAR系统602还具有用于检测反射光的一个或多于一个光检测器610。在实
施例中,与LiDAR系统相关联的一个或多于一个数据处理系统生成表示LiDAR系统的视场
614的图像612。图像612包括表示物理对象608的边界616的信息。这样,图像612用于确定AV
附近的一个或多于一个物理对象的边界616。
[0095] 图7示出操作中的LiDAR系统602。在该图所示的情景中,AV 100接收采用图像702的形式的照相机系统输出504c和采用LiDAR数据点704的形式的LiDAR系统输出504a两者。
在使用中,AV 100的数据处理系统将图像702与数据点704进行比较。特别地,在数据点704
中也识别在图像702中识别出的物理对象706。这样,AV 100基于数据点704的轮廓和密度来
感知物理对象的边界。
[0096] 图8示出LiDAR系统602的操作的附加细节。如上所述,AV 100基于LiDAR系统602所检测到的数据点的特性来检测物理对象的边界。如图8所示,诸如地面802等的平坦对象将
以一致的方式反射从LiDAR系统602发射的光804a‑804d。换句话说,由于LiDAR系统602使用
一致的间隔发射光,因此地面802将以相同的一致间隔将光反射回到LiDAR系统602。在AV 
100在地面802上行驶时,在没有东西阻挡道路的情况下,LiDAR系统602将继续检测到由下
一个有效地面点806反射的光。然而,如果对象808阻挡道路,则LiDAR系统602所发射的光
804e‑804f将以与预期一致方式不一致的方式从点810a‑810b反射。根据该信息,AV 100可
以确定存在对象808。
[0097] 路径规划
[0098] 图9示出(例如,如图4所示的)规划模块404的输入和输出之间的关系的框图900。一般而言,规划模块404的输出是从起点904(例如,源地点或初始地点)到终点906(例如,目
的地或最终地点)的路线902。路线902通常由一个或多于一个路段定义。例如,路段是指要
在街道、道路、公路、车行道或适合汽车行驶的其他物理区域的至少一部分上行驶的距离。
在一些示例中,例如,如果AV 100是诸如四轮驱动(4WD)或全轮驱动(AWD)小汽车、SUV或小
卡车等的能够越野的运载工具,则路线902包括诸如未铺面路径或开阔田野等的“越野”路
段。
[0099] 除路线902之外,规划模块还输出车道级路线规划数据908。车道级路线规划数据908用于在特定时间基于路线902的路段的条件来驶过这些路段。例如,如果路线902包括多
车道公路,则车道级路线规划数据908包括轨迹规划数据910,其中AV 100可以使用该轨迹
规划数据910以例如基于出口是否临近、多个车道中的一个或多于一个车道是否存在其他
运载工具、或者在几分钟或更少时间的过程中改变的其他因素来从这多个车道中选择某车
道。类似地,在一些实现中,车道级路线规划数据908包括路线902的某路段特有的速率约束
912。例如,如果该路段包括行人或非预期交通,则速率约束912可以将AV 100限制到比预期
速率慢的行驶速率,例如基于该路段的限速数据的速率。
[0100] 在实施例中,向规划模块404的输入包括(例如,来自图4所示的数据库模块410的)数据库数据914、当前地点数据916(例如,图4所示的AV位置418)、(例如,用于图4所示的目
的地412的)目的地数据918和对象数据920(例如,如图4所示的感知模块402所感知的经分
类的对象416)。在一些实施例中,数据库数据914包括规划时所使用的规则。规则是使用形
式语言(例如,使用布尔逻辑)指定的。在AV 100所遇到的任何给定情形中,这些规则中的至
少一些规则将适用于该情形。如果规则具有基于AV 100可用的信息(例如,与周围环境有关
的信息)所满足的条件,则该规则适用于给定情形。规则可以具有优先级。例如,“如果公路
是高速公路,则移动到最左侧车道”这一规则与“如果出口在一英里内临近,则移动到最右
侧车道”相比可以具有更低的优先级。
[0101] 图10示出在路径规划中(例如,由规划模块404(图4))使用的有向图1000。一般而言,如图10所示的有向图那样的有向图1000用于确定任何起点1002和终点1004之间的路
径。在现实世界中,分隔起点1002和终点1004的距离可能相对较大(例如,在两个不同的都
市区域中),或者可能相对较小(例如,毗邻城市街区的两个交叉口或多车道道路的两条车
道)。
[0102] 在实施例中,有向图1000具有表示起点1002和终点1004之间的AV 100可能占用的不同地点的节点1006a‑1006d。在一些示例中,例如,在起点1002和终点1004表示不同的都
市区域时,节点1006a‑1006d表示道路的路段。在一些示例中,例如,在起点1002和终点1004
表示相同道路上的不同地点时,节点1006a‑1006d表示该道路上的不同位置。这样,有向图
1000包括不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大规模的另
一有向图的子图。例如,起点1002和终点1004相距远(例如,相距许多英里)的有向图的大部
分信息处于低粒度,并且该有向图是基于所存储的数据,但该有向图还包括用于该有向图
中的表示AV 100的视场中的物理地点的一部分的一些高粒度信息。
[0103] 节点1006a‑1006d不同于无法与节点重叠的对象1008a‑1008b。在实施例中,在粒度低时,对象1008a‑1008b表示汽车不能穿过的地区,例如无街道或道路的区域。在粒度高
时,对象1008a‑1008b表示AV 100的视场中的物理对象,例如其他汽车、行人、或AV 100不能
与之共用物理空间的其他实体。在实施例中,对象1008a‑1008b的一部分或全部是静态对象
(例如,不改变位置的对象,诸如街灯或电线杆等)或动态对象(例如,能够改变位置的对象,
诸如行人或其他小汽车等)。
[0104] 节点1006a‑1006d通过边1010a‑1010c连接。如果两个节点1006a‑1006b通过边1010a连接,则AV 100可以在一个节点1006a和另一节点1006b之间行驶,例如,而不必在到
达另一节点1006b之前行驶到中间节点。(当提到AV 100在节点之间行驶时,意味着AV 100
在由相应节点表示的两个物理位置之间行驶。)边1010a‑1010c通常是双向的,从某种意义
上,AV 100从第一节点行驶到第二节点,或者从第二节点行驶到第一节点。在实施例中,边
1010a‑1010c是单向的,从某种意义上,AV 100可以从第一节点行驶到第二节点,然而AV 
100不能从第二节点行驶到第一节点。在边1010a‑1010c表示例如单向街道,街道、道路或公
路的单独车道,或者由于法律或物理约束因而仅能沿一个方向穿过的其他特征的情况下,
边1010a‑1010c是单向的。
[0105] 在实施例中,规划模块404使用有向图1000来识别由起点1002和终点1004之间的节点和边组成的路径1012。
[0106] 边1010a‑1010c具有关联成本1014a‑1014b。成本1014a‑1014b是表示在AV100选择该边的情况下将花费的资源的值。典型的资源是时间。例如,如果一个边1010a所表示的物
理距离是另一边1010b所表示的物理距离的两倍,则第一边1010a的关联成本1014a可以是
第二边1010b的关联成本1014b的两倍。影响时间的其他因素包括预期交通、交叉口的数量、
限速等。另一典型的资源是燃料经济性。两个边1010a‑1010b可以表示相同的物理距离,但
例如由于道路条件、预期天气等,因此一个边1010a与另一边1010b相比需要更多的燃料。
[0107] 在规划模块404识别起点1002和终点1004之间的路径1012时,规划模块404通常选择针对成本优化的路径,例如,在将边的个体成本相加到一起时具有最小总成本的路径。
[0108] 自主运载工具控制
[0109] 图11示出(例如,如图4所示的)控制模块406的输入和输出的框图1100。控制模块根据控制器1102而操作,该控制器1102例如包括:与处理器304类似的一个或多于一个处理
器(例如,诸如微处理器或微控制器或这两者等的一个或多于一个计算机处理器);与主存
储器306、ROM 308和存储装置310类似的短期和/或长期数据存储装置(例如,存储区域随机
存取存储器或闪速存储器或这两者);以及存储器中所存储的指令,这些指令在(例如,由一
个或多于一个处理器)执行时执行控制器1102的操作。
[0110] 在实施例中,控制器1102接收表示期望输出1104的数据。期望输出1104通常包括速度,例如速率和航向。期望输出1104例如可以基于从(例如,如图4所示的)规划模块404接
收到的数据。根据期望输出1104,控制器1102产生可用作油门输入1106和转向输入1108的
数据。油门输入1106表示例如通过接合转向踏板或接合另一油门控件来接合AV 100的油门
(例如,加速控制)以实现期望输出1104的大小。在一些示例中,油门输入1106还包括可用于
接合AV100的制动器(例如,减速控制)的数据。转向输入1108表示转向角度,例如AV的转向
控制(例如,方向盘、转向角致动器或用于控制转向角度的其他功能)应被定位成实现期望
输出1104的角度。
[0111] 在实施例中,控制器1102接收在调整提供至油门和转向的输入时使用的反馈。例如,如果AV 100遇到诸如山丘等的干扰1110,则AV 100的测量速率1112降至低于期望输出
速率。在实施例中,任何测量输出1114均被提供至控制器1102,使得例如基于测量速率和期
望输出之间的差分1113来进行所需的调整。测量输出1114包括测量位置1116、测量速度
1118(包括速率和航向)、测量加速度1120和AV 100的传感器可测量的其他输出。
[0112] 在实施例中,例如通过诸如照相机或LiDAR传感器等的传感器预先检测与干扰1110有关的信息,并且该信息被提供至预测性反馈模块1122。然后,预测性反馈模块1122将
控制器1102可用于相应地调整的信息提供至控制器1102。例如,如果AV 100的传感器检测
到(“看见”)山丘,则控制器1102可以使用该信息来准备在适当时间接合油门,以避免显著
减速。
[0113] 图12示出控制器1102的输入、输出和组件的框图1200。控制器1102具有影响油门/制动器控制器1204的操作的速率分析器1202。例如,速率分析器1202根据例如由控制器
1102接收到并由速率分析器1202处理后的反馈,来指示油门/制动器控制器1204使用油门/
制动器1206进行加速或进行减速。
[0114] 控制器1102还具有影响方向盘控制器1210的操作的横向跟踪控制器1208。例如,横向跟踪控制器1208根据例如由控制器1102接收到并由横向跟踪控制器1208处理后的反
馈,来指示方向盘控制器1210调整转向角致动器1212的位置。
[0115] 控制器1102接收用于确定如何控制油门/制动器1206和转向角致动器1212的若干输入。规划模块404提供控制器1102例如选择AV 100开始操作时的航向并确定在AV 100到
达交叉口时穿过哪个道路路段所使用的信息。定位模块408例如将描述AV 100的当前地点
的信息提供至控制器1102,使得控制器1102可以确定AV 100是否处于基于正控制油门/制
动器1206和转向角致动器1212的方式而预期的地点。在实施例中,控制器1102接收来自其
他输入1214的信息,例如从数据库、计算机网络等接收到的信息。
[0116] 使用区块链技术来维护和验证运载工具账本
[0117] 图13示出了类似于云计算环境200的示例分布式网络架构1300。分布式网络架构1300是包括运载工具节点1302a‑1302d和主节点1304的系统或网络,节点1302a‑1302d和主
节点1304经由云1306互连。各个运载工具节点1302表示与AV(例如,AV 100)相关联的电子
装置(例如,类似于计算机系统300)。例如,运载工具节点可以表示在分布式网络架构1300
内操作的服务提供者(例如,经销商、汽车技术员、授权的汽车维修机构)。作为另一示例,运
载工具节点可以表示连接到分布式网络架构1300的AV。主节点1304表示用于管理主账本的
电子装置(例如,类似于计算机系统300),该主账本包含与分布式网络架构1300相关联的运
载工具的记录的副本。如下面更详细地讨论的,主账本是基于私有分布式区块链的,并且可
以由主节点1304更新以包括来自运载工具账本的数据,以确保主账本是准确的和最新的。
[0118] 各个运载工具账本包括结合分布式网络架构1300来操作的特定AV所用的数据。例如,图14a和图14b示出了运载工具账本1400的两个版本,该两个版本是与具有标识编号41
的运载工具相关联的运载工具账本的示例。图14a示出了运载工具账本的第一版本,因此使
用附图标记1400‑1来参考运载工具账本的第一版本。图14b示出了运载工具账本的第二版
本(例如,运载工具账本的更新版本),并且因此使用附图标记1400‑2来参考运载工具账本
的第二版本。在本文公开的实施例中,附图标记1400用于不加区别地参考图14a或14b中的
运载工具账本,而附图标记1400‑1用于具体参考图14a中所示的运载工具账本的第一版本,
并且附图标记1400‑2用于具体参考图14b中所示的运载工具账本的第二版本。
[0119] 在图14a和图14b所示的实施例中,运载工具账本1400显示为具有包括以下项的各种数据字段:运载工具标识符1402、组件1404、修订级别1406、用户1408、发生日期(born on 
date)1410、服务日期1412、活动1414和区块1416。运载工具账本1400中的各行数据包含针
对一个或多于一个相应数据字段的条目。例如,行1421包含指示为用户“xbbch2”在运载工
具41中安装组件“Comp l”的条目(如条目1414a中的“Add”所指示的)。如发生日期所指示
的,该组件于2018年9月1日创建或安装。如下面更详细讨论的,条目1416a指示为行1421中
的数据被记录在区块链的区块101中。上面列出并示出在图14a和图14b中的字段提供了可
以包含在运载工具账本中的数据字段的非限制性示例。可以省略所列出数据字段中的各种
数据字段,并且可以适当地包括不同的数据字段。
[0120] 总体地,运载工具账本1400的数据字段中所包含的数据提供了可用于跟踪和记录相应AV中所做的改变的信息。例如,运载工具账本的第一版本1400‑1示出了运载工具账本
的第一版本,而运载工具账本的第二版本1400‑2示出了被更新以包含行1422中的数据的运
载工具账本的第二版本。在一些实施例中,当授权用户(例如,与运载工具节点1302a‑l302d
中的相应一个节点相关联的授权人员或服务机构)更新软件、进行服务检查、移除运载工具
组件、替换运载工具组件或者在AV上进行一些其他授权服务时,可以更新运载工具账本。如
下面详细讨论的,新的行1422中提供的更新可以由主节点1304评估,以潜在地更新主账本。
[0121] 在本文所述的实施例中,主账本由主节点1304使用私有分布式区块链来维护。具体地,区块链中的各个区块包括特定运载工具的运载工具账本中的先前区块的副本(例如,
运载工具账本1400)。当运载工具账本被更新时(例如,如运载工具账本1400‑2所示),主节
点1304验证该更新,并且如果主节点1304确定为该更新有效,则通过将新区块添加到区块
链来更新主账本。然后主节点1304将更新的区块链的副本分发至运载工具节点l302a‑
1302d。在一些实施例中,AV在其每次(例如,经由运载工具节点1302a‑1302d中相应的一个
节点)连接到分布式网络架构1300时接收主账本的副本。在一些实施例中,不允许运载工具
节点1302a‑1302d更新主账本。因为主账本是使用该私有分布式区块链实现的,所以主账本
是不可变的(例如,主账本不能被改变),从而提供了用于维护运载工具账本的安全且冗余
的系统,由于区块链的固有安全能力,该系统不容易被改变并且更不易于被黑客攻击。应当
理解,在一些实施例中,主账本的不可变性在数学上并且由于区块链网络的分布式性质两
者而被强制。例如,为了修改主账本,恶意行为者必须超过区块链网络中50%以上的节点。
[0122] 图15a和图15b示出了主账本1500的两个版本。图15a示出了主账本的第一版本,并且因此使用附图标记1500‑1来参考主账本的第一版本。图15b示出了主账本的第二版本(例
如,主账本的更新版本),并且因此使用附图标记1500‑2来参考主账本的第二版本。在本文
公开的实施例中,附图标记1500用于不加区别地参考图15a或图15b中的主账本,而附图标
记1500‑1用于具体参考图15a中所示的主账本的第一版本,并且附图标记1500‑2用于具体
参考图15b中所示的主账本的第二版本。
[0123] 主账本1500是从所有运载工具账本及其经批准的更新中收集的数据的集合,因此,主账本1500包括与运载工具账本1400中所示的数据字段相同的数据字段。为了简单起
见,主账本1500被示为具有与运载工具账本1400相同的数据,但是主账本1500还包括与从
如下运载工具账本收集的数据相对应的行1502,该运载工具账本与和分布式网络架构1300
相关联的其他运载工具相关联。
[0124] 主账本的第一版本1500‑1是与运载工具账本的第一版本1400‑1相对应的主账本版本。换句话说,主账本1500‑1是主节点1304对运载工具账本1400‑2的行1422中提供的改
变进行验证之前的主账本的当前版本。根据以下公开,主账本的第二版本1500‑2是在主节
点1304对运载工具账本的第二版本1400‑2的改变进行验证之后的主账本的更新版本。因
此,主账本1500‑2包括对应于运载工具账本1400‑2的行1422中的数据的新行1510。如图15b
所示,行1510中的数据被添加到区块链作为如条目1512所示的区块153。
[0125] 在一些实施例中,当主节点1304收到更新主账本的请求时,主节点1304将更新的运载工具数据添加至主账本。该请求可以由运载工具节点1302a‑1302d中相应的一个发起。
例如,进入服务的AV在运载工具节点1302a处连接到分布式网络架构1300。在AV上进行服
务,并且与AV相关联的运载工具账本被更新以反映在AV上进行的服务。例如,运载工具账本
1400‑2示出了利用行1422更新运载工具账本,以指示为Comp 51被安装在运载工具41上。然
后运载工具节点1302a发起对主节点1304的请求,以利用更新的运载工具账本(例如,通过
将行1422中的数据添加到主账本1500)来更新主账本。在一些实施例中,作为该请求的一部
分,运载工具节点1302a向主节点1304发送改变的运载工具账本(例如,运载工具账本1400‑
2)的副本以供评估。如果主节点1304批准对运载工具账本的改变,则主节点1304利用更新
的运载工具账本来更新主账本(如图15b中的主账本1500‑2所示),并向运载工具节点1302a
(和运载工具节点1302b‑1302d)发送包括更新的运载工具账本数据的主账本(例如,主账本
1500‑2)的更新副本。在一些实施例中,然后运载工具节点1302a存储主账本的更新副本,并
且包括来自AV处的运载工具账本的数据作为区块链中的新区块(例如,区块153)。在一些实
施例中,AV在其每次连接到分布式网络架构1300时接收运载工具账本的更新副本(作为完
整主账本的副本)。
[0126] 如上所述,主节点1304验证对运载工具账本的更新是否有效。这可以根据提供增强的安全层的各种系统要求来进行,以确保对运载工具账本的改变被授权。例如,在一些实
施例中,检查运载工具账本在各种实例下(诸如,例如在启动时,在授权服务店处进行服务
时,或者以预定间隔(例如,每秒)等)的改变。作为另一示例,在一些实施例中,只有当AV诸
如例如通过与主节点1304通信(例如,当AV与运载工具节点1302a‑1302d中的相应一个相关
联时)或者通过在与运载工具节点1302a‑1302d中的相应一个相关联的授权商店处被服务
等连接到分布式网络架构1300时,对运载工具账本的改变才被认为是有效的。
[0127] 在一些实施例中,通过在AV处维护运载工具账本的多个副本来提供附加的安全层。在这样的实施例中,运载工具账本的本地副本存储在AV中的不同位置处,以通过提供冗
余来防止(例如,经由黑客的)未授权的改变,该冗余可以只能通过改变所存储的运载工具
账本中的多数副本(超过一半的)来克服。因为黑客必须定位和改变所存储运载工具账本中
的多数副本,以便潜在地使改变被主节点1304批准,因此这防范了黑客试图改变运载工具
账本的攻击。在一些实施例中,当验证更新的运载工具账本时,主节点1304检查存储在AV中
的区块链的所有副本。如果少于一半的运载工具账本具有在被推送到AV的运载工具账本的
最新版本中不存在的改变(例如,少于一半的运载工具账本被更新),则主节点1304将改变
的运载工具账本作为无效而拒绝,并且不利用这些改变来更新主账本。在一些实施例中,如
果超过一半但少于全部的运载工具账本具有在被推送到AV的运载工具账本的最新版本中
不存在的改变(例如,超过一半但不是全部的运载工具账本被更新),则主节点1304标记这
些改变以供进一步评估,而不立即利用这些改变来更新主账本。在一些实施例中,如果运载
工具账本的所有副本都具有在被推送到AV的运载工具账本的最新版本中不存在的改变(例
如,运载工具账本的所有副本被同样地更新),则主节点1304认为这些改变是有效的,并且
如果满足所有其他安全考虑,则利用这些改变来更新主账本。
[0128] 在一些实施例中,如果从除主节点1304之外的来源接收到改变,则对运载工具账本的改变被拒绝(或被确定为未授权)。换句话说,如果改变没有记录在主账本中,则改变没
有被授权。这样的未授权的改变可以被丢弃,例如通过利用主账本的当前副本来覆盖运载
工具账本的未授权版本。例如,如果主节点1304确定为运载工具账本1400‑2的行1422中的
改变是无效或未授权的,则运载工具账本1400‑2将被主账本的当前副本覆盖,在该实例中,
主账本的当前副本将是主账本1500‑1。
[0129] 在下文中参照图16所示的流程图详细描述了分布式网络架构1300的各种实施例以及用于使用区块链架构来维护和验证运载工具账本的方法。应当理解,上述实施例可以
应用于下面提供的描述,反之亦然。因此,以下描述提供了用于根据上述架构使用区块链技
术来维护运载工具账本的方法的各种实施例。
[0130] 使用区块链技术来维护和验证运载工具账本的示例处理
[0131] 图16是用于在分布式网络架构(例如,1300)(例如,用于管理和维护运载工具记录的网络)中维护运载工具账本(例如,运载工具账本1400)的示例处理1600的流程图。运载工
具账本可以包括对应于特定运载工具的数据。运载工具账本可以包括区块链的副本。为了
方便起见,处理1600将被描述为通过位于一个或多于一个地点的一个或多于一个计算机的
系统来进行。例如,根据本说明书适当编程的图13的分布式网络架构1300可以进行处理
1600。
[0132] 在项1602处,系统(例如,1300)在分布式网络架构(例如,1300)中的主节点(例如,1304)(例如,架构中的有权限对包含与网络相关联的运载工具的运载工具记录的区块链进
行管理和维护的节点(例如,处理器))处接收更新运载工具账本(例如,运载工具账本1400)
(例如,包含特定运载工具的运载工具记录的区块链副本)的请求,该运载工具账本与构成
分布式网络架构的多个运载工具节点(例如,1302a‑1302d)中的第一运载工具节点(例如,
1302a)(例如,架构中对应于特定运载工具的节点)相关联。
[0133] 在一些实施例中,作为接收请求的一部分,系统接收存储在与第一运载工具节点(例如,1302a)相关联的第一运载工具(例如,AV 100)处的运载工具账本的第一版本(例如,
运载工具账本1400‑2),运载工具账本的第一版本包括对主账本中未存储的第一运载工具
的运载工具数据的一个或多于一个改变(例如,见图14b中的行1422)(例如,除非被授权/直
到被授权为止,主账本1500‑1不包括行1422的数据)。
[0134] 在一些实施例中,第一运载工具(例如,AV 100)处存储有运载工具账本的多个副本。在一些实施例中,根据确定为存储在第一运载工具处的运载工具账本的多个副本中的
超过一半的(a majority of,多数、过半)副本包括对第一运载工具的运载工具数据的一个
或多于一个改变,系统发起用于评估对第一运载工具的运载工具数据的一个或多于一个改
变的处理。在一些实施例中,仅当运载工具账本的第一版本(例如,运载工具账本1400‑2)表
示存储在第一运载工具处的运载工具账本的多数副本(例如,运载工具账本的第一版本与
该多数副本一致)时,利用对第一运载工具的运载工具数据的改变来更新主账本(例如,
1500)。
[0135] 在一些实施例中,运载工具账本(例如,1400)包括第一运载工具的运载工具数据,该运载工具数据包括从由以下项组成的组中选择的一个或多于一个项:运载工具组件、相
应运载工具组件的软件、和相应运载工具组件的修订级别。
[0136] 在一些实施例中,响应于检测到预定事件,从第一运载工具节点(例如,1302a)发送请求(例如,响应于检测到预定事件,第一运载工具节点发送请求)。在一些实施例中,预
定事件是运载工具启动(例如,当第一运载工具与第一运载工具节点通信时,第一运载工具
节点检测到运载工具启动)。在一些实施例中,预定事件是预定时间量(诸如,例如大约一秒
等的非零时间量)的到期。在一些实施例中,预定事件是在第一运载工具节点和第一运载工
具之间建立通信会话(例如,当运载工具被分布式网络架构的关联方进行服务时,第一运载
工具和第一运载工具节点建立通信会话)。
[0137] 在项1604处,系统(例如,1300)确定是否满足第一标准(例如,为了允许经由主节点利用信息来更新运载工具账本而需要满足的标准)。如果满足第一标准,则如项1606和项
1608中所提供的,系统更新运载工具账本。如果不满足第一标准,则如项1610中所提供的,
系统放弃更新运载工具账本。在一些实施例中,当运载工具账本中的所有改变都有效并且
所有安全考虑都被满足时,满足第一标准。在本文描述的各种实施例中提供了这样的标准
和考虑的示例。
[0138] 在项1606处,系统使用存储在与主节点(例如,1304)相关联的主账本(例如,1500)中的运载工具数据,生成运载工具账本(例如,1400)的更新版本。运载工具数据对应于与第
一运载工具节点(例如,1302a)相关联的第一运载工具(例如,AV 100)。使用包含与分布式
网络架构(例如,1300)相关联的多个运载工具的运载工具记录(例如,区块链中的区块,各
个区块包含与分布式网络架构相关联的相应运载工具的运载工具记录集)的区块链来实现
主账本。例如,主账本是与构成网络的所有运载工具节点相对应的运载工具数据的集合。例
如,主账本是包含构成区块链中的区块的运载工具记录并且用于验证和更新所有运载工具
账本的区块链架构,这些运载工具账本是区块链的副本。区块链包括包含与第一运载工具
相对应的运载工具数据的第一区块。
[0139] 在项1608处,系统将运载工具账本的更新版本传输至第一运载工具节点(例如,1302a)(例如,架构中对应于第一运载工具并便于第一运载工具和分布式网络1300之间的
通信的节点(例如,处理器))。
[0140] 在一些实施例中,主账本(例如,1500)包括区块链的第一副本(例如,主账本是区块链的第一副本)。在一些实施例中,运载工具账本(例如,1400)包括区块链的第二副本(例
如,从主账本1500接收到的区块链的副本)(例如,运载工具账本是区块链的第二副本)。在
一些实施例中,当区块链的第一副本和区块链的第二副本不相同时,满足第一标准。
[0141] 在一些实施例中,作为使用主账本中存储的运载工具数据来生成运载工具账本的更新版本的一部分,系统将运载工具数据添加到区块链中(例如,系统使用第一运载工具的
运载工具数据来在区块链中生成新区块)。在一些实施例中,接收更新第一运载工具的运载
工具账本的请求包括接收存储在第一运载工具处的当前运载工具账本(例如,1400‑2)的副
本(例如,在从主节点接收到区块链的更新副本之前存储在第一运载工具处的区块链)。在
(例如,来自第一运载工具的)当前运载工具账本的副本包含第一运载工具的有效更新数据
(例如,运载工具账本1400‑2的行1422中的数据)(例如,主账本1500‑1中不包含的数据)时,
主账本利用新数据来进行更新,并且主账本将第一运载工具的新数据作为区块链中的新区
块添加到区块链。例如,在图15b中,利用行1510中的数据来更新主账本1500‑2,其中该数据
作为新区块153被添加到区块链。在一些实施例中,在当前运载工具账本的副本包含第一运
载工具的有效更新数据时,满足第一标准。
[0142] 在一些实施例中,根据确定为满足第二标准,系统更新主账本(例如,1500‑2),以包括对第一运载工具的运载工具数据的一个或多于一个改变(例如,见行1510)。在一些实
施例中,根据确定为不满足第二标准,系统放弃更新主账本以包括对第一运载工具的运载
工具数据的一个或多于一个改变(例如,丢弃改变)。在一些实施例中,在当第一运载工具不
与主节点(例如,1304)(例如,直接地或经由分布式网络架构1300间接地)通信时对运载工
具数据做出一个或多于一个改变的情况下,不满足第二标准。在一些实施例中,当从主节点
接收到一个或多于一个改变(例如,从主节点通信主账本中的改变)时,满足第二标准。在一
些实施例中,作为放弃更新主账本以包括对第一运载工具的运载工具数据的一个或多于一
个改变的一部分,系统利用更新的运载工具账本(例如,更新的主账本1500‑2的副本)来替
换运载工具账本的第一版本。
[0143] 在一些实施例中,当满足第二标准时,满足第一标准。
[0144] 在一些实施例中,主账本相对于第一运载工具是远程的(remote)。
[0145] 在一些实施例中,处理还包括使用区块链来维护(例如,更新)主账本(例如,1500),其中区块链包含与分布式网络架构(例如,1300)相关联的多个运载工具的运载工具
记录。
[0146] 在先前描述中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的
唯一且排他的指示、以及申请人期望是本发明范围的内容是以发布权利要求书的具体形式
从本申请发布的权利要求书的字面和等同范围,包括任何后续修正。本文中明确阐述的用
于被包括在此类权利要求中的术语的任何定义应当以此类术语如在权利要求书中所使用
的意义为准。另外,当在先前的说明书或所附权利要求书使用术语“还包括”时,该短语的下
文可以是附加的步骤或实体、或先前所述的步骤或实体的子步骤/子实体。