掌桥专利:专业的专利平台
掌桥专利
首页

用于确定位姿的系统和方法

文献发布时间:2023-06-19 09:30:39


用于确定位姿的系统和方法

技术领域

本申请主要涉及定位系统和方法,更具体地,涉及用于自动确定物体的位姿的系统和方法,例如,在自动驾驶环境中。

背景技术

定位技术广泛用于导航系统等各种领域,例如用于自动驾驶系统的导航。对于自动驾驶系统,重要的是确定物体(例如,自动车辆)的精确位姿,例如,物体的位置和/或航向。通常,可以在物体上安装一个或以上传感器(例如,LiDAR设备)以获取代表物体周围环境的点云数据。如果物体停在道路上或在道路上行进,道路可能会有一个或以上沿着道路延伸并容易被传感器检测到的路坎,这些路坎可以用来确定物体的位姿。因此,希望提供用于根据周围环境中的路坎确定物体的位姿的有效系统和方法,从而提高定位精度和效率。

发明内容

本申请的第一方面提供一种确定物体位姿的系统。物体可以位于其周围环境中的道路上,道路可以具有地面和至少一个路坎,至少一个路坎中的每一个路坎可以位于道路的一侧并具有一定高度。所述系统可以包括:包括一组指令的至少一个存储介质以及至少一个处理器,所述至少一个处理器与至少一个存储介质通信。当执行指令时,至少一个处理器可以被配置为使所述系统执行以下操作中的一个或多个操作。从代表周围环境的点云数据中,可以识别代表道路的至少两个截面的至少两组数据点。至少两个截面可以垂直于地面并沿着与物体相关的第一参考方向分布。基于至少两组数据点,可以确定至少一个路坎的特征向量。基于物体的预估位姿和位置信息数据库,可以确定至少一个路坎的至少一个参考特征向量。通过更新物体的预估位姿,可以确定物体的位姿。预估位姿的更新可以包括将特征向量与至少一个参考特征向量进行比较。

在一些实施例中,至少一个处理器可以进一步被配置为使所述系统执行以下操作中的一个或多个操作。可以将点云数据分类为代表至少两个物体的至少两个子集。至少两个物体至少可以包括至少一个路坎和地面。从代表至少一个路坎的子集和代表地面的子集中,可以识别至少两组数据点。

在一些实施例中,至少一个处理器可以被配置为使所述系统执行以下操作中的一个或多个操作。可以获取数据点的分类模型。通过将点云数据输入分类模型,可以将点云数据分类为至少两个子集。

在一些实施例中,至少一个处理器可以被配置为使所述系统执行以下操作中的一个或多个操作。对于道路的每个截面,基于其对应的数据点组,可以确定截面中的至少一个路坎的一个或以上特性值。基于每个截面中的至少一个路坎的一个或以上特性值,可以构造至少一个路坎的特征向量。

在一些实施例中,每个截面中的至少有一个路坎可以包括截面中的至少两个物理点。每个截面中的至少一个路坎的一个或以上特性值可以包括与其对应的物理点的法线角相关的特性值、与其对应的物理点的强度相关的特性值、与其对应的物理点的海拔相关的特性值、或者与其对应的物理点的入射角相关的特性值中的至少一个。

在一些实施例中,至少一个处理器可以被配置为使所述系统执行以下操作中的一个或多个操作。对于截面中的至少一个路坎的物理点中的每一个物理点,在对应的数据点组中,可以确定代表截面中的一区域的至少两个目标数据点,其中,区域可以覆盖物理点。对于截面中的至少一个路坎的物理点中的每一个物理点,可以确定第二参考方向和表面在物理点上的法线之间的法线角。可以确定截面中的至少一个路坎的物理点的法线角的分布,以作为截面中的至少一条路坎的一个或以上特性值之一。

在一些实施例中,至少一个处理器可以被配置为使所述系统执行以下操作中的一个或多个操作。基于对应的数据点组,可以确定截面中的至少一个路坎的物理点的强度。可以确定截面中的至少一个路坎的物理点的强度的分布,以作为截面中的至少一个路坎的一个或以上特性值之一。

在一些实施例中,至少一个处理器可以被配置为使所述系统执行以下操作中的一个或多个操作。可以将截面中的至少一个路坎的物理点的强度归一化到预定范围。可以确定截面中的至少一个路坎的物理点的经归一化的强度的分布,以作为截面中的至少一个路坎的一个或以上特性值之一。

在一些实施例中,至少一个处理器可以被配置为使所述系统执行以下操作中的一个或多个操作。基于物体的预估位姿,可以确定物体的至少两个假设位姿。对于物体的至少两个假设位姿中的每一个假设位姿,从位置信息数据库,可以获取代表道路的至少两个参考截面的至少两组参考数据点。至少两个参考截面可以垂直于地面并沿着与假设位姿相关的第三参考方向分布。对于物体的假设位姿中的每一个假设位姿,基于其对应的参考数据点组,可以确定至少一个路坎的参考特征向量。

在一些实施例中,确定物体的位姿可以包括一个或以上的迭代,以及一个或以上迭代的每个当前迭代可以包括以下操作中的一个或多个操作。对于至少两个假设位姿中的每一个假设位姿,可以确定当前迭代中特征向量和对应参考特征向量之间的相似度。基于当前迭代中的相似度,可以确定当前迭代中的至少两个假设位姿的概率分布。基于当前迭代中的至少两个假设位姿和概率分布,可以更新当前迭代中的物体的预估位姿以生成更新位姿。可以确定当前迭代中是否满足结束条件。响应于确定在当前迭代中满足结束条件,可以将当前迭代中的物体的更新位姿指定为物体的位姿。

在一些实施例中,一个或以上迭代的每个当前迭代可以进一步包括以下操作中的一个或多个操作。响应于确定当前迭代不满足结束条件,可以更新在当前迭代中的至少两个假设位姿。对于当前迭代中更新的假设位姿中的每一个假设位姿,可以确定在当前迭代中的至少一个路坎的更新参考特征向量。可以将在当前迭代中的至少两个更新的假设位姿指定为下一次迭代中的至少两个假设位姿。可以将在当前迭代中的至少两个更新的参考特征向量指定为下一次迭代中的至少两个参考特征向量。

在一些实施例中,确定物体的位姿可以是通过一种粒子滤波技术来执行的。

在一些实施例中,道路的至少两个截面可以沿着第一参考方向均匀分布。

在一些实施例中,物体的位姿可以包括物体的位置或物体的航向中的至少一个。

在一些实施例中,至少一个处理器可以被配置为使所述系统执行以下操作中的一个或多个操作。从组装在物体上的至少一个定位设备,可以接收物体的位姿数据。基于所述数据,可以确定物体的预估位姿。

本申请的第二方面提供一种确定物体位姿的方法。物体可以位于其周围环境中的道路上,道路可以具有地面和至少一个路坎,至少一个路坎中的每一个路坎可以位于道路的一侧并具有一定高度。所述方法可以包括从代表周围环境的点云数据中,识别代表道路的至少两个截面的至少两组数据点,其中,至少两个截面可以垂直于地面并沿着与物体相关的第一参考方向分布。所述方法也可以包括基于至少两组数据点,确定至少一个路坎的特征向量。所述方法还可以包括基于物体的预估位姿和位置信息数据库,确定至少一个路坎的至少一个参考特征向量;以及通过更新物体的预估位姿来确定物体的位姿。预估位姿的更新可以包括将特征向量与至少一个参考特征向量进行比较。

本申请的第三方面提供一种非暂时性计算机可读存储介质。所述非暂时性计算机可读存储介质可以包括至少一组用于确定物体位姿的指令,当电子设备的至少一个处理器执行所述至少一组指令时,至少一个处理器可以被配置用于执行方法。物体可以位于周围环境中的道路上,道路可以具有地面和至少一个路坎,至少一个路坎中的每一个路坎可以位于道路的一侧并具有一定高度。所述方法可以包括从代表周围环境的点云数据中,识别代表道路的至少两个截面的至少两组数据点,其中,至少两个截面可以垂直于地面并沿着与物体相关的第一参考方向分布。所述方法也可以包括基于至少两组数据点,确定至少一个路坎的特征向量,以及基于物体的预估位姿和位置信息数据库,确定至少一个路坎的至少一个参考特征向量。所述方法还可以包括通过更新物体的预估位姿来确定物体的位姿,其中,预估位姿的更新可以包括将特征向量与至少一个参考特征向量进行比较。

本申请的第四方面提供一种确定物体位姿的系统。物体可以位于周围环境中的道路上,道路可以具有地面和至少一个路坎,至少一个路坎中的每一个路坎可以位于道路的一侧并具有一定高度。所述系统可以包括识别模块、特性确定模块和物体位姿确定模块。识别模块可以被配置为从代表周围环境的点云数据中,识别代表道路的至少两个截面的至少两组数据点。至少两个截面可以垂直于地面并沿着与物体相关的第一参考方向分布。特性确定模块可以被配置为基于至少两组数据点,确定至少一个路坎的特征向量,以及基于物体的预估位姿和位置信息数据库,确定至少一个路坎的至少一个参考特征向量。物体位姿确定模块可以被配置为通过更新物体的预估位姿来确定物体的位姿,其中,预估位姿的更新可以包括将特征向量与至少一个参考特征向量进行比较。

本申请的一部分附加特性可以在下面的描述中进行说明。通过对以下描述和对应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过对以下描述的具体实施例的各种方面的方法、手段和组合的实践或使用得以实现和达到。

附图说明

本申请将通过示例性实施例进行进一步描述。这些示例性实施例将通过附图进行详细描述。这些实施例是非限制性的示例性实施例,在这些实施例中,各图中相同的编号表示相似的结构,其中:

图1A是根据本申请的一些实施例所示的示例性的自动驾驶系统的示意图;

图1B是根据本申请的一些实施例所示的车辆所在的道路的示例性截面的示意图;

图2是根据本申请的一些实施例所示的计算设备的示例性硬件和软件组件的示意图;

图3是根据本申请的一些实施例所示的移动设备的示例性硬件组件和/或软件组件的示意图;

图4是根据本申请的一些实施例所示的示例性处理设备的框图;

图5是根据本申请的一些实施例所示的用于确定物体的位姿的示例性过程的流程图;

图6是根据本申请的一些实施例所示的用于确定道路截面中一个或以上的路坎的特性值的示例性过程的流程图;

图7是根据本申请的一些实施例所示的用于确定道路截面中一个或以上的路坎的特性值的示例性过程的流程图;以及

图8是根据本申请的一些实施例所示的用于确定物体的位姿的示例性过程的流程图。

具体实施方式

为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。然而,本领域技术人员应所述理解,可以在没有这些细节的情况下实施本申请。在其他情况下,为了避免不必要地模糊本申请的一些方面,本申请已经以相对高级别概略地描述了公知的方法、程序、系统、组件和/或电路。对于本领域的普通技术人员来讲,显然可以对所公开的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请不限于所示的实施例,而是符合与申请专利范围一致的最广泛范围。

本申请中所使用的术语仅用于描述特定的示例性实施例,并不限制本申请的范围。如本申请使用的单数形式“一”、“一个”及“所述”可以同样包括复数形式,除非上下文明确提示例外情形。还应当理解,如在本申请说明书中,术语“包括”、“包含”仅提示存在所述特征、整体、步骤、操作、组件和/或部件,但并不排除存在或添加一个或以上其他特征、整体、步骤、操作、组件、部件和/或其组合的情况。

应当理解,这里使用的术语“系统”、“引擎”、“模块”、“单元”和/或“块”是在升序中区分不同级别的不同组件、元件、部件、部分或组件的一种方法。但是,如果能达到相同的目的,这些术语可能会被另一个表达式所取代。

通常,这里使用的词语“模块”、“单元”或“块”是指体现在硬件或固件中的逻辑,或者是软件指令的集合。这里描述的模块、单元或块可以实现为软件和/或硬件,并且可以存储在任何类型的非暂时性计算机可读介质或其他存储设备中。在一些实施例中,可以编译软件模块/单元/块并将其链接到可执行程序中。应当理解,软件模块可以从其他模块/单元/块或从它们自身调用,和/或可以响应检测到的事件或中断来调用。用于在计算设备上执行的软件模块/单元/块可以配置在计算机可读介质上,例如光盘、数字视频盘、闪存驱动器、磁盘或任何其他有形介质,或者配置为数字下载(最初可以以压缩或可安装的格式存储,在执行之前需要安装、解压缩或解密)。这里的软件代码可以被部分的或全部的储存在执行操作的计算设备的存储设备中,并应用在计算设备的操作之中。软件指令可以嵌入固件中,例如可擦除可编程只读存储器(EPROM)。还应当理解,硬件模块/单元/块可以包括在连接的逻辑组件中,例如门和触发器,和/或可以包括可编程单元,例如可编程门阵列或处理器。这里描述的模块/单元/块或计算设备功能可以实现为软件模块/单元/块,但是可以用硬件或固件表示。通常,这里描述的模块/单元/块指的是逻辑模块/单元/块,可以与其他模块/单元/块组合或者分成子模块/子单元/子块,不考虑它们的物理组织或存储。所述描述可适用于系统、引擎或其中的一部分。

应当理解,当单元、引擎、模块或块被称为“位于”、“连接到”或“耦合到”另一个单元、引擎、模块或块时,它可以直接位于、连接或耦合到或与另一单元、引擎、模块或块通信,或者可以存在其他中间单元、引擎、模块或块,除非上下文有另外的明确说明。在本申请中,术语“和/或”可包括任何一个或以上相关所列条目或其组合。

根据以下对附图的描述,本申请的这些和其他的特征、特点以及相关结构元件的功能和操作方法,以及部件组合和制造经济性,可以变得更加显而易见,这些附图都构成本申请说明书的一部分。然而,应当理解的是,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例绘制的。

本申请中使用流程图来说明根据本申请的一些实施例的系统所执行的操作。应当理解的是,流程图中的操作可以不按顺序执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将一个或以上其他操作添加到这些流程图中。也可以从流程图中删除一个或以上操作。

此外,虽然本申请中披露的系统和方法主要涉及确定自动驾驶系统中的物体(例如,自动车辆)的位姿。本申请的系统和方法可以应用于任何其他类型的运输系统。例如,本申请的系统和方法可以应用于不同环境的运输系统,包括陆地、海洋、航空航天等,或其任意组合。运输系统的车辆可包括出租车、私家车、顺风车、公共汽车、火车、动车、高铁、地铁、船只、飞机、宇宙飞船、热气球等,或其任意组合。

本申请的一个方面涉及用于确定物体的位姿的系统和方法。物体的位姿可包括物体的位置和/或航向(例如,前进方向)。在一些实施例中,物体的位姿包括物体的位置和航向。物体可以位于周围环境中的道路上,并且所述道路可以具有地面和一个或以上的路坎。每个路坎可以位于道路的一侧并具有一定高度。所述系统和方法可以从代表周围环境的点云数据中识别代表至少两个道路截面的至少两组数据点。所述至少两个截面可以垂直于地面并沿着与物体相关的第一参考方向分布。所述系统和方法还可以基于所述至少两组数据点来确定路坎的特征向量。所述系统和方法还可以基于物体的预估位姿和位置信息数据库来确定路坎的至少一个参考特征向量。此外,所述系统和方法可以通过更新物体的预估位姿来确定物体的位姿,其中可以在更新预估位姿时将特征向量与至少一个参考特征向量进行比较。

根据本申请的某些实施例,可以基于路坎的特征向量来确定物体的位姿。路坎的特征向量可以基于至少两个道路截面中路坎的一个或以上特性值来构造。沿第一参考方向分布的道路截面可以代表三维空间中的道路的一部分。因此,所述特征向量可以代表三维空间中路坎的特征。与代表二维空间中(例如,在单个道路截面中)路坎特征的特征向量相比,本文披露的特征向量可以更准确地反映路坎的特征,从而提高定位精度和效率。

另外,在某些实施例中,每个截面中路坎可以包括截面上的至少两个物理点。每个截面中路坎的特性值可以基于对应物理点的特征值来确定,并且用于构造路坎的特征向量。与直接使用每个截面中路坎的物理点的特征值构造的特征向量相比,这可以提高计算效率并减少处理时间。以这种方式,本申请的系统和方法可以有助于更有效和准确地确定物体的位姿。

图1A是根据本申请的一些实施例所示的示例性自动驾驶系统的示意图。例如,自动驾驶系统100A可以提供多种服务,例如定位和导航。在一些实施例中,自动驾驶系统100A可以应用于不同的自动或部分自动系统,包括但不限于自动驾驶车辆、高级司机辅助系统、机器人、智能轮椅等,或其任何组合。在部分自动系统中,一些功能可以选择性地在部分或所有时刻被手动控制(例如,由操作员控制)。此外,部分自动系统可以被配置为在完全手动操作模式、部分自动操作模式和/或完全自动操作模式之间切换。自动或部分自动系统可以被配置用于运输、地图数据获取,或用于发送和/或接收快递。为了说明,图1A以自动驾驶系统为例。如图1A所示,自动驾驶系统100A可以包括车辆110(车辆110-1、110-2、……和/或110-n)、服务器120、终端设备130、存储设备140、网络150,和导航系统160(也称为定位系统)。

车辆110可以携带乘客并前往目的地。在一些实施例中,车辆110可以是自动车辆。自动车辆可以指的是能够实现一定程度的驾驶自动化的车辆。示例性的驾驶自动化程度可以包括第一级,车辆主要由人监督并且具有特定的自动化功能(例如,自动转向或加速);第二级,车辆具有一个或以上先进的驾驶辅助系统(ADAS)(例如,自适应巡航控制系统、车道保持系统),其可以控制车辆的制动、转向和/或加速;第三级,当满足一个或以上某些条件时车辆能够自动驾驶;第四级,车辆可以在没有人为输入或监督的情况下操作但仍然受到某些限制(例如,被限制在某个区域);第五级,车辆可以在所有情况下自动操作等其他等级,或其任意组合。

在一些实施例中,车辆110可以是电动车辆、燃料电池车辆、混合动力车辆、传统内燃机车辆或任何其他类型的车辆。车辆110可以是运动车辆、轿跑车、轿车、轻型卡车、旅行车、运动型多功能车(SUV)、小型货车、改装旅行车或具有任何其他风格。车辆110可包括与传统车辆相同的一个或类似组件,例如,底盘、悬架、转向设备(例如,方向盘)、制动设备(例如,制动踏板)、加速器等。仅作为示例,车辆110可具有车身和至少一个车轮,例如一对前轮和一对后轮。车辆110可以是全轮驱动(AWD)、前轮驱动(FWR)或后轮驱动(RWD)。在一些实施例中,车辆110可以由操作员操控、被远程控制,和/或自动地操作。在一些实施例中,车辆110可以是被配置用于获取用于构建高清(HD)地图或三维(3D)城市模型的数据的勘测车辆。

如图1A所示,车辆110可配备有一个或以上传感器112,使得车辆110能够感测其周围环境。传感器112可以使用任何合适的安装机构安装在车辆110上。安装机构可以是安装或以其他方式附接到车辆110的车身的机电设备。例如,安装机构可以使用一个或以上螺钉、粘合剂或其他安装机构。传感器112可以安装在车辆110的任何位置上,例如,车辆的车身内部或外部。

车辆110的传感器112可包括能够收集与车辆110的周围环境有关的信息的任何传感器。例如,传感器112可包括相机、雷达单元、GPS设备、惯性测量单元(IMU)传感器、光检测和测距(LiDAR)设备等,或其任何组合。雷达单元可以利用无线电信号来感测车辆110的周围环境内的物体。在一些实施例中,除了感测物体之外,雷达单元可以被配置用于感测物体的速度和/或航向。摄像机可以被配置用于获取在摄像机范围内的物体(例如,人、动物、树、路障、建筑物或车辆)的一个或以上图像。相机可以是静态相机或摄像机。GPS设备可以指能够从GPS卫星接收地理位置和时间信息然后计算设备的地理位置的设备。IMU传感器可以被配置用于使用一个或以上惯性传感器(例如加速度计和陀螺仪,有时还有磁力计)来测量并提供车辆的特定力、角速率,并且有时提供车辆110周围的磁场。LiDAR设备可以被配置为扫描周围环境并获取代表周围环境的点云数据。例如,LiDAR设备可以通过用光脉冲照射物体并测量反射脉冲来测量到周围环境中物体的距离。然后可以使用光返回时间和波长的差异来构建对物体的3D表示。LiDAR设备使用的光脉冲可以是紫外线、可见光、近红外线等。

在一些实施例中,GPS设备和IMU传感器可以在车辆110行进时提供车辆110的实时位姿信息。位姿信息可包括车辆110的位置(例如,经度、纬度和/或海拔)和/或车辆110的航向(例如,欧拉角)。然而,在某些实施例中,由于性能限制,由GPS设备和IMU传感器收集的位姿信息仅能提供大致的预估位姿,而不是车辆110的精确位姿。自动驾驶系统100A可以基于由GPS设备和IMU传感器收集的位姿信息以及由LiDAR设备收集的点云数据来确定车辆110的位姿。根据本申请的一些实施例,车辆110可以位于周围环境中的道路(例如,如图2所示的道路116)上。所述道路可包括一个或以上路坎。自动驾驶系统100A可以基于由LiDAR设备收集的路坎的信息来确定车辆110的位姿。

在一些实施例中,服务器120可以是单个服务器,也可以是服务器组。服务器组可以是集中式的或分布式的(例如,服务器120可以是一分布式系统)。在一些实施例中,服务器120可以是本地的,也可以是远程的。例如,服务器120可以经由网络150访问存储在终端设备130、传感器112、车辆110、存储设备140和/或导航系统160中的信息和/或数据。又例如,服务器120可以直接连接到终端设备130、传感器112、车辆110和/或存储设备140以访问存储的信息和/或数据。在一些实施例中,服务器120可以在云平台或车载计算机上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。在一些实施例中,服务器120可以在本申请中的图2描述的包含了一个或以上组件的计算设备200上执行。

在一些实施例中,服务器120可包括处理设备122。处理设备122可以处理与车辆110相关联的信息和/或数据,以执行本申请中描述的一个或以上功能。例如,根据传感器112收集的与周围环境相关联的数据,尤其是与周围环境中的一个或以上路坎相关联的数据,处理设备122可以确定车辆110的位姿。特别地,在某些实施例中,当车辆110移动时,传感器112可以连续地或间歇地(例如,周期性地或不定期地)收集与周围环境相关联的数据。处理设备122可以实时地或间歇地(例如,周期性地或不定期地)确定车辆110的位姿。在一些实施例中,处理设备122可包括一个或以上处理设备(例如,单核处理设备或多核处理器)。仅作为范例,处理设备122可包括一中央处理器(CPU)、特定应用集成电路(ASIC)、特定应用指令集处理器(ASIP)、图像处理器(GPU)、物理运算处理单元(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、微处理器等或其任意组合。

在一些实施例中,服务器120可以连接到网络150以与一个或以上组件(例如,终端设备130、传感器112、自动驾驶系统100A的车辆110、存储设备140和/或导航系统160)。在一些实施例中,服务器120可以直接连接到自动驾驶系统100A的一个或以上组件(例如,终端设备130、传感器112、车辆110、存储设备140和/或导航系统160)或与之通信。在一些实施例中,服务器120可以集成在车辆110中。例如,服务器120可以是安装在车辆110中的计算设备(例如,计算机)。

在一些实施例中,终端设备130可以实现用户(例如,车辆110的司机)与自动驾驶系统100A的一个或以上组件之间的用户交互。终端设备130包括移动设备130-1、平板计算机130-2、膝上型计算机130-3、车辆的内置设备130-4等,或其任何组合。在一些实施例中,移动设备130-1可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等,或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器控制设备、智能监控设备、智能电视、智能摄像机、对讲机等,或其任意组合。在一些实施例中,该可穿戴设备可包括智能手镯、智能鞋袜、智能眼镜、智能头盔、智能手表、智能衣服、智能背包、智能配件等或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(PDA)、游戏设备、导航设备、销售点(POS)等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强型虚拟现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括Google

终端设备130可以被配置用于促进用户和车辆110之间的交互。例如,用户可以发送使用车辆110的服务请求。又如例如,终端设备130可以从车辆110接收与车辆110相关联的信息(例如,实时位置、可用性状态)。可用性状态可以指示车辆110是否可用。作为又一示例,终端设备130可以是具有定位技术的设备,用于定位用户和/或终端设备130的位置,这样,车辆110可以被导航到该位置以为用户提供服务(例如,接载用户并前往目的地)。在一些实施例中,终端设备130的所有者可以是除了车辆110的用户之外的其他人。例如,终端设备130的所有者A可以使用终端设备130来向用户发送用于使用车辆110的服务请求,或者从服务器120接收用户的服务确认和/或信息或指令。

存储设备140可以存储数据和/或指令。在一些实施例中,存储设备140可以存储从终端设备130、传感器112、车辆110、导航系统160、处理设备122和/或外部存储设备获取的数据。例如,存储设备140可以存储由传感器112在一段时间内获取的点云数据。又例如,存储设备140可以存储一个区域(例如,国家、城市、街道)的预先构建的HD地图和/或所述区域的特征信息(例如,该区域中的路坎的一个或以上参考特征向量)。在一些实施例中,存储设备140可以存储服务器120用来执行或使用来完成本申请中描述的示例性方法的数据和/或指令。例如,存储设备140可以存储使处理设备122可以执行或用于确定车辆110的位姿的指令。

在一些实施例中,储存设备140包括大容量储存设备、可移动储存设备、易失性读写存储器、只读存储器(ROM)等,或其任意组合。示例性的大容量存储设备可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器设备可以包括闪光驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性易失性读写存储器可以包括随机存取存储器(RAM)。示例性RAM可包括动态随机存取存储器(DRAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、静态随机存取存储器(SRAM)、晶闸管随机存取存储器(T-RAM)和零电容随机存取存储器(Z-RAM)等。示例性只读存储器可以包括掩模型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)和数字多功能磁盘只读存储器等。在一些实施例中,所述存储设备140可在云端平台上执行。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。

在一些实施例中,存储设备140可以连接到网络150以与自动驾驶系统100A的一个或以上组件(例如,服务器120、终端设备130、传感器112、车辆110和/或导航系统160)通信。自动驾驶系统100A的一个或以上组件可以经由网络150访问存储设备140中存储的数据或指令。在一些实施例中,存储设备140可以直接连接到自动驾驶系统100A的一个或以上组件(例如,服务器120、终端设备130、传感器112、车辆110和/或导航系统160)或与之通信。在一些实施例中,存储设备140可以是服务器120的一部分。在一些实施例中,存储设备140可以集成在车辆110中。

网络150可以促进信息和/或数据的交换。在一些实施例中,自动驾驶系统100A的一个或以上组件(例如,服务器120、终端设备130、传感器112、车辆110、存储设备140或导航系统160)可以经由网络150将信息和/或数据发送到自动驾驶系统100A的其他组件。例如,服务器120可以通过网络150从传感器112接收点云数据。在一些实施例中,网络150可以为任意形式的有线或无线网络,或其任意组合。仅作为示例,网络150可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络、近场通信(NFC)网络等或其任意组合。在一些实施例中,网络150可以包括一个或以上网络接入点。例如,网络150可以包括有线或无线网络接入点,通过该接入点,自动驾驶系统100A的一个或以上组件可以连接到网络150以交换数据和/或信息。

导航系统160可以确定与对象相关联的信息,例如,一个或以上的终端设备130、车辆110等。在一些实施例中,导航系统160可以是全球定位系统(GPS)、全球导航卫星系统(GLONASS)、罗盘导航系统(COMPASS)、北斗导航卫星系统、伽利略定位系统、准天顶卫星系统(QZSS)等。该信息可以包括对象的位置、高度、速度或加速度,或当前时间。导航系统160可以包括一个或以上的卫星,例如卫星160-1、卫星160-2和卫星160-3。卫星170-1至170-3可以独立地或共同地确定上述信息。导航系统160可以经由无线连接将上述信息发送到网络150、终端设备130或车辆110。

应当注意自动驾驶系统100A仅出于说明的目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。例如,自动驾驶系统100A还可以包括一个或以上附加组件,例如信息源、位置信息数据库(作为自动驾驶系统100A的独立部分或者集成到存储设备140中)。又如例,自动驾驶系统100A的一个或以上部件可以省略或由一个或以上可以实现类似功能的其他设备代替。在一些实施例中,GPS设备可以由另一个定位设备,例如北斗,替换。然而,这些变化和修改不会背离本申请的范围。

图1B是根据本申请的一些实施例所示的车辆所在的示例性道路的示例性截面的示意图。

如图1B所示,道路116可包括左路坎113、右路坎114和地面115。左路坎113和右路坎114中的每一个路坎可以位于地面115的一侧并相对于地面115具有一定高度。在一些实施例中,左路坎113和右路坎114中的每一个路坎可以包括邻接地面115的第一部分(例如,垂直于地面115的表面)和离开地面115的第二部分(例如,形成或邻接人行道的部分(图1B中未示出))。以左路坎113为例,如图1B所示,左路坎113可以包括从物理点b延伸到物理点c的第一表面和从物理点c延伸到物理点d的第二表面。在某些实施例中,左路坎113和/或右路坎114还可包括地面的一部分。以左路坎113为例,如图1B所示,地面115上从物理点a延伸到物理点b的一部分可以被视为左路坎113的一部分。

在一些实施例中,道路116可以仅包括左路坎113和右路坎114中的一个。在一些实施例中,道路116,包括左路坎113、右路坎114和地面115的可以沿特定的延伸方向延伸。附加地或替代地,可以存在除路坎之外的一个或以上物体,诸如道路隔离带(例如,绿化带),其在道路116的一侧上形成台阶结构并沿着延伸方向延伸。为了便于描述,本文使用的术语“路坎”来统称在道路116的一侧形成台阶结构并沿道路116的延伸方向延伸的物体。

在一些实施例中,截面100B可以垂直于地面115。车辆(例如,车辆110)可以停在道路116上或沿道路116行进。可以识别与截面100B类似的至少两个截面并将其用于确定车辆的位姿。例如,可以确定每个识别的截面中左路坎和右路坎的一个或以上特性值,并用于构造左路坎和右路坎的特征向量。可以进一步基于左路坎和右路坎的特征向量来确定车辆的位姿。

图2是根据本申请的一些实施例所示的计算设备200的示例性硬件和软件组件的示意图。计算设备200可用于实现如本文所述的自动驾驶系统100A的任何组件。例如,服务器120(例如,处理设备122)和/或终端设备130可以通过其硬件、软件程序、固件或其组合在计算设备200上实现。尽管仅示出了一个这样的计算设备,但是为了方便,与这里描述的自动驾驶系统100A相关的计算机功能可以在多个类似平台上以分布式方式实现,以分配处理负荷。

如图2所示,计算设备200可以包括通信总线210、处理器220、存储设备、输入/输出(I/O)260和通信端口250。处理器220可以执行计算机指令(例如,程序代码)并且根据本文描述的技术执行自动驾驶系统100A的一个或以上组件的功能。例如,处理器220可以确定车辆110的位姿。所述计算机指令可以包括例如执行在此描述的特定功能的常规、程序、对象、组件、数据结构、过程、模块和功能。在一些实施例中,处理器220可包括接口电路和其中的处理电路。接口电路可以被配置用于接收来自通信总线210的电子信号,其中电子信号编码结构化数据和/或指令以供处理电路处理。处理电路可以进行逻辑计算,然后将结论、结果和/或指令编码确定为电信号。然后,接口电路可以经由通信总线210从处理电路发出电信号。

在一些实施例中,处理器220可以包括一个或以上硬件处理器,诸如微控制器、微处理器、精简指令集计算机(RISC)、特定应用集成电路(ASIC)、特定应用指令集处理器(ASIP)、中央处理单元(CPU)、图形处理单元(GPU)、物理处理单元(PPU)、微控制器单元、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、高阶RISC机器(ARM)、可编程逻辑设备(PLD)、能够执行一个或以上功能的任何电路或处理器等,或其任何组合。

仅为说明之目的,计算设备200中仅示例性绘制了一个处理器。然而,应该注意的是,本申请中的计算设备200还可以包括多个处理器,由此执行的操作和/或方法步骤如本申请中所描述的一个处理器也可以由多个处理器联合地或单独地执行。例如,如果在本申请中,计算设备200的处理器执行步骤A和步骤B,应当理解的是,步骤A和步骤B也可以由计算设备200的两个或以上不同的处理器共同地或独立地执行(例如,第一处理器执行步骤A,第二处理器执行步骤B,或者第一和第二处理器共同地执行步骤A和步骤B)。

存储设备可以存储与自动驾驶系统100A有关的数据/信息。在一些实施例中,存储设备可包括质量存储设备、可移除存储设备、易失性读写存储器、随机存取存储器(RAM)240、只读存储器(ROM)230、磁盘270等,或其任何组合。在一些实施例中,存储设备可以存储一个或以上程序和/或指令以执行在本申请中描述的示例性方法。例如,存储设备可以存储用于处理器220执行的程序。

I/O 260可以输入和/或输出信号、数据、信息等。在一些实施例中,I/O 260可以实现用户与计算设备200的交互。在一些实施例中,I/O 260可以包括输入设备和输出设备。示例性的输入设备可以包括键盘、鼠标、触控屏幕、麦克风等,或其任何组合。示例性的输出设备可以包括显示设备、扬声器、打印机、投影机等,或其任何组合。显示设备的示例可以包括液晶显示器(LCD)、基于发光二极管(LED)的显示器、平板显示器、弯曲屏幕、电视设备、阴极射线管(CRT)、触控屏幕等,或其任何组合。通信端口250可以连接到网络(例如,网络120)以促进数据通信。通信端口250可以在计算设备200与自动驾驶系统100A的一个或以上组件之间建立连接。连接可以是有线连接、无线连接、可以启用数据传输和/或接收的任何其他通信连接,和/或这些连接的任何组合。有线连接可以包括例如电缆、光缆、电话线等,或其任何组合。有线连接可以包括例如电缆、光缆、电话线等或其任意组合。无线连接可以包括例如蓝牙链路、Wi-Fi

图3是根据本申请的一些实施例所示的示例性移动设备300的示例性硬件和/或软件组件的示意图。在一些实施例中,自动驾驶系统100A中的一个或以上的组件(例如,终端设备130、处理设备122)可以在移动设备300上实现。

如图3所示,移动设备300可以包括通信平台310、显示器320、图形处理单元(GPU)330、中央处理单元(CPU)340、I/O 350、内存360和存储器390。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示出),也可包括在移动设备300内。在一些实施例中,移动操作系统370(如,iOS

为了实施本申请描述的各种模块、单元及其功能,计算机硬件平台可用作本文中描述的一个或以上组件的硬件平台。具有用户接口组件的计算机可用于实施个人计算机(PC)或任何其他类型的工作站或终端设备。若程控得当,计算机亦可用作服务器。

图4是根据本申请的一些实施例所示的示例性处理设备的框图;如图4所示,处理设备122可以包括识别模块410、特征向量确定模块420和位姿确定模块430。

在一些实施例中,处理设备122可以被配置为确定物体的位姿。所述物体可以位于周围环境中的道路(例如,如图1B中所示的道路116)中。该道路可以具有地面和一个或以上的路坎。每个路坎可以位于道路的一侧并且相对于地面具有一定高度。识别模块410可以被配置为从表示周围环境的点云数据中识别表示道路的多个截面的多组数据点。在一些实施例中,识别模块410可以通过将点云数据分类为表示多个物理物体(例如,路坎,地面等)的多个子集来识别所述多组数据点。可以在本申请的其他地方(例如,操作510及其描述)找到有关识别多组数据点的更多描述。

特征向量确定模块420可以被配置为基于所述多组数据点确定路坎的特征向量。路坎的特征向量可以包括路坎的一个或多个特性值。在一些实施例中,对于道路的每个截面,特征向量确定模块420可以基于表示截面的数据点组来确定截面中的一个或多个路坎的特性值。特征向量确定模块420可以进一步基于每个截面中的一个或多个路坎的特性值来构造路坎的特征向量。可以在本公开的其他地方(例如,操作520及其描述)找到有关确定路坎的特征向量的更多描述。

特征向量确定模块420还可以被配置为基于物体的预估位姿和位置信息数据库来确定路坎的至少一个参考特征向量。所述预估位姿可以从组装在物体上的一个或多个定位设备(例如,GPS或IMU传感器)获得而来,或者可以基于由定位设备获取的物体的位姿数据来确定物体的预估位姿。位置信息数据库可以包括任何数据库,该数据库包括覆盖物体周围环境的区域(国家或城市)的位置信息。可以在本公开的其他地方(例如,操作530及其描述)找到关于确定路坎的至少一个参考特征向量的更多描述。

位姿确定模块430可以被配置为通过更新物体的预估位姿来确定物体的位姿。在某些实施例中,估计的位姿的更新可以包括将路坎的特征向量与至少一个参考特征向量进行比较。例如,位姿确定模块430可以确定特征向量与每个参考特征向量之间的相似度。位姿确定模块430可以进一步基于相似度更新估计的位姿。在某些实施例中,位姿确定模块430可通过执行如结合图8所述的一次或多次迭代来确定物体的位姿。关于确定物体位姿的更多描述可以在本公开的其他地方(例如,操作540及其相关描述)找到。

在一些实施例中,模块可以是处理设备122的全部或部分的硬件电路。模块还可以实现为由处理设备122读取和执行的应用程序或一组指令。此外,模块可以是硬件电路和应用/指令的任何组合。例如,当处理设备122正在执行应用程序/一组指令时,模块可以是处理设备122的一部分。

应当注意上述处理设备122的描述是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,上述任何模块可以以两个或以上单独的单元实现。

图5是根据本申请的一些实施例所示的用于确定物体的位姿的示例性过程的流程图。如图2所示,可以在计算设备200上实现过程500的至少一部分。在一些实施例中,过程500的一个或以上操作可以在自动驾驶系统100A中实现,如图1A所示。在一些实施例中,过程500中的一个或以上操作可以作为指令的形式存储在存储设备(例如,存储设备140、ROM230、RAM 240)中,并且由处理设备122(例如,计算设备200的处理器220、移动设备300的CPU340和/或图4中的模块)调用和/或执行。在一些实施例中,指令可以以电子电流或电信号的形式传输。

如本文所用,物体可以指任何具有或不具有生命并位于地球上的有机和/或无机物质的组合物。例如,物体可以是任何交通工具(例如,汽车、船或飞机)或任何人。在某些实施例中,物体可以是本申请中其他地方(例如,图1A和相关描述)描述的自动车辆(例如,车辆110)。在一些实施例中,物体的位姿可以包括物体在预定坐标系中的位置和/或航向。所述坐标系可以是具有固定原点和/或一个或以上固定轴的任何合适的坐标系,诸如地球的标准坐标系。所述坐标系可以具有任何数量(或计数)的维度。例如,坐标系可以是二维(2D)或三维坐标系。

在某些实施例中,物体在坐标系中的位置可以表示为其在坐标系中物体的坐标。物体的航向可以表示为其在坐标系中一个或以上欧拉角。以具有X轴、Y轴和Z轴的三维坐标系为例,物体在三维坐标系中的位置可以表示为其在X轴上的X坐标、在Y轴上的Y坐标和在Z轴上的Z坐标中的一个或以上。物体相对于三维坐标系的航向可以表示为偏航角、俯仰角和/或侧倾角的一个或以上。

在一些实施例中,物体可以位于周围环境中。物体的周围环境可以指物体周围的环境和一个或以上物体(包括生物和非生物体)。周围环境可以覆盖任何大小和形状的区域。在某些实施例中,周围环境所覆盖的区域可能与组装在物体上的传感器(例如,传感器112)的性能有关。以自动驾驶汽车为例,自动车辆的周围环境可以包括自动车辆周围的一个或以上物体,例如地面、车道标记、建筑物、行人、动物、植物、一个或以上其他车辆等。由自动车辆的周围环境覆盖的区域的尺寸可以取决于(或部分地取决于)在自动车辆上组装的LiDAR设备的扫描范围。

特别地,在某些实施例中,物体可以位于周围环境中的道路(例如,如图1B中所示的道路116)上。所述道路可以具有地面和一个或以上路坎。每个路坎可以位于道路的一侧并相对于地面具有一定高度。例如,道路可以在道路的两侧具有两个路坎。处理设备122可以通过分析周围环境中的路坎来执行过程500以确定物体的位姿。

在510中,处理设备122(例如,识别模块410)(例如,处理器220的处理电路)可以从代表周围环境的点云数据中识别代表至少两个道路截面的至少两组数据点。

如本文所用,道路截面可以指通过切割道路形成的平面表面。在一些实施例中,道路截面可以垂直于路面并沿着与物体相关联的第一参考方向分布。出于说明的目的,假设点云数据是在特定时间点(或时段)获取的,此时物体位于道路上的特定位置。在一些实施例中,第一参考方向可以是在所述特定时间点(或所述特定时段)时物体的预估前进方向。所述预估前进方向可以由安装在物体上的IMU或雷达单元测量,或者基于安装在物体上的相机拍摄的图像来确定。在一些其他实施例中,第一参考方向可以是道路上的物体所在的所述特定位置处的道路延伸方向。可以基于例如物体的预估位置、安装在物体上的相机拍摄的图像等来确定道路的延伸方向。

在某些实施例中,所述至少两个道路截面可沿第一参考方向均匀或不均匀地分布。例如,沿着第一参考方向的每对相邻截面之间的距离可以是恒定值,使得截面沿第一参考方向均匀分布。在一些实施例中,点云数据可以由组装在物体上的传感器,例如本申请中其他地方描述(例如,图1A及其描述)的一个或以上的LiDAR设备获取。例如,所述传感器可以发射激光脉冲以扫描周围环境。激光脉冲可以被周围环境中的物理点反射并返回传感器。所述传感器可以基于返回激光脉冲的一个或以上特征生成代表周围环境的点云数据。在某些实施例中,可以在物体(例如,车辆110)停在道路上或沿着道路行进的时间段(例如,1秒、2秒)内收集点云数据。在点云数据的采集过程中,传感器可以在扫描角度范围(例如,360度、180度、120度)中旋转并以特定的扫描频率(例如,10Hz、15Hz、20Hz)扫描周围环境。

点云数据可以包括至少两个数据点,每个数据点可以代表周围环境中的物理点(例如,物体的表面上的物理点)。每个数据点可以包括其对应的物理点的一个或以上特征的一个或以上特征值。物理点的示例性特征可以包括物理点相对于传感器(或物体)的相对位置、物理点的强度、物理点的分类、与物理点相关的扫描方向等,或其任何组合。在某些实施例中,物理点的相对位置可以表示为其在与传感器(或物体)相关的坐标系,诸如原点位于传感器(或物体)上的坐标系中的坐标。物理点的强度可以指由物理点反射的返回激光脉冲的强度。物理点的强度可以与物理点的性质(例如,组成和/或材料)相关联。物理点的分类可以指物理点所属的物体的类型(例如,地面、水)。与物理点相关的扫描方向可以指当传感器检测到对应数据点时传感器的扫描镜指向的方向。

可以从点云数据中提取至少两组代表截面的数据点。例如,处理设备122可以将点云数据分类为至少两个子集,每个子集代表物体。示例性物体可以包括但不限于路坎、地面、行人、车辆、植物、车道标记等。在一些实施例中,如上所述,由传感器收集的每个数据点可以记录的其对应物理点的分类。处理设备122可以基于数据点中记录的物理点的分类对点云数据进行分类。在一些其他实施例中,处理设备122可以使用分类模型来对点云数据进行分类。示例性分类模型可以包括但不限于K-近邻(KNN)分类模型、贝叶斯分类模型、决策树分类模型、随机森林分类模型、支持向量机(SVM)分类模型、卷积神经网络(CNN)模型、深度学习模型等,或其任意组合。在一些实施例中,所述分类模型可以由处理设备122或另一计算设备使用样本数据点(例如,具有已知分类的至少两个数据点)预先训练获得,并且存储在自动驾驶系统100A的存储设备或外部源中。处理设备122可以从所述存储设备或外部源获取所述分类模型。处理设备122还可以将点云数据输入到分类模型中以对点云数据进行分类。

在点云数据被分类为子集之后,处理设备122可以从代表路坎的子集和代表地面的子集中识别代表截面的数据点组。仅作为示例,每个数据点可以记录对应物理点相对于传感器的相对位置,如上所述。从代表路坎和地面的子集中,处理设备122可以基于物理点的相对位置识别代表位于特定截面中的至少两个物理点的特定数据点。所述特定数据点可以被识别为对应于特定截面的数据点组。

在520中,处理设备122(例如,特征向量确定模块420)(例如,处理器220的处理电路)可以基于所述至少两组数据点来确定路坎的特征向量。路坎的特征向量可以包括路坎的一个或以上的特性值。

在一些实施例中,对于每个道路截面,处理设备122可以基于代表该截面的数据点组来确定该截面中路坎的一个或以上特性值。处理设备122可以基于每个截面中路坎的一个或以上特性值来进一步构造路坎的特征向量。在某些实施例中,沿第一参考方向分布的道路截面可以代表三维空间中的道路的一部分。基于每个截面中路坎的特性值构造的特征向量则可以代表三维空间中的路坎的特征。与代表二维空间(例如,在单个道路截面中)中路坎特征的特征向量相比,本文所公开的特征向量可以更准确地反映路坎的特征,从而提高定位精度和效率。

在某些实施例中,截面中路坎可以包括截面中的至少两个物理点。截面中路坎的一个或以上特性值可以包括与其包含的物理点的一个或以上特征相关的一个或以上特性值。对应物理点的特征可以在点云数据中记录或由处理设备122确定。以图1B中的截面100B为例,截面100B中的左路坎和右路坎可以包括截面100B中的至少两个物理点(例如,物理点a、b、c、d等)。为了说明的目的,截面100B中左路坎和右路坎的至少两个物理点被称为物理点集Set

在一些实施例中,与物理点集Set

在一些实施例中,可以通过执行图6所述的过程600的一个或以上操作来确定与物理点集Set

在530中,处理设备122(例如,特征向量确定模块420)(例如,处理器220的处理电路)可以基于物体的预估位姿和位置信息数据库确定路坎的至少一个参考特征向量。

物体的预估位姿可以从组装在物体上的一个或以上定位设备获取,或者基于由所述定位设备获取的物体的位姿数据来确定。例如,物体可以是如结合图1A所述的车辆110,安装在车辆110上的GPS设备与IMU传感器组合可以提供实时位姿数据,诸如车辆110行驶时的预估位置和预估航向。处理设备122可以从GPS设备和/或IMU传感器获取预估位置和/或预估航向,并且将预估位置和/或预估航向指定为物体的预估位姿。

位置信息数据库可以是任何存储了一区域(如国家或城市)的位置信息的数据库,所述区域覆盖了物体的周围环境。在一些实施例中,位置信息数据库可以是自动驾驶系统100A中的本地数据库,例如,是存储设备140、ROM 230和/或RAM 240的一部分。附加地或替代地,位置信息数据库可以是远程数据库,例如云数据库,其可以由处理设备122通过网络150访问。

在一些实施例中,位置信息数据库可以存储代表所述区域的参考点云数据(例如,以区域的HD地图的形式)。参考点云数据可以包括至少两个参考数据点,每个参考数据点代表所述区域中的参考物理点并记录该参考物理点一个或以上特征值。在某些实施例中,参考点云数据的至少一部分可以由安装在样本物体上的传感器预先获取。例如,可以调度勘测车辆(例如,车辆110)以展开调查行程来扫描所述区域。当勘测车辆在区域中移动时,安装在勘测车辆中一个或以上的高精度传感器(例如,LiDAR设备)可以探测在勘测车辆的周围环境中的参考物理点并获取参考点云数据。附加地或替代地,参考点云数据的至少一部分可以基于由勘测车辆获取的信息确定,或者是由用户输入和/或经过用户确认。

处理设备122可以基于参考点云数据和物体的预估位姿确定路坎的至少一个参考特征向量。例如,处理设备122可以基于物体的预估位姿确定物体的至少两个假设位姿。物体的假设位姿可以包括物体的假设位置和/或物体的假设航向。在某些实施例中,假设位置可以是靠近物体的预估位置的位置,例如,位于预估位置的阈值距离内的位置。假设航向可以是相似于物体的预估航向的航向。仅作为示例,物体的预估位姿可由一个或以上预估的欧拉角表示,而假设航向可由一个或以上的假设欧拉角表示。所述假设欧拉角与预估的欧拉角之间的角度差可以小于角度阈值,表明假设航向与预估的航向相似。

在一些实施例中,处理设备122可以在过程500中使用粒子滤波技术来确定物体的位姿。粒子滤波技术可以利用一组粒子(也称为样品),每个粒子代表物体的假设位姿并具有分配给粒子的权值(或概率)。粒子的权值可以代表粒子可以精确表示物体的实际位姿的概率。可以根据观察所述物体以迭代地更新粒子(例如,重新采样),直到满足某个条件。然后可以在满足条件之后,可以基于更新的粒子,确定物体的实际位姿。在操作中,处理设备122可以通过在周围环境中围绕物体(或物体的预估位置)分配至少两个粒子(其代表假设位姿),以此基于预估位姿确定物体的假设位姿。在一些实施例中,粒子可以均匀且随机地分布在物体周围。或者,粒子可以不均匀地分布在物体周围。例如,处理设备122可以在路坎周围分配比在地面上更多的粒子。

在确定假设位姿之后,对于每个假设位姿,处理设备122可以从位置信息数据库获取代表至少两个参考道路截面的至少两组参考数据点。所述参考截面可以垂直于地面并沿着与假设位姿相关的第三参考方向分布。如这里所使用的,当物体处于一假设位姿时,第三参考方向可以是物体的前进方向。或者,第三参考方向可以是当物体处于该假设位姿时的道路的延伸方向。在一些实施例中,可以预先确定道路的参考截面和对应的数据点组并将其存储在位置信息数据库。处理设备122可以从位置信息数据库直接获取代表参考截面的参考数据点组。或者,处理设备122可以通过执行类似于结合操作510所描述的从点云数据中识别代表截面的数据点组的方式从参考点云数据中识别参考数据点组。

对于每个假设位姿,处理设备122还可以基于对应的参考数据点组确定路坎的参考特征向量。以一假设位姿为例,在一些实施例中,处理设备122可以基于其对应的参考数据点组确定其对应的每个参考截面中路坎的一个或以上参考特性值。然后,处理设备122可以使用其对应的参考截面中路坎的参考特性值来构造对应于该假设位姿的参考特征向量。其对应的参考截面中路坎的参考特性值可以类似于操作520所描述的截面中路坎的特性值。例如,在每个参考截面中,路坎可以包括参考截面中的至少两个参考物理点。每个参考截面中路坎的参考特性值可以包括与其对应的参考物理点的法线角相关的参考特性值、与其对应的参考物理点的强度相关的参考特性值、与其对应的参考物理点的海拔有关的参考特性值、或与其对应的参考物理点的入射角等有关的参考特性值,或其任何组合。参考截面中路坎的参考特性值可以用类似于操作520描述的确定截面中路坎的特性值的方式来确定,这里不再重复其描述。

在一些实施例中,位置信息数据库可以存储对应于假设位姿的路坎的参考特征向量。处理设备122可以从位置信息数据库直接获取参考特征向量。仅作为示例,位置信息数据库可以存储与道路上的物体的至少两个可能的假设位姿相对应的路坎的至少两个参考特征向量。处理设备122可以识别与物体的预估位姿相似的可能假设位姿,并且将可能的假设位姿指定为物体的特定假设位姿。处理设备122还可以将所识别的可能假设位姿的参考特征向量指定为对应于该特定假设位姿下路坎的参考特征向量。

在540中,处理设备122(例如,位姿确定模块430)(例如,处理器220的处理电路)可以通过更新物体的预估位姿来确定物体的位姿。预估位姿的更新可以包括将路坎的特征向量与至少一个参考特征向量进行比较。

在一些实施例中,结合操作530所描述的,至少一个参考特征向量可以包括对应于物体的至少两个假设位姿的至少两个参考特征向量。处理设备122可以确定特征向量与每个参考特征向量之间的相似度。处理设备122可以基于所述相似度进一步更新预估位姿。在某些实施例中,处理设备122可通过执行如图8所述的一个或以上迭代来确定物体的位姿。

应当注意,关于过程500的以上描述仅仅是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。以下呈现的所示过程的操作旨在说明。在一些实施例中,过程500可以利用未描述的一个或以上附加操作和/或没有在此讨论的一个或以上操作来完成。另外,如图5所示和上面描述的过程操作的顺序不是限制性的。例如,操作520和操作530可以同时执行,或者可以在操作520之前执行操作530。在一些实施例中,过程500还可以包括存储操作。任何中间结果,例如,所述至少两个数据点、至少两个数据点组、路坎的特征向量等,可以存储在存储设备中(例如,存储设备140、ROM230、RAM 240)。

图6和7是根据本申请的一些实施例所示的用于确定道路截面中一个或以上的路坎的特性值的示例性过程的流程图。过程600和/或过程700的至少一部分可以在计算设备200上实现,如图2所示。在一些实施例中,过程600和/或过程700的一个或以上操作可以在自动驾驶系统100A中实现,如图1A所示。在一些实施例中,过程600和/或过程700中的一个或以上操作可以作为指令的形式存储在存储设备(例如,存储设备140、ROM 230、RAM 240)中,并且由处理设备122(例如,计算设备200的处理器220、移动设备300的CPU 340和/或图4中的模块)调用和/或执行。

在一些实施例中,截面中路坎可以包括截面中的至少两个物理点。可以执行过程600以确定与至少两个物理点的法线角相关的特性值。可以执行过程700以确定与至少两个物理点的强度相关的特性值。在一些实施例中,可以针对在操作510中识别的道路截面中的每一个道路截面执行过程600和/或过程700,以确定每个截面中路坎的一个或以上特性值。如操作520中所述,每个截面中路坎的特性值可以用于构造路坎的特征向量。

在610中,对于截面中路坎的每个物理点,处理设备122(例如,特征向量确定模块420)(例如,处理器220的处理电路)可以在其对应的数据点组中确定至少两个目标数据点,其中,目标数据点可以代表截面中覆盖该物理点的区域。在一些实施例中,对于特定物理点,所确定的目标数据点可以代表截面上靠近该特定物理点的至少两个目标物理点。

在620中,对于截面中路坎的每个物理点,处理设备122(例如,特征向量确定模块420)(例如,处理器220的处理电路)可以基于其对应的目标数据点配置拟合对应区域的表面。对于特定物理点,拟合对应区域的表面可以是平面、曲面、不规则表面等。在一些实施例中,对应特定物理点的目标数据点可以包括接近特定物理点的目标物理点的位置信息。根据表面拟合算法,基于目标物理点的位置信息可以确定拟合特定物理点的对应区域的表面。

在630中,对于截面中路坎的每个物理点,处理设备122(例如,特征向量确定模块420)(例如,处理器220的处理电路)可以确定第二参考方向与其所对应的表面在该物理点处的法线之间的法线角。如这里所使用的,第二参考方向可以是任何固定方向。例如,第二参考方向可以与路面平行或垂直。

在640中,处理设备122(例如,特征向量确定模块420)(例如,处理器220的处理电路)可以确定截面中路坎的物理点的法线角的分布,以作为截面中路坎的一个或以上特性值之一。

在一些实施例中,截面中路坎的物理点的法线角的分布可以由法线角的协方差、方差、标准偏差和/或直方图代表。在某些实施例中,法线角的分布可以由法线角的直方图代表。法线角的直方图可以包括X轴和Y轴,其中X轴可以代表法线角的不同值(或范围),Y轴代表截面中与法线角的每个值(或范围)对应的物理点的数量(或计数)。

在710中,处理设备122(例如,特征向量确定模块420)(例如,处理器220的处理电路)可以基于代表截面的对应数据点组来确定截面中路坎的物理点的强度。

结合操作520所述,由安装在物体上的传感器获取得点云数据中的每个数据点可以代表周围环境中的物理点,并且记录其对应的物理点的强度。对于截面中路坎的每个物理点,处理设备122可以基于代表截面的数据点组中该物理点对应的数据点来确定物理点的强度。

在720中,处理设备122(例如,特征向量确定模块420)(例如,处理器220的处理电路)可以将截面中路坎的物理点的强度归一化到预定范围。

在一些实施例中,不同传感器可具有不同的设置。例如,获取代表周围环境的点云数据的传感器确定的物理点强度在[1,256]范围内。获取存储在位置信息数据库中的参考点云数据的传感器确定的物理点的强度在另一范围,例如[0,255]内。因此,处理设备122可能需要将截面中路坎的物理点强度归一化到预定范围,以避免点云数据与参考点云数据之间的不匹配。

在一些实施方案中,预定范围可以是任何合适的范围,例如[0,255]、[1,256]、[2,257]等。预定范围可以是自动驾驶系统100A的默认设置,可以由用户手动设置,或者由自动驾驶系统100A根据不同情况确定。

在730中,处理设备122(例如,特征向量确定模块420)(例如,处理器220的处理电路)可以确定截面中路坎的物理点经归一化的强度的分布,以作为截面中路坎的一个或以上特性值之一。

在一些实施例中,截面中路坎的物理点经归一化的强度的分布可以由经归一化的强度的协方差、方差、标准偏差和/或直方图代表。在某些实施例中,经归一化的强度的分布可以由经归一化的强度的直方图代表。经归一化的强度的直方图可以包括X轴和Y轴,其中,X轴可以代表经归一化的强度的不同值(或范围),Y轴可以代表截面中对应于经归一化的强度的每个值(或范围)的物理点的数量(或计数)。

应当注意以上关于过程600和700的描述仅仅是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。以下呈现的所示过程的操作旨在说明。在一些实施例中,过程600和700可以通过未描述的一个或以上附加操作和/或一个或以上本文所没有讨论的操作来完成。另外,上述过程600和700的操作的顺序不是限制性的。

在一些实施例中,处理设备122可以确定与截面中路坎的物理点和/或物理点的强度相关的一个或以上其他特性值,并且指定一个或以上其他特性值作为截面中路坎的一个或以上特性值。以法线角为例,处理设备122可以确定截面中路坎的物理点的平均或中值法线角,作为截面中路坎的特性值。在一些实施例中,在过程700中,可以省略操作720,并且处理设备122可以确定截面中路坎的物理点的强度的分布,作为截面中路坎的特性值之一。

图8是根据本申请的一些实施例所示的用于确定物体的位姿的示例性过程的流程图。在一些实施例中,过程800的一个或以上操作可以在自动驾驶系统100A中实现,如图1A所示。例如,过程800中的一个或以上操作可以作为指令的形式存储在存储设备(例如,存储设备140、ROM 230,RAM 240)中,并且由处理设备122(例如,计算设备200的处理器220、移动设备300的CPU 340和/或图4中的模块)调用和/或执行。当执行指令时,处理设备122可以被配置以执行过程800。

在一些实施例中,可以执行过程800的一个或以上操作以实现如结合图5所描述的操作540的至少一部分。在某些实施例中,在操作530中确定的路坎的至少一个参考特征向量可以包括对应于物体的至少两个假设位姿的至少两个参考特征向量。基于路坎的特征向量(在520中确定)和对应于假设位姿的参考特征向量,过程800可以执行一个或以上迭代来确定物体的位姿。在迭代中,可以更新物体的预估位姿、物体的假设位姿和/或与假设位姿相对应的路坎的参考特征向量。出于说明目的,下文描述了过程800的当前迭代。当前迭代可以包括如图8所示的操作的一个或以上。

在810中,对于当前迭代中物体的每个假设位姿,处理设备122(例如,位姿确定模块430)(例如,处理器220的处理电路)可以确定特征向量与该假设位姿对应的参考特征向量之间的相似度。

以当前迭代中的某个假设位姿为例,对应的相似度可以被用于测量特征向量与对应的参考特征向量之间的差异或相似度。特征向量与对应的参考特征向量之间的相似度可以通过例如,向量差、Pearson相关系数、欧几里德距离、余弦相似度、Tanimoto系数、曼哈顿距离、Mahalanobis距离、Lance Williams距离、Chebyshev距离、Hausdorff距离等来测量。在一些实施例中,处理设备122可以确定向量差以测量特征向量和对应的参考特征向量之间的差异。处理设备122还可以基于向量差来确定与特定假设位姿相对应的相似度。例如,对应于特定假设位姿的相似度可以与所述向量差具有负相关。在一些实施例中,处理设备122可以确定代价函数的值,所述代价函数可以测量特征向量和对应的参考特征向量之间的差异。处理设备122可根据代价函数的值进一步确定所述特定假设位姿对应的相似度。例如,所述特定假设位姿对应的相似度可以与代价函数的值呈负相关。

在820中,处理设备122(例如,位姿确定模块430)(例如,处理器220的处理电路)可以基于当前迭代中的相似度来确定当前迭代中的至少两个假设位姿的概率分布。

当前迭代中的假设位置的概率分布可以包括为当前迭代中的每个假设位姿确定的概率。假设位姿的概率可以代表该假设位姿可以准确表示物体的实际位姿的概率。在一些实施例中,假设位姿的概率可以与特征向量和该假设位姿对应的参考特征向量之间的相似度具有正相关性。例如,假设特征向量与对应于第一假设位姿的参考特征向量之间的相似度是S1,特征向量与对应于第二假设位姿的参考特征向量之间的相似度是S2。如果S1大于S2,则处理设备122可以为第一假设位姿确定的概率比第二假设位姿更高。

在一些实施例中,如结合图5所述的,处理设备122可以根据粒子滤波技术确定物体的位姿。当前迭代中的每个假设位姿可以由当前迭代中的粒子来表示。当前迭代中假设位姿的概率也可以被称为当前迭代中其对应的粒子的权值。

在830中,处理设备122(例如,位姿确定模块430)(例如,处理器220的处理电路)可以基于当前迭代中的假设位姿和概率分布来更新当前迭代中物体的预估位姿。

在一些实施例中,当前迭代中的更新的预估位姿可以是当前迭代中的假设位姿的加权和。例如,当前迭代中更新的预估位姿可以根据如下等式(1)确定:

其中,

在840中,处理设备122(例如,位姿确定模块430)(例如,处理器220的处理电路)可以确定在当前迭代中是否满足结束条件。示例性结束条件可以是当前迭代中的预估位姿与更新的预估位姿之间的差值在阈值内,代表预估位姿收敛。其他示例性结束条件可以包括已执行了特定次数的迭代、当前迭代中的假设位姿(或粒子)与先前迭代中的假设位姿(或粒子)之间的差值在阈值内使得显示当前迭代的假设位姿(或粒子)收敛、当前迭代中的假设位姿对应的整体相似度(例如,平均相似度)超过阈值等。

响应于确定满足结束条件,过程800可以进行到880。在880中,处理引擎122(例如,位姿确定模块430)(例如,处理器220的处理电路)可以将当前迭代中的更新的预估位姿指定为物体的位姿。

另一方面,响应于确定不满足结束条件,过程800可以进行到操作850到870。

在850中,处理设备122(例如,位姿确定模块430)(例如,处理器220的处理电路)可以更新至少两个假设位姿。

在一些实施例中,处理设备122可以通过重新采样来更新假设位姿。例如,如果一个或以上假设位姿(或粒子)在当前迭代中确定的概率(或权重)小于第一阈值,处理设备122可以移除所述一个或以上假设位姿(或粒子)。又例如,如果一个或以上假设位姿(或粒子)在当前迭代中确定的概率(或权重)大于第二阈值,处理设备122可以复制所述一个或以上假设位姿(或粒子)。在某些实施例中,处理设备122可以通过更新由假设位姿定义的物体的假设位置和/或假设航向来更新当前迭代中的假设位姿(或粒子)。仅作为示例,处理设备122可以将物体的更新的可能位置和/或航向确定为物体的更新假设位姿。

在一些实施例中,处理设备122可以确定假设位姿的调整值,并基于所述调整值和假设位姿来确定该假设位姿对应的更新假设位姿。例如,在某些实施例中,可以基于如上所述的成本函数来确定当前迭代中的特征向量与该假设位姿的参考特征向量之间的相似度。成本函数可以是假设位姿的非线性函数,其中假设位姿可以表示为a,成本函数可以表示为。可以通过在a

F(a)=F(a

其中a

如下等式(3)所示,调整值Δa可以基于等式(2)和最小二乘算法来确定:

Δa=(J

其中Z指在操作520中确定的路坎的特征向量,F(a′

在860中,对于当前迭代中物体的每个更新的假设位姿,处理设备122(例如,位姿确定模块430)(例如,处理器220的处理电路)可以确定当前迭代中的路坎的更新参考特征向量。

对应于更新假设位姿的路坎的更新参考特征向量可以用类似于操作530所述确定对应于假设位姿的路坎的参考特征向量的方式来确定。例如,对于每个更新的假设位姿,处理设备122可以基于位置信息数据库确定至少两组代表至少两个参考截面的参考数据点。处理设备122还可以基于对应的参考数据点组确定路坎的更新的参考特征向量。

在870中,处理设备122(例如,位姿确定模块430)(例如,处理器220的处理电路)可以将在当前迭代中更新的假设位姿指定为下一次迭代中的假设位姿。处理设备122还可以将更新的参考特征向量指定为与下一次迭代中的与假设位姿相对应的参考特征向量。在操作840至870之后,过程800可以再次进行到操作810以执行下一次迭代,直到满足结束条件。

应当注意以上关于过程800的描述仅仅是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本申请的教导可以做出多种变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,过程800可以利用未描述的一个或以上附加操作和/或没有所讨论的一个或以上个操作来完成。例如,过程800还可以包括存储位姿的操作和/或将位姿发送到与物体相关联的终端设备(例如,车辆110的内置计算机)以进行呈现的操作。另外,上述过程800的操作的顺序不是限制性的。

上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。

同时,本申请使用了特定词语来描述本申请的实施例。例如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特性。因此,应强调并注意的是,本说明书中在不同位置两次或以上提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改进。对应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“块”、“模块”、“设备”、“单元”、“组件”或“系统”。此外,本申请的各方面可以采取体现在一个或以上计算机可读介质中的计算机程序产品的形式,其中计算机可读程序代码包含在其中。

计算机可读信号介质可能包含一个内含有计算机程序代码的传播数据信号,例如在基带上或作为载波的一部分。此类传播信号可以有多种形式,包括电磁形式、光形式等或任何合适的组合。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通信、传播或传输供使用的程序。位于计算机可读信号介质上的程序代码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF等,或任何上述介质的组合。

本申请各部分操作所需的计算机程序代码可以用任意一种或以上程序设计语言编写,包括面向对象程序设计语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化程序设计语言如C程序设计语言、Visual Basic、Fortran1703、Perl、COBOL 1702、PHP、ABAP,动态程序设计语言如Python、Ruby和Groovy,或其他程序设计语言等。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网络(LAN)或广域网路(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。

此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的该方法不应被解释为反映所声称的待扫描对象物质需要比每个权利要求中明确记载的更多特征的意图。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

相关技术
  • 用于确定位姿的系统和方法
  • 一种用于确定内窥镜胶囊体内位姿的检测系统和方法
技术分类

06120112198535