CN111936821A - 用于定位的系统和方法 - Google Patents

用于定位的系统和方法 Download PDF

Info

Publication number
CN111936821A
CN111936821A CN201980001040.9A CN201980001040A CN111936821A CN 111936821 A CN111936821 A CN 111936821A CN 201980001040 A CN201980001040 A CN 201980001040A CN 111936821 A CN111936821 A CN 111936821A
Authority
CN
China
Prior art keywords
point cloud
cloud data
data
sets
pose
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980001040.9A
Other languages
English (en)
Inventor
侯庭波
屈孝志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Voyager Technology Co Ltd
Original Assignee
Beijing Voyager Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Voyager Technology Co Ltd filed Critical Beijing Voyager Technology Co Ltd
Publication of CN111936821A publication Critical patent/CN111936821A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/14Transformations for image registration, e.g. adjusting or mapping for alignment of images
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4808Evaluating distance, position or velocity data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • G01S19/45Determining position by combining measurements of signals from the satellite radio beacon positioning system with a supplementary measurement
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • G01S19/45Determining position by combining measurements of signals from the satellite radio beacon positioning system with a supplementary measurement
    • G01S19/47Determining position by combining measurements of signals from the satellite radio beacon positioning system with a supplementary measurement the supplementary measurement being an inertial measurement, e.g. tightly coupled inertial
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)

Abstract

本申请涉及定位系统和方法。所述方法包括获取由与对象相关一个或多个传感器获取的一个时间段内的点云数据。所述点云数据与所述对象的初始位置相关联。所述方法还包括将所述点云数据划分为至少两个组。所述方法还包括获取对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据。所述方法还包括基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据。所述方法还包括基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图。

Description

用于定位的系统和方法
技术领域
本申请涉及用于定位技术的系统和方法,并且具体地,涉及基于一个时间段内的点云数据生成在线地图的系统和方法。
背景技术
定位技术广泛用于各种领域,例如自动驾驶系统。对于自动驾驶系统,在自动驾驶车辆的驾驶期间在预先建立的地图(例如,高清地图)中确定对象(例如,自动驾驶车辆)的精确位置尤为重要。定位技术用于通过将在线地图与预先建立的地图进行匹配来确定自动驾驶车辆的准确位置,其中在线地图基于安装在自动驾驶车辆上的一个或多个传感器(例如,激光雷达)获取的扫描数据(例如,点云数据)生成。对象的精确定位依赖于在线地图与预先建立的地图的精确匹配。然而,由激光雷达实时扫描的点云数据包含稀疏的点和较少的环境信息,这导致难以直接匹配环境的高清地图。因此,有必要提供用于生成高清地图(也称为在线地图)的系统和方法,用于更准确地实时定位车辆。
发明内容
根据本申请的一个方面,提供了一种定位系统。所述系统包括存储一组指令的至少一个存储介质。所述系统还包括与所述至少一个存储介质通信的至少一个处理器。当执行所述一组指令时,所述至少一个处理器可以用于执行以下操作。所述至少一个处理器可以获取由与对象相关一个或多个传感器获取的一个时间段内的点云数据。所述点云数据与所述对象的初始位置相关联。所述至少一个处理器还可以将所述点云数据划分为至少两个组。所述至少一个处理器还可以获取对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据。所述至少一个处理器还可以基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据。所述至少一个处理器还可以基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图。
在一些实施例中,所述至少两组点云数据中的每组点云数据对应于一个时间戳。为了获取对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据,所述至少一个处理器可以基于所述时间戳,确定对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据。
在一些实施例中,为了获取对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据,所述至少一个处理器可以获取所述对象在所述时间段内的至少两个第一组姿态数据。所述至少一个处理器还可以对所述对象的所述至少两个第一组姿态数据执行插值操作,以生成至少两个第二组姿态数据。所述至少一个处理器还可以从所述至少两个第二组姿态数据中确定对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据。
在一些实施例中,所述至少一个处理器还可以使用球面线性插值技术对所述至少两个第一组姿态数据执行所述插值操作,以生成所述至少两个第二组姿态数据。
在一些实施例中,为了基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据,所述至少一个处理器可以基于所述对象的所述姿态数据,将所述至少两组点云数据中的每组点云数据从与所述对象相关联的第一坐标系变换到第二坐标系。
在一些实施例中,为了基于所述对象的所述姿态数据,将所述至少两组点云数据中的每组点云数据从与所述对象相关联的第一坐标系变换到第二坐标系,所述至少一个处理器可以基于对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据,确定一个或以上变换模型。所述至少一个处理器还可以基于所述一个或以上变换模型,将所述至少两组点云数据中的每组点云数据从所述第一坐标系变换到所述第二坐标系。
在一些实施例中,所述一个或以上变换模型包括平移变换模型或旋转变换模型中的至少一个。
在一些实施例中,为了基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图,所述至少一个处理器可以通过将所述拼接后的点云数据投影到第三坐标系中的平面来生成所述在线地图。
在一些实施例中,为了通过将所述拼接后的点云数据投影到第三坐标系中的平面来生成所述在线地图,所述至少一个处理器可以在所述第三坐标系中生成网格。其中所述对象的所述初始位置位于所述第三坐标系的中心,所述网格包括至少两个单元格。所述至少一个处理器还可以通过将所述拼接后的点云数据中的特征数据映射到所述至少两个单元格的一个或以上对应单元格来生成所述在线地图。
在一些实施例中,所述特征数据包括由所述一个或多个传感器接收的强度信息或高程信息中的至少一个。
在一些实施例中,所述至少一个处理器还可以基于增量的点云数据,生成所述在线地图。
在一些实施例中,所述至少一个处理器还可以基于所述增量的点云数据中的特征数据,更新对应于所述增量的点云数据的所述至少两个单元格的至少一部分。
根据本申请的另一方面,提供了一种定位方法。所述方法包括获取由与对象相关一个或多个传感器获取的一个时间段内的点云数据。所述点云数据与所述对象的初始位置相关联。所述方法还包括将所述点云数据划分为至少两个组。所述方法还包括获取对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据。所述方法还包括基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据。所述方法还包括基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图。
根据本申请的另一方面,提供了一种非暂时性可读介质,其包含至少一组指令用于定位。当所述至少一组指令被电子设备的至少一个处理器执行时,所述至少一组指令使所述至少一个处理器执行以下操作。所述至少一个处理器可以获取由与对象相关一个或多个传感器获取的一个时间段内的点云数据。所述点云数据与所述对象的初始位置相关联。所述至少一个处理器还可以将所述点云数据划分为至少两个组。所述至少一个处理器还可以获取对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据。所述至少一个处理器还可以基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据。所述至少一个处理器还可以基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图。
根据本申请的另一方面,提供了一种定位系统。所述系统包括获取模块、拼接模块和生成模块。所述获取模块用于获取由一个或多个传感器获取的与对象相关的一个时间段内的点云数据。所述点云数据与所述对象的初始位置相关联。所述获取模块还用于将所述点云数据划分为至少两个组。所述获取模块还用于获取对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据。所述拼接模块用于基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据。所述生成模块用于基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图。
本申请的一部分附加特征可以在下面的描述中进行说明。通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特征对于本领域技术人员是明显的。本申请的特征可以通过对以下描述的具体实施例的各种方面的方法、手段和组合的实践或使用得以实现和达到。
附图说明
本申请将通过示例性实施例进行进一步描述。这些示例性实施例将通过附图进行详细描述。这些实施例是非限制性的示例性实施例,在这些实施例中,各图中相同的编号表示相似的结构,其中:
图1是根据本申请的一些实施例所示的示例性自动驾驶系统的示意图;
图2是根据本申请的一些实施例所示的计算设备的示例性硬件和/或软件组件的示意图;
图3是根据本申请的一些实施例所示的移动设备的示例性硬件组件和/或软件组件的示意图;
图4A是根据本申请的一些实施例所示的示例性处理引擎的框图;
图4B是根据本申请的一些实施例所示的示例性获取模块的框图;
图5是根据本申请的一些实施例所示的用于生成与对象相关联的在线地图的示例性过程的流程图;
图6是根据本申请的一些实施例所示的用于获取对应于点云数据的至少两组中每一组的对象的姿态数据的示例性过程的流程图;以及
图7是根据本申请的一些实施例所示的用于生成与对象相关联的在线地图的示例性过程的流程图。
具体实施方式
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。然而,本领域技术人员应所述理解,可以在没有这些细节的情况下实施本申请。在其他情况下,为了避免不必要地模糊本申请的一些方面,本申请已经以相对高级别概略地描述了公知的方法、程序、系统、组件和/或电路。对于本领域的普通技术人员来讲,显然可以对所公开的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请不限于所示的实施例,而是符合与申请专利范围一致的最广泛范围。
本申请中所使用的术语仅用于描述特定的示例性实施例,并不限制本申请的范围。如本申请使用的单数形式“一”、“一个”及“所述”可以同样包括复数形式,除非上下文明确提示例外情形。还应当理解,如在本申请说明书中,术语“包括”、“包含”仅提示存在所述特征、整体、步骤、操作、组件和/或部件,但并不排除存在或添加一个或以上其他特征、整体、步骤、操作、组件、部件和/或其组合的情况。
应当理解,这里使用的术语“系统”、“引擎”、“模块”、“单元”和/或“块”是在升序中区分不同级别的不同组件、元件、部件、部分或组件的一种方法。但是,如果能达到相同的目的,这些术语可能会被另一个表达式所取代。
通常,这里使用的词语“模块”、“单元”或“块”是指体现在硬件或固件中的逻辑,或者是软件指令的集合。这里描述的模块、单元或块可以实现为软件和/或硬件,并且可以存储在任何类型的非暂时性计算机可读介质或其他存储设备中。在一些实施例中,可以编译软件模块/单元/块并将其链接到可执行程序中。应当理解,软件模块可以从其他模块/单元/块或从它们自身调用,和/或可以响应检测到的事件或中断来调用。用于在计算设备上执行的软件模块/单元/块可以配置在计算机可读介质上,例如光盘、数字视频盘、闪存驱动器、磁盘或任何其他有形介质,或者配置为数字下载(最初可以以压缩或可安装的格式存储,在执行之前需要安装、解压缩或解密)。这里的软件代码可以被部分的或全部的储存在执行操作的计算设备的存储设备中,并应用在计算设备的操作之中。软件指令可以嵌入固件中,例如可擦除可编程只读存储器(EPROM)。还应当理解,硬件模块/单元/块可以包括在连接的逻辑组件中,例如门和触发器,和/或可以包括可编程单元,例如可编程门阵列或处理器。这里描述的模块/单元/块或计算设备功能可以实现为软件模块/单元/块,但是可以用硬件或固件表示。通常,这里描述的模块/单元/块指的是逻辑模块/单元/块,可以与其他模块/单元/块组合或者分成子模块/子单元/子块,不考虑它们的物理组织或存储。所述描述可适用于系统、引擎或其中的一部分。
应当理解,当单元、引擎、模块或块被称为“位于”、“连接到”或“耦合到”另一个单元、引擎、模块或块时,它可以直接位于、连接或耦合到或与另一单元、引擎、模块或块通信,或者可以存在其他中间单元、引擎、模块或块,除非上下文有另外的明确说明。在本申请中,术语“和/或”可包括任何一个或以上相关所列条目或其组合。
根据以下对附图的描述,本申请的这些和其他的特征、特点以及相关结构元件的功能和操作方法,以及部件组合和制造经济性,可以变得更加显而易见,这些附图都构成本申请说明书的一部分。然而,应当理解的是,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例绘制的。
本申请中使用流程图来说明根据本申请的一些实施例的系统所执行的操作。应当理解的是,流程图中的操作可以不按顺序执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将一个或以上其他操作添加到这些流程图中。也可以从流程图中删除一个或以上操作。
本申请的一个方面涉及用于生成与车辆相关联的在线地图的定位系统和方法。为此,所述系统和方法可以在从一个或多个传感器(例如,激光雷达、全球定位系统(GPS)接收器、与车辆相关的一个或以上(惯性测量单元)IMU传感器)获得一个时间段内与对象的初始位置相关联的点云数据。所述点云数据可以包括对应于时间戳的至少两个组。所述系统和方法可以为至少两组点云数据中的每组点云数据确定车辆的姿态数据。所述系统和方法还可以基于车辆的姿态数据将每个组的点云数据变换到相同的坐标系,以获得变换的点云数据。所述系统和方法还可以通过将变换的点云数据投影到平面上来生成与车辆相关联的在线地图。以这种方式,本申请的系统和方法可以帮助更有效和准确地定位和导航车辆。
图1是根据本申请的一些实施例所示的示例性自动驾驶系统的示意图。例如,自动驾驶系统100可以提供至少两种服务,诸如定位和导航。在一些实施例中,自动驾驶系统100可以应用于不同的自主或部分自主系统,包括但不限于自动驾驶车辆、高级辅助驾驶系统、机器人、智能轮椅等或其任何组合。在部分自主系统中,一些功能可以在一些或所有时间可选地由手动控制(例如,由操作员)。此外,部分自主系统可以被配置为可以在完全手动操作模式和部分自主和/或完全自主操作模式之间切换。自主或部分自主系统可以被配置操作用于运输、地图数据获取或发送和/或接收快递。为了说明,图1以用于运输的自动车辆为例。如图1所示,自动驾驶系统100可以包括一个或以上车辆110、服务器120、一个或以上终端设备130、存储设备140、网络150、以及定位和导航系统160。
车辆110可以携带乘客并前往目的地。车辆110可以包括至少两个车辆110-1、110-2......110-n。在一些实施例中,车辆110可以是任何类型的自动驾驶车辆。自动驾驶车辆能够感测其环境并且在没有人类操作的情况下导航。在一些实施例中,车辆110可以包括传统车辆的结构,例如,底盘、悬架、转向装置(例如,方向盘)、制动装置(例如,制动踏板)、加速器等。在一些实施例中,车辆110可以是调查车辆,其被配置用于获取用于构建高清晰度地图或3-D城市建模的数据(例如,本申请中其他地方描述的参考地图)。车辆110可以是电动车、燃料电池车、混合动力车、传统内燃机车等。车辆110可具有车身和至少一个轮子。车身可以是任何车身类型,诸如运动车辆、轿跑车、轿车、皮卡车、旅行车、运动型多功能车(SUV)、小型货车或改装车。在一些实施例中,车辆110可以包括一对前轮和一对后轮。然而,可以预期的是,车辆110可以具有更多或更少的车轮或等效结构,使得车辆110能够四处移动。车辆110可以被配置为全轮驱动(AWD)、前轮驱动(FWR)或后轮驱动(RWD)。在一些实施例中,车辆110可以被配置为由占用车辆的操作员操作、远程控制和/或自主操作。
如图1所示,车辆110可以配备有至少两个传感器112,传感器112经由安装结构安装到车辆110的车身。安装结构可以是安装或以其他方式附接到车辆110的车身的机电装置。在一些实施例中,安装结构可以使用螺钉、粘合剂或其他安装机构。车辆110可以使用任何合适的安装机构在车身内部或外部另外配备传感器112。
传感器112可以包括相机、雷达单元、GPS装置、惯性测量单元(IMU)传感器、光探测和测距(激光雷达)等或其任何组合。雷达单元可以表示利用无线电信号来感测车辆110的本地环境内的物体的系统。在一些实施例中,除了感测物体之外,雷达单元还可以被配置用于感测物体的速度和/或前进方向。相机可以包括被配置用于捕获车辆110周围环境的至少两个图像的一个或以上设备。相机可以是静态相机或摄像机。GPS设备可以指的是能够从GPS卫星接收地理定位和时间信息然后计算设备的地理位置的设备。IMU传感器可以指的是使用各种惯性传感器(例如加速度计、陀螺仪还有磁力计)来测量和提供车辆的比力、角速率还有车辆周围的磁场的电子设备。IMU传感器可以被配置为基于各种惯性传感器感测车辆110的位置和方向变化。通过组合GPS设备和IMU传感器,传感器112可以在车辆110行进时提供车辆110的实时姿态信息,包括在每个时间点的车辆110的位置和方向(例如,欧拉角)。激光雷达被配置为扫描周围并生成点云数据。激光雷达可以通过用脉冲激光照射物体并用接收器测量反射脉冲来测量到物体的距离。然后可以使用激光返回时间和波长的差异来制作物体的数字三维表示。用于激光雷达扫描的光可以是紫外线、可见光、近红外线等。由于窄激光束可以以非常高的分辨率映射物理特征,因此激光雷达可能特别适用于高清地图勘测。摄像机可以被配置用于获得与摄像机范围内的物体(例如,人、动物、树、路障、建筑物或车辆)相关的一个或以上图像。与本申请一致,传感器112可以在传感器112捕获点云数据的同一时间点测量姿态信息。因此,姿态信息可以与相应的点云数据相关联。在一些实施例中,点云数据及其相关姿态信息的组合可用于定位车辆110。
在一些实施例中,服务器120可以是单一服务器或服务器组。服务器组可以是集中式的或分布式的(例如,服务器120可以是一分布式系统)。在一些实施例中,服务器120可以是本地的,也可以是远程的。例如,服务器120可以经由网络150访问存储在终端设备130、传感器112、车辆110、存储设备140和/或定位和导航系统160中的信息和/或数据。又例如,服务器120可以直接连接到终端设备130、传感器112、车辆110和/或存储设备140以访问存储的信息和/或数据。在一些实施例中,服务器120可以在云平台或车载计算机上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。在一些实施例中,服务器120可以在本申请中的图2描述的包含了一个或以上组件的计算设备200上执行。
在一些实施例中,服务器120可以包括处理引擎122。处理引擎122可以处理与车辆110相关联的信息和/或数据,以执行本申请中描述的一个或以上功能。例如,处理引擎122可以获得由与车辆110相关联的一个或多个传感器获取的一个时间段内的点云数据。点云数据可以与车辆的初始位置相关联。又例如,处理引擎122可以将点云数据划分为至少两个组,并获得对应于点云数据的至少两组点云数据中的每组点云数据的车辆110的姿态数据。作为另一示例,处理引擎122可以基于车辆110的姿态数据拼接至少两组点云数据中的每组点云数据以形成拼接后的点云数据。处理引擎122可以基于拼接后的点云数据生成与车辆110的初始位置相关联的在线地图。在一些实施例中,所述处理引擎122可以包括一个或以上处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅作为示例,处理引擎122可以包括中央处理单元(CPU)、专用集成电路(ASIC)、专用一组指令处理器(ASIP)、图像处理单元(GPU)、物理运算处理单元(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、微控制器单元、精简一组指令计算机(RISC)、微处理器等或其任意组合。
在一些实施例中,服务器120可以连接到网络150以与自动驾驶系统100的一个或以上组件(例如,终端设备130、传感器112、车辆110、存储设备140和/或定位和导航系统160)。在一些实施例中,服务器120可以直接连接到一个或以上组件或与之通信(例如,终端设备130、传感器112、车辆110、存储设备140和/或自动驾驶系统100的定位和导航系统160)。在一些实施例中,服务器120可以集成在车辆110中。例如,服务器120可以是安装在车辆110中的计算设备(例如,计算机)。
在一些实施例中,终端设备130可以包括移动设备130-1、平板计算机130-2、笔记本电脑130-3、车载设备130-4等或其任何组合。在一些实施例中,移动设备130-1可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器控制设备、智能监控设备、智能电视、智能摄像机、对讲机等或其任意组合。在一些实施例中,可穿戴设备可以包括智能手镯、智能鞋袜、智能眼镜、智能头盔、智能手表、智能衣服、智能背数据包、智能配件等或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(PDA)、游戏设备、导航设备、销售点(POS)等或其任意组合。在一些实施例中,虚拟现实设备和/或增强型虚拟现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括GoogleTMGlass、OculusRiftTM、HoloLensTM、GearVRTM等。在一些实施例中,车载设备130-4可以包括车载计算机、车载电视等。在一些实施例中,服务器120可以集成到终端设备130中。
终端设备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可以存储与由服务器120生成的车辆110相关联的在线地图。在一些实施例中,存储设备140可以存储服务器120可以执行或使用的用于执行本发明中描述的示例性方法的数据和/或指令。例如,存储设备140可以存储处理引擎122可以执行或使用的用于基于点云数据生成与估计位置相关联的在线地图的指令。又例如,存储设备140可以存储处理引擎122可以执行或使用的用于通过将在线地图与参考地图(例如,高清晰度地图)匹配来确定车辆110的位置的指令。
在一些实施例中,存储设备140可以包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。示例性的大容量存储器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性易失性读写内存可以包括随机存取内存(RAM)。示例性RAM可以包括动态随机存取存储器(DRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、静态随机存取存储器(SRAM)、晶闸管随机存取存储器(T-RAM)和零电容随机存取存储器(Z-RAM)等。示例性只读存储器可以包括掩模型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)和数字多功能磁盘只读存储器等。在一些实施例中,所述存储设备140可以在云平台上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
在一些实施例中,存储设备140可以连接到网络150以与自动驾驶系统100的一个或以上组件(例如,服务器120、终端设备130、传感器112、车辆110和/或定位和导航系统160)进行通信。自动驾驶系统100的一个或以上组件可以经由网络150访问存储设备140中存储的数据或指令。在一些实施例中,存储设备140可以直接连接到自动驾驶系统100的一个或以上组件(例如,服务器120、终端设备130、传感器112、车辆110和/或定位和导航系统160)。在一些实施例中,存储设备140可以是服务器120的一部分。在一些实施例中,存储设备140可以集成在车辆110中。
网络150可以促进信息和/或数据的交换。在一些实施例中,自主驾驶系统100的一个或以上组件(例如,服务器120、终端设备130、传感器112、车辆110、存储设备140或定位和导航系统160)可以经由网络150将信息和/或数据发送到自主驾驶系统100的其他组件。例如,服务器120可以经由网络150从传感器112接收点云数据。在一些实施例中,网络150可以为任意形式的有线或无线网络,或其任意组合。仅作为示例,网络150可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(LAN)、广域网路(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络、近场通讯(NFC)网络等或其任意组合。在一些实施例中,网络150可以包括一个或以上网络接入点。例如,网络150可以包括有线或无线网络接入点,通过该接入点,自主驾驶系统100的一个或以上组件可以连接到网络150以交换数据和/或信息。
定位和导航系统160可以确定与对象相关联的信息,例如,一个或以上终端设备130、车辆110等。在一些实施例中,定位和导航系统160可以是全球定位系统(GPS)、全球导航卫星系统(GLONASS)、罗盘导航系统(COMPASS),北斗导航卫星系统,伽利略定位系统,准天顶卫星系统(QZSS)等。该信息可以包括对象的位置、高度、速度或加速度或当前时间。定位和导航系统160可以包括一个或以上的卫星,例如,卫星160-1、卫星160-2和卫星160-3。卫星170-1至170-3可以独立地或共同地确定上述信息。卫星定位和导航系统160可以经由无线连接将上述信息发送到网络150、终端设备130或车辆110。
应当注意自动驾驶系统100仅仅是为了说明的目的而提供的,并不意图限制本申请的范围。对于本领域的普通技术人员来说,可以基于本申请的描述,做出各种各样的变化或修改。例如,自动驾驶系统100还可以包括数据库、信息源等。又例如,自动驾驶系统100可以在其他设备上应用以实现类似或不同的功能。在一些实施例中,GPS设备也可以由其他定位设备替换,例如北斗。然而,这些变化和修改不会背离本申请的范围。
图2是根据本申请的一些实施例所示的计算设备的示例性硬件和/或软件组件的示意图。计算设备可以是计算机,例如图1中的服务器110和/或具有特定功能的计算机,被配置用于实现基于本申请的一些实施例的任何特定系统。计算设备200可以被配置用于实现执行本申请中公开的一个或以上功能的任何组件。例如,服务器110可以通过其硬件、软件程序、固件或其任何组合在计算设备200上实现。为简洁起见,图2仅描绘了一个计算设备。在一些实施例中,计算设备的功能可以由分布式模式中的一组类似平台来实现,以分散系统的处理负荷。
计算设备200可以包括通信终端250,其可以与可以实现数据通信的网络连接。计算设备200还可以包括处理器220,其被配置为执行指令并且包括一个或以上处理器。示意性计算机平台可以包括内部通信总线210、不同类型的程序存储单元和数据存储单元(例如,硬盘270、只读存储器(ROM)230、随机存取存储器(RAM)240)、适用于计算机处理和/或通信的各种数据文件以及可能由处理器220执行的一些程序指令。计算设备200还可以包括I/O设备260,其可以支持计算设备200与其他组件之间的数据流的输入和输出。此外,计算设备200可以通过通信网络接收程序和数据。
为了实施本申请描述的各种模块、单元及其功能,计算机硬件平台可用作本申请中描述的一个或以上组件的硬件平台。具有用户接口组件的计算机可用于实施个人计算机(PC)或任何其他类型的工作站或终端设备。如果适当编程,计算机也可以充当系统。
图3是根据本申请的一些实施例所示的移动设备的示例性硬件组件和/或软件组件的示意图。如图3所示,移动设备300可以数据包括通信平台310、显示器320、图形处理单元(GPU)330、中央处理器(CPU)340、I/O350、内存360以及存储器390。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示出),也可包括在移动设备300内。在一些实施例中,移动操作系统370(例如,iOSTM、AndroidTM、WindowsPhoneTM)和一个或以上应用程序380可以从存储器390加载到内存360中,以便由CPU340执行。应用程序380可以数据包括浏览器或任何其他合适的移动应用程序,用于接收和呈现与来自处理引擎122的定位或其他信息有关的信息。用户与信息流的交互可以通过I/O350实现,并通过网络150提供给处理引擎122和/或自动驾驶系统100的其他组件。
为了实施本申请描述的各种模块、单元及其功能,计算机硬件平台可用作本申请中描述的一个或以上组件的硬件平台。具有用户接口组件的计算机可用于实施个人计算机(PC)或任何其他类型的工作站或终端设备。若适当编程,计算机亦可用作服务器。
图4A是根据本申请的一些实施例所示的示例性处理引擎的框图。在一些实施例中,处理引擎112可以是如结合图1所述的处理引擎122的实施例。在一些实施例中,处理引擎122可以被配置用于基于获取的一个时间段内的点云数据生成与对象相关联的在线地图。如图4A所示,处理引擎122可以包括获取模块410、拼接模块420、存储模块430和生成模块440。
获取模块410可以被配置用于获得与自动驾驶系统100的一个或以上组件有关的信息。例如,获得模块410可以获得与对象(例如,车辆110)相关联的点云数据。点云数据可以由一个或多个传感器(例如,传感器112)在一个时间段内获取和/或存储在存储设备(例如,存储设备140)中。点云数据可以与对象(例如,车辆110)的初始位置相关联。在一些实施例中,对象的初始位置可以指在时间段结束时对象的位置。对象的初始位置也可以被称为对象的当前位置。在一些实施例中,获取模块410可以将点云数据划分为至少两个组(也称为至少两个数据包)。又例如,获取模块410可以获得对应于至少两组点云数据中的每组点云数据的对象(例如,车辆110)的姿态数据。如本申请所使用的,对应于点云数据的特定组的对象的姿态数据可以指对象的姿态数据和点云数据的对应的特定组在相同或相似的时间点或时间段生成。姿态数据可以由一个或多个传感器(例如,GPS设备和/或IMU单元)在该时间段内获取和/或存储在存储设备(例如,存储设备140)中。关于获得模块410的更多描述可以在本申请的其他地方找到(例如,图4B及其描述)。
拼接模块420可以被配置为拼接至少两组点云数据中的每组点云数据。如这里所使用的,至少两组点云数据中的每组点云数据的拼接可以指将至少两组点云数据中的每组点云数据变换到相同的坐标系。所述相同的坐标系可以包括世界空间坐标系、物空间坐标系、地理坐标系等。在一些实施例中,拼接模块420基于对象(例如,车辆110)的姿态数据,使用配准拼接算法(例如,粗配准拼接算法,精配准拼接算法)可以拼接至少两组点云数据中的每组点云数据。示例性粗配准拼接算法可以包括正态分布变换(Normal DistributionTransform,NDT)算法、4点全等集(4-Points Congruent Sets,4PCS)算法、超4PCS(Super4PCS,Super-4PCS)算法、语义关键点4PCS(Semantic Keypoint 4PCS,SK-4PCS)算法、广义4PCS(Generalized 4PCS,Generalized-4PCS)算法等或其任何组合。示例性精配准拼接算法可以包括迭代最近点(Iterative Closest Point,ICP)算法、正常IPC(Normal IPC,NIPC)算法、通用ICP(Generalized-ICP,GICP)算法、判别优化(DiscriminativeOptimization,DO)算法、软异常值拒绝(Soft Outlier Rejection)算法、KD树近似算法(KD-tree Approximation)等或其任何组合。例如,拼接模块420可以通过基于一个或以上变换模型(例如,旋转变换模型(矩阵)、平移变换模型(矩阵))将至少两组点云数据中的每组点云数据变换到相同的坐标系来拼接至少两组点云数据中的每组点云数据。变换模型可以数据包括平移变换模型、旋转变换模型等。更多关于拼接过程的描述可以在本申请的其他地方找到(例如,图5中的操作540、图7中的操作708和710及其描述)。
存储模块430可以被配置为存储由处理引擎112的一个或以上组件生成的信息。例如,存储模块430可以存储由拼接模块420确定的一个或以上变换模型。又例如,存储模块430可以存储与由生成模块440生成的与对象的初始位置相关联的在线地图。
生成模块440可以被配置用于基于拼接后的点云数据生成与对象(例如,车辆110)的初始位置相关联的在线地图。在一些实施例中,生成模块440可以通过将拼接后的点云数据变换到相同的坐标系来生成在线地图。相同的坐标系可以是二维(2D)坐标系。例如,生成模块440可以将拼接后的点云数据投射到2D坐标系(也称为投影坐标系)中的平面上。在一些实施例中,生成模块440可以基于增量的点云数据生成在线地图。增量的点云数据可以对应于如操作510所述的时间段之后的另一时间段获取的附加点云数据。产生在线地图的更多描述可以在本申请的其他地方找到(图5中的操作550-560及其描述)。
这些模块可以是处理引擎122的全部或部分的硬件电路。这些模块也可以作为一个应用程序或一组由处理引擎读取和执行的指令实现。此外,模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎122正在执行应用程序/一组指令时,模块可以是处理引擎122的一部分。
应当注意以上对处理引擎122的描述是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以基于本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,上述任何模块可以以两个或以上单独的单元实现。例如,获取模块410的功能可以在四个单独的单元中实现,如图4B所示。在一些实施例中,处理引擎122可以省略一个或以上模块(例如,存储模块430)。
图4B是根据本申请的一些实施例所示的示例性获取模块的框图。在一些实施例中,获取模块410可以是如结合图4A所述的获取模块410的实施例。如图4B所示,获取模块410可以数据包括点云数据获取单元410-1、划分单元410-2、姿态数据获取单元410-3和匹配单元410-4。
点云数据获取单元410-1可以被配置为获取由与对象(例如,车辆110)相关联的一个或多个传感器(例如,传感器112)获取的一个时间段内的点云数据。点云数据可以与对象(例如,车辆110)的初始位置相关联。在一些实施例中,对象的初始位置可以指在时间段结束时对象的位置。对象的初始位置也可以被称为对象的当前位置。在一些实施例中,时间段可以是一个或多个传感器(例如,激光雷达)完成一次扫描的持续时间。例如,时间段可以是0.1秒、0.05秒等。在一些实施例中,时间段可以是一个或多个传感器(例如,激光雷达)完成至少两次扫描(例如20次、30次等)的持续时间。例如,时间段可以是1秒、2秒、3秒等。一个或多个传感器可以包括激光雷达、照相机、雷达等,如本申请中其他地方所述(例如,图1及其描述)。点云数据的更多描述可以在本申请的其他地方找到(例如,图5中的操作510及其描述)。
划分单元410-2可以被配置为将点云数据划分为至少两个组。在一些实施例中,划分单元410-2可以根据与一个或多个传感器(例如,激光雷达)相关联的一个或以上扫描参数或基于点云数据中标记的时间戳来划分点云数据。关于划分过程的更多描述可以在本申请的其他地方找到(例如,图5中的操作520及其描述)。
姿态数据获取单元410-3可以被配置用于获得由一个或多个传感器获取的对象在一个时间段内的至少两组姿态数据。时间段可以与结合点云数据获取单元410-1描述的时间段类似或相同。在一些实施例中,姿态数据单元410-3可以校正或校准对象(例如,车辆110)的至少两组姿态数据。例如,姿态数据单元410-3可以对对象的至少两个姿态数据组(即,至少两个第一组姿态数据)执行插值操作以生成至少两个第二组姿态数据。关于至少两组姿态数据和校正/校准过程的更多描述可以在本申请的其他地方找到(例如,图5中的操作530,图6中的操作620及其描述)。
匹配单元410-4可以被配置用于从至少两个第二组姿态数据中确定对应于至少两组点云数据中的每组点云数据的对象的姿态数据。在一些实施例中,匹配单元410-4可以基于对应于点云数据的特定组的时间戳和对应于至少两个第二组姿态数据之一的时间戳,将点云数据的特定组与至少两个第二组姿态数据中的一个匹配。对应于点云数据的特定组和对应于至少两个第二组姿态数据的时间戳可以与相同的时间点或时间段相关联,或者与两个相似的时间点或者时间段相关联。两个相似的时间点或时间段可以指两个时间点之间的差异小于预定的阈值。关于匹配过程的更多描述可以在本申请的其他地方找到(例如,图5中的操作530、图6中的操作630及其描述)。
图5是根据本申请的一些实施例所示的用于生成与对象相关联的在线地图的示例性过程的流程图。如图2所示,可以在计算设备200上实现过程500的至少一部分。在一些实施例中,过程500的一个或以上操作可以在如图1所示的自动驾驶系统100中实现。在一些实施例中,过程500中的一个或以上操作可以作为指令的形式存储在存储设备(例如,存储设备160、ROM 230、RAM 240)中,并且由服务器110(例如,服务器110中的处理引擎122或计算设备200的处理器220)调用和/或执行。。在一些实施例中,指令可以以电子电流或电信号的形式传输。以下呈现的所示过程的操作旨在说明。在一些实施例中,过程500可以通过未描述的一个或多个以上附加操作和/或省略一个或以上本申请所讨论的操作来完成。另外,如图5所示和下面描述的过程操作的顺序不是限制性的。
在510中,处理引擎122(例如,获取模块410、点云数据获取单元410-1)可以获取由与对象(例如,车辆110)相关联的一个或多个传感器(例如,传感器112)获取的一个时间段内的点云数据。所述点云数据可以与对象(例如,车辆110)的初始位置相关联。在一些实施例中,对象的初始位置可以指在该时间段结束时的对象的位置。对象的初始位置也可以被称为对象的当前位置。在一些实施例中,时间段可以是一个或多个传感器(例如,激光雷达)完成一次扫描的持续时间。例如,时间段可以是0.1秒、0.05秒等。在一些实施例中,时间段可以是一个或多个传感器(例如,激光雷达)完成至少两次扫描(例如20次、30次等)的持续时间。例如,时间段可以是1秒、2秒、3秒等。一个或多个传感器可以包括激光雷达、照相机、雷达等,如本申请中其他地方所述(例如,图1及其描述)。
点云数据可以由一个或多个传感器(例如,激光雷达)通过扫描对象的初始位置周围的空间来生成,例如,基于一个或以上扫描参数发射激光脉冲。示例性扫描参数可以包括测量范围、扫描频率、角度分辨率等。传感器(例如,激光雷达)的扫描频率可以指传感器每秒的扫描计数(或次数)。在一些实施例中,传感器的扫描频率可以是10Hz、15Hz等,这意味着传感器可以每秒扫描10次、15次等。例如,如果时间段是2秒,则点云数据可以由一个或多个传感器扫描20次生成。传感器的角度分辨率可以指传感器扫描期间的角度步长。例如,传感器的角度分辨率可以是0.9度、0.45度等。传感器的测量范围可以由传感器完成一次扫描的最大扫描距离和/或总扫描度来定义。例如,传感器的最大扫描距离可以是5米、10米、15米、20米等。传感器完成一次扫描的总扫描度可以是360度、180度、120度等。
在一些实施例中,处理引擎122可以在实时或周期性地从与对象相关联的一个或多个传感器(例如,传感器112)、存储器(例如,存储设备140)等获得与初始位置相关联的点云数据。例如,一个或多个传感器可以在一个或多个传感器完成一次扫描时将一个或多个传感器生成的一次扫描的点云数据发送到处理引擎122。又例如,一个或多个传感器可以在该时间段内将每次扫描产生的点云数据发送到存储器(例如,存储设备140)。处理引擎122可以,例如在该时间段之后,周期性地从存储器获得点云数据。在一些实施例中,在对象没有移动时可以由一个或多个传感器(例如,激光雷达)生成点云数据。在一些实施例中,可以在对象移动时生成点云数据。
点云数据可以指与对象(例如,车辆110)的当前位置周围的空间中的一个或以上物体相关联的一组数据点。数据点可以对应于物体的点或区域。对象周围的一个或以上物体可数据包括车道标记、建筑物、行人、动物、植物、车辆等。在一些实施例中,点云数据可以具有至少两个属性(也被称为特征数据)。点云数据的多个属性可以包括每个数据点的点云坐标(例如,X、Y和Z坐标)、与每个数据点相关联的高程信息、与每个数据点相关联的强度信息、返回编号、返回的总计数、每个数据点的类别、扫描方向等或其任何组合。如这里所使用的,“数据点的点云坐标”可以由点云坐标系(即,第一坐标系)表示。第一坐标系可以是与对象或一个或多个传感器相关联的坐标系,即对象的特定姿态(例如,位置)对应于特定的扫描。“与数据点相关联的高程信息”可以指数据点高于或低于固定参考点、线或平面(例如,最常见的是参考大地水准面,以地球海平面作为等势引力面的数学模型)的高度。“与数据点相关联的强度信息”可以指从传感器(例如,激光雷达)发射并由用于生成数据点的物体反射的激光脉冲的返回强度。“返回编号”可以指从传感器(例如,激光雷达)发射并由物体反射的给定输出激光脉冲的脉冲返回编号。在一些实施例中,发射的激光脉冲可以具有不同的返回水平,这取决于从其反射的特征以及用于收集点云数据的传感器(例如,激光扫描仪)的能力。例如,第一个返回可以标记为返回编号1,第二个返回标记为返回编号2,依此类推。“返回的总计数”可以指给定脉冲的总返回数量。“数据点的类别”可以指已经反射激光脉冲的数据点(或物体)的类型。例如,该组数据点可以分为许多类别,包括裸露的地表或地面、建筑物、人、水域等。“扫描方向”可以指的是当检测到数据点时激光雷达中的扫描镜被引导的方向。
在一些实施例中,点云数据可以数据包括至少两个点云帧。点云帧可以包括在一个角度步长由一个或多个传感器(例如,激光雷达)生成的点云数据的一部分。至少两个点云帧的每个点云帧可以用特定时间戳标记,该特定时间戳指示每个点云帧是在对应于特定时间戳的特定时间点或时间段被捕获。以的时间段为0.1秒为例,一个或多个传感器(例如,激光雷达)每秒扫描对象(例如,车辆110)周围的环境10次(即,每100毫秒一次))。每个单个扫描可以对应于360度的总扫描度。角度分辨率可以是0.9度。由一个或多个传感器(例如,激光雷达)通过单次扫描获取的点云数据可以对应于400个点云帧。
在520中,处理引擎122(例如,获取模块410、划分单元410-2)可以将所述点云数据划分为至少两个组。一组点云数据也可以被称为一个数据包。
在一些实施例中,处理引擎122可以基于与一个或多个传感器(例如,激光雷达)相关联的一个或以上扫描参数来划分点云数据。例如,处理引擎122可以基于一次扫描中的一个或多个传感器的总扫描度将点云数据划分为至少两个组。处理引擎122可以将在预先确定的子扫描度中获取的点云数据的一部分指定为一个组。预先确定的子扫描度可以由用户或基于自动驾驶系统100的默认设置来设置,例如,总扫描度的九分之一、总扫描度的十八分之一等。又例如,处理引擎122可以基于角度分辨率将点云数据划分为至少两个组。处理引擎122可以指定在若干连续角度步长(例如,10个连续角度步长、20个连续角度步长等)中获取的点云数据的一部分作为一个组。换句话说,处理引擎122可以将若干连续帧(例如,10个连续帧、20个连续帧等)指定为一个组。
在一些实施例中,处理引擎122可以基于点云数据的至少两个点云帧中标记的时间戳将点云数据划分为至少两个组。也就是说,至少两组点云数据可以分别对应于至少两个点云帧,或者至少两组点云数据中的每组点云数据可以对应于用若干连续时间戳标记的预先确定数量的连续点云帧。例如,如果点云数据包括200个点云帧,则点云数据可以被分为分别对应于200个点云帧或200个时间戳的200个组。又例如,处理引擎122可以确定至少两个组的数量。处理引擎122可以平均地将点云数据划分为至少两个组。作为另一示例,如果点云数据包括200个点云帧,并且至少两个组的数量是20,则处理引擎122可以将10个连续点云帧划分为至少两个组中的每一组。
在一些实施例中,可以在至少两次扫描中获取点云数据。在至少两次扫描中的每一次扫描中获取的点云数据可以划分相同或不同的组数。以2秒的时间段为例,一个或多个传感器(例如,激光雷达)可以每秒扫描对象(例如,车辆110周围的环境)10次(即,每100毫秒1次)。该时间段(即2秒)内的点云数据可以由一个或多个传感器(例如,激光雷达)通过20次扫描获取。通过20次扫描的每次单次扫描获取的点云数据可以对应于100个点云帧。在每次单次扫描中获得的点云数据可以划分10组。又例如,在第一次扫描中产生的点云数据可以划分第一数量的组。在第二扫描中生成的点云数据可以被划分为第二数量的组。第一个数量可能与第二个数量不同。
在一些实施例中,至少两组点云数据中的每组点云数据可以被标记为第一时间戳。在一些实施例中,可以基于对应于特定组中的点云帧的时间戳来确定与点云数据的特定组相对应的第一时间戳。例如,对应于点云数据的特定组的第一时间戳可以是对应于特定组中的一个点云帧的时间戳,例如,该特定组的点云帧中的最后一个点云帧,该特定组的点云帧中最早的一个点云帧,或该特定组中的任何一个点云帧等。又例如,处理引擎122可以基于与特定组中的点云帧对应的时间戳确定平均时间戳。
在530中,处理引擎122(例如,获取模块410、姿态数据获取单元410-3或匹配单元410-4)可以获取对应于所述点至少两组点云数据中的每组点云数据的所述对象(例如,车辆110)的姿态数据。如本申请所使用的,对应于点云数据的特定组的对象的姿态数据指对象的姿态数据和对应的特定组的点云数据在相同或相似的时间点或时间段生成。
对象(例如,车辆110)的姿态数据可以包括与至少两组点云数据中的每组点云数据对应的对象(例如,车辆110)的地理位置信息和/或IMU信息。地理位置信息可以包括对象对应于至少两组点云数据中的每组点云数据的地理位置(例如,车辆110)。对象(例如,车辆110)的地理位置可以由坐标系(例如,地理坐标系)中的3D坐标表示。IMU信息可以包括由对象位于地理位置时获取的飞行方向、俯仰角、侧倾角等定义的对象(例如,车辆110)的姿态。对应于点云数据的特定组的对象的地理位置信息和IMU信息可以对应于与点云数据的特定组的第一时间戳相似或相同的时间戳。
在一些实施例中,处理引擎122可以基于对应于点云数据的特定组的第一时间戳来获得与点云数据的特定组相对应的姿态数据。例如,处理引擎122可以获得在该时间段由一个或多个传感器(例如,GPS设备和/或IMU单元)获取的至少两组姿态数据。至少两组姿态数据中的每一组可以包括对应于第二时间戳的地理位置和姿态。处理引擎122可以通过比较第一时间戳和第二时间戳来匹配点云数据的特定组与至少两组姿态数据中的一组。如果第一时间戳和第二时间戳之间的差小于阈值,则处理引擎122可以确定点云数据的特定组与至少两组姿态数据中的一组匹配。阈值可以由用户或基于自动驾驶系统100的默认设置来设置。例如,阈值可能是0、0.1毫秒等。
在一些实施例中,处理引擎122可以校正或校准对象(例如,车辆110)的至少两组姿态数据,以确定对应于至少两组点云数据中的每组点云数据的姿态数据。例如,处理引擎122可以对对象的至少两组姿态数据(即,至少两个第一组姿态数据)执行插值操作,以生成至少两个第二组姿态数据。然后,处理引擎122可以从至少两个第二组姿态数据确定对应于至少两组点云数据中的每组点云数据的姿态数据。关于获得对象的对应于每个组的姿态数据的更多描述可以在本申请的其他地方找到(例如,图6及其描述)。
在540中,处理引擎122(例如,拼接模块420)可以基于对象(例如,车辆110)的姿态数据拼接至少两组点云数据中的每组点云数据以形成拼接后的点云数据。如这里所使用的,至少两组点云数据中的每组点云数据的拼接可以指将至少两组点云数据中的每组点云数据变换到相同的坐标系(即,第二坐标系)。第二坐标系可以包括世界空间坐标系、物空间坐标系、地理坐标系等。
在一些实施例中,处理引擎122可以使用配准拼接算法(例如,粗配准拼接算法、精配准拼接算法)基于对象(例如,车辆110)的姿态数据来拼接至少两组点云数据中的每组点云数据。示例性粗配准拼接算法可以包括正态分布变换(Normal DistributionTransform,NDT)算法、4点全等集(4-Points Congruent Sets,4PCS)算法、超4PCS(Super4PCS,Super-4PCS)算法、语义关键点4PCS(Semantic Keypoint 4PCS,SK-4PCS)算法、广义4PCS(Generalized 4PCS,Generalized-4PCS)算法等或其任何组合。示例性精配准拼接算法可以包括迭代最近点(Iterative Closest Point,ICP)算法、正常IPC(Normal IPC,NIPC)算法、通用ICP(Generalized-ICP,GICP)算法、判别优化(DiscriminativeOptimization,DO)算法、软异常值拒绝(Soft Outlier Rejection)算法、KD树近似算法(KD-tree Approximation)等或其任何组合。例如,处理引擎122可以通过基于一个或以上变换模型将至少两组点云数据中的每组点云数据变换到相同的坐标系(即,第二坐标系)来拼接至少两组点云数据中的每组点云数据。变换模型可以数据包括平移变换模型、旋转变换模型等。对应于点云数据的特定组的变换模型可用于将第一坐标系中的至少两组点云数据中的特定组点云数据变换到第二坐标系。可以基于与至少两组点云数据中的特定组点云数据相对应的姿态数据来确定对应于点云数据的特定组的变换模型。例如,可以基于与点云数据的特定组相对应的地理位置信息来确定对应于点云数据的特定组的平移变换模型。可以基于与点云数据的特定组相对应的IMU信息来确定与点云数据的特定组相对应的旋转变换模型。点云数据的不同组可以对应于不同的姿态数据。至少两组点云数据中的不同组点云数据可以对应于不同的变换模型。对应于每个组的变换后的点云数据可以被指定为对应于每个组的拼接后的点云数据。关于变换过程的更多描述可以在本申请的其他地方找到(例如,图7中的操作708和710及其描述)。
在550中,处理引擎122(例如,生成模块440)可以基于拼接后的点云数据生成与所述对象的所述初始位置(例如,车辆110)相关联的在线地图。在线地图是M×M米正方形区域(即,边长为M米的正方形区域)中的一组拼接后的点云数据。所述正方形区域以对象(例如,车辆110)的初始位置为中心。在线地图可以基于拼接后的点云数据将物体以图片形式呈现在M×M米正方形区域中。M可以是5、10等。在线地图包括第一数量的单元格。第一数量的单元格中的每个单元格对应于一个N×N厘米(例如,10×10厘米、15×15厘米等)的子正方形区域。第一数量的单元格的每个单元格可以对应于第二坐标系中与拼接后的点云数据相关联的体积、区域或数据点的一部分。在一些实施例中,在线地图用第三坐标系表示。第三坐标系可以是二维(2D)坐标系。
在一些实施例中,处理引擎122可以通过将第二坐标系中的拼接后的点云数据变换到第三坐标系来生成在线地图。处理引擎122可以基于坐标变换(例如,七参数变换)将拼接后的点云数据从第二坐标系变换到第三坐标系,以生成变换的拼接后的点云数据。例如,处理引擎122可以将第二坐标系中的拼接后的点云数据投影到第三坐标系(也称为投影坐标系)中的平面上。所述平面可以用网格表示。。网格可以包括第二数量的单元格。第二数量的单元格多于第一数量的单元格。然后,处理引擎122可以基于与分别由第二坐标系和第三坐标系表示的拼接后的点云数据相关联的数据点的坐标,将与拼接后的点云数据相关联的数据点与多个单元格中的每一个单元格匹配。处理引擎122可以将拼接后的点云数据中的特征数据(即,数据点的属性)映射到至少两个单元格的一个或以上对应的单元格中。特征数据可以数据包括由一个或多个传感器接收的强度信息(例如,强度值)和/或高程信息(例如,高度值)中的至少一个。在一些实施例中,处理引擎122可以确定与至少两个单元格中的一个单元格相对应的至少两个数据点。处理引擎122可以对与至少两个数据点相关联的拼接后的点云数据中呈现的特征数据执行平均操作,并将平均特征数据映射到单元格中。响应于确定与至少两个单元格中的一个单元格相对应的拼接后的点云数据相关联的单个数据点,处理引擎122可以将在与单个数据点相关联的拼接后的点云数据中呈现的特征数据映射到单元格中。
在一些实施例中,处理引擎122可以基于增量的点云数据生成在线地图。增量的点云数据可以对应于在操作510中描述的时间段之后的另一时间段获取的附加点云数据。例如,增量的点云数据可以由一个或多个传感器(例如,激光雷达)在操作510所描述的获取点云数据之后通过执行另一扫描来获取。处理引擎122可以通过基于增量的点云数据更新第二数量的单元格的一部分来生成在线地图。例如,可以根据操作540,基于对应于增量的点云数据的对象的姿态数据,将增量的点云数据变换为第二坐标系。根据操作550,将第二坐标系中的增量的点云数据进一步变换到第三坐标系。换句话说,第二坐标系中的增量的点云数据可以投影到由第三坐标系定义的平面上。增量的点云数据中呈现的特征数据可以映射到对应于增量的点云数据的第二数量的单元格的一部分。在一些实施例中,处理引擎122可以删除远离第二数量的单元格中被在操作540中获取的拼接的点云数据投影的至少一部分的中心的一个或以上的单元格。然后,处理引擎122可以在网格中添加与增量的点云数据匹配的一个或以上的单元格。处理引擎122还可以在一个或以上的添加单元格中映射增量的点云数据中呈现的特征数据。在线地图可以基于通过执行至少两次扫描中的每次扫描所获取的更多增量的点云数据来生成在线地图。所述至少两次扫描可以是10次、20次、30次等。在至少两次扫描中生成的更多增量的点云数据投影到网格中后,处理引擎122可以指定包含对应于M×M米正方形区域DE第一数量的单元格的网格的部分为在线地图。
在一些实施例中,处理引擎122可以使用增量的点云数据更新510中所述的获得的点云数据。处理引擎122可以基于操作520至550基于更新的点云数据生成在线地图。
关于过程500的以上描述的应当注意仅仅是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以基于本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,可以省略一个或以上操作和/或可以添加一个或以上附加操作。例如,可以同时执行操作510和操作520。又例如,操作530可以被分为两个步骤。一个步骤可以获得该时间段内的对象的姿态数据,并且另一个步骤可以将对象的姿态数据与至少两组点云数据中的每组点云数据匹配。在一些实施例中,过程500还可以包括基于在线地图和高清晰度地图来定位对象。
图6是根据本申请的一些实施例所示的用于获取对应于点云数据的至少两组中每一组的对象的姿态数据的示例性过程的流程图。如图2所示,可以在计算设备200上实现过程600的至少一部分。在一些实施例中,过程600的一个或以上操作可以在自动驾驶系统100中实现,如图1所示。在一些实施例中,过程600中的一个或以上操作可以作为指令的形式存储在存储设备(例如,存储设备160、ROM230、RAM240)中,并且由服务器110(例如,服务器110中的处理引擎122或计算设备200的处理器220)调用和/或执行。以下呈现的所示过程的操作旨在说明。在一些实施例中,过程500可以通过未描述的一个或多个以上附加操作和/或省略一个或以上本申请所讨论的操作来完成。另外,如图6所示和下面描述的过程操作的顺序不是限制性的。在一些实施例中,可以基于如图6所示的过程600来执行如结合图5所描述的操作530。
在610中,处理引擎122(例如,获取模块410、姿态数据获取单元410-3)可以获取由一个或多个传感器获取的对象在一个时间段内至少两个第一组姿态数据。该时间段可以与结合操作510描述的时间段类似或相同。例如,时间段可以是0.1秒、0.05秒等。对象(例如,车辆110)的至少两个第一组姿态数据中的每一组可以包括在该时间段内由一个或多个传感器(例如,GPS设备和/或IMU传感器)获取的对象(或传感器单元302)的地理位置信息、IMU信息和时间信息。第一组中的地理位置信息可以包括对象(例如,车辆110)所在的至少两个地理位置。对象(例如,车辆110)的地理位置可以由坐标系(例如,地理坐标系)中的3D坐标表示。当对象分别位于至少两个地理位置时,第一组中的IMU信息可以包括对象的至少两个姿态。第一组中的至少两个姿态中的每一个可以由对象(例如,车辆110)的飞行方向、俯仰角、侧倾角等来定义。第一组中的时间信息可以数据包括对应于第一组姿态数据的时间戳。
在一些实施例中,处理引擎122可以从自动驾驶系统100的一个或以上组件获得至少两个第一组姿态数据。例如,处理引擎122可以实时或周期性地从一个或多个传感器(例如,传感器112)获得至少两个第一组姿态数据。作为另一示例,处理引擎122可以经由GPS设备(例如,GPS接收器)获得第一组中的对象的地理位置信息和/或经由安装在对象上的惯性测量单元(IMU)传感器获得第一组中的IMU信息对象的地理位置信息。
在一些实施例中,GPS设备可以接收具有第一数据接收频率的地理位置。GPS设备的第一数据接收频率可以指每秒的位置更新计数(或次数)。第一数据接收频率可以是10Hz、20Hz等,这意味着GPS设备可以分别每0.1秒、0.05秒等接收一个地理位置。IMU传感器可以接收具有第二数据接收频率的IMU信息。IMU传感器的第二数据接收频率是指IMU信息(例如,对象的姿态)每秒更新计数(或次数)。IMU传感器的第二数据接收频率可以是100Hz、200Hz等,这意味着IMU传感器可以分别每0.01秒、0.005秒等接收一次IMU数据。因此,第一数据接收频率可以低于第二数据接收频率,这意味着在相同时间段,IMU传感器可以接收比GPS设备接收的地理位置更多的姿态。在一些实施例中,处理引擎122可以获得该时间段内的至少两个地理位置和至少两个姿态。处理引擎122可以进一步基于时间信息匹配至少两个地理位置中的一个和姿态以获得第一组姿态数据。如本申请所使用的,地理位置与姿态之间的匹配可以指确定获取姿态的地理位置。在一些实施例中,处理引擎122可以对至少两个地理位置上执行插值操作以匹配姿态和地理位置。示例性插值操作可以数据包括使用球面线性插值(Slerp)算法、GeometricSlerp算法、QuaternionSlerp算法等。
在620中,处理引擎122(例如,获取模块410,姿态数据获取单元410-3)可以对对象的至少两个第一组姿态数据执行插值操作以生成至少两个第二组姿态数据。示例性插值操作可以包括使用球面线性插值(Slerp)算法、GeometricSlerp算法、QuaternionSlerp算法等。与至少两个第一组姿态数据相比,至少两个第二组姿态数据可具有更高的精度。至少两个第二组姿态数据的每一组可以对应于一个时间戳。在一些实施例中,处理引擎122可以使用球形线性插值同时对对象(或传感器112)的至少两个第一组姿态数据中的地理位置信息、IMU信息和时间信息使用行球面线性插值(Slerp)算法以获得至少两个第二组姿态数据。至少两个第二组姿态数据的数量可以大于至少两个第一组姿态数据的数量。换句话说,至少两个第二组姿态数据中的地理位置信息、IMU信息的准确性可以高于至少两个第一组姿态数据中的地理位置信息、IMU信息在姿态数据。例如,如果至少两个第一组姿态数据包括具有对应于时间戳t1的姿态P1的位置L1,以及具有对应于时间戳t3的姿态P3的位置L3。至少两个第二组姿态数据包括具有对应于时间戳t1的姿态P1的位置L1、具有对应于时间戳t2的姿态P2的位置L2,以及具有对应于时间戳t3的姿态P3的位置L3。位置L2、姿态P2和时间戳t2可以分别位于位置L1、姿态P1和时间戳t1与位置L3、姿态P3和时间t3之间。
在630中,处理引擎122(例如,获取模块410、匹配单元410-4)可以从至少两个第二组姿态数据确定对应于点云数据的至少两组中的每一组的对象的姿态数据。
处理引擎122(例如,获取模块410、匹配单元410-4)可以基于对应于点云数据的特定组的时间戳和对应于多个第二组姿态数据之一的时间戳,将点云数据的特定组与多个第二组姿态数据中的一个进行匹配。例如,如结合图5所描述的,至少两组点云数据中的每组点云数据可以对应于第一时间戳。第二组姿态数据可以对应于第二时间戳。处理引擎122(例如,获取模块410、匹配单元410-4)可以通过匹配对应于特定时间戳的第一时间戳和对应于第二组姿势数据的第二时间戳来匹配点云数据的特定组和至少两个第二组姿态数据中的一个。。第一时间戳和第二时间戳之间的匹配是指第一时间戳和第二时间戳可以与相同的时间点或时间段相关联。可以基于第一时间戳和第二时间戳之间的差异来确定第一时间戳和第二时间戳之间的匹配。如果第一时间戳和第二时间戳之间的差异小于阈值,则处理引擎122可以确定第一时间戳和第二时间戳彼此匹配。阈值可以由用户或者基于自动驾驶系统100的默认设置来设置。
应当注意以上对过程600的描述仅仅是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以基于本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,可以省略一个或以上操作和/或可以添加一个或以上附加操作。
图7是根据本申请的一些实施例所示的用于生成与对象相关联的在线地图的示例性过程的流程图。如图2所示,可以在计算设备200上实现过程700的至少一部分。在一些实施例中,过程600的一个或以上操作可以在自动驾驶系统100中实现,如图1所示。在一些实施例中,过程700中的一个或以上操作可以作为指令的形式存储在存储设备(例如,存储设备160、ROM230、RAM240)中,并且由服务器110(例如,服务器110中的处理引擎122、或计算设备200的处理器220)调用和/或执行。以下呈现的所示过程的操作旨在说明。在一些实施例中,过程500可以通过未描述的一个或多个以上附加操作和/或省略一个或以上本申请所讨论的操作来完成。另外,如图7所示和下面描述的过程操作的顺序不是限制性的。在一些实施例中,可以结合图5中的操作510-550描述过程700。
在702中,可以获得扫描的点云数据。如结合操作510所述,处理引擎122(例如,获取模块410,点云数据获取单元410-1)可以获得由与对象(例如,车辆110)相关联的一个或多个传感器通过扫描一次对象的当前位置周围的空间所获取的点云数据。点云数据可以与对象(例如,车辆110)的当前位置相关联。在一些实施例中,当一个或多个传感器(例如,激光雷达)执行扫描时,对象可以正在移动。对象的当前位置可以指当一个或多个传感器(例如,激光雷达)完成扫描时对象所处的位置。操作710的细节可以与图5中描述的操作510相同或类似。
在704中,点云数据可以划分至少两个数据包(或组),例如,数据包1、数据包2、...、数据包N。至少两个数据包中的每一个可以对应于第一时间戳。处理引擎122(例如,获取模块410、划分单元410-2)可以基于一个或多个传感器(例如,激光雷达)的一个或以上扫描参数将点云数据划分为至少两个数据包,例如,用于完成扫描的一个或多个传感器的总扫描度。在一些实施例中,处理引擎122可以基于如图5中所描述的操作520将点云数据划分为至少两个数据包。点云数据的至少两个数据包中的每一个可数据包括至少两个数据点。数据包中的至少两个数据点的位置可以用与该数据包对应的一个或多个传感器相关联的第一坐标系表示。不同的数据包可以对应于不同的第一坐标系。
在706中,可以获得与对象(例如,车辆110)相关联的姿态数据。处理引擎122(例如,获取模块410、姿态数据获取单元410-3或匹配单元410-4)可以从姿态缓冲器716获得对应于点云数据的至少两个数据包中每个数据包的对象(例如,车辆110)的姿态数据。操作730的细节可以与图5的操作530和图6相同或类似。
在708和710中,可以基于姿态数据变换点云数据的至少两个数据包以生成地理参考点。处理引擎122(例如,拼接模块420)可以通过基于姿态数据将第一坐标系中的点云数据的至少两个数据包中的每个数据包变换到相同的坐标系(即,第二坐标系)来生成地理参考点。
在一些实施例中,第二坐标系可以是任何3D坐标系,例如,地理坐标系。对于点云数据的至少两个数据包中的每个数据包,处理引擎122可以确定可用于将第一坐标系表示的点云数据的至少两个数据包中的每个数据包中的数据点的坐标变换到地理坐标系表示的地理参考点的坐标的一个或以上变换模型(例如,旋转变换模型(或矩阵)、平移变换模型(或矩阵))。例如,处理引擎122可以基于如下所示的等式(1)确定一个或以上变换模型:
pt=R·ps+T (1),
其中,ps指的是由第一坐标系表示的特定数据包中的数据点的坐标,pt指的是与特定数据包中的对应数据点相对应的由第二坐标系(例如,地理坐标系)表示的地理参考点的坐标,R指的是旋转变换矩阵,T指的是平移变换矩阵。ps可以基于R和T转换为pt。对于点云数据的至少两个数据包和对应的姿态数据,处理引擎122可以基于任何合适的数学优化算法(例如,最小二乘算法)确定优化的R和优化的T。然后,处理引擎基于优化的R和优化的T,将点云数据的多个数据包中的每个数据包从第一坐标系变换到第二坐标系,以生成与每个数据包对应的变换后的点云数据。对于不同的数据包,姿态数据可以是不同的,并且变换模型(例如,R、T)可以是不同的。
在712和714中,可以执行增量更新以生成与对象的当前位置相关联的在线地图。处理引擎122(例如,生成模块440)可以将变换的点云数据投影在与第三坐标系相对应的平面上。第三坐标系可以是2D坐标系,其中心位于对象的当前位置。
在一些实施例中,可以基于不同的投影技术(例如,Albers投影、墨卡托投影、Lambert投影、Gauss-Kruger投影等等)将变换的点云数据(即,地理参考点)投影到平面上。该平面可以由包括至少两个单元格的网格表示。处理引擎122可以确定与每个地理参考点相对应的单元格。然后,处理引擎122可以使用与地理参考点相对应的特征数据(例如,强度信息和/或高程信息)将单元格填充。每个地理参考点可以对应于一个单元格。如这里所使用的,对应于单元格的地理参考点指的是在地理参考点的坐标被转换到第三坐标系中的坐标之后,转换后的地理参考点的坐标位于单元格内。然后可以执行增量更新以生成在线地图。增量更新可以指通过一个或多个传感器通过下一次扫描对象周围的空间来生成增量点数据,并且更新对应于增量的点云数据的网格中的至少两个单元格的至少一部分。在一些实施例中,处理引擎122可以删除远离网格中心(即,当前位置)的至少两个单元格的一部分。然后,处理引擎122可以将增量的点云数据的特征数据映射到相应的单元格中。操作712和714的细节可以与图5中的操作550相同或类似。
关于过程700的以上描述的应当注意仅仅是出于说明的目的而提供的,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以基于本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,可以省略一个或以上操作和/或可以添加一个或以上附加操作。
上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。例如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特征。因此,应强调并注意的是,本说明书中在不同位置两次或以上提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的一些特征、结构或特点可以进行适当的组合。
此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可以采取体现在一个或以上计算机可读介质中的计算机程序产品的形式,其中计算机可读程序代码包含在其中。
计算机可读信号介质可能包含一个内含有计算机程序代码的传播数据信号,例如在基带上或作为载波的一部分。此类传播信号可以有多种形式,包括电磁形式、光形式等或任何合适的组合。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,所述介质可以通过连接至一个指令执行系统、装置或设备以实现通信、传播或传输供使用的程序。位于计算机可读信号介质上的程序代码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF等或任何上述介质的组合。
本申请各部分操作所需的计算机程序代码可以用任意一种或以上程序设计语言编写,包括面向对象的程序设计语言(如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等)、常规程序设计语言(如“C”程序语言、VisualBasic、Fortran1703、Perl、COBOL1702、PHP、ABAP)、动态程序设计语言(如Python、Ruby和Groovy)或其他程序设计语言等。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网络(LAN)或广域网络(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)的。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的所述方法不应被解释为反映所声称的待扫描对象物质需要比每个权利要求中明确记载的更多特征的意图。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

Claims (26)

1.一种定位系统,其特征在于,包括:
存储一组指令的至少一个存储介质;
与所述至少一个存储介质通信的至少一个处理器,当执行所述一组指令时,所述至少一个处理器用于使系统:
获取由与对象相关的一个或多个传感器获取的一个时间段内的点云数据,所述点云数据与所述对象的初始位置相关联;
将所述点云数据划分为至少两个组;
获取所述对象对应于所述至少两组点云数据中的每组点云数据的姿态数据;
基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据;以及
基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图。
2.基于权利要求1所述的系统,其特征在于,所述至少两组点云数据中的每组点云数据对应于一个时间戳,并且为了获取所述对象的对应于所述点至少两组点云数据中的每组点云数据的姿态数据,所述至少一个处理器进一步用于使系统:
基于所述时间戳,确定所述对象的对应于所述点至少两组点云数据中的每组点云数据的姿态数据。
3.基于权利要求1或2所述的系统,其特征在于,为了获取所述对象的对应于所述点至少两组点云数据中的每组点云数据的姿态数据,所述至少一个处理器进一步用于使系统:
获取所述对象在所述时间段内的至少两个第一组姿态数据;
对所述对象的所述至少两个第一组姿态数据执行插值操作,以生成至少两个第二组姿态数据;以及
从所述至少两个第二组姿态数据中确定对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据。
4.基于权利要求3所述的系统,其特征在于,所述至少一个处理器用于使系统:
使用球面线性插值技术对所述至少两个第一组姿态数据执行所述插值操作,以生成所述至少两个第二组姿态数据。
5.基于权利要求1-4所述的系统,其特征在于,为了基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据,所述至少一个处理器用于使系统:
基于所述对象的所述姿态数据,将所述至少两组点云数据中的每组点云数据从与所述对象相关联的第一坐标系变换到对象第二坐标系。
6.基于权利要求5所述的系统,其特征在于,为了基于所述对象的所述姿态数据,将所述至少两组点云数据中的每组点云数据从与所述对象相关联的第一坐标系变换到第二坐标系,所述至少一个处理器用于使系统:
基于对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据,确定一个或以上变换模型;以及
基于所述一个或以上变换模型,将所述至少两组点云数据中的每组点云数据从所述第一坐标系变换到所述第二坐标系。
7.基于权利要求6所述的系统,其特征在于,所述一个或以上变换模型包括平移变换模型或旋转变换模型中的至少一个。
8.基于权利要求1-7所述的系统,其特征在于,为了基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图,所述至少一个处理器用于使系统:
通过将所述拼接后的点云数据投影到第三坐标系中的平面来生成所述在线地图。
9.基于权利要求8所述的系统,其特征在于,为了通过将所述拼接后的点云数据投影到第三坐标系中的平面来生成所述在线地图,所述至少一个处理器进一步用于使系统:
在所述第三坐标系中生成网格,其中所述对象的所述初始位置位于所述第三坐标系的中心,所述网格包括至少两个单元格;以及
通过将所述拼接后的点云数据中的特征数据映射到所述至少两个单元格的一个或以上对应单元格来生成所述在线地图。
10.基于权利要求9所述的系统,其特征在于,所述特征数据包括由所述一个或多个传感器接收的强度信息或高程信息中的至少一个。
11.基于权利要求9-10中任一项所述的方法,其特征在于,所述至少一个处理器用于使系统:
基于增量的点云数据,生成所述在线地图。
12.基于权利要求11所述的系统,其特征在于,所述至少一个处理器进一步用于使系统:
基于所述增量的点云数据中的特征数据,更新对应于所述增量的点云数据的所述至少两个单元格的至少一部分。
13.一种定位方法,其特征在于,包括:
获取由与对象相关的一个或多个传感器获取的一个时间段内的点云数据,所述点云数据与所述对象的初始位置相关联;
将所述点云数据划分为至少两个组;
获取所述对象对应于所述至少两组点云数据中的每组点云数据的姿态数据;
基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据;以及
基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图。
14.基于权利要求13所述的方法,其特征在于,所述至少两组点云数据中的每组点云数据对应于一个时间戳,并且所述获取所述对象的对应于所述点至少两组点云数据中的每组点云数据的姿态数据包括:
基于所述时间戳,确定所述对象的对应于所述点至少两组点云数据中的每组点云数据的姿态数据。
15.基于权利要求13或14所述的方法,其特征在于,所述获取所述对象的对应于所述点至少两组点云数据中的每组点云数据的姿态数据包括:
获取所述对象在所述时间段内的至少两个第一组姿态数据;
对所述对象的所述至少两个第一组姿态数据执行插值操作,以生成至少两个第二组姿态数据;以及
从所述至少两个第二组姿态数据中确定对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据。
16.基于权利要求15所述的方法,其特征在于,所述方法还包括:
使用球面线性插值技术对所述至少两个第一组姿态数据执行所述插值操作,以生成所述至少两个第二组姿态数据。
17.基于权利要求13-16所述的方法,其特征在于,所述基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据包括:
基于所述对象的所述姿态数据,将所述至少两组点云数据中的每组点云数据从与所述对象相关联的第一坐标系变换到对象第二坐标系。
18.基于权利要求17所述的方法,其特征在于,所述基于所述对象的所述姿态数据,将所述至少两组点云数据中的每组点云数据从与所述对象相关联的第一坐标系变换到第二坐标系包括:
基于对应于所述点至少两组点云数据中的每组点云数据的所述对象的姿态数据,确定一个或以上变换模型;以及
基于所述一个或以上变换模型,将所述至少两组点云数据中的每组点云数据从所述第一坐标系变换到所述第二坐标系。
19.基于权利要求18所述的方法,其特征在于,所述一个或以上变换模型包括平移变换模型或旋转变换模型中的至少一个。
20.基于权利要求13-19所述的方法,其特征在于,所述基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图包括:
通过将所述拼接后的点云数据投影到第三坐标系中的平面来生成所述在线地图。
21.基于权利要求20所述的方法,其特征在于,所述通过将所述拼接后的点云数据投影到第三坐标系中的平面来生成所述在线地图包括:
在所述第三坐标系中生成网格,其中所述对象的所述初始位置位于所述第三坐标系的中心,所述网格包括至少两个单元格;以及
通过将所述拼接后的点云数据中的特征数据映射到所述至少两个单元格的一个或以上对应单元格来生成所述在线地图。
22.基于权利要求21所述的方法,其特征在于,所述特征数据包括由所述一个或多个传感器接收的强度信息或高程信息中的至少一个。
23.基于权利要求21-22中任一项所述的方法,其特征在于,所述方法还包括:
基于增量的点云数据,生成所述在线地图。
24.基于权利要求23所述的方法,其特征在于,所述方法还包括:
基于所述增量的点云数据中的特征数据,更新对应于所述增量的点云数据的所述至少两个单元格的至少一部分。
25.一种非暂时性可读介质,包含至少一组指令用于定位,当所述至少一组指令被电子设备的至少一个处理器执行时,所述至少一组指令使所述至少一个处理器执行一种方法,所述方法包括:
获取由与对象相关的一个或多个传感器获取的一个时间段内的点云数据,所述点云数据与所述对象的初始位置相关联;
将所述点云数据划分为至少两个组;
获取所述对象对应于所述至少两组点云数据中的每组点云数据的姿态数据;
基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据;以及
基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图。
26.一种定位系统,其特征在于,包括:
获取模块,用于
获取由与对象相关一个或多个传感器获取的一个时间段内的点云数据,所述点云数据与所述对象的初始位置相关联;
将所述点云数据划分为至少两个组;以及
拼接模块,用于基于所述对象的所述姿态数据,拼接所述至少两组点云数据中的每组点云数据,以形成拼接后的点云数据;以及
生成模块,用于基于所述拼接后的点云数据,生成与所述对象的所述初始位置相关联的在线地图。
CN201980001040.9A 2019-07-12 2019-07-12 用于定位的系统和方法 Pending CN111936821A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/095816 WO2021007716A1 (en) 2019-07-12 2019-07-12 Systems and methods for positioning

Publications (1)

Publication Number Publication Date
CN111936821A true CN111936821A (zh) 2020-11-13

Family

ID=73282863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980001040.9A Pending CN111936821A (zh) 2019-07-12 2019-07-12 用于定位的系统和方法

Country Status (3)

Country Link
US (1) US20220138896A1 (zh)
CN (1) CN111936821A (zh)
WO (1) WO2021007716A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112446827A (zh) * 2020-11-23 2021-03-05 北京百度网讯科技有限公司 点云信息的处理方法和装置
CN113985436A (zh) * 2021-11-04 2022-01-28 广州中科云图智能科技有限公司 基于slam的无人机三维地图构建与定位方法及装置
CN114399587A (zh) * 2021-12-20 2022-04-26 禾多科技(北京)有限公司 三维车道线生成方法、装置、电子设备和计算机可读介质
WO2022160891A1 (zh) * 2021-01-29 2022-08-04 华为技术有限公司 一种点云数据传输方法及装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021046699A1 (en) 2019-09-10 2021-03-18 Beijing Voyager Technology Co., Ltd. Systems and methods for positioning
US11967111B2 (en) * 2020-12-15 2024-04-23 Kwangwoon University Industry-Academic Collaboration Foundation Multi-view camera-based iterative calibration method for generation of 3D volume model
CN113345023B (zh) * 2021-07-05 2024-03-01 北京京东乾石科技有限公司 箱体的定位方法、装置、介质和电子设备
CN113793296A (zh) * 2021-08-06 2021-12-14 中国科学院国家天文台 一种点云数据处理方法及装置
US11887272B2 (en) * 2022-02-16 2024-01-30 GM Global Technology Operations LLC Method and system for determining a spatial transformation employing partial dimension iterative closest point
CN115236714A (zh) * 2022-05-24 2022-10-25 芯跳科技(广州)有限公司 多源数据融合定位方法、装置、设备及计算机存储介质
CN115409962B (zh) * 2022-07-15 2023-08-18 浙江大华技术股份有限公司 虚幻引擎内构建坐标系统的方法、电子设备和存储介质
CN115756841B (zh) * 2022-11-15 2023-07-11 重庆数字城市科技有限公司 一种基于并行处理高效数据生成系统及方法
CN117197215B (zh) * 2023-09-14 2024-04-09 上海智能制造功能平台有限公司 基于五目相机系统的多目视觉圆孔特征的鲁棒提取方法
CN117047237B (zh) * 2023-10-11 2024-01-19 太原科技大学 一种异形件智能柔性焊接系统与方法
CN117213500B (zh) * 2023-11-08 2024-02-13 北京理工大学前沿技术研究院 基于动态点云与拓扑路网的机器人全局定位方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160070265A1 (en) * 2014-09-05 2016-03-10 SZ DJI Technology Co., Ltd Multi-sensor environmental mapping
CN107246876A (zh) * 2017-07-31 2017-10-13 中北智杰科技(北京)有限公司 一种无人驾驶汽车自主定位与地图构建的方法及系统
CN108871353A (zh) * 2018-07-02 2018-11-23 上海西井信息科技有限公司 路网地图生成方法、系统、设备及存储介质
CN108984741A (zh) * 2018-07-16 2018-12-11 北京三快在线科技有限公司 一种地图生成方法及装置、机器人和计算机可读存储介质
CN109791052A (zh) * 2016-09-28 2019-05-21 通腾全球信息公司 用于生成和使用定位参考数据的方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10309777B2 (en) * 2016-12-30 2019-06-04 DeepMap Inc. Visual odometry and pairwise alignment for high definition map creation
US11127202B2 (en) * 2017-12-18 2021-09-21 Parthiv Krishna Search and rescue unmanned aerial system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160070265A1 (en) * 2014-09-05 2016-03-10 SZ DJI Technology Co., Ltd Multi-sensor environmental mapping
CN105492985A (zh) * 2014-09-05 2016-04-13 深圳市大疆创新科技有限公司 多传感器环境地图构建
CN109791052A (zh) * 2016-09-28 2019-05-21 通腾全球信息公司 用于生成和使用定位参考数据的方法和系统
CN107246876A (zh) * 2017-07-31 2017-10-13 中北智杰科技(北京)有限公司 一种无人驾驶汽车自主定位与地图构建的方法及系统
CN108871353A (zh) * 2018-07-02 2018-11-23 上海西井信息科技有限公司 路网地图生成方法、系统、设备及存储介质
CN108984741A (zh) * 2018-07-16 2018-12-11 北京三快在线科技有限公司 一种地图生成方法及装置、机器人和计算机可读存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112446827A (zh) * 2020-11-23 2021-03-05 北京百度网讯科技有限公司 点云信息的处理方法和装置
CN112446827B (zh) * 2020-11-23 2023-06-23 北京百度网讯科技有限公司 点云信息的处理方法和装置
WO2022160891A1 (zh) * 2021-01-29 2022-08-04 华为技术有限公司 一种点云数据传输方法及装置
CN113985436A (zh) * 2021-11-04 2022-01-28 广州中科云图智能科技有限公司 基于slam的无人机三维地图构建与定位方法及装置
CN114399587A (zh) * 2021-12-20 2022-04-26 禾多科技(北京)有限公司 三维车道线生成方法、装置、电子设备和计算机可读介质

Also Published As

Publication number Publication date
US20220138896A1 (en) 2022-05-05
WO2021007716A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
CN111936821A (zh) 用于定位的系统和方法
JP7082545B2 (ja) 情報処理方法、情報処理装置およびプログラム
US11781863B2 (en) Systems and methods for pose determination
CN107101620B (zh) 测量子系统和测量系统
US20220187843A1 (en) Systems and methods for calibrating an inertial measurement unit and a camera
US20190392228A1 (en) Integrated sensor calibration in natural scenes
JP2021508814A (ja) LiDARを用いた車両測位システム
US20220171060A1 (en) Systems and methods for calibrating a camera and a multi-line lidar
WO2022077296A1 (zh) 三维重建方法、云台负载、可移动平台以及计算机可读存储介质
KR102239562B1 (ko) 항공 관측 데이터와 지상 관측 데이터 간의 융합 시스템
US11460302B2 (en) Terrestrial observation device having location determination functionality
CN111854748B (zh) 一种定位系统和方法
CN112041210B (zh) 用于自动驾驶的系统和方法
US11940279B2 (en) Systems and methods for positioning
CN112146627B (zh) 在无特征表面上使用投影图案的飞行器成像系统
CN113433566B (zh) 地图建构系统以及地图建构方法
CN112384756A (zh) 定位系统和方法
WO2021012245A1 (en) Systems and methods for pose determination
CN112400122A (zh) 定位目标对象的系统和方法
CN111712855A (zh) 地面信息处理方法、装置和无人驾驶车辆
KR102671067B1 (ko) 도로면 생성 방법, 도로면 생성 장치, 포인트 클라우드 데이터 처리 방법, 포인트 클라우드 데이터 처리 장치, 컴퓨터 프로그램 및 컴퓨터 판독 가능한 기록 매체
CN113557548A (zh) 生成位姿图的系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination