共享由自主运载工具感知的经分类的对象的制作方法

文档序号:20273112发布日期:2020-04-03 19:17阅读:203来源:国知局
共享由自主运载工具感知的经分类的对象的制作方法

相关申请的交叉引用

本申请要求于2018年9月27日提交的申请号为62/737,844的美国临时专利申请的权益,该申请的全部公开藉此通过引用并入本申请中。本申请还要求于2019年2月22日提交的的丹麦专利申请pa201970114的权益,该申请的全部公开藉此通过引用并入本申请中。

本说明书大体涉及汽车导航系统,并且更具体地涉及使用板载传感器检测对象并且对于对象进行分类的自主运载工具感知系统。



背景技术:

数字地图是编译并且格式化成可在汽车导航系统显示器上显示的虚拟图像的数据的集合。数字地图向驾驶员提供了特定地理区域中固定基础设施的准确表示,这些固定基础设施包括主要道路干线和其他兴趣点(poi)。数字地图的主要使用是与全球导航卫星系统(gnss)一起使用,该gnss诸如在汽车导航系统中常用的全球卫星系统(gps)。固定基础设施在数字地图上通常被示出为以文本注释的图形对象。

未来运载工具,特别是自主运载工具,包括感知子系统,该感知子系统使用传感器(例如,lidar、相机、雷达、声呐)以用于检测局部操作环境中的静态和动态对象,使得该运载工具能够做出实时的导航和控制决策。这些对象地图(也被称为对象列表)通常包括在传统数字地图中找不到的动态对象,诸如(停靠的或移动中的)其他运载工具、对于固定基础设施的临时影响(例如,建设区、道路封闭、交通堵塞、交通事故)、行人、骑自行车者以及其他任何静态或动态对象。

在自主运载工具的领域中,运载工具通信系统允许自主运载工具彼此通信以及与道路旁单元通信,向彼此提供信息,诸如安全警告以及交通信息。这些系统可被用于使用无线通信技术(例如,5g)传送对象地图。然而,对于在自主运载工具之间共享对象地图存在若干问题。由于无线通信系统中固有的延迟,对象地图可能过于“过时”而不是有用的或无法安全地使用。而且,取决于用于检测对象和对于对象进行分类的传感器技术以及感知算法,对象地图能以不同方式被格式化和/或可具有不同的准确程度。对象地图的共享也具有会产生有关责任和保险的新问题的法律疑义。例如,不准确和/或包括过时数据的共享对象地图可能导致碰撞,从而产生有关责任方的不确定性。这些尚未解决的责任问题可能使得获得对共享对象地图的广泛接受变得困难。在不被广泛接受的情况下,共享对象地图的价值将大打折扣。



技术实现要素:

公开了针对共享由自主运载工具感知的经分类的对象的实施例。在实施例中,方法包括:从自主运载工具(av)获取第一场景描述,该第一场景描述包括在地理区域的第一地区中检测到的一个或多个经分类的对象;由在第一地区中的第一边缘节点并且使用多个场景描述更新用于第一地区的自主系统网格(asg);并且由第一边缘节点将经更新的asg发送到位于第一地区或地理区域的第二地区中的第二边缘节点。

这些和其他方面、特征和实现可以表达为方法、装置、系统、组件、程序产品、用于执行功能的装置或步骤、以及以其他方式表达。

根据包括权利要求的以下描述,这些和其他方面、特征和实现将变得显而易见。

附图说明

图1示出了具有自主能力的自主运载工具的示例。

图2示出了示例“云”计算环境。

图3示出了计算机系统。

图4示出了自主运载工具的示例架构。

图5示出了可以由感知模块使用的输入和输出的示例。

图6示出了lidar系统的示例。

图7示出了操作中的lidar系统。

图8更详细地示出了lidar系统的操作。

图9示出了规划模块的输入与输出之间的关系的框图。

图10示出了路径规划中使用的有向图。

图11示出了控制模块的输入和输出的框图。

图12示出了控制器的输入、输出以及组件的框图。

图13示出了用于共享由自主运载工具感知的经分类的对象的示例网络。

图14示出了用于促进由自主运载工具感知的共享对象的示例移动性服务平台(msp)的框图。

图15示出了用于共享由自主运载工具感知的经分类的对象的示例过程的流程图。

图16示出了由边缘节点执行的用于共享由自主运载工具感知的经分类的对象的示例过程的流程图。

具体实施方式

在以下描述中,出于解释的目的阐述了众多特定细节以便提供对本发明的透彻理解。然而,将显而易见的是,可以在没有这些特定细节的情况下实践本发明。在其他情况下,以框图形式示出了公知的结构和设备,以避免不必要地使本发明模糊。

在附图中,为了易于描述,示出了示意性要素的特定布置或顺序,示意性要素诸如表示设备、模块、指令块和数据元素的那些示意性要素。然而,本领域技术人员应当理解,附图中的示意性要素的特定排序或布置并非暗示着需要特定的处理顺序或序列、或过程的分离。此外,在附图中包括示意性要素并不意味着暗示在所有实施例中都需要此类要素,或者在一些实施例中,由此类要素表示的特征可以不被包括在其他要素中或与其他要素组合。

此外,在附图中,在使用诸如实线或虚线或箭头的之类连接要素来说明两个或更多个其他示意性要素之间的连接、关系或关联的情况下,不存在任何此类连接要素并不意味着暗示没有连接、关系或关联可以存在。换句话说,要素之间的一些连接、关系或关联未在附图中示出,以免使本公开模糊。另外,为了易于说明,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,在连接要素表示信号、数据或指令的通信的情况下,本领域技术人员应当理解,此类要素如可根据需要来表示一个或多个信号路径(例如,总线)以影响通信。

现在将详细参照实施例,在附图中示出这些实施例的示例。在以下详细描述中,阐述了众多特定细节以便提供对各个所描述的实施例的透彻理解。然而,对本领域的普通技术人员将显而易见的是,无需这些特定细节就可实践所描述的各种实施例。在其他实例中,并未对公知方法、程序、组件、电路以及网络进行详细描述以免不必要地使实施例的多个方面模糊。

以下描述了若干特征,这些特征各自可以彼此独立地使用或者与其他特征的任何组合一起使用。但是,任何单个特征可能无法解决上面讨论的问题中的任一个,或者可能仅解决上面讨论的问题之一。上面讨论的问题中的一些可能无法通过本文描述的特征中的任一个完全解决。尽管提供了标题,但是在具有该标题的部分中没有找到与特定标题有关的信息也可以在说明书的其他地方找到。本文根据以下大纲描述实施例:

1.总体概述

2.硬件概述

3.自主运载工具架构

4.自主运载工具输入

5.自主运载工具规划

6.自主运载工具控制

7.共享由自主运载工具感知的经分类的对象

总体概述

在一些自主运载工具的操作环境中,自主运载工具与其他自主运载工具共享它们针对特定地区的对应的场景说明(例如,对象地图或列表)使得共同的并且更加准确的场景描述可由正在该地区行驶或计划未来在该地区行驶的自主运载工具(或相同队列中的自主运载工具)访问和使用可能是有利的。

在实施例中,虚拟网格重叠在地理区域(例如,城市)上,将该地理区域划分为一个或多个地区,其中每一个地区包括一个或多个单元。地区可具有相同数量的单元或不同数量的单元。单元可以是任何期望的大小或形状,诸如nxn正方形、mxn矩形、半径为r的圆形或任何其他期望的多边形。在地区中行驶的自主运载工具能够将它们对应的基于传感器的场景描述上传或传送到被位于该地区中或该地区附近的网络边缘节点。假定场景描述越旧,该场景描述就越不准确,则自主运载工具场景描述可包括可由边缘节点使用以用于确定场景描述的“过时度(staleness)”的时间戳。地区中的边缘节点使用场景描述来更新针对该地区的共同的并且更加准确的场景描述,下文中将其称为自主系统网格(asg)。asg包括基于以下一项或多项的针对地理区域的地区的最准确且最新的场景描述:由在该地区中行驶的自主运载工具提供的本地生成的场景描述、由位于该地区中的边缘节点或其他基础设施处的固定传感器(例如,相机)提供的场景描述、以及由基于云的资源(诸如,参考图14描述的msp1301)提供的场景描述(例如,静态地图)。

在更新asg之前,将由边缘节点接收的每一个场景描述与由该边缘节点从其他自主运载工具、固定传感器以及基于云的资源接收的其他场景描述相比较以确定离群场景描述。例如,离群检测算法可由边缘节点中的一个或多个处理点使用以确定离群对象。其他信息也可被用于确定离群对象。将离群场景描述丢弃,并且将剩余的场景描述用于更新asg。更新asg包括但不限于:添加对象、删除对象、更新移动的对象的位置、更新对象的速率、速度、加速度或朝向、以及更新对象的标签以更准确地描述对象。在实施例中,asg被分派指示其准确度的置信度分数,诸如从1到5的数字,其中5是高度准确的,1意味着低准确度。

在更新了asg后,对asg的访问可变得对正在该地区中行驶或计划未来在该地区中行驶的自主运载工具可用。asg可由网络中的一个或多个边缘节点存储,并且由一个或多个边缘节点使用任何合适的无线通信技术(例如,5g)、或使用其他通信信道(诸如,蜂窝塔、无线局域网(例如,wifi)以及运载工具至运载工具(v2v)通信)广播至自主运载工具。可使用任何合适的有损或无损压缩算法对asg进行压缩,并且由边缘服务器对asg进行加密和数字签名,以确保asg未被有意或无意地破坏。在实施例中,以对每个自主运载工具已知的共同或标准化的数据和/或信令格式将asg提供给自主运载工具,以确保跨不同队列的兼容性。

每一个自主运载工具可将asg与其对应的基于传感器的场景描述相比较以改善其对应的场景描述的准确度。该改进可包括但不限于:将先前未检测到的对象包括到由自主运载工具生成的当前场景描述中、被错误标记的对象、以及对动态对象的状态的校正,诸如对于对象的位置、速度、加速度或朝向的校正。自主运载工具也能够将asg用于路线规划以避免交通情况或临时环境影响(例如,建设区、道路封闭、交通拥堵、交通事故)。

在实施例中,边缘节点由受信任的集中式实体(诸如,参考图14所描述的msp)管理和控制。msp通过安全链路与每一个边缘节点通信,并且能够将软件更新和其他信息发送到边缘节点,软件更新和其他信息诸如算法更新、加密数据(例如,加密密钥)、安全信息(例如,黑名单)。在实施例中,可使用高速数据链路将在地区中的边缘节点以环连接(后文称为“地区环”),这些高速数据链路允许边缘节点彼此之间通信并且共享数据,并且允许这些边缘节点与在其他地区中的边缘节点通信并且共享数据。在示例中,边缘节点以双环、自愈拓扑连接,以在环中的边缘节点之间的链路发生故障的情况下确保数据流。

硬件概述

图1示出了具有自主能力的自主运载工具100的示例。

如本文中所使用,术语“自主能力”指使得运载工具能够在没有实时人类干预的情况下被部分地或完全地操作的功能、特征或设施,包括但不限于完全自主的运载工具、高度自主的运载工具以及有条件的自主运载工具。

如本文中所使用,自主运载工具(av)是具有自主能力的运载工具。

如本文中所使用,“运载工具”包括运输货物或人的装置。例如,汽车、公共汽车、火车、飞机、无人机、卡车、船只、船舶、潜水器、飞船等。无人驾驶汽车是运载工具的示例。

如本文中所使用,“轨迹”指的是用于将av从第一时空位置导航至第二时空位置的路径或路线。在实施例中,第一时空位置被称为初始或起始位置,且第二时空位置被称为目的地、最终位置、目标、目标地点或目标位置。在一些示例中,轨迹由一个或多个分段(例如,道路分段)组成,并且每一个分段由一个或多个块(例如,车道或交叉路口的部分)组成。在实施例中,时空位置与现实世界位置相对应。例如,时空位置是用于接载或卸放人或货物的接载或卸放位置。

如本文中所使用,“(多个)传感器”包括检测有关传感器周围的环境的信息的一个或多个硬件组件。硬件组件中的一些可包括感测组件(例如,图像传感器、生物计量传感器)、发射和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件(诸如,模数转换器)、数据存储设备(诸如,ram和/或非易失性存储)、软件或固件组件以及数据处理组件(诸如,asic(专用集成电路))、微处理器和/或微控制器。

如本文中所使用,“场景描述”是数据结构(例如,地图、列表)或数据流,该数据结构或数据流包括由av运载工具上的一个或多个传感器检测到的或由在av外部的源提供的一个或多个经分类或经标识的对象。

如本文中所使用,“道路”是可由运载工具穿行的物理区域,并且可以与经命名的通路(例如,城市街道、州际高速公路等)相对应,或可以与未经命名的通路(例如,住宅或办公建筑中的车道、停车场的一段、空地的一段以及乡村区域的土路等)相对应。由于一些运载工具(例如,四轮皮卡、运动型多功能车等)能够穿行各种并非专门针对运载工具行驶适配的物理区域,因此“道路”可以是并非由任何市政当局或其他政府或行政主体正式定义为通路的物理区域。

如本文中所使用,“车道”是可由运载工具穿行的道路的部分,并且可对应于车道标记之间的大多数或全部空间,或可对应于车道标记之间的空间中的仅一些(例如,少于50%)。例如,具有分隔较远的车道标记的道路可在标记之间容纳两个或更多个运载工具,使得一个运载工具能够在不穿行车道标记的情况下经过另一运载工具,并且可因此解释为具有比车道标记之间的空间更窄的车道,或在车道标记之间具有两个车道。在没有车道标记的情况下,车道也可被解释。例如,可能基于环境的物理特征来限定车道,例如,乡村区域中沿着通路的岩石和树木。

如本文中所使用,“边缘节点”是耦合至网络的一个或多个计算机,该网络提供用于与av通信的端口并且能够与其他边缘节点以及基于云的计算平台通信。

如本文中所使用,“边缘设备”是实现边缘节点并且将物理接入点(ap)提供至企业或服务提供商(例如,verizon、at&t)核心网络的设备。边缘设备的示例包括但不限于:路由器、路由交换器、集成接入设备(iad)、复用器、城域网(man)以及广域网(wan)接入设备。

“一个或多个”包括:由一个要素执行的功能;由多于一个的要素例如以分布式方式执行的功能;由一个要素执行的若干功能;由若干要素执行的若干功能;或上述的任何组合。

还将理解的是,虽然在一些实例中,术语第一、第二等在本文中用于描述各种要素,但这些要素不应受这些术语的限制。这些术语仅用于将一个要素与另一个区别开来。例如,第一接触件可被称为第二接触件,并且类似地,第二接触件可被称为第一接触件,而没有背离各个所描述的实施例的范围。第一接触件和第二接触件两者都是接触件,但它们并非相同的接触件。

在对本文中各个所描述的实施例的描述中使用的术语仅出于描述特定实施例的目的,而不旨在是限制性的。如在对所描述的各实施例和所附权利要求的描述中所使用,单数形式“一(a、an)”、和“该(the)”旨在也包括复数形式,除非上下文另外明确指出。还将理解的是,如本文中所使用的术语“和/或”是指并且包含相关联的所列项目中的任一个以及相关联的所列项目中的一个或更多个的所有可能的组合。将进一步理解的是,术语“包含(includes、including)”和/或“包括(comprises、comprising)””当在本申请文件中使用时,指明所陈述的特征、整数、步骤、操作、要素和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、要素、组件和/或其群组的存在或添加。

如本文中所使用,取决于上下文,术语“如果”任选地被解释为表示“当……时或“在……时”或“响应于确定了……”或“响应于检测到……”。类似地,取决于上下文,短语“如果确定了……”或“如果检测到(所陈述的条件或事件)”被任选地解释为表示“在确定了……后”或“响应于确定了……”或“在检测到(所陈述的条件或事件)后”或“响应于检测到(所陈述的条件或事件)”。

如本文中所使用,av系统指的是该av以及支持该av的操作的硬件、软件、存储的数据以及实时生成的数据的阵列。在实施例中,av系统被结合到av中。在实施例中,av系统跨若干位置分布。例如,av系统的软件中的一些实现在类似于下文关于图3描述的云计算环境300的云计算环境上。

总体上,本文描述适用于具有一个或多个自主能力的任何运载工具的技术,一个或多个自主能力包括完全自主的运载工具、高度自主的运载工具和有条件的自主运载工具,诸如分别为所谓的5级、4级和3级运载工具(参见sae国际标准j3016:与道路机动车辆自动驾驶系统相关的术语的分类和定义(taxonomyanddefinitionsfortermsrelatedtoon-roadmotorvehicleautomateddrivingsystems),其通过引用整体并入本文,以用于有关运载工具的自主级别的分类的更多详细信息)。本文描述的技术也适用于部分自主的运载工具和驾驶员辅助的运载工具,诸如所谓的2级和1级运载工具(参见sae国际标准j3016:与道路机动车辆自动驾驶系统相关的术语的分类和定义)。在实施例中,1级、2级、3级、4级和5级运载工具系统中的一个或多个可以基于传感器输入的处理在某些操作条件下使某些运载工具操作(例如,转向、制动和使用地图)自动化。本文描述的技术能够使从完全自主的运载工具到人工操作的运载工具的范围内的任何级别的运载工具受益。

参考图1,av系统120操作av100沿着轨迹198通过环境190至目的地199(有时被称为最终位置),同时避开对象(例如,自然障碍191、运载工具193、行人192、骑车者以及其他障碍物)并遵守道路规则(例如,操作规则或驾驶偏好)。

在实施例中,av系统120包括设备101,该设备101被装配成用于接收并作用于来自计算机处理器146的操作命令。在实施例中,计算处理器146与下文参照图3描述的处理器304类似。设备101的示例包括转向控件102、制动器103、齿轮、加速器踏板或其他加速控制机制、风挡雨刮器、侧门锁、窗户控件或转向指示器。

在实施例中,av系统120包括传感器121,用于测量或推断av100的状态或状况的属性,诸如av的位置、线速度和角速度和加速度、以及朝向(例如,av100前端的取向)。传感器121的示例是全球导航卫星系统(gnss)接收器、测量运载工具线加速度和角速度的惯性测量单元(imu)、用于测量或估计轮滑移率的轮速度传感器、轮制动压力或制动扭矩传感器、引擎扭矩或轮扭矩传感器以及转向角和角速度传感器。

在实施例中,传感器121也包括用于感测或测量av的环境的属性的传感器。例如,采用可见光、红外或热(或两者)光谱的单目或立体视频相机122、lidar123、雷达、超声传感器、飞行时间(tof)深度传感器、速度传感器、温度传感器、湿度传感器以及降水传感器。

在实施例中,av系统120包括数据存储单元142以及存储器144,用于存储与计算机处理器146相关联的机器指令或由传感器121收集的数据。在实施例中,数据存储单元142与下文描述的与图3有关的rom308或存储设备310类似。在实施例中,存储器144与下文描述的主存储器306类似。在实施例中,数据存储单元142和存储器144存储与环境190相关的历史信息、实时信息和/或预测信息。在实施例中,所存储的信息包括地图、驾驶性能、交通堵塞更新或天气状况。在实施例中,与环境190相关的数据从位于远程的数据库134通过通信信道被传送到av100。

在实施例中,av系统120包括通信设备140,用于将其他运载工具的状态和状况的所测量或所推断的属性(诸如位置、线速度和角速度、线加速度和角加速度、以及线性前进方向和角前进方向)传递至av100。这些设备包括运载工具到运载工具(v2v)和运载工具到基础设施(v2i)通信设备以及用于通过点对点或自组织网络或通过这两者进行无线通信的设备。在实施例中,通信设备140跨电磁频谱(包括无线电通信和光通信)或其他介质(例如,空气和声学介质)进行通信。v2v通信与v2i通信的组合(以及在一些实施例中,一个或多个其他类型的通信)有时被称为运载工具到外界(v2x)通信。v2x通信通常遵守用于与av通信、在av之间通信、在av之中通信的一个或多个通信标准。

在实施例中,通信设备140包括通信接口。例如,有线、无线、wimax、wi-fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从位于远程的数据库134传送到av系统120。在实施例中,位于远程的数据库134嵌入在如图2中所示的云计算环境200中。通信接口140将从传感器121收集的数据或与av100的操作相关的其他数据传送到位于远程的数据库134。在实施例中,通信接口140将与遥操作相关的信息传送到av100。在一些实施例中,av100与其他远程(例如,“云”)服务器136通信。

在实施例中,位于远程的数据库134也存储并传送数字数据(例如,存储诸如道路和街道位置之类的数据)。此类数据被存储在位于av100上的存储器144中,或通过通信信道从位于远程的数据库134被传送到av100。

在实施例中,位于远程的数据库134存储并传送有关运载工具的驾驶属性的历史信息(例如,速度和加速度分布),该运载工具之前曾在一天中类似的时间沿着轨迹198行驶。在一个实现中,此类数据可被存储在位于av100上的存储器144中,或通过通信信道从位于远程的数据库134被传送到av100。

位于av100上的计算设备146基于实时传感器数据和先前信息通过算法方式生成控制动作,从而允许av系统120执行其自主驾驶能力。

在实施例中,av系统120包括耦合至计算设备146的计算机外围设备132,用于向av100的用户(例如,乘客或远程用户)提供信息和警报以及接收来自该用户的输入。在实施例中,外围设备132与下文参照图3所讨论的显示器312、输入设备314以及光标控制器316类似。耦合是无线的或有线的。可以将接口设备中的任何两个或更多个集成到单个设备中。

图2示出了示例“云”计算环境。云计算是服务交付模型,用于实现到可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机以及服务)共享池的方便、按需的网络访问。在典型的云计算系统中,一个或多个大型云数据中心容纳被用于交付由云提供的服务的机器。现在参考图2,云计算环境200包括云数据中心204a、204b以及204c,它们通过云202被互连。数据中心204a、204b以及204c向连接到云202的计算机系统206a、206b、206c、206d、206e以及206f提供云计算服务。

云计算环境200包括一个或多个云数据中心。通常,云数据中心(例如图2中所示的云数据中心204a)指的是组成云(例如,图2中示出的云202)或云的特定部分的服务器的物理布置。例如,服务器在云数据中心物理地布置为房间、组、排以及机架。云数据中心具有一个或多个区域,这一个或多个区域区域包括一个或多个服务器房间。每一个房间具有一排或多排服务器,并且每一排包括一个或多个机架。每一个机架包括一个或多个单个服务器节点。在一些实现中,基于数据中心设施的物理基础设施要求(其包括功率、能源、热、热量和/或其他要求)将区域、房间、机架和/或排中的服务器被布置成组。在实施例中,服务器节点与图3中所述的计算机系统类似。数据中心204a通过许多机架而分布的许多计算系统。

云202包括云数据中心204a、204b以及204c以及网络和联网资源(例如,联网装备、节点、路由器、交换机以及联网电缆),这些网络和联网资源将云数据中心204a、204b以及204c互连,并帮助促进计算系统206a-f对云计算服务的访问。在实施例中,网络表示使用有线或无线链路耦合的一个或多个本地网络、广域网或互联网络的任何组合,有线和无线链路使用地面或卫星连接来部署。通过网络交换的数据使用任何数量的网络层协议进行传送,这些网络层协议诸如网际协议(ip)、多协议标签交换(mpls)、异步传输模式(atm)以及帧中继等。进一步地,在其中网络表示多个子网的组合的实施例中,在下方子网中的每一个子网处使用不同的网络层协议。在一些实施例中,网络表示一个或多个经互连的互联网络,诸如公共因特网。

计算系统206a-f或云计算设备消费方通过网络链路和网络适配器被连接至云202。在实施例中,计算系统206a-f被实现为各种计算设备,例如服务器、台式计算机、膝上型计算机、平板、智能手机、物联网(iot)设备、自主运载工具(包括,汽车、无人机、班车、火车、公共汽车等)以及消费者电子产品。在实施例中,计算系统206a-f在其他系统中实现或实现为其他系统的部分。

在示例中,云计算环境200可包括移动性服务平台(msp)1301,如参照图14更为完整地所描述。

图3示出了计算机系统300。在实现中,计算机系统300是专用计算设备。专用计算机设备是硬连线的以执行技术,或包括被持久地编程以执行技术的数字电子设备(诸如,一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)),或可包括被编程以依照固件、存储器、其他存储或其组合内的程序指令来执行技术的一个或多个通用硬件处理器。此类专用计算设备还可将定制的硬连线逻辑、asic或fpga与定制的编程进行组合,以实现这些技术。在各种实施例中,专用计算设备是台式计算机系统、便携式计算机系统、手持式设备、网络设备或包含用于实现这些技术的硬连线和/或程序逻辑的任何其他设备。

在实施例中,计算机系统300包括用于传送信息的总线302或其他通信机制、以及与总线304耦合以用于处理信息的硬件处理器302。硬件处理器304例如是通用微处理器。计算机系统300还包括主存储器306(诸如,随机存取存储器(ram)或其他动态存储设备),该主存储器耦合至总线302,用于存储信息以及用于由处理器304执行的指令。在一个实现中,主存储器306被用来在用于处理器304执行的指令的执行期间存储临时变量或其他中间信息。此类指令在被存储在对于处理器304可访问的非暂态存储介质中时将计算机系统300呈现为被定制成用于执行这些指令中指定的操作的专用机器。

在实施例中,计算机系统300进一步包括耦合至总线302的、用于存储用于处理器304的静态信息和指令的只读存储器(rom)308或其他静态存储设备。提供存储设备310,并且该存储设备耦合至总线302以用于存储信息和指令,该存储设备诸如,磁盘、光盘、固态驱动器、或三维交叉点存储器。

在实施例中,计算机系统300经由总线302耦合至显示器312以向计算机用户显示信息,该显示器312诸如,阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、发光二极管(led)显示器、或有机发光二极管(oled)显示器。包括字母数字及其他键的输入设备314耦合至总线302,以将信息和命令选择传送到处理器304。另一类型的用户输入设备是用于将方向信息和命令选择传送到处理器304并用于控制显示器312上的光标移动的光标控制器316,诸如,鼠标、轨迹球、启用触摸的显示器或光标方向键。该输入设备典型地具有两个轴(第一轴(例如,x轴)和第二轴(例如,y轴))上的两个自由度,这允许设备指定平面中的位置。

根据一个实施例,本文中的技术由计算机系统300响应于处理器304执行主存储器306中所包含的一条或多条指令的一个或多个序列而执行。此类指令从另一存储介质(诸如,存储设备310)被读取到主存储器306中。对主存储器306中所包含的指令序列的执行使得处理器304执行本文中所描述的过程步骤。在替代实施例中,替软件指令使用硬连线电路,或者与软件指令组合地使用硬连线电路。

本文中所使用的术语“存储介质”是指存储使得机器以特定方式进行操作的数据和/或指令的任何非暂态介质。此类存储介质包括非易失性介质和/或易失性介质。非易失性介质包括例如,光盘、磁盘、固态驱动器或三维交叉点存储器,诸如存储设备310。易失性介质包括动态存储器,诸如主存储器306。常见形式的存储介质包括例如,软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁数据存储介质、cd-rom、任何其他光学数据存储介质、具有孔图案的任何物理介质、ram、prom和eprom、闪存-eprom、nv-ram、或任何其他存储芯片或盒式存储器。

存储介质与传输介质不同,但可以与传输介质一同使用。传输介质参与在存储介质之间传输信息。例如,传输介质包括同轴电缆、铜导线和光纤,包括含总线302的导线。传输介质还可以采取声波或光波的形式,诸如那些在无线电波和红外数据通信期间生成的波。

在实施例中,各种形式的介质涉及将一条或多条指令的一个或多个序列承载至处理器304以供执行。例如,指令最初被承载在远程计算机的磁盘或固态驱动器上。远程计算机将这些指令加载到其动态存储器中,并使用调制解调器通过电话线发送这些指令。计算机系统300本地的调制解调器在电话线上接收数据,并使用红外发射器将该数据转换为红外信号。红外检测器接收红外信号中承载的数据,并且适当的电路将该数据置于总线302上。总线302将数据承载至主存储器306,处理器304从该主存储器306检取指令并执行这些指令。由主存储器306接收的指令可在由处理器304执行之前或之后任选地被存储在存储设备310上。

计算机系统300还包括耦合至总线302的通信接口318。通信接口318提供到网络链路320的双向数据通信耦合,该网络链路320连接至本地网络322。例如,通信接口318是集成服务数字网络(isdn)卡、电缆调制解调器、卫星调制解调器、或用于提供到对应类型的电话线的数据通信连接的调制解调器。作为另一示例,通信接口318是用于提供到兼容的局域网(lan)的数据通信连接的lan卡。在一些实现中,还实现了无线链路。在任何此类实现中,通信接口318发送和接收承载表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。

网络链路320典型地提供通过一个或多个网络到其他数据设备的数据通信。例如,网络链路320提供通过本地网络322到主机计算机324或到由互联网服务提供商(isp)326运营的云数据中心或装备的连接。isp326进而通过世界范围的分组数据通信网络(现在通常被称为“因特网”328)提供数据通信服务。本地网络322和因特网328两者均使用承载数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路320上和通过通信接口318的信号是示例形式的传输介质,这些信号承载去往和来自计算机系统300的数字数据。在实施例中,网络320包含上文所述的云202或云202的部分。

计算机系统300通过(多个)网络、网络链路320和通信接口318发送消息并接收包括程序代码的数据。在实施例中,计算机系统300接收代码以用于处理。所接收的代码在其被接收时由处理器304执行,和/或被存储在存储设备310和/或其他非易失性存储中以供稍后执行。

自主运载工具架构

图4示出了用于自主运载工具(例如,图1所示的av100)的示例架构400。架构400包括感知模块402(有时被称为感知电路)、规划模块404(有时被称为规划电路)、控制模块406(有时被称为控制电路)、定位模块408(有时被称为定位电路)以及数据库模块410(有时被称为数据库电路)。每一个模块都在av100的操作中发挥作用。模块402、404、406、408以及410一起可以是图1所示的av系统120的部分。在一些实施例中,模块402、404、406、408以及410中的任一个是计算机软件(例如,存储在计算机可读介质上的可执行代码)以及计算机硬件(例如,一个或多个微处理器、微控制器、专用集成电路(asic)、硬件存储器设备、其他类型的集成电路、其他类型的计算机硬件或上述这些事物中的任何事物或所有事物的组合)的组合。

在使用中,规划模块404接收表示目的地412的数据,并确定表示轨迹414(有时被称为路线)的数据,av100可沿该轨迹行驶以到达(例如,抵达)目的地412。为了使规划模块404确定表示轨迹414的数据,规划模块404接收来自感知模块402、定位模块408以及数据库模块410的数据。

感知模块402使用一个或多个传感器121(例如,也如图1中所示)标识附近的物理对象。对象经分类(例如,被编组为诸如行人、自行车、机动车、交通标志等的类型),并且包括经分类的对象416的场景描述被提供给规划模块404。

规划模块404也接收来自定位模块408的表示av位置418的数据。定位模块408通过使用来自传感器121的数据以及来自数据库模块410的数据(例如,地理数据)来计算位置从而确定av位置。例如,定位模块408使用来自gnss(全球导航卫星系统)传感器的数据并使用地理数据来计算av的经度和纬度。在实施例中,由定位模块408使用的数据包括:道路几何属性的高精度地图、描述道路网络连接性属性的地图、描述道路物理属性(诸如交通速度、交通量、车辆和自行车行车道的数量、车道宽度、车道交通方向或车道标记类型和位置或其组合)的地图、以及描述道路特征(诸如人行横道、交通标志或各种类型的其他行驶信号)的空间位置的地图。

控制模块406接收表示轨迹414的数据以及表示av位置418的数据,并以将使得av100沿轨迹414行驶至目的地412的方式操作av的控制功能420a-c(例如,转向、节流、制动、点火)。例如,如果轨迹414包括左转向,则控制模块406将以如下方式操作控制功能420a-c,该方式使得转向功能的转向角度将使得av100左转且节流和制动将使得av100在作出转向前停下并等待通行的行人或车辆。

自主运载工具输入

图5示出了由感知模块402(图4)所使用的输入502a-d(例如,图1所示的传感器121)以及输出504a-d(例如,传感器数据)的示例。一个输入502a是lidar(光检测和测距)系统(例如,图1所示的lidar123)。lidar是使用射线(例如,诸如红外射线的射线的猝发)以获得有关其视线内的物理对象的数据的技术。lidar系统产生lidar数据作为输出504a。例如,lidar数据是被用于构建环境190的表示的3d或2d点的集合(也称为点云)。

另一输入502b是雷达系统。雷达是使用无线电波以获取有关附近物理对象的数据的技术。雷达可获取有关不在lidar系统视线内的对象的数据。雷达系统502b生成雷达数据作为输出504b。例如,雷达数据是被用于构建环境190的表示的一个或多个射频电磁信号。

另一输入502c是相机系统。相机系统使用一个或多个相机(例如,使用诸如电耦合器件(ccd)之类的光传感器的数码相机)以获得有关附近物理对象的信息。相机系统产生相机数据作为输出504c。相机数据通常采取图像数据的形式(例如,诸如raw、jpeg、png等图像数据格式的数据)。在一些示例中,相机系统具有例如用于立体视觉的多个独立相机,这使得相机系统能够感知深度。尽管由相机系统感知的对象在本文中被描述为“附近”,但这是相对于av的。在使用中,相机系统可被配置成用于“看见”远处的对象,例如,位于av前方多达一公里或更远的对象。相应地,相机系统可具有诸如被优化以感知远处对象的传感器以及透镜之类的特征。

另一输入502d是交通灯检测(tld)系统。tld系统使用一个或多个相机以获得有关交通灯、街道标志以及提供视觉导航信息的其他物理对象的信息。tld系统产生tld数据作为输出504d。tld数据通常采取图像数据的形式(例如,诸如raw、jpeg、png等图像数据格式的数据)。tld系统与结合了相机的系统的不同之处在于,tld系统使用具有广视场(例如,使用广角透镜或鱼眼透镜)的相机以获得有关提供视觉导航信息的尽可能多的物理对象的信息,从而使得av100能够访问由这些对象提供的所有相关的导航信息。例如,tld系统的视角可以是大约120度或更大。

在一些实施例中,输出504a-d是使用传感器融合技术被组合的。因此,各个输出504a-d被提供给av100的其他系统(例如,被提供给如图4所示的规划模块404),或者经组合的输出能够以相同类型(例如,使用相同的组合技术,或组合相同的输出,或这两者)或不同类型(例如,使用不同的对应组合技术,或组合不同的对应输出,或这两者)的单个经组合的输出或多个经组合的输出的形式被提供至其他系统,。在一些实施例中,使用早期融合技术。早期融合技术通过在一个或多个数据处理步骤被应用到经组合的输出之前将输出组合来表征。在一些实施例中,使用后期融合技术。后期融合技术通过在一个或多个数据处理步骤被应用到各个输出之后将输出组合来表征。

图6示出了lidar系统602的示例(例如,图5中所示的输入502a)。lidar系统602从光发射器606(例如,激光发射器)发出射线604a-c。由lidar系统发出的射线通常不在可视频谱内;例如,通常使用红外射线。发出的射线604b中的一些遇到物理对象608(例如,运载工具)并往回反射到lidar系统602。(由lidar系统发射的射线通常不穿透物理对象,例如,以固态存在的物理对象。)lidar系统602也具有一个或多个光检测器610,其检测反射的射线。在实施例中,与lidar系统相关联的一个或多个数据处理系统生成图像612,该图像612表示lidar系统的视场614。图像612包括表示物理物理608的边界616的信息。以此方式,图像612被用于确定av附近的一个或多个物理对象的边界616。

图7示出了操作中的lidar系统602。在该图中示出的场景中,av100接收图像702形式的相机系统输出504c以及lidar数据点704形式的lidar系统输出504a。在使用中,av100的数据处理系统将图像702与数据点704相比较。具体而言,在图像702中被标识的物理对象706也在数据点704中被标识。以此方式,av100基于数据点704的轮廓和密度感知物理对象的边界。

图8更详细地示出了lidar系统602的操作。如上文所述,av100基于由lidar系统602检测到的数据点的特性来检测物理对象的边界。如图8中所示,平的对象(诸如,地面802)将以一致的方式反射由lidar系统602发射的射线804a-d。换言之,由于lidar系统602使用一致的间隔发出射线,因此地面802将会以同样一致的间隔将射线往回反射至lidar系统602。随着av100在地面802上行驶,如果没有物体阻碍道路,则lidar系统602将继续检测由下一有效地面点806反射的射线。然而,如果对象808阻碍了道路,则由lidar系统602发射的射线804e-f将以与所预期的一致方式不一致的方式从点810a-b被反射。从该信息中,av100可判定存在对象808。

路径规划

图9示出了规划模块404(例如,如图4中所示)的输入与输出之间的关系的框图900。通常,规划模块404的输出是从起点904(例如,源位置或初始位置)到终点906(例如,目的地或最终位置)的路线902。路线902通常由一个或多个分段定义。例如,分段是指在街道、道路、公路、车道或其他适合机动车行驶的物理区域的至少一部分上行驶的距离。在一些示例中,例如,如果av100是具有越野能力的运载工具(诸如,四轮驱动(4wd)或全轮驱动(awd)汽车、suv、皮卡等),则路线902包括诸如未铺砌道路或开放空地的“越野”分段。

除路线902之外,规划模块也输出车道级别路线规划数据908。车道级别路线规划数据908被用于基于分段在特定时间的状况来遍历路线902的分段。例如,如果路线902包括多车道公路,则车道级别路线规划数据908包括轨迹规划数据910,av100可使用该轨迹规划数据,例如基于是否正接近出口、车道中的一个或多个车道是否有其他运载工具、或在几分钟或更短时间内变化的其他因素在多个车道中选择车道。类似地,在一些实现中,车道级别路线规划数据908包括特定于路线902的分段的速度约束912。例如,如果分段包括行人或预期外的交通,则速度约束912可将av100限制到低于预期速度(例如,基于用于该分段的速度限制数据的速度)的行驶速度。

在实施例中,向规划模块404的输入包括(例如,来自图4中所示的数据库模块410的)数据库数据914、当前位置数据916(例如,图4中所示的av位置418)、(例如,用于图4中所示的目的地412的)目的地数据918以及对象数据920(例如,由如图4所示的感知模块402感知的包括经分类的对象416的场景描述)。在一些实施例中,数据库数据914包括规划中使用的规则。规则使用正式语言来指定,例如,使用布尔逻辑来指定。在由av100遇到的任何给定情况中,规则中的至少一些将应用于该情况。如果规则具有基于可用于av100的信息(例如,有关周围环境的信息)而被满足的条件,则该规则应用于给定情况。规则可具有优先级。例如,规则“如果道路为高速公路,则移动至最左侧车道”可具有比“如果一英里以内正接近出口,则移动至最右侧车道”更低的优先级。

图10示出了在(例如,由规划模块404(图4)执行的)路线规划中使用的有向图1000。总体上,如图10中所示的有向图那样的有向图1000被用于确定任何起点1002与终点1004之间的路径。在现实世界术语中,分隔起点1002和终点1004的距离可以相对较大(例如,在两个不同的城市区域中)或可以相对较小(例如,紧邻城市街区的两个交叉口或多车道道路的两个车道)。

在实施例中,有向图1000具有节点1006a-d,其表示能够由av100占据的起点1002与终点1004之间的不同位置。在一些示例中,例如,当起点1002和终点1004表示不同城市区域时,节点1006a-d表示道路的分段。在一些示例中,例如,当起点1002和终点1004表示相同道路的不同位置时,节点1006a-d表示该道路上的不同位置。以此方式,有向图1000包括采用不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大比例的另一有向图的子图。例如,在其中起点1002距终点1004较远(例如,相距很多英里)的有向图的大多数信息具有低粒度且基于所存储的数据,但对于该图的、表示av100的视场内的物理位置的部分也包括一些高粒度信息。

节点1006a-d与对象1008a-b不同,对象1008a-b不能与节点重叠。在实施例中,当粒度为低时,对象1008a-b表示不能被机动车穿行的区域,例如,没有街道或道路的区域。当粒度为高时,对象1008a-b表示av100的视场内的物理对象,例如,其他机动车、行人、或av100无法与其共享物理空间的其他实体。在实施例中,对象1008a-b中的一些或全部是静态对象(例如,不改变位置的对象,诸如街灯或电线杆)或动态对象(例如,能够改变位置的对象,诸如行人或其他车辆)。

节点1006a-d由边1010a-c连接。如果两个节点1006a-b由边1010a连接,则av100可能在一个节点1006a于另一节点1006b之间行驶,例如,不必在抵达另一节点1006b之前行驶至中间节点。(当我们提到av100在节点之间行驶时,我们是指av100在由相应节点表示的两个物理位置之间行驶。)在av100从第一节点行驶至第二节点或从第二节点行驶至第一节点的意义上,边1010a-c通常是双向的。在实施例中,在av100能从第一节点行驶至第二节点但av100无法从第二节点行驶至第一节点的意义上,边1010a-c是单向的。当边1010a-c表示例如单行道、街道、道路或公路的各个车道、或由于法律或物理约束仅能在一个方向穿行的其他特征时,边1010a-c是单向的。

在实施例中,规划模块404使用有向图1000来标识由起点1002与终点1004之间的节点和边组成的路径1012。

边1010a-c具有相关联的成本1014a-b。成本1014a-b是表示如果av100选择该边则将被花费的资源的值。典型的资源为时间。例如,如果一条边1010a表示另一边1010b两倍的物理距离,则第一边1010a的相关联的成本1014a可以是第二边1010b的相关联的成本1014b的两倍。影响时间的其他因素包括预期交通、交叉路口数量、速度限制等。另一典型的资源为燃料经济性。两条边1010a-b可表示相同的物理距离,但是一条边1010a可能比另一边1010b需要更多的燃料(例如,由于道路状况、预期天气等)。

当规划模块404标识起点1002与终点1004之间的路径1012时,规划模块404通常选择针对成本优化的路径,例如,当各个边的成本加在一起时具有最低总成本的路径。

自主运载工具控制

图11示出了(例如,如图4中所示的)控制模块406的输入和输出的框图1100。控制模块根据控制器1102操作,该控制器1102包括例如与处理器304类似的一个或多个处理器(例如,一个或多个计算机处理器,诸如,微处理器、或微控制器、或这两者)、与主存储器306、rom1308以及存储设备210类似的短期和/或长期数据存储(例如,存储器随机存取存储器、或闪存、或这两者)、以及存储在存储器内的指令,当该指令被执行(例如,由一个或多个处理器执行)时执行控制器1102的操作。

在实施例中,控制器1102接收表示期望输出1104的数据。期望输出1104通常包括速度,例如,速率和朝向。期望输出1104可基于例如从(例如,如图4所示的)规划模块404接收的数据。根据期望输出1104,控制器1102生成可用作节流输入1106以及转向输入1108的数据。节流输入1106表示例如通过接合转向踏板、或接合另一节流控件以实现期望输出1104来接合av100的节流(例如,加速控制)所按照的幅度。在一些示例中,节流输入1106也包括可用于接合av100的制动(例如,减速控制)的数据。转向输入1108表示转向角,例如,av的转向控件(例如,方向盘、转向角致动器或用于控制转向角的其他功能)为实现期望输出1104而应当被定位所处于的角度。

在实施例中,控制器1102接收反馈,该反馈被用于调整被提供给节流和转向的输入。例如,如果av100遇到了干扰1110,诸如山,则av100的测量速度1112降低至预期输出速度。在实施例中,任何测量输出1114都被提供至控制器1102,使得例如基于测量速度与期望输出之间的差异1113执行必要的调整。测量输出1114包括测量位置1116、测量速度1118(包括速率和朝向)、测量加速度1120以及可由av100的传感器测量的其他输出。

在实施例中,有关干扰1110的信息被事先检测(例如,由诸如相机或lidar传感器之类的传感器检测),并被提供至预测性反馈模块1122。预测性反馈模块1122随后向控制器1102提供信息,控制器1102可使用该信息以相应地调整。例如,如果av100的传感器检测到(“看见”)山,则该信息可被控制器1102使用以准备在合适的时间接合油门以避免显著的减速。

图12示出了控制器1102的输入、输出以及组件的框图1200。控制器1102具有速度分析器1202,该速度分析器1202影响节流/制动控制器1204的操作。例如,取决于例如由控制器1102接收并由速度分析器1202处理的反馈,速度分析器1202使用油门/制动器1206指示节流/制动控制器1204接合加速或接合减速。

控制器1102还具有横向跟踪控制器1208,该横向跟踪控制器1208影响转向控制器1210的操作。例如,取决于例如由控制器1102接收且由横向跟踪控制器1208处理的反馈,横向跟踪控制器1208指示转向控制器1204调整转向角致动器1212的位置。

控制器1102接收用于确定如何控制油门/制动器1206以及转向角致动器1212的若干输入。规划模块404提供由例如控制器1102使用以便当av100开始操作时选择朝向并且当av100到达交叉路口时确定要穿行哪个路段的信息。定位模块408向控制器1102提供例如描述av100的当前位置的信息,从而使得控制器1102能够判定av100是否位于基于油门/制动器1206以及转向角致动器1212正被控制所按照的方式而预期的位置。在实施例中,控制器1102从其他输入1214接收信息(例如,从数据库、计算机网络等接收的信息)。

共享由av感知的经分类的对象

图13示出了用于共享由av感知的经分类的对象的示例网络1300。在实施例中,虚拟网格重叠在地理区域(例如,城市)上,从而将该区域划分为地区,其中每一个地区包括一个或多个单元。地区可具有相同数量的单元或不同数量的单元。单元可以是任何期望的大小或形状,诸如nxn正方形、mxn矩形、半径为r的圆形或任何其他期望的多边形。在所示出的示例中,网络1300是服务地理区域中的两个区域的多接入边缘计算(mec)网络,该两个地区为:地区1和地区2。网络1300包括通过核心网络1304耦合至边缘节点1302、1303的msp1301。边缘节点1302、1303通过有线回程(例如,光纤、以太网)耦合至msp1301并且彼此互相耦合。在替代环境中,回程是无线回程、或有线回程和无线回程的混合。核心网络1304是“分布式骨干”网络,该“分布式骨干”网络使用路由器、交换机以及集线器以将网络1300的各个部分互连,并且为不同的局域网(lan)、无线lan(wlan)或子网之间的信息的交换提供路径。核心网络实现网络和数据链路层技术,包括例如,异步传输模式(atm)、网际协议(ip)、同步光学联网(sonet)以及千兆以太网技术。

网络1300允许在蜂窝网络或任何其他网络的边缘处的云计算能力以及信息技术(it)服务环境。网络1300在更靠近av的位置处运行av应用并且执行相关的av处理任务,以减少网络拥塞并且改善av应用的性能。在实施例中,网络1300在蜂窝基站或其他边缘设备处实现,并且使得新的av应用和针对av的服务能够灵活且快速地部署。网络1300也允许蜂窝运营商向经授权的第三方(诸如,应用开发商以及内容提供商)开放他们的无线电介入网络(ran),以通过边缘节点1302、1303向av递送内容。

边缘节点1302、1303可包括一个或多个计算机处理器和其他硬件,包括但不限于无线收发器和数据存储设备,用于接收消息并向av以及在地区1和2中的其他边缘节点以及在未在图13中示出的在网络1300中的其他地区中的边缘节点无线地传送信息。边缘节点1302、1303被配置成用于无线地和/或通过有线连接连接至msp1301,以从msp1301接收软件/固件更新、安全信息和其他数据并将数据发送到msp1301。在实施例中,边缘节点1302、1303自主地操作和/或由msp1301控制。在另一实施例中,边缘节点1302、1303由“主-从”配置中的主边缘节点控制或管理。在实施例中,边缘节点1302、1303被耦合至用于检测和标识局部环境中的对象的一个或多个传感器(例如,相机、雷达、声呐、lidar)。边缘节点1302、1303使用任何已知的无线通信技术/协议(例如,2g、3g、4g、5g、wifi、蓝牙、dsrc、近场、卫星互联网等)通信。

在实施例中,边缘节点1302、1303在容纳在固定的物理结构(例如,公用设施箱)中的边缘设备中实现以保护硬件免受环境、篡改以及故意破坏的影响。物理结构可以是附接至建筑(例如,政府建筑)、电线杆或塔(例如,蜂窝塔、路灯、电话线杆)、广告牌、桥梁、公交站或火车站、交通信号灯以及任何其他固定的物理结构的路边单元。边缘节点1302、1303可以是av或其他运载工具。

在所示出的示例中,地理区域(例如,城市)被划分为地区1和地区2,如虚线所示。地区1包括边缘节点1302以及行驶在道路分段1306上的av1305。地区2包括边缘节点1303以及行驶在道路分段1308上的av1307。av1307在道路分段1308上遭遇了交通事故。板载于av1307上的传感器检测三个对象1309(行人)、1310(停靠的运载工具)以及1311(行人)并对它们进行分类。此外,在地区2中并且耦合至边缘节点1303的一个或多个传感器1314(例如,相机、lidar、雷达)捕获交通事故的图像。板载于av1307上的感知模块/电路(例如,图4中示出的感知模块1402)生成包括对象1309、1310、1311的场景描述1312,并且通过无线通信链路(例如,5g)将场景描述1312传送到边缘节点1303。

边缘节点1303使用场景描述以更新存储在存储设备1315中的asg1316。如先前所述,在任何给定的时间,asg1316是针对地区2的最准确、完整且最新的对象地图。asg1316以加密形式被存储在存储设备1315中,并且使用无线接入点(例如,无线收发器)被广播至在其通信范围内操作的av(例如,av1307)。边缘节点1303接收来自在边缘节点1303的通信范围内的任何(或经授权的)av的场景描述。边缘节点1303也使用由一个或多个传感器1314捕获的图像生成其自身的场景描述。在实施例中,边缘节点1303也可从msp1301接收asg更新1317。在实施例中,边缘节点1303仅接受来自经认证的av的场景描述,并且在接受场景描述之前与每一个av执行认证。在实施例中,仅来自特定队列的av才能将它们的场景描述贡献给asg。

边缘节点1303对其接收的每一个场景描述执行一个或多个验证测试以标识任何离群场景描述。在实施例中,边缘节点1303将离群检测算法应用于场景描述。离群检测算法的示例包括但不限于:z-分数(z-score)或极值分析(参数)、概率和统计建模(参数)、线性回归模型(pca、lms)、基于邻近度的模型(非参数)、信息理论模型以及高维离群对象检测方法(高维稀疏数据)。所检测到的任何离群屏幕描述将被丢弃并且不会被用于更新asg1316。剩余的场景描述由边缘节点1303使用以更新asg1316。在实施例中,用于场景描述的时间戳和/或用于场景描述中的对象的时间戳判定是否排除特定的场景描述用于更新asg1316。在实施例中,具有超出年龄阈值的时间戳的场景描述被排除用于更新asg1316。对于在其中场景描述中的每一个对象均与时间戳相关联的场景描述,最旧的对象时间戳被指定为该场景描述的时间戳。

更新asg1316包括但不限于:添加对象、删除对象、更新移动的对象的位置、更新该对象的速率、速度、加速度或朝向以及更新该对象的标签以用于更准确地描述该对象。asg1316在其从边缘节点1303被广播之前也被加时间戳。在实施例中,asg1316被分派指示其准确度的置信度分数,诸如从1到5的数字,其中5是高度准确的,1意味着低准确度。可使用任何合适的算法或技术生成置信度分数,并且该置信度分数可使用指示准确度的任何可用的信息。例如,置信度分数可以通过包括影响准确度的加权因子之和的函数来计算。权重(例如,0与1之间的数字)可以基于对边缘节点变得可用的新信息而是固定的或自适应的,使得具有最大影响的因子比其他因子接收更高的权重。

在更新了asg1316后,对asg1316的访问变得可用于正在该地区行驶或计划行驶穿过该地区的自主运载工具。可以使用任何合适的无线通信技术(例如,5g)或通过其他通信信道(诸如,蜂窝塔、无线局域网(例如,wifi)以及v2v或v2i通信)、通过网络1300中的任何边缘节点将asg1316传送到任何av。在实施例中,av被允许使用由边缘节点1303、网络1300中的另一边缘节点或msp1301提供的统一资源标识符(uri)或统一资源定位符(url)直接访问存储在存储设备1313(例如,数据库、共享存储器)中的asg1316。可使用任何合适的有损或无损压缩算法对asg1316进行压缩,并且由边缘服务器1303对asg1316进行加密和数字签名,以确保asg1316未被有意或无意地破坏。在实施例中,以每一个av工具已知的共同的或标准化的数据和/或通信信令格式将asg1316提供给av,以确保跨不同的av队列的兼容性。

在接收到asg1316时,在av上操作的感知模块电路能够将asg1316与其基于传感器的场景描述相比较以改善其基于传感器的场景描述的准确度。该准确度的改善是通过包括以下各项而实现的:将先前未检测到的对象包括到av的最新的场景描述;被错误标记的对象;以及对动态对象的状态的校正,诸如,对于对象的位置、速度、加速度或朝向的校正。

av也能够将asg1316用于路线规划以避免交通情况或临时环境影响(例如,建设区、道路封闭、交通拥堵、交通事故),诸如,在本示例中在地区2中发生的。例如,在道路分段1306上行驶的av1305能够通过高速有线回程直接从边缘节点1303和/或msp1301接收asg更新1317。在av1305中操作的感知模块电路或规划模块电路可使用asg更新1317来更新其自身的本地存储的asg1316或更新其规划路线。例如,感知模块电路能够将其本地存储的场景描述与asg1316相比较以判定这两者之间是否存在任何差异。感知模块电路随后能够基于与asg更新1317一起被包括的置信度分数以及其在该感知模块电路的自身的本地生成的场景描述中具有的置信度来判定是否要利用来自asg更新1317的数据来更新该感知模块电路的本地生成的场景描述。规划模块电路能够使用asg更新1317以在道路分段1320上规划新的路线,从而避免由asg更新1317指示的在路线1308上的交通事故。

在实施例中,网络1300中的所有边缘节点通过有线或无线通信链路、或通过msp1301来彼此通信。边缘节点彼此共享其针对其地区的对应的asg。以此方式,每一个边缘节点存储用于网络1300中所有其他节点的asg。当av第一次进入由网络1300覆盖的地理区域时,所遇到的第一个边缘节点将接收av穿过该地理区域(例如,城市)的规划路线,该规划路线可通过无线链路(例如5g)被发送。使用规划路线,边缘节点能够选择用于所有地区的包括针对av的规划路线的至少部分的asg,并将这些asg发送到av。使用来自边缘节点的asg,av能够规划新的路线以避免穿过地理区域的延迟。此外,当av在边缘节点的通信范围内时,使asg存储在av中允许从每一个边缘节点沿规划路径的增量更新。增量更新仅包括存储在边缘节点处的asg的改变的部分而非整个asg。由于更少的数据通过无线链路被传送,这允许更快的数据传输。

示例移动性服务平台(msp)

图14示出了用于促进由av感知的共享对象的示例msp1301的框图。在实施例中,msp1301是分布式计算平台,该分布式计算平台包括用于将可缩放的发布/订阅消息队列用作分布式事务日志来处理实时数据馈送的数据流处理流水线架构。在一些示例性实施例中,msp1301包括消息总线1401、消息引擎1402和(多个)数据库1410。在一些示例性实施例中,msp1301任选地包括变换引擎1403。在一些示例性实施例中,msp1301任选地包括操作引擎1404。在一些示例性实施例中,msp1301任选地包括情报引擎1405。在一些示例性实施例中,msp1301任选地包括分析引擎1406。在实施例中,引擎1402-1406中的一个或多个引擎各自是在msp1301的一个或多个服务器上运行的软件方法的实例。这些软件实例被配置成用于使用消息总线1401彼此通信。引擎1402-1406的多个实例可以同时运行。引擎1402-1406提供ota服务(例如,软件更新、客户端连接性、远程控制和操作监视)及数据服务(例如,数据摄取、数据存储/管理、数据分析、实时处理和数据检取控制)。

在实施例中,在一个或多个服务器上运行的负载均衡器(未图示)通过监听连接到移动性客户端1400(例如,av100)以访问ota服务的一个或多个端口来管理来自移动性客户端1400的连接请求。负载均衡器将请求转发给具有运行的消息引擎1402的至少一个实例的后端服务器。在实施例中,负载均衡器保持持久性(服务器亲和性)以确保来自移动性客户端1400的连接和后续请求在服务中断(例如,由于连接丢失)之后被发送到相同的服务器。由移动性客户端1400发送的消息可以任何已知的数据互换格式(诸如,可扩展标记语言(xml)或脚本对象简谱(json))被格式化。

在实施例中,消息总线1401由分布式流送平台实现。分步式流送平台发布和订阅消息(也称为“记录”)流,将消息流存储在(多个)数据库1407中,并且提供能够在引擎1402-1406之间传输消息流的实时流送数据流水线。示例消息总线1401是apache分布式流送平台。在实施例中,消息的消费者可以订阅特定的“主题”以从消息总线1401检取针对那个主题的消息。主题是消息被发布到的类别或馈送名称。该主题是多订阅者的,并且可以具有订阅被写入到该主题的数据的零个、一个或许多个消费者。原始输入数据从主题被消费,然后被聚合、充实或以其他方式变换成新主题以供msp1301的其他消费者进一步消费或后续处理。

在实施例中,为移动性客户端1400创建数据结构1408,并且该数据结构1408被存储在一个或多个数据库1407中。数据结构1408是移动性客户端的基于云的虚拟表示。数据结构1408可以用于监视、诊断和预测以优化移动性客户端1400的性能和利用。传感器数据可以与历史数据、人类专业知识、队列以及模拟学习相结合,以改善预测的结果。msp1301使用移动性客户端1400的数字孪生(digitaltwins)来发现与ota操作相关的问题的根本原因并解决那些问题。每一个引擎1402-1406的每一个实例可以创建用于特定移动性客户端的数据结构1408的副本,并且读取数据结构1408中的数据或将数据写入数据结构1408中的任何字段1408b-1408f。用于每个移动性客户端1400的数据结构1408的副本可以存储在多个分布式数据库中。由msp101实现的后台进程可以维持存储在分布式数据库上的数据结构1408的不同副本之间的一致性。

在实施例中,数据结构1408包括用于在移动性客户端1400与msp1301之间交换数据的多个字段。在所示的示例中,这些字段包括但不限于:移动性客户端id字段1408a、状态流/状态字段1408b、更新信息字段1408c、控制信息字段1408d、数据信息字段1408e和(多个)扩展数据字段1408f。这些字段是示例性的,并且数据结构1408的其他实施例可以具有更多或更少的字段。

移动性客户端id1408a可以是唯一地标识移动性客户端的通用唯一标识符(uuid)。在实施例中,移动性客户端id1408a存储可用于唯一地标识移动性客户端的运载工具标识号(vin)。状态流/状态字段1408b包括用于持久性(服务器亲和性)的状态和会话特定的信息。更新信息字段1408c包括与特定软件更新相关联的信息,诸如由情报引擎1405提供的下载信息文件。控制信息字段1408d包括用于ota客户端的远程控制的命令,诸如用于禁用安装在移动性客户端上的特定的软件版本的禁用命令。对于入站消息,数据信息字段1408e包括移动性客户端的名称、时间戳、以及到存储在一个软件包存储库中的用于移动性客户端的软件包的链接。对于出站消息,该数据信息字段1408e被用于将数据和命令发送到移动性客户端。

(多个)扩展数据字段1408f被用于发送和接收数据或服务。扩展数据字段1408f可以包括到数据或服务提供商(例如,uri、url、指针)或应用编程接口(api)的链接。例如,如果移动性客户端请求由msp外部的第三方数据或服务提供商主管的服务或数据,则(多个)扩展数据字段1408f可以提供到数据或服务的接口,并且msp将处理到第三方服务器计算机的必要连接,以请求和接收由第三方服务器计算机生成的结果。以此方式,每个移动性客户端基于由该移动性客户端订阅的特定服务或应用将具有带有多个定制的扩展数据字段1408f的数字孪生。例如,如果移动性客户端1400想要订阅交通或天气服务,则通过(多个)扩展数据字段1408f提供对交通或天气服务的访问。服务可以在第三方服务器计算机上主管(例如,由服务器场主管)或由msp服务器计算机主管。可被订阅的服务包括通过可由例如智能手机访问的任何移动应用而可用的任何服务。该特征是有利的,因为它允许集成用户已经在他们的智能手机或平板计算机上订阅的、将通过例如娱乐系统或车载计算机而在他们的车辆中可用的移动应用。

在实施例中,第三方软件可以在msp1301的服务器上被主管,并且(多个)扩展数据字段1408f通过api或其他接口机制提供对服务的访问。在实施例中,可以在(多个)扩展数据字段1408f中将用户简档数据发送到msp101。个人简档信息可以是与移动性客户端的操作者的个人偏好相关的任何数据,包括但不限于:气候控制数据、座位和镜子调节数据、娱乐偏好数据(例如,无线电预设、音乐播放列表)、电话联系人列表、导航数据(例如,历史数据、目的地位置)以及对移动性客户端1400的特定操作者个性化的任何其他数据。

在实施例中,(多个)扩展数据字段1408f可以包括多个个人简档。例如,共享移动性客户端的家庭的每个成员都可以拥有他们自己的个人简档。此外,如果移动性客户端是移动性客户端的车队(例如,出租车、租赁汽车、公司车辆)的一部分,则用于每个操作者的个人简档可以存储在(多个)数据库1407中。

在另一实施例中,(多个)扩展数据字段1408f可用于移动装置管理(mdm)服务。例如,下载到移动性客户端上的mdm数据可以允许或限制雇员使用某些特征,包括在移动性客户端上强加和实行策略,这些策略诸如用于优化移动性客户端使用并使数据安全的策略。例如,mdm数据可以将移动性客户端配置成将移动性客户端数据报告给msp101,在该msp101处可对该移动性客户端数据进行进一步分析。移动性客户端数据可包括但不限于:位置数据(例如,时间戳、纬度、经度和海拔)、传感器数据(例如,加速度数据、陀螺仪数据)和环境数据(例如,温度数据)。在实施例中,位置数据可以用于判定移动性客户端是否已进入或退出地理围栏(虚拟地理边界)来触发软件包的下载或执行某项其他基于位置的服务。

在实施例中,可以使用地理围栏跨越(geofencecrossings)来判定是否已违反公司政策。例如,提供出租车服务的驾驶员可以被禁止在由地理围栏包围的某个地理地区之内或之外行驶。如果移动性客户端是自动驾驶车辆,则(多个)扩展数据字段1408f可以包括对该自动驾驶车辆特定的移动性客户端数据,诸如,lidar数据、超声传感器数据、雷达数据、gnss数据、立体相机数据和地图数据。在实施例中,移动性客户端数据可由分析引擎1406使用以检测并预测移动性客户端1400的各种维护问题。

在负载均衡器(未示出)从移动性客户端1400接收到消息之后,负载均衡器将消息发送到正在运行消息引擎1402的实例的msp服务器。消息引擎1402提供与一个或多个移动性客户端1400通信的端点,并且支持入站和出站消息处理。同时运行的消息引擎1401的数量基于与移动性客户端1400的活跃连接的数量。在实施例中,负载均衡器和/或消息引擎1402实现用于与移动性客户端1400进行通信的一个或多个协议,这一个或多个协议包括但不限于:传输控制协议/网际协议(tcp/ip)、超文本传输协议(http)、安全超文本传输协议(https)、消息队列遥测传输(mqtt)协议和开放移动联盟设备管理(oma-dm)协议。

在实施例中,消息引擎1402读取消息报头并执行版本验证。集成应用编程接口(api)允许第三方应用通过网络(例如,因特网)与消息引擎1402通信。例如,sota服务可能不可用,或者软件更新可能是过大的而无法使用sota服务进行传输。在这种情况下,集成api可以由在个人计算机或移动设备上运行的应用使用,以通过网络上传软件包或将软件包递送到个人计算机。在将包下载到个人计算机之后,可以将其传输到通用串行总线(usb)拇指驱动器(thumbdrive)。例如,维修店或经销商处的技术人员能够将软件包从msp1301下载到个人计算机,将该软件包传输到拇指驱动器,并且然后直接将该拇指驱动器连接到运载工具计算机的端口,以将该软件包传输到该运载工具。

变换引擎1403读取消息主体,并将消息主体变换成由消息总线1401使用的常见消息数据格式(例如,流送格式)。

操作引擎1404支持数据操作、软件操作和系统问题管理。操作引擎1404提供用于与系统客户端103(例如,oem、软件开发者)通信的网络门户和移动用户界面(ui)。操作引擎1404生成具有可视化(例如,图表、表格)的报告(该可视化可以在网络门户和/或移动ui上查看),并使用各种通信模式(例如,电子邮件、推送通知、文本消息)向系统客户端103发送通知/警报。操作引擎1404还提供服务api,该服务api允许系统客户端103使用他们的专有应用访问移动性服务。在实施例中,服务api支持支付系统,该支付系统使用通过服务api检取的数据来管理基于计费的软件更新。

情报引擎1405支持各种ota操作,包括软件封装、软件相关性检查、调度和监视。

分析引擎1406支持商业情报,包括报告生成和警报检测。分析引擎1406还提供包括仪表板和工作流画布的交互式开发环境(ide),该ide允许数据分析员将实时消息流或数据库用作数据源来构建、测试和部署分布式工作流。

在实施例中,(多个)数据库1410包括关系数据库(例如,sql数据库)和分布式nosql数据库(例如,带有elasticsearchtm服务的apachecassandratmdbms),以用于存储消息、数据日志、软件包、操作历史和其他数据。存储的数据可以是结构化或非结构化的。在实施例中,引擎1402-1406可以通过数据访问层(dal)1409、使用例如ee数据访问对象(dao)来与(多个)数据库1410进行通信。

图15示出了用于共享由av感知的经分类的对象的过程1500的示例流程图。

当第一av获取场景描述(1501)时,过程1500开始。场景描述包括由第一av使用一个或多个传感器(例如,lidar、雷达、相机系统)在第一地区检测到的一个或多个对象,该第一地区包括第一部分地理区域(例如,城市或地区)。

当第一av将场景描述传送到第一区域中的第一边缘节点(1502)时,过程1500继续。可使用任何合适的无线技术或协议(例如,5g)、通过无线通信链路将场景描述传送到第一边缘节点。

当第一边缘阶段使用场景描述以更新存储在第一边缘节点处的用于第一地区的asg(1503)时,过程1500继续。例如,第一边缘节点执行参照图16所描述的asg更新过程。

当第一边缘节点将经更新的asg发送到位于第一地区或包括地理区域的第二部分的第二地区中的第二边缘节点(1504)时,过程1500继续。例如,第一边缘节点能够通过直接通行链路或通过参照图14所描述的基于云的计算平台(诸如,msp1301)将经更新的asg发送到第二边缘节点。

在实施例中,经更新的asg使用任何合适的无线技术或协议(例如,5g)、通过无线通信链路从第二边缘节点被传送到第二av。第二av使用该经更新的asg更新其本地生成的场景描述。例如,第二av通过添加或删除对象、添加或改变用于对象的标记和/或更新用于动态对象的状态信息(例如,位置坐标、速率、速度、加速度、罗盘朝向)来更新其最新的场景描述。在更新其本地生成的av之前,第二av的感知模块电路可查看asg的年龄(例如,时间戳)或(例如,由第一边缘节点计算并且与经更新的asg一起发送到第二边缘节点的)置信度分数。

在第二av利用由第一边缘节点发送的经更新的asg更新其本地生成的场景描述后,第二av基于该经更新的场景描述执行动作。例如,第二av能够执行操控以避免新添加的对象,规划新的路线以避免对象、交通堵塞或交通事故,或执行任何其他期望的动作或操控。

图16示出了由边缘节点执行以共享由av感知的经分类的对象的过程1600的示例流程图。

当边缘节点或msp获取来自av以及其他源的针对地区的场景描述(1601)时,过程1600开始。例如,可通过无线通信链路,从在地区中的道路分段行驶的av、从有线或无线地耦合至边缘节点的固定传感器(例如,相机、lidar、雷达)或从地区中任何其他基础设施(例如,建筑)、从msp1301(见图14)或从使用v2v通信(诸如,专用短程通信(dsrc))的其他av获取场景描述。

过程1600通过以下步骤继续:通过检测并且丢弃离群场景描述来验证场景描述(1602)。例如,如参照图13所描述,各种离群算法可被用于检测离群场景描述。

通过使用经验证的场景描述来更新本地存储的asg(1603),过程1600继续。更新asg1316包括但不限于:添加对象,删除对象,更新移动的对象的位置,更新对象的速率、速度、加速度或朝向以及更新用于对象的标签以更准确地描述对象。asg1316在其从边缘节点1303被广播之前也被加时间戳。在实施例中,asg1316被分派指示其准确度的置信度分数,诸如从1到5的数字,其中5是高度准确的,1意味着低准确度。可使用任何合适的算法或技术来生成置信度分数,并且该置信度分数可使用指示准确度的任何可用的信息。例如,置信度分数可以通过包括影响准确度的加权因子的和的函数来计算。权重(例如,0与1之间的数字)可以基于变得对边缘节点可用的新信息而是固定或自适应的,使得具有最大影响的因子比其他因子接收更高的权重。

通过将对经更新的asg的访问提供给在边缘节点的通信范围内的av(1604),过程1600继续。提供访问包括以下至少一项:将经更新的asg传送到av;允许av访问在边缘节点存储设备中的共享存储器中的asg;或提供资源定位符(例如,uri、url),该资源定位符可由av使用以从边缘节点或其他网络存储设备检取经更新的asg。在实施例中,边缘节点能够使用广告信道/传输(诸如,蓝牙低能耗(ble)信标广告信道/传输)来广告其具有可用的经更新的asg。

在先前的描述中,已参照许多特定的细节来描述本发明的实施例,这些特定细节可因实现方式而异。因此,说明书和附图应被认为是说明性而非限制性意义的。本发明范围的唯一且排他的指示符,本申请人期望本发明的范围的内容是以发布此类权利要求的特定的形式从本申请发布的权利要求书的字面和等效范围,包括任何后续校正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当以此类术语如在权利要求中所使用的意义为准。此外,当我们在先前的说明书或所附权利要求中使用术语“进一步包括”时,该短语的下文可以是额外步骤或实体,或先前所述的步骤或实体的子步骤/子实体。

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