用于自主车辆、机器人或多代理系统的协作式建图的制作方法

文档序号:25590705发布日期:2021-06-22 17:07阅读:138来源:国知局
用于自主车辆、机器人或多代理系统的协作式建图的制作方法

本文描述的方面通常涉及用于自主系统的建图系统,并且更具体地涉及实现自主代理之间的协作式地图更新的技术。



背景技术:

地图是实现所谓“代理”的部署的必要工具,所谓“代理”是与公共空间中的自动驾驶/无人驾驶汽车或机器人相关联的移动计算系统。地图越完整,越多的信息可供每个代理用来计划从其当前位置到其所期望的目标的安全且有效的轨迹。然而,大多数感兴趣的环境不是静态的,而是由于诸如环境内的人和对象的活动和/或移动之类的因素随着时间的推移而变化。因此,由此类代理用于导航的地图需要基于通过代理使用传感器在线收集的信息不断进行更新,这些传感器通常被携载在板上或被嵌入在基础设施中并与代理进行通信。用于更新这些地图的当前技术通常需要过度的处理和/或存储器存储,并且因此是不足的。

附图说明

结合到本说明书并构成本说明书的一部分的附图图示本公开的各个方面,并且与说明书一起,进一步用于解释各个方面的原理,并使相关领域的技术人员能够制造和使用各个方面。

图1图示根据本公开的方面的构成建图和跟踪系统的示例性组件的框图。

图2a图示根据本公开的一方面的示出与被占用的体素相对应的密钥的示例性在线地图。

图2b图示根据本公开的一方面的示出自我车辆的表示的图2a的示例性在线地图。

图2c图示根据本公开的一方面的突出显示要在代理之间传递的在线地图的更新的示例性道路场景。

图2d图示根据本公开的一方面的示例性表,该示例性表总结了在向如图2c所示的在线地图提供更新时将要交换的消息的内容。

图3图示根据本公开的一方面的与地图更新过程相关联的方法流程。

图4图示根据本公开的一方面的使用轨迹信息来确定要在代理之间传递的消息内容的示例性方式。

图5a-图5b图示与用于协作式上下文地图(ccm)的片上系统(soc)架构的各个部分相关联的框图。

图6图示根据本公开的一方面的转换功能的框图。

将参照附图描述本公开的示例性方面。其中要素第一次出现的附图通常由附图标记中最左面的数字指示。

具体实施方式

在下面的描述中,阐述了众多具体细节以便提供对本公开的各个方面的完全理解。然而,对本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践各个方面,所述各个方面包括结构、系统和方法。本文的描述和表示是由本领域的经验/技术人员使用来向本领域其他技术人员最有效地传递其工作的实质的手段。在其他实例中,未详细地描述公知的方法、过程、组件、和电路,以避免不必要地使本公开的各个方面变得模糊。

同样,用于解决由自主代理所使用的环境中的地图更新的当前技术具有包括大的存储器使用和过度处理功率使用的缺点。当前的地图更新解决方案也是低效的,并且可能无法为每个代理提供环境的准确地图。例如,大多数对动态环境进行建图的当前的解决方案(诸如动态占用网格)没有在代理之间使用协作,而是依赖于每个代理进行的自我建图,只考虑到其自己的传感器信息。此外,仅依赖于其自己的传感器来维持地图最新的代理通常依赖于易于被遮挡的结构化的环境,并且可能对环境的变化反应较晚。

已经提出了被称为协作式同步定位和制图(cslam)的协作式制图解决方案。然而,此类解决方案通常只用于静态制图应用。而且,如上文所述,涉及通过传递观察到的特征来引导代理之间的相对定位的技术是计算上昂贵的并且成本很高,并且只考虑到其他协作的代理的存在。此外,协作式制图解决方案和表示没有考虑到环境中的动态对象,并且使用这些地图生成的轨迹可能会受到过度约束。而且,大多数技术关注于地图合并,而不是维持通用地图最新,这需要传递冗余的数据以用于3d点云的注册。

被设计用于开发协作式建图的方法还需要中央服务器不断地检查由代理共享的新密钥帧,以获取任何地图中的对应关系。用于相对局部化的先前的方法也假设从同一类型的传感器获得的共同特征在代理之间共享。因此,相对于协作式地图维持任务的高效地图表示在使用传统技术的情况下尚未得以解决。

因此,为了解决这些问题,本文所描述的各个方面针对用于协作地更新用于代理组的地图的技术,使得地图准确地反映当前环境,因为它影响到环境中的代理的操作。本公开中所描述的各个方面也有助于在存在动态障碍物和遮挡物的情况下增加每个代理的建图范围。为此,本文描述的各个方面利用了许多类型的代理(诸如,自主汽车)的局部地图的使用,例如这些代理出于跟踪移动对象的目的使用动态占用网格(dog)。因此,本文所描述的各个方面通过标记需要车辆的导航系统注意的显著的障碍物的位置,同时通过利用来自其他代理的传感器改善检测障碍物的置信度和范围,来补充此类工具。来自所提出的系统的数据可用于初始化和终止轨迹,以及基于从相邻代理获得的信息来更新dog的状态。例如,本文所描述的各个方面可以提供停止的车辆或其他危险的位置,否则将需要附加的周期来标识。

具体而言,本文所描述的各个方面涉及机器人车辆和本文一般称为“代理”的其他移动计算系统,该移动计算系统彼此共存并在共享的环境的一部分内移动。此类共享的环境可以根据特定的应用包括不同类型的空间,诸如道路网络、空气空间、室内工业设施等。提出了对代理组感兴趣的某些对象的位置协作地建图的方法或算法。因此,创建的地图包含了代理在与其他代理共享的感兴趣区域内计划安全轨迹所需的所有重要信息。

具体地,所创建的地图包含界定代理的可导航的空间的所有静态对象,这些静态对象可能影响任何参与代理所做的计划决策。此外,所创建的地图可包含与位于感兴趣区域内但在可导航的空间外部的某些类型的动态对象的信息。例如,在道路车辆的情况下,此类动态对象可以是人行道上的行人。任选地,所创建的地图还可以包括与可导航的空间内的动态对象有关的信息。因此,由代理的整体系统建图的所有对象可以来自由特定代理(例如“自我车辆”)使用车载传感器进行的观察,或者来自由其他代理使用其自身传感器进行的观察。

又进一步地,如本文所描述的各个方面使得距彼此一定距离内的代理能够通信,尤其是交换与每个代理对其各自的地图所做出的更新有关的信息。任选地,中央服务器可收集和融合来自代理中的每一个代理的更新,该中央服务器可以用于是将“官方”的更新集合返回给代理。总体目标在于,操作区域内部的代理维持一致的地图,每个代理可以使用该地图来计划轨迹并在共享区域内安全且有效地导航。为了实现该目标,如本文所描述的各个方面提供了用于标记地图中已经改变的区域,并有效地构建消息以将此类改变传递给其他相邻代理。

因此,如本文所描述的各个方面通过允许附近的代理共享上下文信息来实现协作式建图以促进安全且有效地轨迹计划和避免碰撞,并且还通过利用多个代理所进行的观察来扩展单个代理的制图范围。此外,本文所描述的各个方面用于通过允许代理“看到”遮挡物后面,从而利用由相邻代理从不同角度作出的观察,来减少轨迹计划中的不确定性。而且由于代理彼此共享相同的地图表示,代理之间对传感器的选择可能是异构的,因为只有地图变化需要被传递,与传统系统相比,这需要更低的带宽。还提出了利用本文所讨论的方法的系统的高效硬件实现。

图1图示根据本公开的方面的构成建图和跟踪系统的示例性组件的框图。如图1所示的系统100可以被集成为合适类型的代理的一部分,或者以其他方式由合适类型的代理来访问和/或由合适类型的代理实现,以实现对代理的完全或部分自主控制。例如,使用系统100的代理可以是叉车、车辆、摩托车、电动自行车等。系统100以示例而非限制的方式示出,并且本文所述的各个方面可以实现包括如图1所示的附加的、较少的或替代的组件的系统。

如图1所示的系统100通常可分为外部监测系统102和建图和跟踪系统104。建图和跟踪系统104可以被实现为用于实现本文所述的各个方面的功能的硬件和软件的任何合适的组合。例如,并且如下文进一步所讨论的,建图和跟踪系统104的部分可以被实现为片上系统(soc)或包括已知架构的其它合适处理电路的一部分(或全部)。

外部监测系统102可以包括一个或多个接口(诸如传感器接口102a和通信接口102b),该一个或多个接口各自可以分别根据任何合适类型和数量的传感器和通信接口来运行。因此,外部监测系统102可以包括用于将传感器数据提供给建图和跟踪系统104和/或用于促进建图和跟踪系统104与系统100在其中操作的外部环境之间的通信的任何适当数量和类型的适当的接口。因此,被实现为外部监测系统102的一部分的组件的数量和类型可以取决于应用和/或其中使用系统100的特定类型的代理。

例如,如果系统100被安装为自主车辆的一部分,则通信接口102b可以操作以根据适当的通信协议(诸如,车辆对外界(v2x)通信协议)来实现通信,例如,如图1所示。同样,根据各个方面,还可以使用附加的、较少的或替代的通信接口。此外,传感器接口102a可以被配置成将相关的传感器数据提供给建图和跟踪系统104,该相关的传感器数据可以包括经由雷达组件或其他合适的传感器接收的数据,该其他合适的传感器被配置成提供与在外部环境中检测到的对象的关于其尺寸、位置、速度、范围、轨迹等有关的信息。例如,建图和跟踪系统104可以与外部监测系统102对接,以利用用于跟踪移动对象的动态占用网格或类似工具。如图1所示,无论所实现的传感器和通信接口的数量和类型如何,各个方面包括使用任何合适的类型的软件组件(例如,应用程序编程接口或api)来促进从外部监测系统102中接收并且被传送到建图和跟踪系统104的数据的转换、解释、对接和/或存储,反之亦然。

静态地图108、多对象跟踪模块110、和对象分类器模块112可以使用任何合适的技术来实现,并且可以被呈现为已知的或以其他方式存在的代理架构的一部分。例如,静态地图108可以是存储在合适的存储器中的预加载的静态地图。多目标跟踪模块110可以促进适于自主应用的任何类型的多对象跟踪系统。例如,多对象跟踪模块110可以实现两步过程,该两步过程包括:使用对象检测算法检测潜在的感兴趣对象,并且然后将这些潜在对象跨不同帧进行链接以形成所谓的跟踪小片段(tracklet)。可以经由多对象跟踪模块110在系统100中实现的现有对象检测和跟踪系统的示例包括使用加速鲁棒特征(surf)计算机视觉算法。换言之,多对象跟踪模块110可以用于检测当前静态地图环境中的多个对象。对象分类器模块112可以使用经由多对象跟踪模块110获得的数据作为任何合适的基于分类器的系统的一部分,以促进基于例如基于每个对象的尺寸、形状、轨迹、路径等经提取的和经分类的特征的相关性来标识这些检测到的对象。

建图和跟踪系统104还可以包括协作式建图子系统(cms)106,该协作式建图子系统(cms)106包括在线地图106a、地图更新模块106b和消息处理模块106c。如本文进一步所讨论的,协作式建图子系统106是本公开的各个方面的焦点,并且可以结合如上文所讨论的外部监测系统102以及系统100的其他组件(诸如静态地图108、多对象跟踪模块110、和对象分类器模块112)来工作。

因此,各个方面包括cms106,cms106被配置成可以包括作为任何合适数量和类型的计算机处理器、控制器、硬件组件、软件组件、存储器、或其任何组合。例如,cms106可以被实现为soc的一个或多个部分,如上文所提及并在本文中参照图5a-5b进一步所讨论的。附加地或可替代地,cms106可包括一种或多种计算机可读介质(诸如易失性或非易失性存储器(例如,非暂态计算机可读介质)),该一种或多种计算机可读介质被配置成存储可执行的指令和/或代码,当该可执行的指令和/或代码由cms106(例如,与cms106和/或系统100、soc520等的其他组件相关联的处理器)执行时得到本文所述的各个方面的实现。作为说明性示例,cms106可以存储和/或访问一个或多个非暂态计算机可读介质,以执行本文参照图3的方法300和/或如本文所述的任何其他方面执行本文所示出和所描述的各个步骤。

在一方面,cms106被配置成基于经由预加载的静态地图108获得的先验信息以及根据经由外部监测系统102接收到的信息来维持在线地图。如上文所述,经由外部监测系统102接收的信息可以包括从车载传感器和/或从与其他代理的通信获得的新的和最近的信息,诸如由其他代理传送并由代理接收的消息中包含的信息,如本文中进一步所讨论的。经由对外部监测系统102的使用,cms106并且更具体地,地图更新模块106b还可以与用于跟踪移动对象的动态占用栅格或类似工具交换信息以更新当前地图,如下文所讨论的。

在一方面,在线地图106a可以被表示为诸如八叉树之类的分层数据结构,例如,具有l个级别和轴对齐的边界框的分层数据结构,如下文进一步所讨论的。在线地图106a可以被实现为存储在任何合适的存储器和任何合适的配置中的数据。例如,可以使用诸如上下文存储器之类的数据结构的硬件实现方式来存储在线地图106a,如下文参照图5b进一步所讨论的,这可以促进协作式地图更新的管理和实现。然而,为了易于解释,首先描述了在线地图106a的软件组件。

在一方面,使用根据如下的等式1计算的密钥或空间代码将世界点插入所选的层级结构级别l(其再次可以包括总共l个级别)上的在线地图106a中:

等式1:

参照以上等式1,p是3d空间中的向量(例如,p={x,y,z}),并且r是等于在线地图106a中存储的最小体素的长度维度的一半的标量地图属性。因此,可以将数学floor(·)函数逐元素地应用于p的每个元素,并且函数cat(·)将其自变量的元素展平并串接,以输出一维列表。为了在查询位置p处检索地图内容,可以使用等式1中表示的以上公式来生成从根级别(即l=0)至级别的总数l(即(l=l))的不同密钥,直到找到密钥。因此,在一方面,与密钥对应的值通常是包含体素的占用状态的数据结构(例如,指示占用概率的0与1之间的浮点数),并且可以任选地还包括与该特定位置相关联的其他上下文或语义信息。

在一方面,占用概率可以按照在特定时刻作为被占用或空闲的体素被代理观察到的次数来定义。占用概率可通过利用放射性衰减的普遍规律来表达,并且因此,体素在时间t被占用的概率根据等式2表达如下:

等式2:

参照以上等式2,n0=p0+γ(1+signsp0),其中p0是先前的占用概率,γ是控制使占用率多快饱和到1的设计变量,并且s是体素的状态,其中+1表示空闲体素,而-1表示被占用的体素。此外,t0表示最后一次更新体素的时间,并且λ是取决于表示代理或环境的类别的衰减因子。例如,汽车或行人具有较大的λ值,因为它可能在移动。相比之下,树或墙具有较低的λ,因为此类对象本质上是静止的。下面参照图2a和图2b进一步讨论由在线地图106a表示的在线地图的示例。

图2a图示根据本公开的一方面的示出与被占用的体素相对应的密钥的示例性在线地图。图2a所示的在线地图200是表示2d区域的在线地图的示例。例如,如图1所示,在线地图200可以表示由在线地图106a存储的在线地图的图形示例。假设图2a所示的在线地图200被锚定在距已知全局坐标系原点的特定偏移处。因此,为了获得地图中的任何点的全局坐标,将平移和缩放应用于局部坐标,如下面参照图5b和图6所讨论的。一般而言,用于此目的的偏移和缩放因子对于由参与本文所述的经协调的建图系统的每个相应的代理所使用的每个在线地图是不同的。因此,各个方面包括当(例如,经由外部监测系统102)交换地图消息时在代理之间传送的这些偏移和缩放因子,如下文进一步讨论。

在图2a所示的示例中,利用所附的坐标值图示了在线地图200内的被占用的体素,并且为了清晰起见不以其他方式进行标记,而空闲空间202在被占用的体素之间的区域中被示出并且包括剩余区域。相对于在线地图200中的被占用的体素,每个相应被占用的体素内括号中包含的数字表示与该特定体素相对应的地图密钥。具体地,每个被占用的体素内的前两个数字表示x、y坐标,并且每个被占用的体素内的最后一个数字表示体素级别l,这可以被认为表示体素的“尺寸”。因此,作为示例,如图2a所示的地图200的顶部体素的密钥可以表示为(0,0,0),其包括由图2a的边界201指示的整个空间。可以这么说,级别表示体素的“尺寸”,由于对每个体素进行划分直到最大级别,并且然后较大的级别表示相同的空间,虽然具有较小的体素。继续该示例,体素(0,0,1)(未用标签示出)将表示由边界201指示的空间的第一半。换言之,该体素(0,0,1)将是包含如图2a所示的体素(0,0,2)和(1,0,2)以及体素(0,1,2)、(1,1,2),该体素(0,1,2)、(1,1,2)未在图2a中用标签示出,而是可由如所示的若干个较小的体素(0,4,4)-(9,4,4)、(0,5,4)-(4,5,4)以及(5,7,4)-(8,7,4)和(5,7,4)-(8,7,4)来表示,每个较小的体素具有较大的级别。

图2a所示的在线地图200可以表示可由代理使用以计划导航的路径的在线地图。换句话说,如图1所示的系统100可以由代理使用在线地图106a来计划导航的路径来实现,在线地图106a的示例在图2a-2c中被示出。例如,图2b图示根据本公开的一方面的包括自我车辆的图2a的示例性在线地图。如图2b所示,自我车辆210可以实现如图1所示的系统100并分别使用如图2a-图2b所示的在线地图200、220以用于导航计划。然而,如图2b所示,在线地图220中包括的体素中的一些从自我车辆210的角度来看相对于计划应用可能不是相关的或有用的。

因此,本公开的各个方面包括基于地图220内不同体素的位置将其分类为不同的感兴趣类别。例如,在代理是自主汽车(诸如如图2b所示的自我车辆210)的情况下,cms106(例如经由地图更新模块106b)可定义用于计划导航的感兴趣区域(roi),该兴趣区域(roi)包括道路区域内的体素,该道路区域的示例如图2a-2b中的区域202所示。为了简单起见,图2a-2b中未示出在区域202内部或以其他方式与区域202重合的体素,但这些体素可被认为是“roi体素”。此外,如图2b所示的在线地图220还包括若干体素204a-204f,这些体素远离道路区域(即区域202和相应的roi体素206、208)而定位(即,与道路区域是非紧邻的),因此,在本文中可将该若干体素204a-204f称为“非紧邻体素”。

然而,取决于与区域202紧邻的体素同自我车辆210的相关性,将与区域202紧邻的体素分类为属于不同的体素类别,其中在本示例中使用了两个类别。例如,相对于如图2b所示的自我车辆210的取向,体素206a-206v位于自我车辆210的前面或自我车辆210的侧面,并且因此可以被认为是“紧邻的相关体素”。相对于由区域202表示的道路区域,紧邻的相关体素206a-206v可包括与例如自行车道、人行道等相关联的区域。

此外,基于自我车辆210的取向,假设自我车辆210的当前位置后面的区域中的体素不再是其感兴趣的。因此,体素208a-208h在文本中可被称为相对于自我车辆210的“紧邻的无关体素”。然而,该区域中的体素208a-208h可能仍然与相邻代理相关(例如,在与自我车辆210在同一方向上行驶但位于其后面的其他代理)。因此,如下文进一步所讨论的,各个方面包括cms106(例如,经由消息处理模块106c)并入此类紧邻的不相关体素208a-208h的位置和/或其他信息(例如,体素内的对象的类型)作为由自我车辆210(经由如图1所示的外部监测系统102)传送的消息的一部分。

根据本方面,cms106使用一种新型的感兴趣对象(ooi)来实现同一操作环境内的多个代理之间的地图更新的协调,该新型的感兴趣对象(ooi)被添加到由在线地图106a实现的地图结构中。例如,ooi可以指示由整数类别标签c指定的某种类型的障碍物的缺席或存在。以此方式,基线地图(例如,如图2b所示的在线地图220)中的所有体素可以具有空的障碍物对象,使得可以将来自该基线地图的变化快速地标识为具有各自非空障碍物对象的体素集合。

除了整数类别标签c之外,障碍物对象的属性还包括如上文所述的体素密钥k和可选的属性列表a,这取决于特定的对象类别。在一方面,基本类别包括被占用的体素(a={占用概率:p),并且空体素与空闲空间相对应。为了提供附加的示例,可以定义其他障碍物类别来表示几何对象,诸如球体(a={半径:r})、圆柱体(a={半径:r,高度:h})、长方体(a={长度:l})等。为了提供附加的示例,障碍物类别可以附加地或替代地表示不同类型的代理(诸如行人、汽车、卡车、磁盘机器人、无人机等)以及取决于由在线地图表示的环境的一般(例如静态)对象(诸如树、交通标志、墙壁等)。

因此,本文所描述的各个方面使得地图更新能够经由消息在代理彼此间传递,这可以根据任何适当类型的通信协议来执行。再次,可以通过利用由被传送的消息中包括的ooi标识的信息来实现可能的更新,这些信息可以通过指示与地图内的体素相关联的占用概率以及如上文所述的任何伴随的属性来指示先前地图的变化。因此,在定义了用于标识由代理检测到的对在线地图的添加(或删除)的方法之后,本文所述的各个方面还涉及协作地更新一组代理的地图的方法。作为该组更新的结果,代理可以共存并生成有效的计划,以便在共享环境中安全地移动。

一般而言,因为不同代理的路径、交互、每个代理可用的传感器类型等的差异,即使假设每个代理以同一静态地图作为基线开始,属于不同代理的协作地图将会不同。因此,本文所述的各个方面可能不会实现每个代理具有相同的地图,而是每个代理可以彼此交互并共享特定环境的类似表示。例如,这可能包括充分管理代理之间的每次交互所需的任何相关信息。下面参照图3进一步描述以此方式推断障碍物的相关性的方法。

图3图示根据本公开的一方面的与地图更新过程相关联的方法流程。具体而言,如图3所示的方法300指示代理用于更新该代理的“自我地图(ego-map)”以及将地图更新传递给相邻代理的各种步骤。同样,如图1所示,这些步骤可以由系统100的各个部分执行。例如,与方法300相关联的各个步骤可由cms106的一个或多个部分和/或系统100的其他组件执行。作为另一示例,与方法300相关联的各个步骤可由如所示并且如本文参照图5a-5b进一步讨论的soc520的一个或多个部分(诸如,hw上下文地图子系统524和/或通信子系统526、控制逻辑子系统522、nv存储器子系统528等)来执行。

如图3所示并在下面进一步详细所讨论的,方法300包括两个不同的“分支”。这些分支中的第一个分支被称为“消息接收分支”,表示与从其他代理接收消息并基于这些接收到的消息选择性地更新代理的地图相关联的步骤。这些分支中的第二个分支被称为“消息传送分支”,表示与准备好消息以用于传输到具有适当的地图更新的其他代理相关联的步骤。在一方面中,与消息接收分支和消息传输分支相关联的一个或多个步骤可以彼此并行(例如,同时或并发地)执行。

例如,方法300可以通过使用代理的传感器(例如,使用经由外部监测系统102接收的传感器数据)对本地点云列表中的点进行建图(框302)。接下来,方法300可以包括在接收从近邻代理传送的任何更新消息时准备好用于传输的更新消息,该过程可以与消息接收分支中的其他步骤并行地继续,如下面进一步所讨论的。继续沿着消息接收分支向下,方法300可以包括确定(框304)当前消息列表是否为空。如果是,则代理可以继续对点云列表中的点进行建图,以使用传感器数据将其本地地图维持为最新(框302)。然而,如果已经从相邻代理接收到更新消息(即,消息列表不为空),则各个方面包括从列表中弹出下一个接收到的消息(框306),将消息中包括的数据(例如,经由ooi和伴随的属性标识的数据)转换为点云,并且然后对使用消息信息在消息列表中标识的任何障碍物进行建图(框308)。

然后,方法300可以重复从列表中弹出(框308)每个消息并对如每个消息中指示的任何障碍进行建图(框302)的过程,直到消息列表为空(框304,是)。此时,方法300可以包括使用根据接收到的和弹出的消息中的每一个消息标识的经建图的障碍物来更新(框302)云列表中的地图点。同样,并且如本文中并且参照图2c-图2d提供的说明性示例进一步所讨论的,各个方面包括消息,该消息包括小于在线地图数据的全部的信息子集,诸如仅地图更新、仅与接收消息的代理相关的地图更新等。

在各个方面中,可以根据每个接收到的消息的源和关键度对所接收的消息进行不同地处理。例如,从未知代理的消息中提取的点可能被指定为高度不确定性,或者如果这些点被认为对当前自我代理的所计划的导航具有很小的影响,则可以被完全地忽略。

再次,在处理接收到的消息和更新代理的本地地图的同时,准备好将更新消息发送到其他代理,其中消息构造和传输过程中的步骤如图3所示被表示为消息传输分支。方法300的该部分通过从云列表(框302)中的当前地图点选择(框310)“顶部”或“父”体素来发起消息构造。这是包含任何合适形状的区域的体素。例如,顶部或父体素可以是以代理的质心为中心,具有在代理的标称半径与代理的通信范围之间的范围内所选择的半径的球体。

接下来,方法构造过程包括利用父体素的子节点来初始化(框312)体素列表。例如,可以如下面等式3所示对消息初始化:

等式3:m=cat(m,s=1,o1=(c,d,q,v))

根据以上等式3,m=cat(p,l)是父体素的地图坐标和八叉树级别,s是消息中的对象数目,c是代理的类别(例如,汽车、无人机等),d是代理的质心距p的偏移量,q是代理的航向,以及v是代理的速度。根据本方面,消息的传输取决于当前体素列表是否为空(框314)。因此,方法300包括准备和发送(框320)用于在体素列表为空时传输的消息,并且以其他方式将(框316)与体素相关联的任何所标识的障碍物与体素的子体素一起添加到体素列表(框318)。

该过程可以继续,使得从体素列表递归地弹出顶部体素,并将其障碍物添加到消息中,包括体素列表中每个被弹出的体素以及任何障碍物和子体素,直到体素列表为空,此时消息被传输(框320)。该过程可在每次由代理更新地图时重复,即,这些点由代理在云内进行建图(框302)。因此,由于在接收到新消息和/或更新代理的地图时并行地执行该过程,所以由代理传送给其他代理的消息可以与由代理使用的经建图的体素和障碍物的准确的表示相对应。

作为说明性示例,现在参照图2c-图2d。图2c图示根据本公开的一方面的突出显示要在代理之间传递的在线地图的更新的示例性道路场景。图2c表示与如图2a-图2b所示的基线地图200、220相同的在线地图240,尽管为了清楚起见从在线地图240中删除了若干体素参考标签,如图2c所示。

如图2c所示,除了自我车辆210之外,存在四个其他感兴趣的对象。

例如,另一车辆停放在非预期的位置,并且当前占用体素206q、206r、和206s,这可能是例如由引擎故障引起的。自我车辆210还检测到占用体素206p的位置(4、5、4)处的对象,该对象是未确定的类别,并且因此该体素被表示为空白、未填充的空间。根据当前的各个方面,在体素206p处的对象被标记为障碍物,并且包含体素206p被分配占用概率p。此外,如图2c所示,在位置(1、5、4)处也存在行人占用体素206m,由于在位置(4,5,4)处占用体素206p的对象引起的阻碍,所以该行人位于自我车辆210的视场的外部。但是,该行人已被相邻代理检测到,并且其位置已被传递给处于范围内的环境中的其他车辆。此外,地图240在位置(14,2,4)包括交通锥,该交通锥占用了体素208e。交通锥被自我车辆210检测到,但该交通锥当前位于它的后面(即,如上文所述,在紧邻的不相关体素中的一个中)。然而,尽管基于自我车辆210后面的体素208e的位置,该位置处的交通锥可能与自我车辆210无关,但是该对象可能与该区域中的其他代理相关。

因此,现在参照图2d所示的表,该表总结了在该示例中将在代理之间交换的消息的内容。例如,所传送的消息可以是相对于自我车辆210的,而接收到的消息可以从自我车辆210的范围内的其他代理传送并由自我车辆210接收。如上文所示且所讨论的,所接收的消息使自我车辆210能够标识在体素206m处定位的对象(行人)的类型,该对象(行人)由于位于体素206p处的对象的阻碍而不会以其他方式被检测到。

根据当前各个方面,代理可以附加地选择具有更高的状态置信度的体素,也就是说,被添加到消息中的体素可以被选择为更接近于0或1,这分别表示体素是空闲的或是被占用的概率p。任选地,如果周围代理中的一个或多个代理的轨迹也是可用的,则构造消息的代理(例如,在如图2c-图2d所示的当前示例中的自我车辆210)可以基于对该轨迹的分析,计算出其他代理必定感测到的地图的部分,因此可以不将地图的该部分包括作为传输消息的一部分。在这样做时,本文所描述的各个方面避免在另一代理的计划轨迹的外部发送体素的经更新的信息,从而减小消息大小。

例如,图4图示根据本公开的一方面的使用轨迹信息来确定要在代理之间传递的消息内容的示例性方式。图4示出一个代理402的感测到的区域406和该代理的相应的轨迹407的示例。图4还示出与第二代理404相关联的另一感测到的区域408以及代理404的相应的轨迹409。在该示例中,假设代理402基于代理402、404之间的通信知道代理404的轨迹409。因此,可以计算出在感测到的区域406、408之间重叠的区域410,并从由代理402传送到代理404的消息分组中将该区域丢弃。具体而言,代理402可以传送包括仅与不包括重叠区域410的感测到的区域406的区域相关联的地图体素更新的消息,因为只有感测到的区域406的这些区域不以其他方式被代理404知晓或感测。与代理402后面的地图区域相对应的地图体素更新也不被包括在此类经传送的消息中,

协作式上下文地图(ccm)soc

如上文所述,本文所描述的协作式上下文地图(ccm)方面可以形成为片上系统(soc)的一部分。该soc可包括如本文参照图1所示和所讨论的系统100的一个或多个部分,例如,诸如cms106。作为另一示例,下面进一步描述的soc可以形成系统100的整体,该系统100由自主代理实现,以提供关于如本文所讨论的地图体素更新的动态地图体素更新和消息传输。

为此,如图5b所示的soc520利用上下文地图存储器来管理协作式地图更新。例如,图5b示出根据本公开的各个方面的包括各个部分的总体一般soc架构520的示例。附加的实施例进一步涉及一般soc架构520的特定部分,并且为了清楚起见而呈现,并附带解释作为整体soc架构520的一部分的每个部分的各自功能。

如所示,图5a涉及如图1所示的系统100的各种外部ai和信号处理组件,这些组件可与如图5b所示的soc架构520的各种组件结合工作。ai和信号处理组件500相对于如图5b所示的soc架构520可以被认为是外部的,并且可以使用任何合适的接口和/或通信协议与soc520的各个组件进行通信。此外,尽管被称为“外部组件”,但外部ai和信号处理组件500可以在本文所讨论的代理的内部(例如,集成在代理的内部或以其他方式实现为该代理的一部分),可替代地,可以被定位在代理和soc架构520的外部。

如图5a所示,外部ai和信号处理组件500可用于将数据提供给soc架构520,以促进在线地图更新以及消息的生成和消息到其他代理的传输,如本文所讨论的。为此,外部ai和信号处理组件500可包括硬件和/或软件的任何适当组合,以将数据提供给如图5b所示的soc架构520的控制逻辑,该控制逻辑可表示为如图5a所示的各种块、模块、或引擎。例如,地图初始化引擎502将基线地图数据加载到soc,而坐标或地图查询引擎516将查询位置数据发送到soc520,以促进在特定查询的位置p处检索地图内容,如上文所讨论的。

此外,感测块504和消息接收块510可以表示上文参照外部监测系统102所讨论的各种传感器和/或接口。因此,点云创建引擎506可以参照如上文参照静态地图108和图3所述的基线静态地图来对点云列表中的点进行建图,并且坐标分类引擎可以进一步基于如上文参照图1的对象分类模块112所讨论的传感器数据来对坐标进行分类。点云创建引擎512和坐标分类和不确定性估计引擎514可以同样地参照如上文所述的基线静态地图对点云列表中的点进行建图,并对坐标进行分类。然而,点云创建引擎512和坐标分类和不确定性估计引擎514可以基于从接收到的消息导出的数据来这样做,其中不确定性估计是基于如上文所述的每个接收到的消息的优先级和/或可靠性来执行的。

在各个方面,外部ai和信号处理组件500可以实现诸如例如地图初始化、道路用户的ai分类、或用于后处理的上下文信息查询之类的算法,以利用soc实现。在任何情况下,soc520可接收该数据以执行如本文参照在特定环境中执行代理之间的协作式上下文地图所讨论的功能,如本文所讨论的。为此,如图5b所示的soc520一般可被划分为四个子系统。这些子系统包括控制逻辑子系统522、硬件(hw)上下文地图子系统524、通信子系统526、和非易失性(nv)存储器子系统528。例如,还可以利用如本文参照图1所示和所讨论的系统100的一个或多个部分(诸如,cms106)来标识这四个子系统。

在一方面中,控制逻辑子系统522被配置成用于解码,即用于确定取决于经由代理在本地标识的或在所接收的消息内标识的外部分类上下文提供的消息而供上下文地图子系统524用来执行的特定类型的动作。例如,控制逻辑子系统522可以将检测到的对象与参考上下文地图进行比较,并对坐标进行分类,以促进由操作环境中的一个或多个代理对新检测到的信息进行协作式建图。控制逻辑子系统522可以附加地被配置成启用或禁用将信息保存到由hw上下文地图子系统524利用的ram存储器中。因此,各个方面包括控制逻辑子系统522,该控制逻辑子系统522控制将哪些相关信息保存到上下文地图中。例如,如果在某个时间段内没有检测到附加的对象,则控制逻辑子系统522可以与hw上下文地图子系统524通信,以使hw上下文地图子系统524仅将静态对象保存为上下文地图的一部分。

换言之,各个方面包括控制逻辑子系统522,该控制逻辑子系统522接收基于由第一代理提供的传感器数据(例如,来自外部ai和信号处理组件500)而被建图的所生成的初始点云列表,该初始点云列表与可在同一环境内操作的其他代理之间共享的在线地图相关联。控制逻辑子系统522可经由外部ai和信号处理组件500附加地接收由在与soc520(例如,“自我”代理)相关联的代理相同的环境中操作的其他代理传送的一个或多个消息。

如图5b所示,hw上下文地图子系统524包括三个不同的模块,这些模块可以被认为是soc520的一部分并且因此包括任何合适的硬件和/或软件组件,以促进本文所讨论的相应的功能。例如,如图5b所示的hw上下文地图子系统524包括输入地图接口模块524a、存储器模块524b、和查询模块524c。在一方面中,上下文地图子系统可以被配置成用于处理由同一环境内的其他代理传送的消息,并且然后用于标识由这些其他代理经由所发送的消息标识的所生成的初始点云列表内的变化。使用所发送的消息中的信息,hw上下文地图子系统524可以然后根据如在由其他代理传送的消息中指示的所标识的体素变化来更新初始点云列表中的点,以生成更新的在线地图。

同样,可以使用ooi来标识由操作环境中的其他代理传送的消息中包括的体素变化,该ooi作为由操作环境内的其他代理传送并且由自我代理接收的消息的一部分而被包括,这指示与所标识的体素变化相关联的特定类型的障碍物的缺席或存在。并且,如上文所讨论的,这些所标识的体素变化可以包括在线地图内的一个或多个体素中的每个体素内所包含的对象的对象类别(例如,类型)和一种或多种属性,例如,本文参照图2d所示出的和所讨论的。因此,所标识的体素变化可由另一个代理标识和/或包括以其他方式无法经由自我代理的传感器标识(例如,由于自我代理的视场中的障碍物)的体素变化。

为此,在一方面中,输入地图接口模块524a被配置成取决于指向特定存储器地址的上下文来生成散列值。因此,输入地图接口524a用于经由所示出的“真实地址(realaddr)”行中的一个或多个将由控制逻辑子系统522提供的地图坐标、请求、和接收到的共享消息转换为与适当地址相对应的所生成的散列值。此外,各个方面包括输入地图接口模块524a,该输入地图接口模块524a通过使用空间中的坐标来感测由控制逻辑子系统提供的新数据,并通过散列函数将坐标转换为存储器地址。所描述的散列函数具有针对体素的不同级别生成连续存储器地址的特性。例如,在八叉树体素表示的最大离散化时,所有连续的空间体素都将位于连续的存储器地址中。以此方式,可以执行高效的上下文搜索。

继续参考输入地图接口模块524a和相对于接收到的共享消息的操作,各个方面包括输入地图接口模块524a,该输入地图接口模块524a通过提供将近邻地图转换为本地地图系统的能力来实现协作式建图。例如,在自主车辆用例中,存在全局坐标系。然而,由于存储器的限制,每个车辆可以表示“全局地图”的不同部分,并且以不同的比例表示。各个方面包括输入地图接口模块524a,该地图接口模块524a处理作为从其他代理传送的消息的一部分而包括的地图的偏移和比例。

为此,各个方面包括从输入坐标生成密钥(即,存储器地址偏移)的输入地图接口模块524a。所生成的密钥然后可被应用于输入坐标,以将输入坐标转换为本地代理的地图的当前偏移和比例。作为示例,该密钥可以经由以下函数生成,该函数在下面被描绘为等式4:

等式4:密钥∶坐标→存储器地址偏移

密钥(坐标)散列函数

使用来自近邻代理的该信息(密钥,偏移,比例),各个方面包括输入地图接口模块524a,该输入地图接口模块524a定义使用接收到的共享消息来输出真实地址的转换函数,使得密钥(key)被转换为如下等式5中表达的自地图信息:

等式5:函数t(密钥近邻,偏移近邻,比例近邻,偏移,比例)=密钥新的(functiont(keyneighbor,offsetneighbor,scaleneighbor,offset,scale)=

keynew)

图6图示使用该转换函数将相邻代理的坐标转换为本地代理的地图。

此外,在更新存储在存储器中的地图之前,各个方面包括使用消息中存在的数据(诸如id、代理之间的距离、分类、时间、接收到的占用概率等)来更新共享消息的不确定性。针对此目的而定义对来自接收到的消息中的这些参数的使用的函数在以下等式6中表示如下:

等式6:f(id,距离,分类,时间,概率旧的)=概率新的(f(id,distance,classification,time,probabilityold)=probabilitynew)

因此,各个方面包括上下文地图子系统524,该上下文地图子系统524进一步实现如图5b所示的偏移寄存器524d和比例寄存器524e。在一方面中,偏移寄存器524d和比例寄存器524e可促进在soc520上本地地保存特定代理的当前偏移和比例的值。

soc520可以任选地包括通信子系统526。在其中通信子系统526由控制逻辑子系统522启用的各个方面中,通信子系统526用于经由消息编码器526a将关于当前查询的体素的信息保存到缓冲队列中。该信息可以进一步被压缩,并且然后通过外部通信设备传送到其他代理,以促进在特定环境中操作的多个代理之间的协作式建图。例如,如图5b所示,各个方面包括使用附加的无线通信外围设备526b,该无线通信外围设备526b可以加速一些通信协议。

在各个方面,可以实现不同的策略来创建消息以与其他代理共享。这些策略可以经由控制逻辑子系统522和经由通信子系统526传送的消息来实现。例如,如果(多个)感测到的对象/(多个)体素要被共享,则消息编码器模块526a可使用通过应用由偏移寄存器524d和比例寄存器524e生成(或存储在偏移寄存器524d和比例寄存器524e中)的偏移和比例而由上下文地图子系统524输出的密钥。该信息可与关于给定体素的信息(id、分类、偏移、比例、概率、等等)结合使用,该消息被添加到发送队列(sendqueue)中。同样,要被发送的分组也可以在发送之前被压缩。

在一方面中,存储器模块524b被配置成将经由控制逻辑子系统522发送的上下文数据(例如地图坐标、请求和/或接收的消息数据)经由ram控制模块524b保存到所生成的地址。进一步地,根据本方面,输出地图接口524c被配置成计算对保存在ram存储器中的数据的特定查询,以输出诸如体素级别、概率、标签等的相关查询信息,如图5b所示。

最后,各个方面包括nv存储器子系统528,该nv存储器子系统528被配置为任何适当类型的非易失性存储器,并且被配置成用于保存存储在ram524b中的上下文地图存储器,并根据需要更新该上下文地图存储器。

示例

以下示例涉及进一步的各个方面。

示例1是片上系统(soc),该片上系统(soc)包括:与第一代理相关联的控制逻辑子系统,该控制逻辑子系统被配置为接收(i)与在线地图相关联的所生成的初始点云列表,该在线地图是与在与第一代理相同的环境内操作的第二代理共享的,初始点云列表中的点是基于由第一代理提供的传感器数据来进行建图的,以及(ii)由第二代理传送的一个或多个消息;以及与第一代理相关联的上下文地图子系统,上下文地图子系统被配置成用于(i)处理由第二代理传送的一个或多个消息以标识由第二代理标识的所生成的初始点云列表中的体素变化,以及(ii)根据一个或多个消息中所指示的所标识的体素变化来更新初始点云列表中的点,以生成更新的在线地图。

在示例2中,如示例1的主题,其中所标识的体素变化包括在线地图的所标识的体素中的每一个体素内所包含的对象的对象类别和至少一种属性。

在示例3中,如示例1-2中的任何组合的主题,其中所标识的体素变化包括在线地图的一个或多个体素内所包含的一个或多个对象,该一个或多个对象由第二代理标识,并且不能经由第一代理的传感器标识。

在示例4中,如示例1-3中的任何组合的主题,其中由第二代理传送的一个或多个消息包含感兴趣的对象(ooi),该感兴趣的对象(ooi)指示与所标识的体素变化相关联的某种类型的障碍物的缺席或存在。

在示例5中,如示例1-4中的任何组合的主题,其中上下文地图子系统进一步被配置成用于从与在线地图相关联的初始点云列表中选择父体素,并且用于通过将与父体素相关联的障碍物和父体素的子体素添加到体素列表来生成用于传输到第二代理的更新消息。

在示例6中,如示例1-5中的任何组合的主题,其中体素列表标识由第一代理的传感器检测到的、与在线地图相关联的初始点云列表中的点所包括的体素的变化。

在示例7中,如示例1-6中的任何组合的主题,进一步包括:通信子系统,该通信子系统被配置成用于传送更新消息,该更新消息包括与体素列表中的父体素相关联的障碍物和父体素的子体素,并且其中该更新消息使得第二代理在接收到该更新消息时根据体素列表中的所标识的体素的变化来更新初始点云列表中的点,以生成进一步更新的在线地图。

在示例8中,如示例1-7中的任何组合的主题,其中第一代理是自主车辆。

示例9是与第一代理相关联的具有存储在其上的指令的非暂态计算机可读介质,当该指令由一个或多个处理器执行时,使第一代理用于:对与在线地图相关联的初始点云列表中的点建图,该在线地图是与在与第一代理相同的环境内操作的第二代理共享的,初始点云列表中的点是基于由第一代理提供的传感器数据来进行建图的;从第二代理接收标识由第一代理建图的在线地图中包括的体素变化的一个或多个消息;并根据一个或多个消息中所指示的所标识的体素变化来更新初始点云列表中的点,以生成更新的在线地图。

在示例10中,如示例9的主题,其中计算机可读介质进一步包括指令,当该指令由一个或多个处理器执行时,使第一代理用于:将一个或多个所接收的消息中的每一个消息添加到消息列表;以及仅当消息列表为空时,根据如一个或多个消息中的每个消息中所指示的所标识的体素变化来更新初始点云列表中的点,并且以其他方式重复地对消息列表中所包含的一个或多个消息中的每一个消息中所标识的障碍物进行建图。

在示例11中,如示例9-10中的任何组合的主题,其中所标识的体素变化包括在线地图的所标识的体素中的每个体素内包含的对象的对象类别和至少一个属性,并且其中,从第二代理接收的一个或多个消息包含感兴趣的对象(ooi),该感兴趣的对象(ooi)指示与所标识的体素变化相关联的某种类型的障碍物的缺席或存在。

在示例12中,如示例9-11中任何组合的主题,其中计算机可读介质进一步包括指令,当该指令由一个或多个处理器执行时,使第一代理用于:通过从与在线地图相关联的初始点云列表中选择父体素来发起更新消息的生成;并通过将与父体素相关联的障碍物和父体素的子体素添加到体素列表来生成用于传输到第二代理的更新消息,其中体素列表标识由第一代理的传感器检测到的、与在线地图相关联的初始点云列表中的点所包括的体素的变化。

在示例13中,如示例9-12中任何组合的主题,其中计算机可读介质进一步包括指令,当该指令由一个或多个处理器执行时,使第一代理用于:传送更新消息,该更新消息包括与体素列表中的父体素相关联的障碍物和父体素的子体素,其中该更新消息使得第二代理在接收到该被传送的更新消息时根据体素列表中的所标识的体素的变化来更新初始点云列表中的点,以生成进一步更新的在线地图。

在示例14中,如示例9-13的任何组合的主题,其中计算机可读介质进一步包括指令,当该指令由一个或多个处理器执行时,使第一代理与从第二代理接收一个或多个消息并发发起更新消息的生成。

示例15是与第一代理相关联的具有存储在其上的指令的非暂态计算机可读介质,当该指令由一个或多个处理器执行时,使第一代理用于:从与在线地图相关联的初始点云列表中选择父体素,该在线地图是与在与第一代理相同的环境内操作的第二代理共享的,初始的点云列表中的点是基于由第一代理提供的传感器数据来进行建图的;通过第一代理将与父体素相关联的障碍物和父体素的子体素添加到标识在线地图中的体素的变化的体素列表来生成用于传输的消息;并传送包括与体素列表中的父体素相关联的障碍物和父体素的子体素的消息,其中,消息使第二代理在接收到消息时,根据体素列表中的所标识的体素的变化来更新初始点云列表中的点,以生成更新的在线地图。

在示例16中,如示例15的主题,其中计算机可读介质进一步包括指令,当该指令由一个或多个处理器执行时,使第一代理仅在体素列表因没有标识到初始点云列表中的点中所包含的体素的附加变化而为空时传送消息,并且以其他方式将与父体素相关联的障碍物和父体素的子体素重复地添加到体素列表。

在示例17中,如示例15-16的任何组合的主题,其中计算机可读介质进一步包括指令,当该指令由一个或多个处理器执行时,使第一代理从第二代理中接收一个或多个消息,该一个或多个消息标识由第一个代理建图的在线地图中所包括的体素变化,并根据一个或多个消息中所指示的所标识的体素变化来更新初始点云列表中的点,以生成更新的在线地图。

在示例18中,如示例15-17的任何组合的主题,其中计算机可读介质进一步包括指令,当该指令由一个或多个处理器执行时,使第一代理用于将从第二代理接收的一个或多个消息中的每个消息添加到消息列表中,以仅当消息列表为空时,根据一个或多个消息中的每个消息中所指示的所标识的体素变化来更新初始点云列表中的点,并且以其他方式重复地对消息列表中包含的一个或多个消息中每一个消息中所标识的障碍物进行建图。

在示例19中,如示例15-18的任何组合的主题,其中计算机可读介质进一步包括指令,当该指令由一个或多个处理器执行时,使第一代理与从第二代理接收一个或多个消息并发生成消息。

在示例20中,如示例15-19中的任何组合的主题,其中所标识的体素变化包括在线地图的所标识的体素中的每个体素内包含的对象的对象类别和至少一个属性,并且其中,从第二代理传送的消息包含感兴趣的对象(ooi),该感兴趣的对象(ooi)指示与所标识的体素变化相关联的某种类型的障碍物的缺席或存在。

示例21是片上系统(soc),该片上系统(soc)包括:与第一代理相关联的控制逻辑子系统装置,该控制逻辑子系统装置接收(i)与在线地图相关联的所生成的初始点云列表,该在线地图是与在与第一代理相同的环境内操作的第二代理共享的,初始点云列表中的点是基于由第一代理提供的传感器数据来进行建图的,以及(ii)由第二代理传送的一个或多个消息;以及与第一代理相关联的上下文地图子系统,上下文地图子系统装置(i)处理由第二代理传送的一个或多个消息以标识由第二代理标识的所生成的初始点云列表中的体素变化,以及(ii)根据一个或多个消息所指示的所标识的体素变化来更新初始点云列表中的点,以生成更新的在线地图。

在示例22中,如示例21的主题,其中所标识的体素变化包括在线地图的所标识的体素中的每一个体素内所包含的对象的对象类别和至少一种属性。

在示例23中,如示例21-22中的任何组合的主题,其中所标识的体素变化包括在线地图的一个或多个体素内所包含的一个或多个对象,该一个或多个对象由第二代理标识,并且不能经由第一代理的传感器标识。

在示例24中,如示例21-23的任何组合的主题,其中由第二代理传送的一个或多个消息包含感兴趣的对象(ooi),该感兴趣的对象(ooi)指示与所标识的体素变化相关联的某种类型的障碍物的缺席或存在。

在示例25中,如示例21-24的任何组合的主题,其中上下文地图子系统装置从与在线地图相关联的初始点云列表中选择父体素,并且通过将与父体素相关联的障碍物和父体素的子体素添加到体素列表来生成用于传输到第二代理的更新消息。

在示例26中,如示例21-25中的任何组合的主题,其中体素列表标识由第一代理的传感器检测到的、与在线地图相关联的初始点云列表中的点所包括的体素的变化。

在示例27中,如示例21-26中的任何组合的主题,进一步包括:通信子系统装置,该通信子系统装置用于传送更新消息,该更新消息包括与体素列表中的父体素相关联的障碍物和父体素的子体素,并且其中该更新消息使得第二代理在接收到该更新消息时根据体素列表中的所标识的体素的变化来更新初始点云列表中的点,以生成进一步更新的在线地图。

inexample28,thesubjectmatterofanycombinationofexamples21-27,whereinthefirstagentisanautonomousvehicle.

在示例28中,如示例21-27中的任何组合的主题,其中所述第一代理是自主车辆。

示例29是用于使第一代理执行以下操作的非暂态计算机可读介质装置:对与在线地图相关联的初始点云列表中的点建图,该在线地图是与在与第一代理相同的环境内操作的第二代理共享的,初始点云列表中的点是基于由第一代理提供的传感器数据来进行建图的;从第二代理接收标识由第一代理建图的在线地图中包括的体素变化的一个或多个消息;并根据一个或多个消息中所指示的所标识的体素变化来更新初始点云列表中的点,以生成更新的在线地图。

在示例30中,如示例29的主题,其中计算机可读介质装置进一步使第一代理用于:将一个或多个所接收的消息中的每一个消息添加到消息列表;以及仅当消息列表为空时,根据一个或多个消息中的每个消息中所指示的所标识的体素变化来更新初始点云列表中的点,并且以其他方式重复地对消息列表中所包含的一个或多个消息中的每一个消息中所标识的障碍物进行建图。

在示例31中,如示例29-30中的任何组合的主题,其中所标识的体素变化包括在线地图的所标识的体素中的每个体素内包含的对象的对象类别和至少一个属性,并且其中,从第二代理接收的一个或多个消息包含感兴趣的对象(ooi),该感兴趣的对象(ooi)指示与所标识的体素变化相关联的某种类型的障碍物的缺席或存在。

在示例32中,如示例29-31中的任何组合的主题,其中计算机可读介质装置进一步使第一代理用于:通过从与在线地图相关联的初始点云列表中选择父体素来发起更新消息的生成;并通过将与父体素相关联的障碍物和父体素的子体素添加到体素列表来生成用于传输到第二代理的更新消息,其中体素列表标识由第一代理的传感器检测到的、与在线地图相关联的初始点云列表中的点所包括的体素的变化。

在示例33中,如示例29-32中的任何组合的主题,其中计算机可读介质装置进一步使第一代理用于:传送更新消息,该更新消息包括与体素列表中的父体素相关联的障碍物和父体素的子体素,其中该更新消息使得第二代理在接收到该被传送的更新消息时根据体素列表中的所标识的体素的变化来更新初始点云列表中的点,以生成进一步更新的在线地图。

在示例34中,如示例29-33的任何组合的主题,其中计算机可读介质装置进一步使第一代理与从第二代理接收一个或多个消息并发地发起更新消息的生成。

示例35是用于使第一代理执行以下操作的非暂态计算机可读介质装置:从与在线地图相关联的初始点云列表中选择父体素,该在线地图是与在与第一代理相同的环境内操作的第二代理共享的,初始的点云列表中的点是基于由第一代理提供的传感器数据来进行建图的;通过第一代理将与父体素相关联的障碍物和父体素的子体素添加到标识在线地图中的体素的变化的体素列表来生成用于传输的消息;并传送包括与体素列表中的父体素相关联的障碍物和父体素的子体素的消息,其中,消息使第二代理在接收到消息时,根据体素列表中所标识的体素的变化来更新初始点云列表中的点,以生成更新的在线地图。

在示例36中,如示例35的主题,其中计算机可读介质装置使第一代理仅在体素列表因没有标识到初始点云列表中的点中所包含的体素的附加变化而为空时传送消息,并且以其他方式将与父体素相关联的障碍物和父体素的子体素重复地添加到体素列表。

在示例37中,如示例35-36的任何组合的主题,其中计算机可读介质装置进一步使第一代理从第二代理中接收一个或多个消息,该一个或多个消息标识由第一个代理建图的在线地图中所包括的体素变化,并根据一个或多个消息中所指示的所标识的体素变化来更新初始点云列表中的点,以生成更新的在线地图。

在示例38中,如示例35-37的任何组合的主题,其中计算机可读介质装置进一步使第一代理用于将从第二代理接收的一个或多个消息中的每个消息添加到消息列表中,以仅当消息列表为空时,根据一个或多个消息中的每个消息中所指示的所标识的体素变化来更新初始点云列表中的点,并且以其他方式重复地对消息列表中包含的一个或多个消息中每一个消息中所标识的障碍物进行建图。

在示例39中,如示例35-38的任何组合的主题,其中计算机可读介质装置进一步使第一代理与从第二代理接收一个或多个消息并发地生成消息。

在示例40中,如示例35-39中的任何组合的主题,其中所标识的体素变化包括在线地图的所标识的体素中的每个体素内包含的对象的对象类别和至少一个属性,并且其中,从第二代理传送的消息包含感兴趣的对象(ooi),该感兴趣的对象(ooi)指示与所标识的体素变化相关联的某种类型的障碍物的缺席或存在。

如所示出和所描述的设备。

如所示出和所描述的方法。

结论

具体方面的前述描述将如此充分地揭示本公开的一般性质,以至于其他人可以通过应用本领域技术内的知识就容易地修改和/或改变诸如这些具体方面之类的各种应用,而无需过度实验,而不背离本公开的一般概念。因此,基于本文展现的教导教示和指导,这些改编和修改旨在落入所公开各个方面的等同物的含义和范围内。应理解,本文中的措辞或术语是出于描述而非限制的目的,使得本说明书的术语或措辞将由本领域技术人员根据教示和指导来解释。

说明书中对“一个方面”、“方面”、“示例方面”等的引用指示所描述的方面可包括特定的特征、结构或特性,但是每个方面可以不一定包括该特定的特征、结构或特性。而且,此类短语不一定是指同一方面。此外,当结合方面描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他方面而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。

本文所描述的示例性方面是出于说明性目的而提供的,而不是限制性的。其他示例性方面是可能的,并且可以对示例性方面进行修改。因此,说明书并不意味着限制本公开。相反,本公开的范围仅根据所附权利要求及其等价物来限定。

各个方面可实现为硬件(例如电路)、固件、软件或其组合。各个方面还可实现为储存在机器可读介质上的指令,这些指令可由一个或多个处理器读取和执行。机器可读介质可包括用于存储或传送机器(例如,计算设备)可读形式的信息的任何机制。例如,机器可读介质可包括只读存储器(rom);随机存取存储器(ram);磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)等等。此外,固件、软件、例程、指令在本文中可被描述为执行特定动作。然而,应当理解,此类描述仅仅是出于方便起见,并且此类动作实际上由计算设备、处理器、控制器、或其他设备执行固件、软件、例程、指令等而导致的。进一步地,任何实现方式变体可以由通用计算机执行。

出于本讨论的目的,术语“处理电路”或“处理器电路”应理解为(多个)电路、(多个)处理器、逻辑或其组合。例如,电路可以包括模拟电路、数字电路、状态机逻辑、其他结构电子硬件或其组合。处理器可以包括微处理器、数字信号处理器(dsp)、或其他硬件处理器。处理器可以利用指令“硬编码”,以根据本文描述的各个方面来执行相应的(多个)功能。可替代地,处理器可以访问内部和/或外部存储器以检索存储在存储器中的指令,当该指令由处理器执行时,执行与处理器相关联的(多个)相应功能,和/或与具有包含在其中的处理器的组件的操作相关的一个或多个功能和/或操作。

在本文所描述的一个或多个示例性方面中,处理电路可以包括存储数据和/或指令的存储器。存储器可以是任何公知的易失性和/或非易失性存储器,包括例如只读存储器(rom)、随机存取存储器(ram)、闪存存储器、磁存储介质、光盘、可擦除可编程只读存储器(eprom)、和可编程只读存储器(prom)。存储器可以是不可移动的、可移动的、或两者的组合。

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