1.本说明书涉及作为运载工具中的组件的电子装置的装置配备和认证。
背景技术:2.自主或半自主运载工具包括用以促进运载工具的操作的各种电子组件,例如,用以收集关于周围环境的信息的传感器、用以处理传感器信息以控制转向或制动或这两者的处理器等。各种电子组件使用消息交换在它们自身之间交换信息或与外部远程服务器交换信息。
技术实现要素:3.本技术提供了一种由运载工具中的装置进行的方法,所述方法包括:使用至少一个处理器确定在所述装置通电时一个或多个有效安全凭证是否在通信地耦接到所述装置的存储装置中可用;响应于确定为所述一个或多个有效安全凭证不可用,使用收发器和所述至少一个处理器建立与网络服务器的通信会话,所述网络服务器被配置为管理与同所述运载工具相关联的企业相对应的装置的配备,其中,建立通信会话包括通过使用可用于所述装置的企业的企业安全证书,使用所述至少一个处理器来认证所述网络服务器;在建立与所述网络服务器的通信会话的情况下,使用所述至少一个处理器从所述网络服务器接收用以生成加密密钥的指令;响应于接收到所述指令,使用所述至少一个处理器生成包括公钥和相应私钥的密钥对;使用所述至少一个处理器将所述私钥存储在通信地耦接到所述装置的存储装置中;使用所述至少一个处理器向所述网络服务器发送包括公钥和所述装置的标识符的证书签名请求;使用所述至少一个处理器从所述网络服务器接收与所述公钥相对应的装置安全证书和对所述装置安全证书进行签名的签名证书管理机构的安全证书其中至少之一,其中,所述签名证书管理机构与所述企业相关联;使用所述至少一个处理器,使用可用于所述装置的企业安全证书来认证所述签名证书管理机构的安全证书;以及在成功认证所述签名证书管理机构的安全证书的情况下,使用所述至少一个处理器将所述装置安全证书和所述签名证书管理机构的安全证书其中至少之一存储在通信地耦接到所述装置的存储装置中。
4.本技术提供了一种系统,包括:运载工具中的装置,所述装置包括:至少一个处理器;以及存储介质,其存储有指令,所述指令在被执行时使所述至少一个处理器进行操作,所述操作包括:确定在所述装置通电时一个或多个有效安全凭证是否在通信地耦接到所述装置的存储装置中可用;响应于确定为所述一个或多个有效安全凭证不可用,使用收发器建立与网络服务器的通信会话,所述网络服务器被配置为管理与同所述运载工具相关联的企业相对应的装置的配备,其中,建立所述通信会话包括通过使用可用于所述装置的企业的企业安全证书,使用所述处理器来认证所述网络服务器;在建立与所述网络服务器的通信会话的情况下,从所述网络服务器接收用以生成加密密钥的指令;响应于接收到所述指令,使用所述处理器生成包括公钥和相应私钥的密钥对;将所述私钥存储在通信地耦接到
所述装置的存储装置中;向所述网络服务器发送包括公钥和所述装置的标识符的证书签名请求;从所述网络服务器接收与所述公钥相对应的装置安全证书以及对所述装置安全证书进行签名的签名证书管理机构的安全证书其中至少之一,其中,所述签名证书管理机构与所述企业相关联;使用所述处理器,使用可用于所述装置的企业安全证书来认证所述签名证书管理机构的安全证书;以及在成功认证所述签名证书管理机构的安全证书的情况下,将所述装置安全证书以及所述签名证书管理机构的安全证书其中至少之一存储在通信地耦接到所述装置的存储装置中。
5.本技术提供了一种运载工具,包括:装置,其包括用以执行一个或多个指令的电路,所述指令在被执行时使所述装置进行操作,所述操作包括:使用处理器确定在所述装置通电时一个或多个有效安全凭证是否在通信地耦接到所述装置的存储装置中可用;响应于确定为所述一个或多个有效安全凭证不可用,使用收发器建立与网络服务器的通信会话,所述网络服务器被配置为管理与同所述运载工具相关联的企业相对应的装置的配备,其中,建立通信会话包括通过使用可用于所述装置的企业的企业安全证书,使用所述处理器来认证所述网络服务器,以及其中,配备所述运载工具中的特定装置是指向所述特定装置提供至少一个加密密钥或安全证书,其中,所述特定装置使用所述至少一个加密密钥或安全证书进行与同所述企业相关联的至少一个其它实体的经认证通信;在建立与所述网络服务器的通信会话的情况下,从所述网络服务器接收用以生成加密密钥的指令;响应于接收到所述指令,使用所述处理器生成包括公钥和相应私钥的密钥对;将所述私钥存储在通信地耦接到所述装置的存储装置中;向所述网络服务器发送包括公钥和所述装置的标识符的证书签名请求;从所述网络服务器接收与所述公钥相对应的装置安全证书以及对所述装置安全证书进行签名的签名证书管理机构的安全证书其中至少之一,其中,所述签名证书管理机构与所述企业相关联;使用所述处理器,使用可用于所述装置的企业安全证书来认证所述签名证书管理机构的安全证书;以及在成功认证所述签名证书管理机构的安全证书的情况下,将所述装置安全证书以及所述签名证书管理机构的安全证书其中至少之一存储在通信地耦接到所述装置的存储装置中。
附图说明
6.图1示出具有自主能力的运载工具的示例。
7.图2示出示例“云”计算环境。
8.图3示出计算机系统。
9.图4示出自主运载工具的示例架构。
10.图5示出感知模块可以使用的输入和输出的示例。
11.图6示出lidar系统的示例。
12.图7示出操作中的lidar系统。
13.图8示出lidar系统的操作的附加细节。
14.图9示出规划模块的输入和输出之间的关系的框图。
15.图10示出路径规划中所使用的有向图。
16.图11示出控制模块的输入和输出的框图。
17.图12示出控制器的输入、输出和组件的框图。
18.图13示出作为运载工具中的组件并且使用这里公开的技术配备的电子装置的示例。
19.图14示出使用这里公开的技术的、用于作为运载工具中的组件的电子装置的配备和认证通信的系统的示例。
20.图15a、图15b和图15c示出使用这里公开的技术的、与配备作为运载工具中的组件的电子装置相关联的消息序列图的示例。
21.图16示出用于配备作为与企业相关联的运载工具中的组件的电子装置的示例处理。
22.图17示出用于配备作为与企业相关联的运载工具中的组件的电子装置的示例处理。
23.图18示出用于改变作为与企业相关联的运载工具中的组件的电子装置的配备状态的示例处理。
具体实施方式
24.在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,本发明可以在没有这些具体细节的情况下实施将是明显的。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。
25.在附图中,为了便于描述,示出了示意要素(诸如表示装置、模块、指令块和数据要素的那些要素)的具体排列或次序。然而,本领域技术人员应当理解,附图中示意要素的具体次序或排列并不意在意味着要求特定的处理次序或序列、或处理过程的分离。此外,在附图中包含示意要素并不意在意味着在所有实施例中都需要这种要素,也不意在意味着由这种要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其它要素结合。
26.此外,在附图中,连接要素、诸如实线或虚线或箭头用于例示两个或更多个其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意在意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中示出,以便不使本公开内容模糊。此外,为了便于例示,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接要素表示信号、数据或指令的通信,本领域技术人员应理解,这种要素表示影响通信可能需要的一个或多个信号路径(例如,总线)。
27.现在将详细参考实施例,其示例在附图中例示出。在以下的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说将明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地使实施例的方面模糊。
28.下面描述的若干特征各自可以彼此独立地使用,也可以与其它特征的任何组合一起使用。然而,任何个别特征可能不能解决以上所讨论的任何问题,或者只能解决以上所讨论的问题之一。以上所讨论的一些问题可能不能通过本文所描述的任何一个特征得到充分解决。虽然提供了标题,但在本说明书的其它地方也可以找到与具体标题有关但在具有该标题的部分中未找到的信息。本文根据以下概要描述实施例:
29.1.总体概述
30.2.系统概述
31.3.自主运载工具架构
32.4.自主运载工具输入
33.5.自主运载工具规划
34.6.自主运载工具控制
35.7.装置配备和认证
36.8.装置配备和认证的示例处理
37.总体概述
38.在实施例中,作为运载工具(诸如自主运载工具(av)等)中的组件的电子装置是被分配有一个或多个加密安全数字证书(也被称为“安全证书”或简称为“证书”)以使得装置能够向其它实体(例如,可以对装置的固件进行更新的实体)认证其自身,或认证其它实体的标识,或者这两者。例如,电子装置(也简称为“装置”)可以使用安全证书来认证提供启动文件、固件或其它配置信息的清单服务器,以用于配置该装置的操作。在认证之后,清单服务器可以更新装置固件。
39.在实施例中,装置被配备用于在由企业管理的多个运载工具中的运载工具中使用,该企业可以是例如租车组织、公共或私人交通公司或机构、或者管理多个运载工具的其它合适的组织。在该上下文中,配备运载工具中的装置是指为该装置提供一个或多个加密密钥或安全证书、或者这两者,使得该装置可以进行与运载工具中的其它实体、或与企业中的外部实体(例如,远程服务器)的经认证通信。为装置提供安全证书作为配备该装置的一部分而基于包括在安全证书中的信息将该装置的标识(例如,装置序列号)绑定到加密密钥。
40.在实施例中,企业使用公钥基础设施(pki)来安全地认证和管理装置。例如,企业使用根证书管理机构(ca)来在企业的各个装置之间建立信任链。ca包括绑定到根标识(例如,企业的法定名称)并且由服务器(例如,集中式网络服务器或服务器组)管理和可访问的密钥对。这充当用于安全通信的受信任的第三方,该受信任的第三方由企业中的参与经认证通信的所有装置所信任。企业使用用于认证企业中的装置的一个或多个装置管理机构服务器,以及用于认证重新配置设备或更新装置固件的实体(例如,清单服务器)的一个或多个装置管理员管理机构服务器。装置管理机构服务器或装置管理员管理机构服务器或者这两者例如分别通过生成针对安装在企业的运载工具中的装置或者重新配置装置或更新装置固件的实体的数字证书来充当中间ca。企业还使用实现用以提供配备服务的功能的一个或多个附加服务器,这完全地或部分地使企业中的装置的配备处理的管理自动化。
41.在实施例中,装置具有预先配置的唯一的、不可修改的标识,该标识用于关联针对该装置的一个或多个数字证书,该一个或多个数字证书然后可以用于认证该装置和与运载工具相关联的其它实体之间的通信。例如,标识可以是序列号,或者装置制造商名称或编号与序列号的组合。装置包括能够安全地生成、存储和操作加密密钥的硬件。例如,装置可以包括受信任的平台模块(tpm)或硬件安全模块(hsm)等。
42.装置还包括配备应用程序编程接口(api)和装置管理api。在该上下文中,api是指提供计算接口以实现多个软件中介方之间的交互的一个或多个软件例程。api指定可以进行的调用或请求的种类、如何进行这些调用或请求、应该使用的数据格式、或遵循的惯例
等。使用装置中的硬件(例如,使用处理器或网络接口硬件等)来实现用于api的一个或多个软件例程。配备api通过与企业的配备服务进行通信来发起配备。装置管理api用于管理装置的固件和配置更新,以及取消配备该装置。附加地或可替代地,装置包括可以与配备服务交互的安全硬件。
43.在实施例中,在被配备之前,装置具有与企业的根ca相关联的企业安全证书。例如,企业可以将其根ca证书提供给装置制造商,该装置制造商将根ca证书包括在安装在要交付给企业的装置上的固件中。
44.当装置由企业接收时,由企业使用的跟踪系统捕获该装置标识(例如,通过扫描装置标签,或手动地在web接口中输入序列号等等),并且向配备服务通知该新装置。配备服务将装置的标识添加为在与企业相关联的运载工具中使用的活动装置的数据库中的记录。
45.在安装在运载工具中之后,装置首先被上电并启动。通过“启动”,我们是指装置执行一系列指令以定位、加载和初始化启动文件,这些启动文件是包含用于执行装置上的操作系统的数据的文件。在启动处理期间,装置(例如,装置中的处理器)确定该装置不具有绑定到该装置的标识的数字证书(尽管该装置具有用于企业配备服务的数字证书)。在做出该确定时,装置启用配备api,该配备api建立与企业的配备服务的通信。配备服务将其数字证书发送到装置,该装置使用ca的证书来认证配备服务的证书。配备服务然后命令装置生成密钥对。在接收到命令时,装置(例如,装置中的tpm或hsm)生成公钥-私钥对,例如,rivest-shamir-adleman(rsa)密钥对或椭圆曲线加密(elliptic curve cryptography)(ecc)密钥对等。密钥对的私钥安全地存储在装置的安全存储装置中,例如,在tpm或hsm内。装置生成包括密钥对的公钥的证书签名请求(csr),并且将该csr发送给配备服务作为对命令的响应。
46.当从装置接收到csr时,配备服务检查以确认装置的标识存在于活动装置的数据库中的记录中、或装置尚未被配备、或者这两者。如果检查指示装置的标识存在于活动装置的数据库中但该装置未被配备(例如,该装置已经扫描到系统中准备好配备,但尚未被配备),则配备服务向企业pki发送装置csr。例如,配备服务将csr发送到装置管理机构服务器。在接收到csr时,装置管理机构服务器生成将装置的标识绑定到从csr获得的装置公钥的数字证书(例如,x509证书)。装置管理机构服务器然后向配备服务发送响应。该响应包括所生成的针对装置的数字证书。在实施例中,响应还包括用于装置管理机构服务器或用于装置管理员服务器或者这两者的数字证书(例如,x509证书)。装置管理机构服务器和装置管理员服务器的数字证书也被称为中间ca证书。
47.配备服务将装置证书和中间ca证书转发到装置。装置使用预先安装在装置上的根ca证书来认证中间ca证书。装置然后使用生成装置证书的装置管理机构服务器的认证证书来认证针对装置所生成的数字证书。在成功认证时,装置将其数字证书和中间ca证书存储在耦接到装置的存储存储器中。装置证书随后用于在与运载工具中或企业内的其它实体的通信期间认证该装置。中间ca证书用于认证从其它实体接收的数字证书。
48.在实施例中,装置被重新配备,在该期间,针对装置生成一个或多个新的加密密钥或新的安全证书。为了重新配备装置,企业的管理服务器向配备服务发送取消配备命令,其中该取消配备命令包括装置标识。在接收到取消配备命令时,配备服务删除由配备服务存储的装置数字证书。管理服务器还建立与装置的通信。在相互认证(例如,使用数字证书)之
后,管理服务器向装置发送取消配备命令。在接收到取消配备命令时,装置中的装置管理api删除其现有的数字证书和公钥-私钥对。然后,可以通过生成新的公钥-私钥对并且遵循在前面的部分中描述的过程来重新配备装置。
49.在实施例中,使装置停用。这可以是例如当装置达到其使用寿命的结束时的情况。在这样的情况下,企业的管理服务器向配备系统通知,其中该通知包括装置标识(例如,序列号)。配备服务将该装置的标识记录从其活动装置记录的数据库移动到退役装置记录的数据库,并且撤销该装置的数字证书。
50.在实施例中,已配备的装置在装置管理期间使用针对该装置生成的数字证书进行认证。在这样的情况下,例如,当装置启动时,由于其已经具有存储在耦接到该装置的存储器中的相关联的数字证书,因此配备api不被启用,但是装置管理api被启用。装置管理员实体(例如,由企业管理的远程服务器、或者运载工具本地的清单服务器或其它电子装置)建立与装置管理api的通信,并且发生相互认证。例如,装置使用在配备期间该装置接收到的相应中间ca证书对装置管理员服务器进行认证。装置管理员使用装置的数字证书来认证装置。在实施例中,使用传输层安全(tls)协议来进行相互认证。在实施例中,使用安全质询响应协议来进行相互认证。在相互认证之后,装置管理员实体使用装置管理api来重新配置装置、或更新装置固件、或者这两者。
51.这里描述的主题可以提供若干技术益处。例如,实施例可以促进与其它实体的经认证的机器到机器通信。可以仅配备向企业登记的装置,从而防止装置的欺骗。所公开的配备技术确保在运载工具中仅部署预期的装置:例如,旨在用于另一运载工具的装置、或者恶意植入物等在运载工具中不可操作。配备技术还用于认证装置管理员。所公开的技术还允许重新配备所登记的装置,这使得装置能够使用刷新的加密密钥和相关联的证书,从而增加运载工具的安全性。
52.系统概述
53.图1示出具有自主能力的自主运载工具100的示例。
54.如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地操作,而无需实时的人类干预,包括但不限于完全自主运载工具、高度自主运载工具和有条件自主运载工具。
55.如本文所使用的,自主运载工具(av)是一种具有自主能力的运载工具。
56.如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的示例。
57.如本文所使用的,“轨迹”是指将av从第一时空地点导航到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多个路段(例如,道路的数段)组成,并且各路段由一个或多个块(例如,车道或交叉口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。
58.如本文所使用的,“(一个或多个)传感器”包括一个或多个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件组件可包括感测组件(例如,图像传感器、生物特征
传感器)、传输和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件(诸如,模数转换器)、数据存储装置(诸如,ram和/或非易失性存储器)、软件或固件组件和数据处理组件(诸如,专用集成电路)、微处理器和/或微控制器。
59.如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由av运载工具上的一个或多个传感器检测到的一个或多个分类或标记的对象,或由av外部的源提供的一个或多个分类或标记的对象。
60.如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋或办公楼内的行车道、停车场的一段、空置停车场的一段、乡村区域的污物通道等)。因为有些运载工具(例如,四轮驱动的小卡车、越野车(suv)等)能够穿过各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任何市政当局或其它政府或行政机构没有正式定义为一条通道的物理区域。
61.如本文所使用的,“车道”是道路的可被运载工具穿越的部分。有时基于车道标记来识别车道。例如,车道可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的部分空间(例如,小于50%)。例如,具有相距很远的车道标记的道路可能容纳两个或两个以上的运载工具,使得一个运载工具可以在不穿过车道标记的情况下超过另一个运载工具,因此可被解释为车道比车道标记之间的空间窄,或车道之间有两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如,农村地区的岩石和沿着大道的树木、或者例如在欠发达地区应避免的自然障碍物)来定义车道。也可以独立于车道标记或物理特征来解释车道。例如,可以基于原本缺少将会被解释为车道边界的特征的在区域中无障碍物的任意路径来解释车道。在示例情景中,av可以解释通过田野或空地的无障碍物部分的车道。在另一示例情景中,av可以解释通过不具有车道标记的宽(例如,足够两个或更多个车道宽)道路的车道。在该情景中,av可以将与车道有关的信息通信至其它av,使得其它av可以使用相同的车道信息来协调av之间的路径规划。
62.术语“空中下载(ota)客户端”包括任何av,或者嵌入在av中、耦接至av或与av进行通信的任何电子装置(例如,计算机、控制器、iot装置、电子控制单元(ecu))。
63.术语“空中下载(ota)更新”意味着对使用专有和/或标准化的无线通信技术递送至ota客户端的软件、固件、数据或配置设置或者它们的任何组合的任何更新、改变、删除或添加,其中该专有和/或标准化的无线通信技术包括但不限于:蜂窝移动通信(例如,2g、3g、4g、5g)、无线电无线区域网络(例如,wifi)和/或卫星因特网。
64.术语“边缘节点”是指耦接至网络的一个或多个边缘装置,这些装置提供与av进行通信所用的门户并且可以与其它边缘节点和基于云的计算平台进行通信,以调度ota更新并将ota更新递送至ota客户端。
65.术语“边缘装置”是指实现边缘节点并提供向企业或服务提供商(如verizon、at&t)核心网的物理无线接入点(ap)的装置。边缘装置的示例包括但不限于:计算机、控制器、发送器、路由器、路由交换机、综合接入装置(iad)、多路复用器、城域网(man)和广域网(wan)接入装置。
[0066]“一个或多个”包括由一个要素执行的功能、由多个要素例如以分布式的方式执行的功能、由一个要素执行的若干功能、由若干要素执行的若干功能、或上述的任何组合。
[0067]
还将理解的是,尽管在一些情况下,术语“第一”、“第二”等在本文中是用来描述各种要素的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,在未背离各种所描述的实施例的范围的情况下,第一触点可被称为第二触点,并且类似地,第二触点可被称为第一触点。第一触点和第二触点两者都是触点,但它们不是相同触点。
[0068]
在本文所描述的各种实施例的说明书中使用的术语仅用于描述特定实施例的目的,而不是意在限制。如在所描述的各种实施例的说明书和所附权利要求书中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还将理解的是,如本文所使用的“和/或”是指并且包括一个或多个相关清单项目的任何和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”、“包含”、“具备”和/或“具有”时,具体说明存在所陈述的特征、整数、步骤、操作、要素和/或组件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、要素、组件、和/或其群组。
[0069]
如本文所使用的,取决于上下文,术语“如果”可选地被理解为意指“当”或“在当时”或“响应于确定为”或“响应于检测到”。类似地,取决于上下文,短语“如果已确定”或“如果[所陈述的条件或事件]已被检测到”可选地被理解为意指“在确定时”或“响应于确定为“或”在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0070]
如本文所使用的,av系统是指av以及支持av操作的硬件、软件、存储的数据和实时生成的数据的阵列。在实施例中,av系统并入在av内。在实施例中,av系统跨若干地点分布。例如,av系统的一些软件是在类似于下面关于图3描述的云计算环境200的云计算环境中实现的。
[0071]
一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全自主运载工具、高度自主运载工具和有条件自主运载工具,诸如分别为所谓的第5级、第4级和第3级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义,通过引用将其全部内容并入本文件,用于了解运载工具自主权等级的更多详细信息)。本文件所描述的技术也适用于部分自主运载工具和驾驶员辅助运载工具,诸如所谓的第2级和第1级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义)。在实施例中,一个或多个第1级、第2级、第3级、第4级和第5级运载工具系统可基于对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所描述的技术可以使从完全自主运载工具到人类操作的运载工具范围内的任何级别的运载工具受益。
[0072]
自主运载工具与需要人类驾驶员的运载工具相比存在优势。一个优势是安全性。例如,在2016年,美国经历了600万起汽车事故、240万人受伤、40000人死亡和1300万辆运载工具碰撞事故,估计社会成本为9100亿美元多。从1965年到2015年,每行驶1亿英里的美国交通事故死亡人数已从约6人减少到约1人,部分是由于运载工具中所部署的附加安全措施。例如,认为与将发生碰撞有关的额外半秒的警告减轻了60%的前后碰撞。然而,被动安全特征(例如,安全带、安全气囊)在改进该数字方面有可能已达到它们的极限。因而,诸如运载工具的自动控制等的主动安全措施是改进这些统计数据的可能的下一步。由于在95%的碰撞中认为人类驾驶员是造成严重碰撞前事件的原因,因此自动驾驶系统例如通过以下操作,有可能实现更好的安全结果:比人类更好地可靠地识别和避免紧急情况;做出比人类
更好的决策,比人类更好地遵守交通法规,并且比人类更好地预测将来事件;并且比人类更好地可靠地控制运载工具。
[0073]
参考图1,av系统120使运载工具100沿着轨迹198操作,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。
[0074]
在实施例中,av系统120包括用于从一个或多个计算机处理器146接收操作命令并对其进行操作的装置101。使用术语“操作命令”来表示使得运载工具进行动作(例如,驾驶机动动作)的可执行指令(或指令集)。操作命令可以非限制性地包括用于使运载工具开始向前移动、停止向前移动、开始向后移动、停止向后移动、加速、减速、进行左转和进行右转的指令。在实施例中,计算处理器146与下面参考图3描述的处理器304相似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。
[0075]
在实施例中,av系统120包括用于测量或推断运载工具100的状态或条件的属性的传感器121,这些属性诸如是av的位置、线速度和角速度及线加速度和角加速度、以及航向(例如,运载工具100的前端的方向)。传感器121的示例是gps、测量运载工具线加速度和角速率两者的惯性测量单元(imu)、用于测量或估计轮滑移率的轮速率传感器、轮制动压力或制动扭矩传感器、引擎扭矩或轮扭矩传感器以及转向角度和角速率传感器。
[0076]
在实施例中,传感器121还包括用于感测或测量av的环境的属性的传感器。例如,传感器121包括可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122,lidar 123,radar,超声波传感器,飞行时间(tof)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器。
[0077]
在实施例中,av系统120包括数据存储单元142和存储器144,用于存储与计算机处理器146相关联的机器指令或由传感器121收集的数据。在实施例中,数据存储单元142与以下关于图3描述的rom 308或存储装置310类似。在实施例中,存储器144与下面描述的主存储器306类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条件。在实施例中,与环境190有关的数据从远程数据库134通过通信信道传输到运载工具100。
[0078]
在实施例中,av系统120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度、以及线航向和角航向)测量或推断的属性传送到运载工具100。这些装置包括运载工具到运载工具(v2v)和运载工具到基础设施(v2i)通信装置以及用于通过点对点或自组织(ad hoc)网络或两者进行无线通信的装置。在实施例中,通信装置140跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声介质)进行通信。运载工具对运载工具(v2v)、运载工具对基础设施(v2i)通信(以及在一些实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(v2x)通信。v2x通信通常符合一个或多个通信标准,用于与自主运载工具进行的和在自主运载工具之间的通信。
[0079]
在实施例中,通信装置140包括通信接口。例如,有线、无线、wimax、wi-fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到av系统
120。在实施例中,远程数据库134嵌入在如图2中所描述的云计算环境200中。通信装置140将从传感器121收集的数据或与运载工具100操作有关的其它数据传输到远程数据库134。在实施例中,通信接口140向运载工具100传输与遥操作有关的信息。在一些实施例中,运载工具100与其它远程(例如,“云”)服务器136通信。
[0080]
在实施例中,远程数据库134还存储和传输数字数据(例如,存储诸如道路和街道地点的数据)。这些数据存储在运载工具100上的存储器144中,或者通过通信信道从远程数据库134传输到运载工具100。
[0081]
在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速度分布)。在一个实现中,这种数据可以存储在运载工具100上的存储器144中,或者通过通信信道从远程数据库134传输到运载工具100。
[0082]
位于运载工具100上的计算机处理器146基于实时传感器数据和先验信息两者以算法方式生成控制动作,允许av系统120执行其自主驾驶能力。
[0083]
在实施例中,av系统120包括耦接到计算机处理器146的计算机外围设备132,用于向运载工具100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,计算机外围设备132类似于下面参考图3讨论的显示器312、输入装置314和光标控制器316。耦接是无线的或有线的。任意两个或更多个的接口装置可以集成到单个装置中。
[0084]
在实施例中,av系统120接收并强制执行例如由乘员指定的或者存储在与乘员相关联的简档中的乘员的隐私级别。乘员的隐私级别确定了如何许可使用存储在乘员简档中的以及/或者存储在云服务器136上且与乘员简档相关联的、与乘员相关联的特定信息(例如,乘员舒适度数据、生物测量数据等)。在实施例中,隐私级别指定了一旦搭乘完成则被删除的与乘员相关联的特定信息。在实施例中,隐私级别指定了与乘员相关联的特定信息,并且标识被授权访问该信息的一个或多个实体。被授权访问信息的所指定的实体的示例可以包括其它av、第三方av系统、或者可以潜在地访问该信息的任何实体。
[0085]
可以在一个或多个粒度级别指定乘员的隐私级别。在实施例中,隐私级别标识要存储或共享的特定信息。在实施例中,隐私级别适用于与乘员相关联的所有信息,使得乘员可以指定不存储或共享她的个人信息。被许可访问特定信息的实体的指定也可以在各种粒度级别指定。被许可访问特定信息的各种实体集例如可以包括其它av、云服务器136、特定第三方av系统等。
[0086]
在实施例中,av系统120或云服务器136确定运载工具100或另一实体是否可访问与乘员相关联的某些信息。例如,试图访问与特定时空地点有关的乘员输入的第三方av系统必须例如从av系统120或云服务器136获得授权,以访问与乘员相关联的信息。例如,av系统120使用乘员的指定隐私级别来确定是否可以将与时空地点有关的乘员输入呈现给第三方av系统、运载工具100或另一av。这使得乘员的隐私级别能够指定允许哪些其它实体接收与乘员的动作有关的数据或与乘员相关联的其它数据。
[0087]
图2例示示例“云”计算环境。云计算是一种服务交付模式,用于使得能够方便、按需地在网络上访问可配置计算资源(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)的共享池。在典型的云计算系统中,一个或多个大型云数据中心容纳用
于交付云所提供的服务的机器。现在参考图2,云计算环境200包括通过云202互连的云数据中心204a、204b和204c。数据中心204a、204b和204c为连接到云202的计算机系统206a、206b、206c、206d、206e和206f提供云计算服务。
[0088]
云计算环境200包括一个或多个云数据中心。一般而言,云数据中心(例如图2中所示的云数据中心204a)是指构成云(例如图2中所示的云202或云的特定部分)的服务器的物理排列。例如,服务器在云数据中心中物理排列成房间、组、行和机架。云数据中心有一个或多个区域,其中包括一个或多个服务器房间。每个房间有一行或多行服务器,并且每行包括一个或多个机架。每个机架包括一个或多个单独的服务器节点。在一些实现中,区域、房间、机架和/或行中的服务器基于数据中心设施的物理基础设施要求(包括电力、能源、热力、热源和/或其它要求)被排列成若干组。在实施例中,服务器节点类似于图3中描述的计算机系统。数据中心204a具有许多分布在多个机架上的计算系统。
[0089]
云202包括云数据中心204a、204b和204c以及用于连接云数据中心204a、204b和204c并有助于促进计算系统206a-f对云计算服务的访问的网络和网络资源(例如,网络设备、节点、路由器、交换机和网络电缆)。在实施例中,该网络表示一个或多个本地网络、广域网或通过使用地面或卫星连接部署的有线或无线链路耦接的网际网络的任意组合。通过网络交换的数据使用多种网络层协议(诸如,因特网协议(ip)、多协议标签交换(mpls)、异步传输模式(atm)、帧中继(frame relay)等)进行传输。此外,在网络表示多个子网络的组合的实施例中,在每个底层子网络上使用不同的网络层协议。在一些实施例中,网络表示一个或多个互连网际网络(诸如公共因特网等)。
[0090]
计算系统206a-f或云计算服务消费者通过网络链路和网络适配器连接到云202。在实施例中,计算系统206a-f被实现为各种计算装置,例如服务器、台式机、膝上型计算机、平板电脑、智能手机、物联网(iot)装置、自主运载工具(包括小汽车、无人机、航天飞机、火车、公共汽车等)和消费电子产品。在实施例中,计算系统206a-f在其它系统中实现或作为其它系统的一部分实现。
[0091]
图3例示计算机系统300。在实现中,计算机系统300是一种专用计算装置。专用计算装置被硬连线以执行这些技术,或包括诸如一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)的被持久编程为执行上述技术的数字电子装置,或可包括一个或多个通用硬件处理器,这些硬件处理器经编程以根据固件、存储器、其它存储器、或者组合中的程序指令执行这些技术。这种专用的计算装置还可以将定制的硬线逻辑、asic或fpga与定制的编程相结合来完成这些技术。在各种实施例中,专用计算装置是台式计算机系统、便携式计算机系统、手持装置、网络装置或包含硬线和/或程序逻辑以实现这些技术的任何其它装置。
[0092]
在实施例中,计算机系统300包括总线302或用于传达信息的其它通信机制、以及与总线302耦接以处理信息的硬件处理器304。硬件处理器304是例如通用微处理器。计算机系统300还包括主存储器306,诸如随机存取存储器(ram)或其它动态存储装置,该主存储器306耦接到总线302以存储信息和指令,该信息和指令由处理器304执行。在一个实现中,主存储器306用于在执行要由处理器304执行的指令期间存储临时变量或其它中间信息。当这些指令存储在处理器304可访问的非暂时性存储介质中时,使计算机系统300变成一个专用机器,该机器被定制以执行指令中指定的操作。
[0093]
在实施例中,计算机系统300还包括只读存储器(rom)308或耦接到总线302的其它静态存储装置,用于存储处理器304的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器的存储装置310,并且该存储装置310耦接到总线302以存储信息和指令。
[0094]
在实施例中,计算机系统300通过总线302耦接到诸如阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、发光二极管(led)显示器或用于向计算机用户显示信息的有机发光二极管(oled)显示器的显示器312。包括字母数字键和其它键的输入装置314耦接到总线302,用于向处理器304传送信息和命令选择。另一种类型的用户输入装置是光标控制器316,诸如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择传送到处理器304,并用于控制光标在显示器312上的移动。这种输入装置通常具有两个轴(第一轴(例如,x轴)和第二轴(例如,y轴))上的两个自由度,这两个轴允许装置指定平面上的位置。
[0095]
根据一个实施例,本文的技术由计算机系统300响应于处理器304执行主存储器306中包含的一个或多个指令的一个或多个序列而执行。这些指令从诸如存储装置310的另一存储介质读入主存储器306。执行主存储器306中包含的指令序列使处理器304执行本文所描述的过程步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使用。
[0096]
如本文所使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式操作。这种存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置310的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器306。存储介质的常见形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、cd-rom、任何其它光数据存储介质、任何具有孔型的物理介质、ram、prom和eprom、flash-eprom、nv-ram、或任何其它存储芯片或存储盒。
[0097]
存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线302的电线。传输介质也可以采取声波或光波的形式,诸如在无线电波和红外数据通信过程中产生的声波或光波。
[0098]
在实施例中,各种形式的介质涉及将一个或多个指令的一个或多个序列承载到处理器304以供执行。例如,这些指令最初是在远程计算机的磁盘或固态驱动器上执行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。计算机系统300的本地调制解调器接收电话线路上的数据,并使用红外发射器将数据转换为红外信号。红外检测器接收红外信号中承载的数据,并且适当的电路将数据放置在总线302上。总线302将数据承载到主存储器306,处理器304从主存储器306检索并执行指令。主存储器306接收的指令可以可选地在处理器304执行之前或之后存储在存储装置310上。
[0099]
计算机系统300还包括耦接到总线302的通信接口318。通信接口318提供耦接到连接至本地网络322的网络链路320的双向数据通信。例如,通信接口318是综合业务数字网(isdn)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信连接的调制解调器。作为另一示例,通信接口318是局域网(lan)卡,用于提供与兼容lan的数据通信连接。在一些实现中,无线链路也被实现。在任何这种实现中,通信接口318发送和接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。
[0100]
网络链路320通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络
链路320通过本地网络322提供与主计算机324或与由因特网服务提供商(isp)326运营的云数据中心或设备的连接。isp 326又通过现在通常称为“因特网”328的世界范围分组数据通信网络来提供数据通信服务。本地网络322和因特网328两者都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路320上并通过通信接口318的信号是传输介质的示例形式,其中这些信号承载了进出计算机系统300的数字数据。在实施例中,网络320包含上述云202或云202的一部分。
[0101]
计算机系统300通过(一个或多个)网络、网络链路320和通信接口318发送消息和接收包括程序代码的数据。在实施例中,计算机系统300接收用于处理的代码。接收到的代码在接收到时由处理器304执行,和/或存储在存储装置310中,或存储在其它非易失性存储装置中以便以后执行。
[0102]
自主运载工具架构
[0103]
图4示出用于自主运载工具(例如,图1所示的运载工具100)的示例架构400。架构400包括感知模块402(有时称为感知电路)、规划模块404(有时称为规划电路)、控制模块406(有时称为控制电路)、定位模块408(有时称为定位电路)和数据库模块410(有时称为数据库电路)。各模块在运载工具100的操作中发挥作用。共同地,模块402、404、406、408和410可以是图1所示的av系统120的一部分。在一些实施例中,模块402、404、406、408和410中的任何模块是计算机软件(例如,计算机可读介质上所存储的可执行代码)和计算机硬件(例如,一个或多个微处理器、微控制器、专用集成电路[asic]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。模块402、404、406、408和410各自有时被称为处理电路(例如,计算机硬件、计算机软件、或者这两者的组合)。模块402、404、406、408和410中的任何或全部的组合也是处理电路的示例。
[0104]
在使用中,规划模块404接收表示目的地412的数据,并且确定表示运载工具100为了到达(例如,抵达)目的地412而可以行驶的轨迹414(有时称为路线)的数据。为了使规划模块404确定表示轨迹414的数据,规划模块404从感知模块402、定位模块408和数据库模块410接收数据。
[0105]
感知模块402使用例如也如图1所示的一个或多个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包括经分类的对象416的场景描述提供至规划模块404。
[0106]
规划模块404还从定位模块408接收表示av位置418的数据。定位模块408通过使用来自传感器121的数据和来自数据库模块410的数据(例如,地理数据)以计算位置来确定av位置。例如,定位模块408使用来自gnss(全球导航卫星系统)传感器的数据和地理数据来计算av的经度和纬度。在实施例中,定位模块408所使用的数据包括具有行车道几何属性的高精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们的组合)的地图、以及描述道路特征(诸如十字路口、交通标志或各种类型的其它行驶信号等)的空间地点的地图。在实施例中,高精度地图是通过将数据经由自动或手动注释添加到低精度地图所构建的。
[0107]
控制模块406接收表示轨迹414的数据和表示av位置418的数据,并且以将使得运载工具100行驶轨迹414到达目的地412的方式来操作av的控制功能420a~420c(例如,转
向、油门、制动、点火)。例如,如果轨迹414包括左转,则控制模块406将以如下方式操作控制功能420a~420c:转向功能的转向角度将使得运载工具100左转,并且油门和制动将使得av 100在进行转弯之前暂停并等待经过的行人或运载工具。
[0108]
自主运载工具输入
[0109]
图5示出感知模块402(图4)所使用的输入502a-502d(例如,图1中所示的传感器121)和输出504a-504d(例如,传感器数据)的示例。一个输入502a是lidar(光检测和测距)系统(例如,图1所示的lidar 123)。lidar是使用光(例如,诸如红外光等的一道光)来获得与其视线中的物理对象有关的数据的技术。lidar系统产生lidar数据作为输出504a。例如,lidar数据是用于构造环境190的表示的3d或2d点(也称为点云)的集合。
[0110]
另一输入502b是radar(雷达)系统。radar是使用无线电波来获得与附近的物理对象有关的数据的技术。radar可以获得与不在lidar系统的视线内的对象有关的数据。radar系统502b产生radar数据作为输出504b。例如,radar数据是用于构造环境190的表示的一个或多个射频电磁信号。
[0111]
另一输入502c是照相机系统。照相机系统使用一个或多个照相机(例如,使用诸如电荷耦接器件[ccd]等的光传感器的数字照相机)来获取与附近的物理对象有关的信息。照相机系统产生照相机数据作为输出504c。照相机数据通常采用图像数据(例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。在一些示例中,照相机系统具有例如为了立体影像(立体视觉)的目的的多个独立照相机,这使得照相机系统能够感知深度。尽管照相机系统所感知的对象在这里被描述为“附近”,但这是相对于av而言的。在使用中,照相机系统可被配置为“看见”远处的(例如,av前方的远至1公里或更远的)对象。因此,照相机系统可以具有为了感知遥远的对象而优化的诸如传感器和镜头等的特征。
[0112]
另一输入502d是交通灯检测(tld)系统。tld系统使用一个或多个照相机来获得与交通灯、街道标志和提供视觉导航信息的其它物理对象有关的信息。tld系统产生tld数据作为输出504d。tld数据经常采用图像数据(例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。tld系统与包含照相机的系统的不同之处在于:tld系统使用具有宽视场(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉导航信息的物理对象有关的信息,使得运载工具100能够访问这些对象所提供的所有相关导航信息。例如,tld系统的视角可以为约120度或更大。
[0113]
在一些实施例中,使用传感器融合技术来组合输出504a-504d。因而,将个体输出504a-504d提供至运载工具100的其它系统(例如,提供至如图4所示的规划模块404),或者可以采用相同类型的单个组合输出或多个组合输出(例如,使用相同组合技术或组合相同输出或者这两者)或不同类型的单个组合输出或多个组合输出(例如,使用不同的各个组合技术或组合不同的各个输出或者这两者)的形式,将组合输出提供至其它系统。在一些实施例中,使用早期融合技术。早期融合技术的特征在于:在将一个或多个数据处理步骤应用到组合输出之前,将输出组合。在一些实施例中,使用后期融合技术。后期融合技术的特征在于:在将一个或多个数据处理步骤应用到个体输出之后,将输出组合。
[0114]
图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。
[0115]
图7示出操作中的lidar系统602。在该图所示的情境中,运载工具100接收采用图像702的形式的照相机系统输出504c和采用lidar数据点704的形式的lidar系统输出504a两者。在使用中,运载工具100的数据处理系统将图像702与数据点704进行比较。特别地,在数据点704中也识别在图像702中识别出的物理对象706。这样,运载工具100基于数据点704的轮廓和密度来感知物理对象的边界。
[0116]
图8示出lidar系统602的操作的附加细节。如上所述,运载工具100基于lidar系统602所检测到的数据点的特性来检测物理对象的边界。如图8所示,诸如地面802等的平坦对象将以一致的方式反射从lidar系统602发射的光804a-804d。换句话说,由于lidar系统602使用一致的间隔发射光,因此地面802将以相同的一致间隔将光反射回到lidar系统602。在运载工具100在地面802上行驶时,在没有东西阻挡道路的情况下,lidar系统602将继续检测到由下一个有效地面点806反射的光。然而,如果对象808阻挡道路,则lidar系统602所发射的光804e-804f将以与预期一致方式不一致的方式从点810a-810b反射。根据该信息,运载工具100可以确定存在对象808。
[0117]
路径规划
[0118]
图9示出(例如,如图4所示的)规划模块404的输入和输出之间的关系的框图900。一般而言,规划模块404的输出是从起点904(例如,源地点或初始地点)到终点906(例如,目的地或最终地点)的路线902。路线902通常由一个或多个路段定义。例如,路段是指要在街道、道路、公路、行车道或适合汽车行驶的其它物理区域的至少一部分上行驶的距离。在一些示例中,例如,如果运载工具100是诸如四轮驱动(4wd)或全轮驱动(awd)小汽车、suv或小卡车等的能够越野的运载工具,则路线902包括诸如未铺面路径或开阔田野等的“越野”路段。
[0119]
除路线902之外,规划模块还输出车道级路线规划数据908。车道级路线规划数据908用于在特定时间基于路线902的路段的条件来驶过这些路段。例如,如果路线902包括多车道公路,则车道级路线规划数据908包括轨迹规划数据910,其中运载工具100可以使用该轨迹规划数据910以例如基于出口是否临近、多个车道中的一个或多个车道是否存在其它运载工具、或者在几分钟或更少时间的过程中变化的其它因素来从这多个车道中选择某车道。类似地,在一些实现中,车道级路线规划数据908包括路线902的某路段特有的速率约束912。例如,如果该路段包括行人或非预期交通,则速率约束912可以将av 100限制到比预期速率慢的行驶速率,例如基于该路段的限速数据的速率。
[0120]
在实施例中,向规划模块404的输入包括(例如,来自图4所示的数据库模块410的)数据库数据914、当前地点数据916(例如,图4所示的av位置418)、(例如,用于图4所示的目的地412的)目的地数据918和对象数据920(例如,如图4所示的感知模块402所感知的经分类的对象416)。在一些实施例中,数据库数据914包括规划时所使用的规则。规则是使用形式语言(例如,使用布尔逻辑)指定的。在运载工具100所遇到的任何给定情形中,这些规则
中的至少一些规则将适用于该情形。如果规则具有基于运载工具100可用的信息(例如,与周围环境有关的信息)所满足的条件,则该规则适用于给定情形。规则可以具有优先级。例如,“如果公路是高速公路,则移动到最左侧车道”这一规则与“如果出口在一英里内临近,则移动到最右侧车道”相比可以具有更低的优先级。
[0121]
图10示出在路径规划中(例如,由规划模块404(图4))使用的有向图1000。一般而言,如图10所示的有向图那样的有向图1000用于确定任何起点1002和终点1004之间的路径。在现实世界中,分隔起点1002和终点1004的距离可能相对较大(例如,在两个不同的都市区域中),或者可能相对较小(例如,毗邻城市街区的两个十字路口或多车道道路的两条车道)。
[0122]
在实施例中,有向图1000具有表示起点1002和终点1004之间的运载工具100可能占用的不同地点的节点1006a-1006d。在一些示例中,例如,在起点1002和终点1004表示不同的都市区域时,节点1006a-1006d表示道路的路段。在一些示例中,例如,在起点1002和终点1004表示相同道路上的不同地点时,节点1006a-1006d表示该道路上的不同位置。这样,有向图1000包括不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大规模的另一有向图的子图。例如,起点1002和终点1004相距远(例如,相距许多英里)的有向图的大部分信息处于低粒度,并且该有向图是基于所存储的数据,但该有向图还包括用于该有向图中的表示运载工具100的视场中的物理地点的一部分的一些高粒度信息。
[0123]
节点1006a-1006d不同于无法与节点重叠的对象1008a-1008b。在实施例中,在粒度低时,对象1008a-1008b表示汽车不能穿过的地区,例如无街道或道路的区域。在粒度高时,对象1008a-1008b表示运载工具100的视场中的物理对象,例如其它汽车、行人、或运载工具100不能与之共用物理空间的其它实体。在实施例中,对象1008a-1008b的一部分或全部是静态对象(例如,不改变位置的对象,诸如街灯或电线杆等)或动态对象(例如,能够改变位置的对象,诸如行人或其它小汽车等)。
[0124]
节点1006a-1006d通过边1010a-1010c连接。如果两个节点1006a-1006b通过边1010a连接,则运载工具100可以在一个节点1006a和另一节点1006b之间行驶,例如,而不必在到达另一节点1006b之前行驶到中间节点。(当提到a运载工具100在节点之间行驶时,意味着运载工具100在由相应节点表示的两个物理位置之间行驶。)边1010a-1010c通常是双向的,从某种意义上,运载工具100从第一节点行驶到第二节点,或者从第二节点行驶到第一节点。在实施例中,边1010a-1010c是单向的,从某种意义上,运载工具100可以从第一节点行驶到第二节点,然而运载工具100不能从第二节点行驶到第一节点。在边1010a-1010c表示例如单向街道,街道、道路或公路的单独车道,或者由于法律或物理约束因而仅能沿一个方向穿过的其它特征的情况下,边1010a-1010c是单向的。
[0125]
在实施例中,规划模块404使用有向图1000来识别由起点1002和终点1004之间的节点和边组成的路径1012。
[0126]
边1010a-1010c具有关联成本1014a-1014b。成本1014a-1014b是表示在运载工具100选择该边的情况下将花费的资源的值。典型的资源是时间。例如,如果一个边1010a所表示的物理距离是另一边1010b所表示的物理距离的两倍,则第一边1010a的关联成本1014a可以是第二边1010b的关联成本1014b的两倍。影响时间的其它因素包括预期交通、十字路口的数量、限速等。另一典型的资源是燃料经济性。两个边1010a-1010b可以表示相同的物
理距离,但例如由于道路条件、预期天气等,因此一个边1010a与另一边1010b相比需要更多的燃料。
[0127]
在规划模块404识别起点1002和终点1004之间的路径1012时,规划模块404通常选择针对成本优化的路径,例如,在将边的个体成本相加到一起时具有最小总成本的路径。
[0128]
自主运载工具控制
[0129]
图11示出(例如,如图4所示的)控制模块406的输入和输出的框图1100。控制模块根据控制器1102而操作,该控制器1102例如包括:与处理器304类似的一个或多个处理器(例如,诸如微处理器或微控制器或这两者等的一个或多个计算机处理器);与主存储器306、rom 1308和存储装置210类似的短期和/或长期数据存储装置(例如,存储器,随机存取存储器或闪速存储器或这两者);以及存储器中所存储的指令,这些指令在(例如,由一个或多个处理器)执行时执行控制器1102的操作。
[0130]
在实施例中,控制器1102接收表示期望输出1104的数据。期望输出1104通常包括速度,例如速率和航向。期望输出1104例如可以基于从(例如,如图4所示的)规划模块404接收到的数据。根据期望输出1104,控制器1102产生可用作油门输入1106和转向输入1108的数据。油门输入1106表示例如通过接合转向踏板或接合另一油门控件来接合运载工具100的油门(例如,加速控制)以实现期望输出1104的大小。在一些示例中,油门输入1106还包括可用于接合运载工具100的制动器(例如,减速控制)的数据。转向输入1108表示转向角度,例如av的转向控制(例如,方向盘、转向角致动器或用于控制转向角度的其它功能)应被定位成实现期望输出1104的角度。
[0131]
在实施例中,控制器1102接收在调整提供至油门和转向的输入时使用的反馈。例如,如果运载工具100遇到诸如山丘等的干扰1110,则运载工具100的测量速率1112降至低于期望输出速率。在实施例中,任何测量输出1114均被提供至控制器1102,使得例如基于测量速率和期望输出之间的差分1113来进行所需的调整。测量输出1114包括测量位置1116、测量速度1118(包括速率和航向)、测量加速度1120和运载工具100的传感器可测量的其它输出。
[0132]
在实施例中,例如通过诸如照相机或lidar传感器等的传感器预先检测与干扰1110有关的信息,并且该信息被提供至预测性反馈模块1122。然后,预测性反馈模块1122将控制器1102可用于相应地调整的信息提供至控制器1102。例如,如果运载工具100的传感器检测到(“看见”)山丘,则控制器1102可以使用该信息来准备在适当时间接合油门,以避免显著减速。
[0133]
图12示出控制器1102的输入、输出和组件的框图1200。控制器1102具有影响油门/制动器控制器1204的操作的速率分析器1202。例如,速率分析器1202根据例如由控制器1102接收到并由速率分析器1202处理后的反馈,来指示油门/制动器控制器1204使用油门/制动器1206进行加速或进行减速。
[0134]
控制器1102还具有影响方向盘控制器1210的操作的横向跟踪控制器1208。例如,横向跟踪控制器1208根据例如由控制器1102接收到并由横向跟踪控制器1208处理后的反馈,来指示方向盘控制器1210调整转向角致动器1212的位置。
[0135]
控制器1102接收用于确定如何控制油门/制动器1206和转向角致动器1212的若干输入。规划模块404提供控制器1102例如选择运载工具100开始操作时的航向并确定在运载
工具100到达十字交叉路口时穿过哪个道路路段所使用的信息。定位模块408例如将描述运载工具100的当前地点的信息提供至控制器1102,使得控制器1102可以确定运载工具100是否处于基于正控制油门/制动器1206和转向角致动器1212的方式而预期的地点。在实施例中,控制器1102接收来自其它输入1214的信息,例如从数据库、计算机网络等接收到的信息。
[0136]
装置配备和认证
[0137]
图13示出电子装置1300的示例,该电子装置1300是运载工具中的组件并且使用本文公开的技术来配备。在该上下文中,配备运载工具中的装置是指向装置提供一个或多个加密密钥或安全证书、或者这两者,以使得装置可以进行与运载工具中的其它实体或与企业中的外部实体(例如,远程服务器)的经认证通信,如前所述。装置1300包括:诸如处理器1302等的一个或多个计算机处理器;诸如存储器存储单元1304等的本地存储装置;安全模块1306;以及通信网络接口1308。处理器1302执行存储在本地存储装置中的指令以实现装置配备api 1310和装置管理api 1312。如前所述,配备api 1310通过与企业的配备服务通信来发起装置1300的配备。装置管理api 1312用于管理装置1300的固件和配置更新。
[0138]
在一些实施例中,装置1300是运载工具100(图1)中的组件装置的示例。例如,在一些情况下,装置1300是运载工具100中的传感器121之一,诸如可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122,lidar 123,radar,超声波传感器,飞行时间(tof)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器其中之一。在一些情况下,装置1300是运载工具100的一些其它电子组件,诸如计算机处理器146、通信装置140、数据存储单元142、存储器144以及装置101(例如,转向控制102和制动器103之一等)其中之一。
[0139]
装置1300使用本文公开的配备技术例如在装置最初部署在运载工具中时生成公钥-私钥对并获得数字证书。数字证书或安全证书证明装置对公钥的所有权,这是证书的命名主体。证书允许其它实体依赖签名或装置对与认证公钥对应的私钥所做的断言。例如,当装置1300发送用私钥(仅该装置知道)签名的消息时,接收方可以通过使用从证书获得的公钥对消息签名进行加密认证操作来验证消息的真实性(例如,消息确实由装置签名)。由于证书将装置的标识绑定到公钥,因此使用公钥成功验证消息签名验证了装置已对消息进行了签名。
[0140]
在一些实施例中,装置1300在其初始配备之后的时间使用本文公开的重新配备技术来更新其公钥-私钥对并获得新的数字证书。作为配备或重新配备的一部分,装置1300还获得与企业的装置管理机构或企业的装置管理员管理机构或这两者相对应的中间ca数字证书。在与运载工具中的其它装置或运载工具外部的其它实体(例如,计算机外围设备132或云服务器136)通信期间,装置1300使用其数字证书来向这些其它装置或实体认证其自身。装置1300在这样的通信期间使用中间ca数字证书来认证其它装置或实体的数字证书。
[0141]
在一些实施例中,装置1300使用安全模块1306来安全地生成其公钥-私钥对、或存储其私钥、或者这两者。在一些实施例中,私钥永远不会离开安全模块1306。如前所述,在一些实施例中,安全模块1306是受信任的平台模块(tpm)或硬件安全模块(hsm)。在这种情况下,tpm或hsm是用于保护和管理数字密钥、进行数字签名的加密和解密功能、强认证和其它加密功能的专用芯片。tpm或hsm生成公钥-私钥对并存储密钥和/或特定于主机系统的用于硬件认证的其它安全信息。
[0142]
在一些实施例中,装置1300为了配备、重新配备或经认证通信而与之通信的一个或多个其它装置或实体包括与企业相关联的服务器和装置,该企业也与部署了装置1300的运载工具相关联。在该上下文中,“与
…
相关联”是指由拥有、操作或管理,或它们的任何组合。如前所述,在一些实施例中,企业与包括部署了装置1300的运载工具的多个运载工具相关联。
[0143]
图14示出使用本文所公开的技术的用于作为运载工具中的组件的电子装置1402的配备和经认证通信的系统1400的示例。除了电子装置1402之外,系统1400还包括配备服务1404、证书管理机构1406和用于经认证通信的实体1408。在一些实施例中,系统1400可选地包括配备本地代理服务1404a,其是配备服务1404的代理并且位于接近于装置1402的本地。在一些实施例中,系统1400包括企业远程中心1410,其与企业相关联并且包括配备服务1404或证书管理机构1406或者这两者。
[0144]
在一些实施例中,装置1402是装置1300的示例。例如,在一些情况下,装置1402是运载工具100中的传感器121之一,诸如可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122,lidar 123,radar,超声波传感器,飞行时间(tof)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器其中之一。在一些情况下,装置1402是运载工具100的一些其它电子组件,诸如计算机处理器146、通信装置140、数据存储单元142、存储器144以及装置101(例如,转向控制102以及制动器103之一等)其中之一。因此下面的部分在不失一般性的情况下描述装置1402的相对于针对装置1300所描述的装置组件的功能和操作。
[0145]
在一些实施例中,装置1402例如在装置制造时被配置有唯一的、不可修改的标识。例如,标识可以是装置序列号。作为另一示例,标识可以是装置制造商名称(或唯一制造商编号)和装置序列号的组合。例如,在不同制造商生产具有相同序列号的装置的情况下,这是有用的。
[0146]
在一些实施例中,在装置1402被配备之前,与企业的根ca相关联的数字证书被安装在装置1402中。例如,企业可以将其根ca证书提供给装置制造商,装置制造商在将装置1402交付给企业之前该根ca证书包括在装置1402(并且可能安装在同样来自制造商的其它装置中)中所安装的固件中。
[0147]
在一些实施例中,配备服务1404在与企业相关联的一个或多个服务器上实现。类似地,证书管理机构1406在与企业相关联的一个或多个服务器上实现。在一些实施例中,证书管理机构1406表示与企业相关联的用于认证装置的装置管理机构。附加地或替代地,在一些实施例中,证书管理机构1406表示与企业相关联的用于认证重新配置装置或更新装置固件的实体(例如,实体1408,其可以是清单服务器)的装置管理员管理机构。在一些实施例中,证书管理机构充当针对装置1402或针对实体1408或者这两者生成数字证书的中间ca。在一些实施例中,配备服务1404或证书管理机构1406或者这两者位于企业的远程集中位置,例如企业数据中心。
[0148]
在一些实施例中,系统1400包括与企业相关联的用作企业的认证信任链的根的根ca。例如,在这种情况下,与企业相关联的所有装置和实体都知道根ca的公钥(例如,在部署用于企业中的操作时,公钥预安装在装置和实体中)。
[0149]
装置1402与配备服务1404通信以获得数字证书。在一些实施例中,装置1402使用通过装置1402中的网络接口(例如,与装置1402类似于装置1300的实施例中的网络接口
1308类似)建立的网络连接直接与配备服务1404通信。在一些实施例中,装置1402与配备本地代理1404a通信,该配备本地代理1404a用作配备服务1404的前端并且位于接近于部署了装置1402的运载工具。例如,配备本地代理1404a可以在耦接(例如,通过有线或无线连接)到运载工具中的处理器的技术人员的膝上型电脑中实现。
[0150]
在一些实施例中,装置1402和实体1408之间的通信是使用各自的数字证书认证的。例如,对于验证仅企业授权的实体1408(例如,清单服务器)可以重新配置装置1402,或者仅与企业相关联的装置可以配置有企业提供的功能,或者这两者,这可能是有用的。装置1402为了配备和/或认证而与配备服务1404、证书管理机构1406和实体1408等中的一个或多个的通信在以下部分中参考消息序列图15a-15c进行描述。
[0151]
图15a、15b和15c分别示出使用本文所公开的技术、与配备作为运载工具中的组件的电子装置相关联的消息序列图1500a、1500b和1500c的示例。在一些实施例中,消息序列图1500a、1500b和1500c表示装置1402、配备服务1404和证书管理机构1406中的一个或多个之间的通信交换。在这样的实施例中,在图15a-15c中,装置1502类似于装置1402;配备服务1504类似于配备服务1404;并且企业ca 1506类似于证书管理机构1406。因此,消息序列图1500a、1500b和1500c的描述包括对系统1400的参考。消息序列图1500a、1500b和1500c还包括与企业系统中的其它实体(诸如装置引入站1512、企业管理服务1514等)的通信交换。
[0152]
图15a中的消息序列图1500a示出配备服务1504和与企业相关联的装置引入站1512之间的通信交换。在一些实施例中,消息序列图1500a中所示的通信在运载工具的组件装置(例如,装置1502)被引入(例如,初始部署)企业中时发生。例如,这可以是当装置1502被企业接收以作为与企业相关联的运载工具中的组件来安装时的情况。
[0153]
如图15a所示,当在企业处(例如,从制造商或供应商处)接收组件装置时,装置引入站1512例如通过扫描或者在web界面手动输入序列号读取装置序列号来捕获装置标识(1522)。在一些实施例中,装置引入站1512是企业的跟踪系统的一部分。如前所述,在一些实施例中,装置标识是装置制造商名称(或一些其它标识信息,诸如唯一的制造商编号)和装置序列号的组合。
[0154]
在捕获装置标识之后,装置引入站1512向配备服务1506发送已经引入新装置的通知(1524)。该通知包括由装置引入站1512确定的装置标识,例如装置序列号。配备服务1506例如通过添加装置序列号作为数据库中的记录在与企业相关联的运载工具中使用的活动装置的数据库中记录装置标识(1526)。
[0155]
在运载工具中的安装之后,当装置首次通电并启动时,装置(例如,装置中的处理器)确定该装置不具有数字证书。在做出该确定时,装置启用配备api,该api建立与企业的配备服务的通信。
[0156]
图15b中的消息序列图1500b示出装置1502、配备服务1504和企业ca1506之间的通信交换。在一些实施例中,消息序列图1500b中所示的通信在装置1502被配备以在企业中使用时发生,例如,通过生成加密公钥-私钥对并获得数字证书,该数字证书将装置标识安全地绑定到密钥对的公钥。密钥对和相应的证书随后被装置1502用于与同企业相关联的其它装置或实体的经认证通信,其中经认证通信涉及安全协议的使用,如本文所述。
[0157]
如图15b所示,当装置1502启动时,装置检查其是否具有有效凭证(1522)。例如,装置1502检查其是否具有当前密钥对(例如,存储在安全模块1306中)和相应的尚未过期或被
撤销的数字证书。如果装置确定其具有有效凭证,则装置进行正常启动(1524)。例如,装置1502在不运行其装置配备api 1310的情况下完成启动并继续进行常规功能,诸如传感器数据收集、固件更新或重新配置等。在一些实施例中,常规功能涉及与部署了该装置的运载工具中的其它装置或实体或者与同企业相关联的外部装置或实体的经认证通信。
[0158]
如果装置1502确定该装置不具有有效凭证,则该装置启用其装置配备api(1526)。这可能是例如当装置在安装在运载工具中之后第一次被首次通电并启动时、或者企业ca 1506已经撤销了装置的数字证书以使得必须重新配备装置1502的情况。在装置配备api和配备服务1504之间建立通信连接(1528)。装置1502认证配备服务1504(1530)。例如,在一些实施例中,配备服务1504将其数字证书发送到装置1502,装置1502使用质询-响应机制和在装置1502中预先配置的根ca证书来认证配备服务的证书。认证可能涉及安全协议,诸如传输层安全(tls)协议或needham-schroeder协议等。作为一般详细示例,在一些实施例中,装置1502获得配备服务的证书中所包括的根ca的签名;从根ca证书中确定根ca的公钥;并且使用公钥验证配备服务证书中所包括的根ca的签名确实是由根ca签名的。然后装置向配备服务1504发送密码质询,配备服务向装置发送使用配备服务的私钥签名的响应。装置1502使用从配备服务的证书获得的配备服务1504的公钥来验证响应中的签名。如果签名被验证,则配备服务1504被成功认证。
[0159]
一旦配备服务1504被成功认证,配备服务1504就向装置1502发送指令,其命令装置生成密钥对(1532)。在接收到命令时,装置1502(例如,装置中的安全模块1306)生成公钥-私钥对,并且还生成证书签名请求(csr)(1534)。csr包括密钥对的公钥,而密钥对的私钥被安全地存储在装置的安全存储中,例如,在安全模块1306内。然后装置1502将csr发送到配备服务1504作为对密钥生成命令的响应(1536)。
[0160]
在从装置1502接收到csr时,配备服务1504进行检查以确认装置的标识存在于活动装置的数据库中的记录中、或装置1502尚未被配备、或者这两者。如果检查成功,则配备服务1504将装置csr发送到企业ca 1506(1538)。如前所述,在一些实施例中,企业ca是装置授权服务器。
[0161]
在接收到csr时,装置授权服务器生成针对装置的数字证书。由企业ca 1506的私钥签名的数字证书将装置的标识绑定到装置的公钥,该公钥是企业ca从csr获得的。然后企业ca 1506向配备服务1504发送响应(1540)。响应包括所生成的针对装置的数字证书。在一些实施例中,响应还包括一个或多个中间ca证书,例如,针对企业ca 1506或针对装置授权服务器(如果不同于企业ca 1506)或针对装置管理员服务器或者这些的任何合适的组合的数字证书。在一些实施例中,装置的数字证书或中间ca证书或者这两者x509证书。然而,其它证书格式也是可能的。例如,在一些实施例中,装置的数字证书或中间ca证书或者这两者是简单公钥基础设施(spki)证书。在一些实施例中,装置的数字证书或中间ca证书或者这两者是openpgp证书。
[0162]
配备服务1504记录从企业ca 1506接收的装置证书(1542)。例如,在一些实施例中,配备服务存储装置证书的本地副本,将本地副本链接到数据库中存储的装置标识的记录。然后配备服务1504将装置证书以及一个或多个中间ca证书转发到装置1502(1544)。
[0163]
装置1502使用预先配置在装置上的根ca证书来认证一个或多个中间ca证书。在成功认证中间ca证书时,装置1502从相应企业ca证书获得企业ca 1506的公钥,然后遵循标准
证书认证协议使用企业ca的公钥认证企业ca 1506生成的装置证书。在成功认证时,装置1502将其数字证书以及一个或多个中间ca证书存储在耦接到该装置的存储装置存储器中(1546)。装置1502现在被配备用于企业环境中的经认证通信。
[0164]
图15c中的消息序列图1500c示出了装置1502、配置服务1504和企业管理服务1514之间的通信交换。在一些实施例中,消息序列图1500c中所示的通信在企业管理服务1514例如通过撤销装置的数字证书来取消配备装置1502时发生。这可能是例如在装置的密钥已经受损时或遵循要求企业中的装置和实体不时地刷新它们的密钥和数字证书以增强安全性的企业政策的情况。如果装置1502保持在企业系统中以供在取消配备之后使用,则装置1502如关于图15a中的消息序列图1500a所描述的那样被重新配备。在一些实施例中,当企业管理服务1514例如通过撤销装置的数字证书来停用装置1502时,发生在消息序列图1500c中示出的通信。这可能是例如当装置1502达到其使用寿命的结束时的情况。在这样的情况下,在停用之后,装置1502被从企业系统中的常规使用中移除。以下部分参考取消配备装置1502来描述消息序列图1500c。然而,应当理解,消息序列图1500c类似地适用于停用装置1502。
[0165]
为了取消配备装置1502,管理服务1514向配备服务1504发送取消配备命令(1552),该取消配备命令包括装置标识(例如,装置序列号)。在一些实施例中,管理服务1514表示企业的一个或多个管理服务器(例如,位于企业远程中心1410处)。在接收到取消配备命令时,配备服务1504利用装置标识删除由配备服务存储的装置数字证书(1554)。在一些实施例中,配备服务1504还将装置的标识记录从其活动装置记录的数据库移动到退役装置记录的数据库。
[0166]
管理服务1514还建立与装置1502的连接。装置1502和管理服务相互认证彼此(1558)。例如,在一些实施例中,管理服务1514将其数字证书发送到装置1502,并且装置1502和管理服务使用另一装置的数字证书和质询-响应机制来彼此认证,如前所述。
[0167]
在相互认证之后,管理服务向装置发送取消配备命令(1560)。在接收到取消配备命令时,装置1502中的装置管理api(例如,装置管理api 1312)删除其存储在装置中(例如,装置的安全模块1306中)的现有数字证书和公钥-私钥对(1562)。在一些实施例中,装置管理api还删除由装置存储的企业ca数字证书。然后装置管理api例如通过重置用于密钥生成的一个或多个加密计数器、进行安全模块存储器中的垃圾回收以及其它合适的功能来重置安全模块。
[0168]
用于装置配备和认证的示例处理
[0169]
图16示出用于配备作为与企业相关联的运载工具中的组件的电子装置的示例处理1600。在一些实施例中,处理1600由部署在与企业相关联的运载工具中的装置1402进行以获得安全凭证(例如,公钥-私钥对或数字证书)来用于与同企业系统相关联的其它装置和实体的经认证通信。因而,在以下部分中针对装置1402和系统1400来描述处理1600。然而,处理1600还可以由其它装置进行。如前所述,在一些实施例中,装置1402类似于装置1300。因此,在描述处理1600时,参考装置1300的硬件组件和功能来描述装置1402的硬件组件和功能。
[0170]
在处理1600中,在启动时,装置检查在装置中是否存在有效安全凭证(1602)。例如,装置1402检查其是否具有当前密钥对(例如,存储在安全模块1306中)和尚未过期或撤
销的相应数字证书。
[0171]
如果该装置确定其具有有效安全凭证,则该装置使用现有安全凭证来进行常规启动和经认证通信(1604)。例如,装置1402完成启动而不运行其装置配备api(例如,装置配备api 1310)并且继续进行常规功能,诸如传感器数据收集、固件更新、重新配置等等。装置1402还使用现有的有效装置证书来进行与部署了该装置的运载工具中的其它装置或实体(例如,实体1408)或者与同企业相关联的外部装置或实体的经认证通信。例如,装置1402进行与发送命令和数据的清单服务器的经认证通信以重新配置装置1402或更新装置固件。
[0172]
另一方面,如果装置确定其不具有有效安全凭证,则装置开始其装置配备api并建立与配备服务的连接(1606)。例如,当装置1402在安装在运载工具中之后第一次通电并启动时,或者装置的现有数字证书已被撤销或已过期,装置1402确定其不具有有效安全凭证,并且装置必须被配备(或者如果数字证书已被撤销或已过期则被重新配备)。装置1402启动其装置配备api(例如,装置配备api 1310),并且向正在运行配备服务1404的、与企业相关联的一个或多个网络服务器发送连接请求,配备服务1404相应地建立与在装置1402上运行的装置配备api的连接。如前所述,在一些实施例中,装置1402建立与用于配备服务的本地代理(例如,配备本地代理1404a)的连接,然后本地代理1404a建立与企业远程中心1410中托管配备服务1404的远程网络服务器的连接。在一些实施例中,装置1402直接与企业远程中心1410中托管配备服务1404的远程网络服务器建立连接。
[0173]
装置认证配备服务(1608)。例如,配备服务1404网络服务器以如先前描述的方式将与配备服务1404相对应的数字证书发送到装置1402,该装置1402使用质询-响应机制和在装置1402中预配置的根ca证书来认证配备服务的证书。
[0174]
如果装置不能基于服务的数字证书成功地认证配备服务,则装置中止连接并且重新启动处理1600,从而尝试再次连接到配备服务。另一方面,如果装置成功地认证了配备服务,则装置从配备服务接收密钥生成指令(1610)。例如,当配备服务1404被成功认证时,配备服务1404将指令发送到装置1402,这命令装置生成密钥对。在一些实施例中,在装置处经由配备服务本地代理(例如,配备服务本地代理1404a)接收指令。
[0175]
装置生成公钥-私钥对(1612)。例如,在从配备服务1404接收到密钥生成命令时,装置1402(例如,装置中的安全模块1306)生成公钥-私钥对。在一些实施例中,使用rsa加密算法或ecc生成密钥对。在一些实施例中,除了其它合适的算法之外,使用elgamal算法、数字签名标准(dss)、cramer-shoup密码系统、paillier密码系统或yak认证的密钥协定协议来生成密钥对。装置1402将私钥安全地存储在装置内,例如在安全模块1306中。
[0176]
装置生成证书签名请求(csr)(1614)。例如,除了生成密钥对之外,装置1402还生成csr,该csr包括密钥对的公钥和装置的标识(例如,装置序列号、或装置制造商名称或编号和装置序列号的组合)。
[0177]
装置将csr发送至配备服务(1616)。例如,装置1402将csr发送到配备服务1404作为对密钥生成指令的响应。在一些实施例中,装置1402将csr发送到配备本地代理1404a,该配备本地代理1404a将csr转发到托管配备服务1404的远程网络服务器。
[0178]
装置从配备服务接收装置证书和/或企业ca证书(1618)。例如,在从装置1402接收到csr时,配备服务1404检查装置的标识是否存在于活动装置的数据库中的记录中、或装置1402是否已经被配备(例如,装置已经具有有效凭证,诸如数字证书等)、或者这两者。如果
检查指示装置的标识被记录并且装置不具有有效凭证,则配备服务1404向企业ca 1406发送装置csr。在接收到csr时,企业ca 1406生成针对装置的数字证书,并且向配备服务1404发送响应,该响应包括所生成的针对装置的数字证书以及一个或多个中间ca证书。如前所述,在一些实施例中,针对装置的数字证书或中间ca证书或者这两者是x509证书。在一些实施例中,针对装置的数字证书或中间ca证书或者这两者是spki证书或openpgp证书。配备服务1404记录从企业ca 1406接收的装置证书,然后将装置证书以及一个或多个中间ca证书转发到装置1402。
[0179]
装置使用根ca证书来认证一个或多个中间ca证书(1620)。例如,装置1402从自配备服务1404接收的消息获得一个或多个中间ca证书,并且使用在装置上预配置的根ca公钥来验证这些证书的真实性。
[0180]
如果装置不能成功地验证一个或多个中间ca证书的真实性,则装置中止配备处理。在一些实施例中,装置重新启动处理1600,从而尝试再次连接到配备服务。另一方面,如果装置成功地认证了中间ca证书,则装置使用经认证ca证书来认证装置证书(1622)。例如,在成功认证中间ca证书时,装置1402从相应企业ca证书获得企业ca 1406的公钥,然后遵循标准证书认证协议,使用企业ca的公钥认证由企业ca 1406生成的装置证书。
[0181]
如果装置不能成功地验证装置数字证书的真实性,则装置中止配备处理。在一些实施例中,装置重新启动处理1600,从而尝试再次连接到配备服务。另一方面,如果装置成功地认证装置证书,则装置将经认证装置证书存储在存储器中并且使用该装置证书用于与企业实体的经认证通信(1624)。例如,在成功认证装置数字证书时,装置1402将其数字证书以及一个或多个中间ca证书存储在耦接到装置的存储存储器中(例如,在存储装置1304或安全模块1306中)。现在使用现有的有效装置证书配备装置1402以用于企业环境中的认证通信。例如,装置1402进行与部署该装置的运载工具中的其它装置或实体(例如,实体1408)或者与同企业相关联的外部装置或实体的经认证通信。
[0182]
图17示出用于配备作为与企业相关联的运载工具中的组件的电子装置的示例处理1700。在一些实施例中,处理1700由与企业相关联的配备服务1404进行,以促进向部署在与企业相关联的运载工具中的装置1402提供安全凭证(例如,公钥-私钥对或数字证书)。因此,在以下部分中关于配备服务1404和系统1400来描述处理1700。然而,处理1700还可以由企业系统中的其它实体进行。
[0183]
在处理1700中,配备服务建立与装置配备api的网络连接(1702)。例如,运行配备服务1404的网络服务器从在装置1402上运行的装置配备api(例如,装置配备api 1310)接收连接请求。响应于连接请求,配备服务1404建立与在装置1402上运行的装置配备api的连接。如前所述,在一些实施例中,装置1402与配备服务1404之间的通信/连接通过配备本地代理1404a。
[0184]
配备服务将其数字证书发送到装置(1704)。例如,一旦建立与装置1402的连接,配备服务1404就将与配备服务相对应的数字证书发送到在装置1402上运行的装置配备api。
[0185]
配备服务确定认证是否成功(1706)。例如,装置1402以如先前描述的方式使用质询-响应机制来认证配备服务的证书。
[0186]
如果认证不成功,则中止处理(1708)。例如,如果装置1402不能基于服务的数字证书成功地认证配备服务1404,则装置中止连接,并且配备服务1404关闭到装置1402的连接。
[0187]
另一方面,如果认证成功,则配备服务向装置发送密钥生成指令(1710)。例如,当配备服务1404被成功认证时,配备服务1404向装置1402发送指令,其命令装置生成密钥对。在一些实施例中,指令被发送到配备服务本地代理,例如,配备服务本地代理1404a,其将指令转发到装置1402。
[0188]
配备服务从装置接收证书签名请求(csr)(1712)。例如,在从配备服务1404接收到密钥生成指令时,装置1402生成公钥-私钥对和csr,该csr包括公钥和装置的标识。装置1402向配备服务1404发送csr。在一些实施例中,装置1402将csr发送到配备本地代理1404a,配备本地代理1404a将csr转发到托管配备服务1404的远程网络服务器。
[0189]
配备服务确定装置是否登记(1714)。例如,在从装置1402接收到csr时,配备服务1404检查装置的标识是否存在于活动装置的数据库中的记录中。
[0190]
如果配备服务确定装置未登记,则配备服务中止(1716)。例如,如果配备服务1404不能找到记录在其活动装置的数据库中的装置1402,则配备服务1404拒绝csr并且中止配备。在一些实施例中,配备服务1404生成审核日志条目以注意到配备尝试是从未登记的装置做出的。这可能是例如在未授权的装置尝试从企业获得有效凭证时的情况。
[0191]
另一方面,如果配备服务确定装置已登记,则配备服务进一步检查装置是否具有现有的有效证书(1718)。例如,在确定装置1402被登记时,配备服务1404进一步检查装置1402是否已经被配备,例如,装置1402已经具有有效数字证书。
[0192]
如果检查指示装置具有现有证书,则配备服务中止(1719)。例如,如果配备服务1404确定针对装置1402的有效数字证书记录在其数据库中,从而指示装置1402已经被配备,则配备服务1404拒绝来自装置1402的csr并且中止配备。在一些实施例中,配备服务1404采取进一步的动作来解决不一致。例如,配备服务可以向管理员通知通过撤销装置证书来取消配备装置1402。在一些实施例中,配备服务1404生成警告以通知冲突的配备请求。这可能是例如在未授权装置尝试欺骗授权装置使得授权装置和未授权装置这两者都请求配备时的情况。
[0193]
另一方面,如果检查(1718)指示配备服务不具有有效证书,则配备服务将装置csr发送到签名证书管理机构(1720)。例如,如果配备服务1404确定装置1402被登记但不具有有效数字证书,则配备服务1404将csr从装置1402发送到企业ca 1406。
[0194]
配备服务从签名ca接收装置证书以及一个或多个ca证书(1722)。例如,企业ca 1406在从配备服务1404接收到csr时生成针对装置1402的数字证书,并且向配备服务1404发送响应。该响应包括所生成的针对装置1402的数字证书以及一个或多个中间ca证书。如前所述,针对装置的数字证书或中间ca证书或者这两者可以是x509证书、spki证书或openpgp证书。
[0195]
配备服务将装置证书的副本存储在本地存储中(1724)。例如,在从企业ca 1406接收到响应时,配备服务1404为本地存储做出装置证书的副本。在一些实施例中,配备服务1404将本地副本链接到在活动装置的数据库中的针对装置1402的记录。
[0196]
配备服务将装置证书以及一个或多个ca证书发送到装置(1726)。例如,配备服务1404将从企业ca 1406接收的装置证书以及一个或多个中间ca证书转发到装置1402。在一些实施例中,配备服务1404将证书发送到配备本地代理1404a,该配备本地代理1404a将证书转发到装置1402。装置1402如关于处理1600所描述的那样存储证书。
[0197]
图18示出用于改变作为与企业相关联的运载工具中的组件的电子装置的配备状态的示例处理1800。在一些实施例中,处理1800由部署在与企业相关联的运载工具中的装置1402进行以重新配备装置,例如,获得用于与同企业系统相关联的其它装置和实体的经认证通信的刷新的安全凭证(例如,公钥-私钥对或数字证书)。在一些实施例中,当装置1402停用(例如,从企业系统中的服务中移除)时,由该装置进行处理1800。因此,在以下部分中关于装置1402和系统1400来描述处理1800。然而,处理1800也可以由其它装置进行。如前所述,在一些实施例中,装置1402类似于装置1300。因此,在描述处理1800时,参考装置1300的硬件组件和功能来描述装置1402的硬件组件和功能。
[0198]
处理1800在装置建立与管理服务的网络连接(1802)时开始。例如,装置1402中的装置管理api(例如,装置管理api 1312)从与企业相关联的管理服务(例如,管理服务1514)接收连接请求。在一些实施例中,管理服务表示企业的一个或多个管理服务器(例如,位于企业远程中心1410处)。在一些实施例中,运行管理服务的服务器发送连接请求。
[0199]
装置接收与管理服务相对应的数字证书(1806)。例如,在建立与装置1402的连接时,管理服务和装置1402相互认证彼此。对于相互认证,管理服务将其数字证书发送到装置1402。在一些实施例中,装置1402还将其数字证书发送到管理服务。
[0200]
该装置确定认证是否成功(1806)。例如,装置1402和管理服务使用另一个的数字证书和质询-响应机制来彼此认证,如前所述。
[0201]
如果认证不成功,则中止处理(1808)。例如,如果装置1402不能基于服务的数字证书成功地认证管理服务,则装置中止。可替代地,如果管理服务不能基于装置的数字证书成功地认证装置1402,则管理服务中止。
[0202]
另一方面,如果认证成功,则装置从配备服务接收指令(1810)。例如,在成功的相互认证之后,管理服务将指令发送到装置1402。在一些实施例中,指令包括取消配备命令。在一些实施例中,指令包括停用命令。
[0203]
装置删除现有的装置证书和密钥对(1812)。例如,在接收到取消配备命令(或停用命令,如果适用的话)时,装置1402中的装置管理api(例如,装置管理api 1312)删除存储在该装置中(例如,该装置的安全模块1306中)的其现有数字证书和公钥-私钥对。在一些实施例中,装置管理api还删除由装置存储的企业ca数字证书。
[0204]
可选地,在一些实施例中,装置进行重新启动和重新配备(1814)。这可能是例如在处理1800用于重新配备装置时的情况。在这样的实施例中,在响应于从管理服务接收到取消配备命令(1810)而删除现有装置证书和密钥对(1812)之后,装置管理api重置安全模块(例如,安全模块1306)并重新启动装置。例如,装置管理api重置安全模块中用于密钥生成、进行安全模块存储器中的垃圾收集以及其它合适功能的一个或多个密码计数器。然后重新启动装置1402;当装置1402恢复供电时,装置继续重新配备,例如,生成新的公钥-私钥对并获得数字证书,如先前关于处理1600所述。
[0205]
在先前描述中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人期望是本发明范围的内容是以发布权利要求书的具体形式从本技术发布的权利要求书的字面和等同范围,包括任何后续修正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当以此类术语如在权利要求书中所使用
的意义为准。另外,当在先前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或先前所述的步骤或实体的子步骤/子实体。