CN113256712B - 定位方法、装置、电子设备和存储介质 - Google Patents

定位方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113256712B
CN113256712B CN202110609933.0A CN202110609933A CN113256712B CN 113256712 B CN113256712 B CN 113256712B CN 202110609933 A CN202110609933 A CN 202110609933A CN 113256712 B CN113256712 B CN 113256712B
Authority
CN
China
Prior art keywords
grid
map
semantic
target
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.)
Active
Application number
CN202110609933.0A
Other languages
English (en)
Other versions
CN113256712A (zh
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 Youzhuju Network Technology Co Ltd
Original Assignee
Beijing Youzhuju Network 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 Youzhuju Network Technology Co Ltd filed Critical Beijing Youzhuju Network Technology Co Ltd
Priority to CN202110609933.0A priority Critical patent/CN113256712B/zh
Publication of CN113256712A publication Critical patent/CN113256712A/zh
Priority to PCT/CN2022/095453 priority patent/WO2022253113A1/zh
Application granted granted Critical
Publication of CN113256712B publication Critical patent/CN113256712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Remote Sensing (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本公开实施例提供了一种定位方法、装置、电子设备和存储介质。该方法包括:获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。本公开实施例通过采用上述技术方案,能够减少定位过程中所需的计算量,提高回环检测/重定位的速度。

Description

定位方法、装置、电子设备和存储介质
技术领域
本公开实施例涉及定位技术领域,尤其涉及一种定位方法、装置、电子设备和存储介质。
背景技术
在实现机器人的自主导航时,需要对机器人进行定位,如对机器人进行回环检测或重定位。
目前,一般采用基于2D激光雷达的即时定位与地图构建(SimultaneousLocalization And Mapping,SLAM)技术来为室内机器人进行定位,采用回环检测模块将当前位置的局部激光点云与历史地图中的激光点云进行匹配,判断机器人当前所处的位置是否为其曾经经过的位置,并将检测到的回环位姿发送给后端。
然而,现有2D激光SLAM算法利用激光点云间匹配进行回环检测的方式,由于激光点云提供的信息有限,容易出现误匹配,进而导致地图构建出现较大误差,导致回环检测的误检率较高,无法满足定位需求。
发明内容
本公开实施例提供一种定位方法、装置、电子设备和存储介质,以降低定位过程中的误检率。
第一方面,本公开实施例提供了一种定位方法,包括:
获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
第二方面,本公开实施例还提供了一种定位装置,包括:
地图获取模块,用于获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
候选位姿识别模块,用于基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
目标位姿确定模块,用于根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
第三方面,本公开实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例所述的定位方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开实施例所述的定位方法。
本公开实施例提供的定位方法、装置、电子设备和存储介质,获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,全局语义栅格地图的每个栅格中记录有该栅格内存在目标语义对象的概率值;基于该目标局部语义点云地图和全局语义栅格地图进行位姿识别,得到候选位姿结合;根据该激光点云地图和该候选位姿集合确定机器人的回环检测位姿和/或重定位位姿。本公开实施例通过采用上述技术方案,首先利用语义信息对机器人进行粗定位,再利用激光点云信息对机器人进行精定位,不仅能够减少定位过程中所需的计算量,提高回环检测/重定位的速度;还能够提高回环检测/重定位的准确性,降低误检率。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的一种定位方法的流程示意图;
图2为本公开实施例提供的另一种定位方法的流程示意图;
图3为本公开实施例提供的又一种定位方法的流程示意图;
图4为本公开实施例提供的一种定位装置的结构框图;
图5为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1为本公开实施例提供的一种定位方法的流程示意图。该方法可以由定位装置执行,其中,该装置可以由软件和/或硬件实现,可配置于需要进行的设备中,典型的,可以配置于机器人中。本公开实施例提供的定位方法适用于对进行回环检测和/或重定位的场景。如图1所示,本实施例提供的定位方法可以包括:
S101、获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值。
其中,本实施例所提供的定位方法可应用于对需要进行重定位/回环检测的任一设备进行重定位回环检测,尤其可应用于对机器人进行重定位/回环检测,以下以对机器人进行重定位/回环检测为例进行说明。语义点云地图可以为由语义点云构成的二维地图,其可以为多通道地图,每个通道对应一个类别的语义对象,即不同类别的语义对象的点云可以位于不同的通道中。相应的,目标局部语义点云地图可以为机器人在当前位置附近一定距离(如15m等)范围之内采集得到的语义点云所构成的点云地图。全局语义栅格地图可以为与机器人在当前场景中的全局语义点云地图对应的栅格地图,全局语义栅格地图具有多个通道,每个通道的各栅格中所记录的概率值可以为相应栅格中存在该通道对应语义类别的语义对象的概率。激光点云地图可以为由激光点云构成的二维地图,其可以包括局部激光点云地图和/或全局激光点云地图。该局部激光点云地图可以为机器人在当前位置附近一定距离之内采集得到的激光点云所构成的点云地图,该全局激光点云地图可以为机器人在当前场景中进行导航时所采用的、由激光点云构成的全局地图。
在本实施例中,机器人在运行过程中可以每间隔预设时间或者每间隔设定距离采集一帧激光点云,提取一定距离范围内采集的各帧激光点云中局部曲率小于阈值的点,作为平面特征点,并根据采集各帧激光点云时机器人的位姿,得到各平面特征点在地图坐标系中的二维坐标,进而得到机器人的激光点云地图。同时,机器人在运行过程中还可以采用图像采集装置进行图像采集,对所采集到的图像进行物体识别和语义分割,估计图像中的前景语义对象的中心点坐标以及背景语义对象的三维点云,将其投影至水平面,并根据进行图像采集时机器人的位姿,将投影后的中心点和三维点云转换至机器人的地图坐标系,得到前景语义对象和背景语义对象在地图坐标系中的二维坐标,进而得到机器人的语义点云地图。其中,该预设时间和该设定距离可以根据需要设置,如该预设时间可以设置为0.5s或1s等,该设定距离可以设置为0.4m或0.5m等;前景语义对象可以为可数的对象,如桌子或椅子等;背景语义对象可以为不可数的对象,如墙壁或可通行区域等。
具体的,机器人在进行回环检测/重定位的过程中,可以在当前条件符合定位的触发条件时,获取机器人在附近一定距离范围(包括在当前位置)内采集得到的语义点云构成目标局部语义点云地图、机器人进行回环检测/重定位时的全局语义地图对应的全局语义栅格地图以及机器人的激光点云地图(如机器人在附近一定距离范围内采集得到的局部激光点云地图和/或机器人进行回环检测/重定位时的全局激光点云地图)。
在本实施例中,可以获取仅获取一张某一层级全局语义栅格地图,也可以获取多张不同层级的全局语义栅格地图,以在后续操作中基于所获取的该一张或多张全局语义栅格地图确定候选位姿,本实施例不对此进行限制。为了保证所获取的候选位姿的全面性,并进一步减少确定候选位姿时所需的计算量,优选可以获取多张不同层级的全局语义栅格地图,并后续操作中基于多张全局语义栅格地图确定候选位姿,此时,优选的,所述获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,包括:获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,不同层级的全局语义栅格地图的分辨率不同。
在一个实施方式中,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:根据全局语义点云地图生成至少两层级的全局语义栅格地图。
其中,全局语义点云地图可以为多通道地图,每个通道对应一种语义类别的语义对象,该全局语义点云地图可以根据当前所执行任务的不同,采用对应的方式获得,如若当前所执行的任务为回环检测,则可以将机器人目前正在构建的语义点云地图作为全局语义点云地图;若当前所执行的任务为重定位,则可以自地图库中获取预先保存的当前环境的全局语义点云地图。
具体的,机器人在进行回环检测/重定位之前,可以获取当前所执行任务的全局语义点云地图,并按照预设尺寸对该全局语义点云地图的每个通道进行栅格划分,以得到机器人的全局语义栅格地图,例如,可以按照预先设置的各层级栅格地图对应的栅格尺寸分别对每个通道的全局语义点云地图进行栅格划分,并计算每个栅格中存在相应通道对应语义类别的语义对象的概率,从而得到机器人各层级的全局语义栅格地图;或者,当某两层级的栅格地图的栅格尺寸成倍数关系时,也可以采用栅格尺寸较小(即分辨率较大)的栅格地图的栅格尺寸对全局语义栅格地图进行栅格划分,得到该栅格尺寸较小的栅格地图,并按照此两层级栅格地图的栅格尺寸之间的倍数关系,对该栅格尺寸较小的栅格地图进行下采样,以得到另一栅格尺寸较大的栅格地图,本实施例不对此进行限制。
在本实施例中,由于全局语义栅格地图存在多个通道,每个通道对应一个语义类别,每个栅格中保存有该位置处存在该语义类别的语义对象的概率,因此无需对不同帧检测得到的物体进行数据关联,能够进一步简化机器人的定位过程。
为了确保高层级的语义栅格地图中的每个栅格在低层级的语义栅格地图中存在唯一对应的栅格,并降低生成各层级全局语义栅格地图时所需的计算量,本实施例可以将相邻层级的栅格地图的栅格尺寸设置为成倍数关系,并通过对低层级的栅格地图进行下采用的方式得到层级与其相邻的上一层级的栅格地图,此时,优选的,所述根据全局语义点云地图生成至少两层级的全局语义栅格地图,包括:按照预设尺寸对全局语义点云地图进行栅格划分,并确定各栅格内存在目标语义对象的概率,以得到最低层级的全局语义栅格地图;对所述最低层级的全局语义栅格地图进行至少一次降采样,并将每次降采样得到的全局语义栅格地图作为相应层级的全局语义栅格地图。
其中,该预设尺寸可以理解为最低层级的全局语义栅格地图所对应的栅格的长度和宽度,其可以灵活设置,如该长度和宽度可以相同或不相同,优选可以相同,此时,举例而言,该预设尺寸可以为0.2m×0.2m、0.4m×0.4m或0.5m×0.5m等等。全局语义栅格地图的层级数量可以根据需要进行设置,如可以为3、4或5等。以下以栅格地图的栅格为正方向且所获取的全局语义栅格地图具有5个层级为例进行说明。
具体的,可以首先获取全局语义栅格地图,按照预设尺寸c×c对全局语义栅格进行栅格划分,并初始化每个栅格内保存的概率值为0;分别针对全局地图中每个语义类别的点云,更新该语义类别所对应的通道中的每个栅格内保存的概率值,从而得到层级最低的全局语义栅格地图。然后,对该层级最低的全局语义栅格地图进行若干次(如4次)窗口大小为n×n(如n=2、3或4等)、步长为n的下采样,以得到各个层级的全局语义栅格地图。
以c=0.2m、n=2且栅格层级数量为5举例而言,在生成全局语义栅格地图时,可以首先获取机器人的全局语义栅格地图,按照0.2m×0.2m(即划分得到的每个栅格对应的实际距离为0.2m×0.2m)对全局语义栅格地图的每个通道进行栅格划分,并初始化各通道的栅格地图内每个栅格中保存的概率值为0。然后,针对每一语义类别t(如桌子、椅子、墙壁或可通行区域等)的点云,遍历该点云中的每一个点p=(xj,yj),并在遍历过程中按照下式更新各栅格中保存的概率值,以得到最低层级(即第0层级)的全局语义栅格地图。
Figure BDA0003095324190000091
即某一语义类别t对应的栅格地图中的某一个栅格内存储的概率值,为该语义类别t的点云中的各点的logit函数之和。其中,a,b为栅格地图中栅格的坐标,Gt[a,b]为语义类别t对应通道的栅格地图内在坐标为(a,b)的栅格处所保存的概率值;函数
Figure BDA0003095324190000092
σ为高斯分布的方差,其可以根据需要进行设置,如可以将σ设置为0.5或0.15等值,优选可以设置为0.5;c为栅格地图中的每个栅格对应的实际距离。
此外,为了进一步减少计算量,加快定位速度,在采用式(1)计算得到最低层级的全局语义栅格地图后,还可以按照下式更新该全局语义栅格地图中各通道的每一个栅格内保存的概率值。
Figure BDA0003095324190000101
当得到最低层级的全局语义栅格地图后,可以对该最低层级的栅格地图进行窗口为2×2、步长为2的最大池化,将低分辨率的全局语义栅格地图中的某一个栅格内保存的概率值确定为其在低一层级的栅格地图内对应的4个栅格内保存的概率值中的最大值,即可得到栅格尺寸为最低层级的全局语义栅格地图的栅格尺寸的2倍(如0.4m×0.4m)的第1层级的栅格地图;并进一步对该第1层级的栅格地图再次进行窗口为2、步长为2的最大池化,得到栅格尺寸为最低层级的全局语义栅格地图的栅格尺寸的4倍(如0.8m×0.8m)的第2层级的栅格地图,以此类推,即可进一步得到栅格尺寸为最低层级的全局语义栅格地图的栅格尺寸的8倍(如1.6m×1.6)的第3层级的全局语义栅格地图和栅格尺寸为最低层级的全局语义栅格地图的栅格尺寸的16倍(如3.2m×3.2m)的第4层级的全局语义栅格地图。
由此,即能够得到分辨率为最低层级的栅格地图的分辨率的1/2i(i=0,1,2,3,4)的各层级的全局语义栅格地图。
在本实施例中,可以直接将投影得到的、一定范围内的语义点云地图(即局部语义点云地图)作为目标局部语义点云地图;也可以进一步对投影得到的局部语义点云地图内的点进行降采样,如采用预先设置的相同或不相同的降采样分别对各前景语义对象的特征点和各背景语义对象的特征点进行降采样,以进一步减少机器人在进行回环检测/重定位时局部点云的数量,提高定位速度。
在一个实施方式中,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:获取当前位置的原始局部语义点云地图中的各前景语义对象的第一特征点和各背景语义对象的第二特征点;采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义地图。
其中,原始局部语义点云地图可以为通过将各前景语义对象的中心点和各背景语义对象的点云投影至地图坐标系后得到的、一定距离范围内的语义点云地图。第一特征点可以为前景语义对象的特征点;第二特征点可以为背景语义对象的特征点。
在上述实施方式中,可以采用不同的降采样方式对各前景语义对象的第一特征点和各背景语义对象的第二特征点进行降采样,以在提高机器人的定位速度的前提下,进一步提高机器人回环检测/重定位的准确性。其中,对前景语义对象的第一特征点进行降采样所采用的将采样方式以及对背景语义对象的第二特征点进行降采样所采用的将采样方式可以根据需要选取,本实施例不对此进行限制。
可选的,所述采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义地图,包括:对所述第一特征点进行欧式距离聚类,并将聚类后的各聚类中心作为第一降采样特征点;对所述第二特征点进行体素化降采样,得到第二降采样特征点;根据所述第一降采样特征点和所述第二降采样特征点构建目标局部语义地图。
示例性的,在当前条件符合回环检测/重定位条件时,可以获取机器人在当前位置的原始语义点云地图,并针对该原始语义点云地图的每一个通道,如果该通道所对应的语义对象为前景语义对象,则可以对该语义通道中的点云进行基于欧式距离的聚类,得到聚类得到的每个类别的聚类中心,并将该通道的点云更新为由各聚类中心构成的点云;如果该通道所对应的语义对象为背景语义对象,则可以对该通道中的点云进行体素化降采样,将该通道的点云更新为进行体素化降采样后得到的点云,并在各通道中的点云均降采样完成后,将各通道中降采样后的点云构成的局部语义地图确定为目标局部语义地图。在此,对前景语义对象的点云进行基于欧式距离的聚类时的距离阈值以及对背景语义对象的点云进行体素化降采样时的体素大小可以根据需要灵活设置,例如该距离阈值可以设置为0.3m或0.4m等,该体素大小可以设置为0.2m×0.2m,本实施例不对此进行限制。
S102、基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合。
其中,候选位姿集合可以为由候选位姿组成的集合,该候选位姿可以为根据机器人的语义信息对机器人进行粗定位得到的、可能为机器人的回环检测位姿和/或重定位位姿的位姿。
在本实施例中,在获取到机器人的目标局部语义点云地图和各层级的全局语义栅格地图后,可以首先根据机器人在当前位置附近的语义信息(如机器人在当前位置的目标局部语义点云地图中的各语义特征点)进行粗定位,举例而言,利用目标局部语义点云地图中的各语义特征点对全局语义栅格地图中的各栅格进行评价,如利用分支定界法,在各层级的全局语义栅格地图中进行搜索,以初步识别出可能存在目标位姿的栅格,减少在利用激光点云地图确定机器人的目标位姿时所需的计算量,从而避免在回环检测/重定位时直接利用激光点云地图对机器人进行定位需要与大量的点进行匹配的情况,高效的实现回环检测/重定位。
示例性的,在获取到目标局部语义点云地图和各层级的全局语义栅格地图之后,可以将分辨率最低的全局语义栅格地图中的各栅格作为待识别栅格,采用目标局部语义点云地图中的各语义特征点的语义信息确定各待识别栅格中可能存在目标位姿的栅格,确定识别得到的栅格在相邻的下一层级全局语义栅格地图中对应的栅格,作为新的待识别栅格,并返回执行上述采用目标局部语义点云地图中的各语义特征点的语义信息确定各待识别栅格中可能存在目标位姿的栅格的操作,直至待识别栅格不存在相邻的下一层级全局语义栅格地图为止,并在待识别栅格不存在相邻的下一层级全局语义栅格地图,即在待识别栅格为位于分辨率最高的全局语义栅格地图中的栅格时,基于在分辨率最高的全局语义栅格地图中识别出的可能存在候选位姿的栅格确定候选位姿。
在一个实施方式中,所述基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合,包括:获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,各全局语义栅格地图的层级与分辨率负相关;分别基于所述目标局部语义点云地图计算所述目标栅格栈中的各栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
其中,目标栅格栈可以理解为记录有最高层级的全局语义栅格地图中所记录的概率值大于零的各栅格的栅格信息的栈,该栅格信息可以为有栅格在其所属全局语义栅格地图中的坐标(a,b)及其所属全局语义栅格地图的层级i组成的三元组(a,b,i)。第一评价指标值可用于评估各栅格内存在候选位姿的可能性,其可以与局部语义点云地图(包括目标局部点云地图、对目标局部语义点云地图旋转和/或平移得到的地图)中的各语义特征点在相应栅格所位于的全局语义栅格地图中对应的栅格内存储的概率值正相关。
在上述实施方式中,在采用目标局部语义点云地图中的各语义特征点的语义信息确定最高层级的全局语义栅格地图中可能存在目标位姿的栅格时,可以仅对所存储的、存在相应语义类别的语义对象的概率值不为零的栅格进行识别,以减少在对利用语义信息对机器人进行粗定位时所需的计算量,进一步提高机器人的定位速度。
具体的,机器人构建一个空的栅格栈,并根据最高层级的全局语义栅格地图内的各栅格中记录的该栅格内存在相应语义类别的语义对象的概率值,将所记录概率值不为零的栅格的栅格信息(如三元组)添加至该栅格栈中,作为目标栅格栈;利用目标局部语义点云地图中的各语义特征点依次对目标栅格栈中的各该概率值不为零的栅格进行评价,得到各栅格的第一评价指标值,并进一步根据第一评价指标值大于第一指标阈值的栅格确定候选位姿,例如,直接基于目标栅格栈中第一评价指标值大于第一指标阈值的栅格在最低层级的栅格地图中所对应的栅格的第一评价指标确定候选位姿;或者,按照层级由高到低的顺序,依次判断高层级的全局语义栅格地图中第一评价指标值大于第一指标阈值的栅格在相邻低层级的全局语义栅格地图中对应的各栅格的第一评价指标是否依旧大于第一评价指标阈值,直至判断至最低层级的全局语义栅格地图中的栅格,并将判断得到的最低层级的全局语义栅格地图中第一评价指标大于第一指标阈值的栅格对应的位姿确定为候选位姿。
在本实施例中,在构建目标栅格栈时,可以直接将所获取到的最高层级的全局语义栅格地图中所存储的概率值不为零的栅格添加至目标栅格栈中;也可以对该最高层级的全局语义栅格地图中的概率值不为零的栅格进行膨胀操作,并将膨胀后的全局语义栅格地图中概率值不为零的栅格添加至目标栅格栈中,以提高后续识别到的候选位姿的全面性,避免出现漏识别的情况。在此,在对全局语义栅格地图中概率值不为零的某一栅格进行膨胀操作时,可以以该栅格为中心,将与该栅格之间的距离在设定距离(如10m等)之内且概率值为零的栅格标记为概率值不为零,如将与该栅格之间的距离在设定距离之内且概率值为零的栅格所存储的概率值修改为某一预先设置的不为零的概率值,如将其概率值修改为0.5或1等概率值。
S103、根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
在本实施例中,在利用语义信息对机器人进行粗定位之后,可以进一步利用激光点云对机器人进行精定位,以进一步判断利用语义信息识别得到的候选位姿及候选位姿附近是否包含目标位姿并在确定其候选位姿附近包含目标位姿时确定该目标位姿。
示例性的,可以针对候选位姿集合中的每个候选位姿,依次利用迭代最近点算法匹配局部激光点云地图和全局激光点云地图,并按照匹配点数由高到低的顺序,选取预设数量(如一个或多个)的候选位姿作为目标位姿;也可以计算候选位姿集合中各候选位姿的平均候选位姿,在一定范围内对该平均候选位姿的各位姿参数进行离散化,并针对离散化得到的每个位姿,依次利用迭代最近点算法(Iterative Closest Point,ICP)匹配局部激光点云地图和全局激光点云地图,并按照匹配点数由高到低的顺序,选取预设数量的离散化得到的位姿作为目标位姿。
本实施例提供的定位方法,获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,全局语义栅格地图的每个栅格中记录有该栅格内存在目标语义对象的概率值;基于该目标局部语义点云地图和全局语义栅格地图进行位姿识别,得到候选位姿结合;根据该激光点云地图和该候选位姿集合确定机器人的回环检测位姿和/或重定位位姿。本实施例通过采用上述技术方案,首先利用语义信息对机器人进行粗定位,再利用激光点云信息对机器人进行精定位,不仅能够减少定位过程中所需的计算量,提高回环检测/重定位的速度;还能够提高回环检测/重定位的准确性,降低误检率。
图2为本公开实施例提供的另一种定位方法的流程示意图。本实施例中的方案可以与上述实施例中的一个或多个可选方案组合。可选的,所述分别基于所述目标局部语义点云地图计算所述目标栅格栈中的各栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合,包括:构建与所述目标局部语义点云地图相同的当前地图;创建与所述目标栅格栈相同的当前栅格栈,并控制位于所述当前栅格栈顶端的当前栅格出栈;基于所述当前地图计算所述当前栅格的第一评价指标值;如果所述第一评价指标值大于第一指标阈值,则判断所述当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,若是,则将所述当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至候选位姿集合中,若否,则将所述当前栅格在下一层级的栅格地图中对应的栅格添加至所述当前栅格栈中;返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止;其中,所述目标角度为所述当前地图相对于所述目标局部语义点云地图的旋转角度;如果所述第一评价指标值小于或等于第一指标阈值,则返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止。
可选的,本实施例提供的定位方法还可以包括:当所述当前栅格栈为空时,将所述当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图,并返回执行创建与所述目标栅格栈相同的当前栅格栈的操作,直至所述当前地图旋转一周为止。
相应的,如图2所示,本实施例提供的定位方法可以包括:
S201、获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值。
S202、获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,各全局语义栅格地图的层级与分辨率负相关。
S203、构建与所述目标局部语义点云地图相同的当前地图。
在本实施例中,可以复制目标局部语义点云地图,作为当前地图,并基于当前地图执行后续操作,以避免后续操作对目标局部语义点云地图造成影响。
S204、创建与所述目标栅格栈相同的当前栅格栈。
具体的,可以构建一个空的栈作为当前栅格栈,并将目标栅格栈复制给该当前栅格栈,即将目标栅格栈中存储的各栅格的栅格信息(即三元组)写入该当前栅格栈中,以避免后续的出栈和入栈操作对目标栅格栈造成影响。
S205、控制位于所述当前栅格栈顶端的当前栅格出栈。
具体的,可以将位于当前栅格栈顶端的栅格作为当前栅格,并控制该当前栅格出栈,即自当前栅格栈中取出位于当前栅格栈顶端的栅格,并将所取出的该栅格作为当前栅格。
S206、基于所述当前地图计算所述当前栅格的第一评价指标值。
具体的,在确定当前地图与当前栅格后,可以根据当前地图计算当前栅格的第一评价指标,如根据当前地图内的各特征点对应的概率值和/或当前地图与当前栅格所位于的全局语义栅格地图(或全局语义点云地图)之间的不匹配程度计算第一评价指标,以对当前栅格进行评价。
在一个实施方式中,所述基于所述当前地图计算所述当前栅格的第一评价指标值,包括:对所述当前地图进行平移,以将所述当前栅格在所述当前地图中对应的坐标点移动至原点位置,得到平移地图;获取所述平移地图内的每一个语义特征点在所述目标全局语义栅格地图中对应的栅格中记录的概率值,作为所述语义特征点的概率值;根据各语义特征点的概率值计算所述当前栅格的第一评价指标值。
其中,平移地图可以为对当前地图进行平移后得到的地图。目标全局语义栅格地图可以为当前栅格所位于的相应层级的全局语义栅格地图。
在上述实施方式中,在计算当前栅格的第一评价指标值时,可以首先依据当前栅格对当前地图进行平移,如将当前栅格在当前地图中对应的坐标点平移至地图坐标系的原点位置,以将该坐标点作为原点计算第一评价指标。
示例性的,可以首先初始化当前栅格(a,b)的第一评价指标值score1为0,并根据目标全局语义栅格地图中各栅格对应的实际距离ci计算当前栅格的栅格中心对应的实际位置xm/ci,ym/ci,yi=b·ci,并将当前地图沿地图坐标系的x轴平移xi,将当前地图沿地图坐标系的y轴平移yi,得到平移地图;然后针对平移地图中的每个语义特征点(假设坐标为(xm,ym)),根据该语义特征点的位置坐标确定该语义特征点在目标全局语义栅格地图中所对应的栅格,如将目标全局语义栅格地图中该位置坐标处的栅格(xm/ci,ym/ci)确定为该语义特征点在目标全局语义栅格地图中所对应的栅格,并将该栅格内记录的概率值作为该语义特征点的概率值;进而,可以根据平移地图中的各语义特征点的概率值计算当前栅格的第一评价指标值,如将平移地图中各语义特征点的概率值的平均值或中值等作为当前栅格的第一评价指标值。
在本实施例中,在计算某一个栅格的第一评价指标值时,除考虑当前地图中各语义特征点的概率值之后,也可以进一步考虑当前地图与全局语义栅格地图(或全局语义点云)之间的不匹配程度,例如在栅格位于任一层级的全局语义栅格地图内时,或者,仅在栅格位于最低层级的全局语义栅格地图内时,根据当前地图中各语义特征点的概率值以及当前地图与全局语义栅格地图之间的不匹配程度计算该栅格的第一评价指标值,以进一步提高后续识别得到的候选位姿的准确性。
由于到在确定位于除最低层级的全局语义栅格地图之外的其他层级的全局语义栅格地图中的栅格的第一评价指标时,该第一评价指标仅用于确定是否需要计算其在上一层级的全局语义栅格地图中对应的栅格的第一评价指标,即仅需要考虑第一评价指标的上边界,因此,可以仅在栅格位于最低层级的全局语义栅格地图内时,根据当前地图中各语义特征点的概率值以及当前地图与全局语义栅格地图之间的不匹配程度计算该栅格第一评价指标值。此时,优选的,所述根据各语义特征点的概率值计算所述当前栅格的第一评价指标值,包括:如果所述目标全局语义栅格地图不为最低层级的语义栅格地图,则根据各语义特征点的概率值计算各语义特征点的概率平均值,作为所述当前栅格的第一评价指标值;如果所述当前语义栅格地图为最低层级的语义栅格地图,则根据各语义特征点的概率值计算各语义特征点的概率平均值和惩罚函数平均值,并将所述概率平均值与所述惩罚函数平均值之间的差值,作为所述当前栅格的第一评价指标值,其中,所述惩罚函数平均值用于表征所述当前地图与所述目标全局语义栅格地图之间的不匹配程度。
示例性的,在基于当前地图计算当前栅格的第一评价指标值时,可以判断当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,如判断当前栅格对应的三元组中的层级i是否为零,若是,则根据当前地图中的各语义特征点的概率值计算当前栅格的第一评价指标值,如可以遍历当前地图中的所有语义特征点,在遍历到每一个语义特征点时,采用下述式(3)更新当前栅格的第一评价指标值,并将各语义特征点均遍历完成后的第一评价指标值作为当前栅格的第一评价指标值;若否,则根据当前地图中各语义特征点的概率值计算各语义特征点的概率平均值和惩罚函数平均值,并基于该概率平均值和惩罚函数平均值计算当前栅格的第一评价指标值,如可以遍历当前地图中的所有语义特征点,在遍历到每一个语义特征点时,采用下述式(4)更新当前栅格的第一评价指标值,并将各语义特征点均遍历完成后的第一评价指标值作为当前栅格的第一评价指标值。
Figure BDA0003095324190000201
Figure BDA0003095324190000202
其中,score1为当前栅格的第一评价指标值。NPt为目标局部语义点云地图中与语义类别t对应的语义点云地图中包含的语义特征点的数量。Git[xm/ci,ym/ci]为当前所遍历到的语义特征点(xm,ym)在第i层级的全局语义栅格地图的与语义类别t对应的栅格地图中对应的栅格(xm/ci,ym/ci)内保存的概率值。
Figure BDA0003095324190000211
与I均为当前栅格的惩罚函数,
Figure BDA0003095324190000212
用于表征平移地图中各语义特征点与全局语义点云地图中相应语义特征点对应不同语义对象的情况;惩罚函数I用于表征平移地图中的语义特征点在全局语义点云地图中不存在对应的语义特征点的情况,如果Git[xm/ci,ym/ci]=0,则Ι(Git[xm/ci,ym/ci]=0)=1,如果Git[xm/ci,ym/ci]≠0,则Ι(Git[xm/ci,ym/ci]=0)=0。αk与βk为预定义的系数,其可以根据需要进行设置,例如可以将αk与βk设置为αk=1,βk=0.05。
S207、判断所述第一评价指标值是否大于第一指标阈值,若是,则执行S208;若否,则执行S211。
S208、判断所述当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,若是,则执行S209;若否,则执行S210。
S209、将所述当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至候选位姿集合中,执行S211,其中,所述目标角度为所述当前地图相对于所述目标局部语义点云地图的旋转角度。
在本实施例中,在确定候选位姿时,将第一评价指标值大于第一指标阈值的所有位姿均作为候选位姿添加至候选位姿集合中,而非仅保留第一评价指标值最大的候选位姿,由此,后续可以利用各候选位姿的标准差来判断判断候选位姿集合中的候选位姿是否可靠,并在判定其不可靠时不再执行后续操作,能够进一步简化机器人的定位过程。
S210、将所述当前栅格在下一层级的栅格地图中对应的栅格添加至所述当前栅格栈中。
在本实施例中,在计算得到当前栅格的第一评价指标值之后,可以判断该第一评价指标值是否大于第一指标阈值,如果该第一评价指标值大于第一指标阈值,则确定当前栅格内可能存在候选位姿,并在当前栅格不为分辨率最高的全局语义栅格地图中的栅格时,将当前栅格在分辨率更高的上一层级的全局语义栅格地图中对应的栅格添加至当前栅格栈中,以进一步精确候选位姿的位置。其中,该第一指标阈值可以根据需要进行设置,本实施例不对此进行限制。
具体的,当当前栅格的第一评价指标值大于第一指标阈值时,可以进一步判断目标全局语义栅格地图是否为最低层级的全局语义栅格地图,即判断当前栅格是否为基于全局语义栅格地图能够确定的最精确的候选位姿的位置,若是,则可以直接确定当前栅格(a,b)所对应的候选位姿(a·ci,b·ci,θ),并将该候选位姿添加到候选位姿集合中;若否,则可以确定当前栅格在下一层级的全局语义栅格地图中所对应的栅格,并将所确定的栅格添加到当前栅格栈中,如当高层级的全局语义栅格地图的分辨率为其相邻低层级的全局语义栅格地图的分辨率的4倍时,可以将所确定的栅格的三元组(a*2,b*2,i-1)、(a*2+1,b*2,i-1)、(a*2,b*2+1,i-1)以及(a*2+1,b*2+1,i-1)添加的当前栅格栈中,并返回执行S205。其中,θ表示目标角度,即当前地图相对于目标局部语义点云地图的旋转角度。
S211、判断所述当前栅格栈是否为空,若是,则执行S212;若否,则返回执行S205。
在本实施例中,在对当前栅格处理完成后,如在判定当前栅格的第一评价指标值小于或等于第一指标阈值(即在判定当前栅格内不存在候选位姿时)、在将当前栅格在下一层级的全局语义栅格地图中对应的栅格添加到当前栅格栈中或者在将当前栅格对应的候选位姿添加到候选位姿集合中之后,可以进一步判断当前栅格栈是否为空,并在其为不为空时,返回执行S205,以遍历当前栅格栈内的各栅格。
S212、判断所述当前地图是否已旋转一周,若是,则执行S213;若否,则执行S214。
S213、将所述当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图,并返回执行S204。
其中,预设旋转角度可以根据需要设置,如该预设旋转角度可以为5°、10°或20°等角度值。
在本实施例中,除基于所获取到的目标局部语义点云地图进行位姿识别外,还可以进一步按照预设旋转角度对目标局部语义点云地图进行多次旋转,直至旋转一周,并分别基于该多次旋转得到的多张语义点云地图进行位姿势识别,以提高候选位姿集合中所包含的候选位姿的全面性。
具体的,当基于当前地图进行候选位姿识别完成后,可以判断当前地图相对于目标局部语义点云地图是否已经旋转一周,如判断若继续将当前地图旋转预设旋转角度,其相对于目标局部语义点云地图的旋转角度是否已经超过360°,若是,则可以确定当前地图已旋转一周,候选位姿识别完成,不再对当前地图进行旋转;若否,则可以将当前地图继续旋转预设旋转角度,并将旋转得到的局部语义点云地图作为当前地图,并重复执行上述操作,以基于该旋转后的局部语义点云地图进行候选位姿识别。
S214、根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
本实施例提供的定位方法,仅在确定高层级的全局语义栅格地图的栅格的第一评价指标值大于第一指标阈值时,再计算其在低一层级的全局语义栅格地图内对应的栅格的第一评价指标值,而在高层级的全局语义栅格地图的栅格的第一评价指标值小于或等于第一指标阈值时,无需再计算其在低一层级的全局语义栅格地图内对应的栅格的第一评价指标值,能够提高回环检测/重定位的效率。并且,通过对目标局部语义点云地图进行旋转,还能够进一步提高所确定的候选位姿的全面性,进而提高回环检测/重定位的准确性,降低误检率。
图3为本公开实施例提供的另一种定位方法的流程示意图。本实施例中的方案可以与上述实施例中的一个或多个可选方案组合。可选的,所述根据所述激光点云地图和所述候选位姿集合确定目标位姿,包括:根据所述候选位姿集合中的各候选位姿对应的第一评价指标,计算各候选位姿的每个位姿参数的加权平均值,作为平均位姿参数;以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿;采用迭代最近点算法确定各待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算各待搜索位姿的第二评价指标值;选取第二评价指标值最大的待搜索位姿作为目标位姿。
可选的,在所述选取第二评价指标值最大的待搜索位姿作为目标位姿之前,还包括:确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于对应的预设标准差阈值。
可选的,在所述根据所述激光点云地图和所述候选位姿集合确定目标位姿之后,还包括:继续移动,并在继续移动预设距离后,采用所述预设距离内的局部语义点云地图对所述目标位姿进行验证,以在验证未通过时,重新进行定位。
相应的,如图3所示,本实施例提供的定位方法可以包括:
S301、获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值。
S302、获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,各全局语义栅格地图的层级与分辨率负相关。
S303、分别基于所述目标局部语义点云地图计算所述目标栅格栈中的各栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
S304、根据所述候选位姿集合中的各候选位姿对应的第一评价指标,计算各候选位姿的每个位姿参数的加权平均值,作为平均位姿参数。
在本步骤中,可以计算各候选位姿的每个位姿参数的加权平均值,以使得所计算得到的平均位姿参数与第一评价指标值较高的候选位姿的位姿参数更为接近,确保当存在目标位姿时,后续所确定的搜索空间内能够涵盖该目标位姿,即确保后续能够检测到所存在的目标位姿,避免出现漏检的情况。具体的,可以采用各候选位姿的第一评价指标值作为权重,计算选位姿集合中的各候选位姿的x轴坐标的加权平均值
Figure BDA0003095324190000251
各候选位姿的y轴坐标的加权平均值
Figure BDA0003095324190000252
和各候选位姿的角度θ的加权平均值
Figure BDA0003095324190000261
作为其平均位姿参数。
在本实施例中,在得到候选位姿集合后,可以不考虑候选位姿集合中的各候选位姿之间的浮动情况,直接计算候选位姿集合中的各候选位姿的平均位姿参数;也可以考虑候选位姿集合中各候选位姿之间的浮动情况,仅在各位姿参数的标准差均小于该位姿参数对应的标准差阈值时,再计算候选位姿集合中的各候选位姿的平均位姿参数,并进行后续操作,而在存在一个或多个标准差大于或等于其对应的标准差阈值的位姿参数时,直接确定在当前时刻未检测到回环检测位姿/重定位位姿,并不再执行后续操作,以进一步减少在回环检测/重定位过程中所需的计算量,此时,优选的,在所述根据所述候选位姿集合中的各候选位姿对应的第一评价指标,计算各候选位姿的每个位姿参数的加权平均值,作为平均位姿参数之前,还包括:确定各候选位姿参数的标准差均小于相应的标准差阈值。其中,各位姿参数对应的标准差阈值可以根据需要设置,例如可以将x对应的标准差阈值设置为1m,将y对应的标准差阈值设置为1m,将θ对应的标准差阈值设置为10°,等等。
S305、以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿。
具体的,在确定平均位姿参数后,可以以各平均位姿参数为中心,按照预先设置的各位姿参数对应的搜索范围确定搜索空间,并进一步按照预先设置的划分间隔对该搜索空间进行划分,将划分得到的不同位姿作为待搜索位姿。例如,假设平均位姿参数分别为
Figure BDA0003095324190000262
Figure BDA0003095324190000263
各位姿参数对应的搜索范围分别为-d~d、-d~d以及-dθ~dθ,各位姿参数对应的划分间隔分别为△x、△y和△θ,则可以确定搜索空间为
Figure BDA0003095324190000264
以△x、△y和△θ为间隔划分该搜索控件,将每一个划分得到的子空间对应的x、y、θ作为待搜索位姿,并可以将其添加至待搜索位姿集合中。其中,d、dθ、△x、△y和△θ均可以根据需要进行设置,例如,可设置d=3△x=3△y,dθ=3△θ,并可以取△x=△y=0.4m,△θ=5°。
S306、采用迭代最近点算法确定各待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算各待搜索位姿的第二评价指标值。
其中,该匹配信息可以理解为基于各待搜索位姿对激光点云地图进行匹配时的匹配信息,其可以包括匹配点数量和所有匹配点之间的距离之和。第二评价指标可用于评估各待搜索位姿为目标位姿的可能性,其可以与以其作为初值时局部激光点云地图同全局激光点云地图之间的匹配程度正相关。
示例性的,可以针对每一个待搜索位姿,以该待搜索位姿的位姿参数作为初值,采用基于点到直线的ICP算法求解局部激光点云地图中的平面特征点云到全局激光点云地图中的平面特征点云的坐标变换关系,并记ICP算法最后一次迭代时的匹配点数量为n,所有匹配点之间的距离之和为l,根据该匹配点数量n和所有匹配点之间的距离之和l计算该待搜索位姿的第二评价指标值,如可以采用下式(5)计算每个待搜索位姿的第二评价指标值。
Figure BDA0003095324190000271
其中,score2为第二评价指标值,n为最后一次迭代时的匹配点数量,l为最后一次迭代时所有匹配点之间的距离之和,np为局部激光点云地图中的平面特征点云的数量。
需要说明的是,采用基于点到直线的ICP算法进行配准仅是本实施例进行的示例性说明,而并非限定。本实施例也可以采用其他点云配准算法,如点到点的ICP算法、正态分布变换(Normal Distributions Transform,NDT)算法或基于点云特征描述子的配准方法等,进行配准。当采用除ICP算法之外的算法进行配准时,针对每一个待搜索位姿,在点云配准完成后还可以进一步确定匹配点的数量(因为ICP算法中已包含此步骤),例如,将匹配点数量初始化为0,对于局部激光点云地图中的每一个点,找到全局激光点云地图中与该点距离最近的点,并计算此两个点之间的距离,如果该距离小于阈值(如0.5m或1m等),则认为全局激光点云地图中的上述点为局部激光点云地图中的该点的匹配点,并将匹配点数量加1,以此类推,即可得到该待搜索位姿对应的匹配点的数量。
S307、确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于对应的预设标准差阈值。
相应的,如果第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数中存在标准差大于或等于对应的预设标准差阈值的目标位姿参数,则可以确定当前时刻未检测到回环检测位姿/重定位位姿,并不再执行后续操作。
其中,目标位姿参数可以包括三个位姿参数x、y和θ中的一个或多个,例如可以将x和y设置为目标位姿参数或者将x、y和θ均设置为目标位姿参数,以下以目标位姿参数包括x和y为例。第二指标阈值和各位姿参数对应的预设标准差阈值可以根据需要进行设置,如第二指标阈值可以设置为0.3或0.4等,位姿参数x和y对应的预设标准差阈值可以设置为0.8m或0.7m等。
示例性的,在得到某一待搜索位姿的第二评价指标之后,可以判断该待搜索位姿的第二评价指标是否大于第二指标阈值,如果该待搜索位姿的第二评价指标大于第二指标阈值,则将该待搜索位姿添加至一预设位姿集合中。从而,在将所有第二评价指标大于第二指标阈值的待搜索位姿均添加至该预设位姿集合之后,可以针对该预设位姿集合中的所有待搜索位姿,计算各待搜索位姿x轴坐标的标准差和y轴坐标的标准差,并判断计算得到的x轴坐标的标准差小于位姿参数x对应的预设标准差阈值且计算得到的y轴坐标的标准差小于位姿参数y对应的预设标准差阈值是否成立,若是,则执行S308;若否,则可以确定在当前时刻未检测到回环检测位姿/重定位位姿,并不再执行后续操作。
S308、选取第二评价指标值最大的待搜索位姿作为目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
在本实施例中,在计算得到各待搜索位姿的第二评价指标后,可以选取第二评价指标值最大的待搜索位姿作为目标位姿,即选取为回环检测位姿/重定位位姿的可能性最高的待搜索位姿作为目标位姿。
需要说明的是,本实施例并不对所选取的目标位姿的数量进行限制,例如也可以选取第二评价指标值大于某一预设指标阈值的所有待搜索位姿作为目标位姿,或者,按照第二评价指标值由大到小的顺序,选取预设数量(一个或多个)待搜索位姿作为目标位姿。
S309、继续移动,并在继续移动预设距离后,采用所述预设距离内的局部语义点云地图对所述目标位姿进行验证,以在验证未通过时,重新进行定位。
在本实施例中,在确定目标位姿之后,可以控制机器人继续移动,并采用机器人在继续移动的预设距离内的语义信息对所确定的目标位姿进行验证,以验证所确定的目标位姿是否确实为回环检测位姿/重定位位姿,提高所确定的回环检测/重定位的可靠性。
示例性的,可以以所确定的目标位姿作为初始值,首先在此后机器人每运行一段距离(如1m或1.5m等)时,利用SLAM后端给出的当前时刻的位姿增量,得到机器人在当前时刻的位姿,获取机器人在当前位置的目标局部语义栅格地图,并按照式(4)计算机器人在当前时刻的位姿的第一评价指标值,依此类推,在机器人移动预设距离(如15m或20m等)的过程内,可以得到机器人多个位姿的第一评价指标值。然后判断第一评价指标值大于第三指标阈值的位姿在该预设距离内所采集到的所有位姿中所占的比例,如果该比例大于预设比例阈值(如0.8或0.9等),则确定目标位姿验证通过,认为成功实现了回环检测/重定位;否则,则确定目标位姿验证未通过,即确定S308所确定的目标位姿有误,可以间隔一段时间之后重新执行S301再次对机器人进行定位。其中,该第三指标阈值根据需要进行设置,如可以将第三指标阈值设置为与第一指标阈值成设定比例(如4/5等)。
本实施例提供的定位方法,根据第一评价指标的加权平均值确定搜索空间,根据激光点云数据确定搜索空间中各待搜索控件的第二评价指标值,根据该第二评价值确定搜索空间内是否存在目标位姿以及所存在的目标位姿,并在确定目标位姿之后,继续移动,并再次基于机器人在继续移动的预设距离内的语义信息对该目标位姿进行验证,能够减少机器人定位过程中所需的计算量,并进一步提高所确定的目标位姿的可靠性,确保能够高效可靠地实现回环检测/重定位。
图4为本公开实施例提供的一种定位装置的结构框图。该装置可以由软件和/或硬件实现,可配置于机器人,典型的,可以配置于室内机器人中,可通过执行定位方法进行回环检测/重定位。如图4所示,本实施例提供的定位装置可以包括:地图获取模块401、候选位姿识别模块402和目标位姿确定模块403,其中,
地图获取模块401,用于获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
候选位姿识别模块402,用于基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
目标位姿确定模块403,用于根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
本实施例提供的定位装置,通过地图获取模块获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,全局语义栅格地图的每个栅格中记录有该栅格内存在目标语义对象的概率值;通过候选位姿识别模块基于该目标局部语义点云地图和全局语义栅格地图进行位姿识别,得到候选位姿结合;通过目标位姿确定模块根据该激光点云地图和该候选位姿集合确定机器人的回环检测位姿和/或重定位位姿。本实施例通过采用上述技术方案,首先利用语义信息对机器人进行粗定位,再利用激光点云信息对机器人进行精定位,不仅能够减少定位过程中所需的计算量,提高回环检测/重定位的速度;还能够提高回环检测/重定位的准确性,降低误检率。
在上述方案中,所述地图获取模块401具体可用于:获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,不同层级的全局语义栅格地图的分辨率不同。
在上述方案中,所述候选位姿识别模块402可以包括:栅格栈构建单元,用于获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,各全局语义栅格地图的层级与分辨率负相关;候选位姿确定单元,用于分别基于所述目标局部语义点云地图计算所述目标栅格栈中的各栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
在上述方案中,所述候选位姿确定单元可用于:构建与所述目标局部语义点云地图相同的当前地图;创建与所述目标栅格栈相同的当前栅格栈,并控制位于所述当前栅格栈顶端的当前栅格出栈;基于所述当前地图计算所述当前栅格的第一评价指标值;如果所述第一评价指标值大于第一指标阈值,则判断所述当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,若是,则将所述当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至候选位姿集合中,若否,则将所述当前栅格在下一层级的栅格地图中对应的栅格添加至所述当前栅格栈中;返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止;其中,所述目标角度为所述当前地图相对于所述目标局部语义点云地图的旋转角度;如果所述第一评价指标值小于或等于第一指标阈值,则返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止。
进一步地,所述候选位姿确定单元还可以用于:在所述当前栅格栈为空时,将所述当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图,并返回执行创建与所述目标栅格栈相同的当前栅格栈的操作,直至所述当前地图旋转一周为止。
在上述方案中,所述候选位姿确定单元可以包括:平移子单元,用于对所述当前地图进行平移,以将所述当前栅格在所述当前地图中对应的坐标点移动至原点位置,得到平移地图;概率值确定子单元,用于获取所述平移地图内的每一个语义特征点在所述目标全局语义栅格地图中对应的栅格中记录的概率值,作为所述语义特征点的概率值;指标计算子单元,用于根据各语义特征点的概率值计算所述当前栅格的第一评价指标值。
在上述方案中,所述第一指标计算子单元具体可用于:在所述目标全局语义栅格地图不为最低层级的语义栅格地图时,根据各语义特征点的概率值计算各语义特征点的概率平均值,作为所述当前栅格的第一评价指标值;在所述当前语义栅格地图为最低层级的语义栅格地图时,根据各语义特征点的概率值计算各语义特征点的概率平均值和惩罚函数平均值,并将所述概率平均值与所述惩罚函数平均值之间的差值,作为所述当前栅格的第一评价指标值,其中,所述惩罚函数平均值用于表征所述当前地图与所述目标全局语义栅格地图之间的不匹配程度。
在上述方案中,所述目标位姿确定模块403可以包括:平均值计算单元,用于根据所述候选位姿集合中的各候选位姿对应的第一评价指标,计算各候选位姿的每个位姿参数的加权平均值,作为平均位姿参数;离散化单元,用于以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿;指标计算单元,用于采用迭代最近点算法确定各待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算各待搜索位姿的第二评价指标值;目标位姿确定单元,用于选取第二评价指标值最大的待搜索位姿作为目标位姿。
进一步地,所述目标位姿确定模块403还可以包括:标准差确定单元,用于在所述选取第二评价指标值最大的待搜索位姿作为目标位姿之前,确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于对应的预设标准差阈值。
进一步地,本实施例提供的定位装置还可以包括:栅格地图生成模块,用于在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,根据全局语义点云地图生成至少两层级的全局语义栅格地图。
在上述方案中,所述栅格地图生成模块具体可用于:按照预设尺寸对全局语义点云地图进行栅格划分,并确定各栅格内存在目标语义对象的概率,以得到最低层级的全局语义栅格地图;对所述最低层级的全局语义栅格地图进行至少一次降采样,并将每次降采样得到的全局语义栅格地图作为相应层级的全局语义栅格地图。
进一步地,本实施例提供的定位装置还可以包括:验证模块,用于在所述根据所述激光点云地图和所述候选位姿集合确定目标位姿之后,继续移动,并在继续移动预设距离后,采用所述预设距离内的局部语义点云地图对所述目标位姿进行验证,以在验证未通过时,重新进行定位。
进一步地,本实施例提供的定位装置还可以包括:特征点获取模块,用于在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,获取当前位置的原始局部语义点云地图中的各前景语义对象的第一特征点和各背景语义对象的第二特征点;降采样模块,用于采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义地图。
在上述方案中,所述降采样模块可以包括:聚类单元,用于对所述第一特征点进行欧式距离聚类,并将聚类后的各聚类中心作为第一降采样特征点;体素化单元,用于对所述第二特征点进行体素化降采样,得到第二降采样特征点;地图构建单元,用于根据所述第一降采样特征点和所述第二降采样特征点构建目标局部语义地图。
进一步的,本实施例提供的定位装置可应用于对机器人进行定位。
本公开实施例提供的定位装置可执行本公开任意实施例提供的定位方法,具备执行定位方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例所提供的定位方法。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备(例如终端设备)500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置506加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置506;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置506被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种定位方法,包括:
获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
根据本公开的一个或多个实施例,示例2根据示例1所述的方法,所述获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,包括:
获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,不同层级的全局语义栅格地图的分辨率不同。
根据本公开的一个或多个实施例,示例3根据示例2所述的方法,所述基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合,包括:
获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,各全局语义栅格地图的层级与分辨率负相关;
分别基于所述目标局部语义点云地图计算所述目标栅格栈中的各栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
根据本公开的一个或多个实施例,示例4根据示例3所述的方法,所述分别基于所述目标局部语义点云地图计算所述目标栅格栈中的各栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合,包括:
构建与所述目标局部语义点云地图相同的当前地图;
创建与所述目标栅格栈相同的当前栅格栈,并控制位于所述当前栅格栈顶端的当前栅格出栈;
基于所述当前地图计算所述当前栅格的第一评价指标值;
如果所述第一评价指标值大于第一指标阈值,则判断所述当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,若是,则将所述当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至候选位姿集合中,若否,则将所述当前栅格在下一层级的栅格地图中对应的栅格添加至所述当前栅格栈中;返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止;其中,所述目标角度为所述当前地图相对于所述目标局部语义点云地图的旋转角度;
如果所述第一评价指标值小于或等于第一指标阈值,则返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止。
根据本公开的一个或多个实施例,示例5根据示例4所述的方法,还包括:
当所述当前栅格栈为空时,将所述当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图,并返回执行创建与所述目标栅格栈相同的当前栅格栈的操作,直至所述当前地图旋转一周为止。
根据本公开的一个或多个实施例,示例6根据示例4所述的方法,所述基于所述当前地图计算所述当前栅格的第一评价指标值,包括:
对所述当前地图进行平移,以将所述当前栅格在所述当前地图中对应的坐标点移动至原点位置,得到平移地图;
获取所述平移地图内的每一个语义特征点在所述目标全局语义栅格地图中对应的栅格中记录的概率值,作为所述语义特征点的概率值;
根据各语义特征点的概率值计算所述当前栅格的第一评价指标值。
根据本公开的一个或多个实施例,示例7根据示例6所述的方法,所述根据各语义特征点的概率值计算所述当前栅格的第一评价指标值,包括:
如果所述目标全局语义栅格地图不为最低层级的语义栅格地图,则根据各语义特征点的概率值计算各语义特征点的概率平均值,作为所述当前栅格的第一评价指标值;
如果所述当前语义栅格地图为最低层级的语义栅格地图,则根据各语义特征点的概率值计算各语义特征点的概率平均值和惩罚函数平均值,并将所述概率平均值与所述惩罚函数平均值之间的差值,作为所述当前栅格的第一评价指标值,其中,所述惩罚函数平均值用于表征所述当前地图与所述目标全局语义栅格地图之间的不匹配程度。
根据本公开的一个或多个实施例,示例8根据示例3-7任一所述的方法,所述根据所述激光点云地图和所述候选位姿集合确定目标位姿,包括:
根据所述候选位姿集合中的各候选位姿对应的第一评价指标,计算各候选位姿的每个位姿参数的加权平均值,作为平均位姿参数;
以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿;
采用迭代最近点算法确定各待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算各待搜索位姿的第二评价指标值;
选取第二评价指标值最大的待搜索位姿作为目标位姿。
根据本公开的一个或多个实施例,示例9根据示例8所述的方法,在所述选取第二评价指标值最大的待搜索位姿作为目标位姿之前,还包括:
确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于对应的预设标准差阈值。
根据本公开的一个或多个实施例,示例10根据示例2-7任一所述的方法,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:
根据全局语义点云地图生成至少两层级的全局语义栅格地图。
根据本公开的一个或多个实施例,示例11根据示例10所述的方法,所述根据全局语义点云地图生成至少两层级的全局语义栅格地图,包括:
按照预设尺寸对全局语义点云地图进行栅格划分,并确定各栅格内存在目标语义对象的概率,以得到最低层级的全局语义栅格地图;
对所述最低层级的全局语义栅格地图进行至少一次降采样,并将每次降采样得到的全局语义栅格地图作为相应层级的全局语义栅格地图。
根据本公开的一个或多个实施例,示例12根据示例1-7任一所述的方法,在所述根据所述激光点云地图和所述候选位姿集合确定目标位姿之后,还包括:
继续移动,并在继续移动预设距离后,采用所述预设距离内的局部语义点云地图对所述目标位姿进行验证,以在验证未通过时,重新进行定位。
根据本公开的一个或多个实施例,示例13根据示例1-7任一所述的方法,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:
获取当前位置的原始局部语义点云地图中的各前景语义对象的第一特征点和各背景语义对象的第二特征点;
采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义地图。
根据本公开的一个或多个实施例,示例14根据示13所述的方法,所述采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义地图,包括:
对所述第一特征点进行欧式距离聚类,并将聚类后的各聚类中心作为第一降采样特征点;
对所述第二特征点进行体素化降采样,得到第二降采样特征点;
根据所述第一降采样特征点和所述第二降采样特征点构建目标局部语义地图。
根据本公开的一个或多个实施例,示例15根据示例1-7任一所述的方法,所述方法应用于对机器人进行定位。
根据本公开的一个或多个实施例,示例16提供了一种定位装置,包括:
地图获取模块,用于获取当前位置的目标局部语义点云地图、全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
候选位姿识别模块,用于基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
目标位姿确定模块,用于根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿。
根据本公开的一个或多个实施例,示例17提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如示例1-15中任一所述的定位方法。
根据本公开的一个或多个实施例,示例18提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如示例1-15中任一所述的定位方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (16)

1.一种定位方法,其特征在于,包括:
获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿;
其中,所述基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合,包括:
获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,各全局语义栅格地图的层级与分辨率负相关;
分别基于所述目标局部语义点云地图计算所述目标栅格栈中的各栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
2.根据权利要求1所述的方法,其特征在于,所述分别基于所述目标局部语义点云地图计算所述目标栅格栈中的各栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合,包括:
构建与所述目标局部语义点云地图相同的当前地图;
创建与所述目标栅格栈相同的当前栅格栈,并控制位于所述当前栅格栈顶端的当前栅格出栈;
基于所述当前地图计算所述当前栅格的第一评价指标值;
如果所述第一评价指标值大于第一指标阈值,则判断所述当前栅格所位于的目标全局语义栅格地图是否为最低层级的语义栅格地图,若是,则将所述当前栅格在全局语义点云地图中对应的位置坐标以及目标角度作为候选位姿添加至候选位姿集合中,若否,则将所述当前栅格在下一层级的栅格地图中对应的栅格添加至所述当前栅格栈中;返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止;其中,所述目标角度为所述当前地图相对于所述目标局部语义点云地图的旋转角度;
如果所述第一评价指标值小于或等于第一指标阈值,则返回执行控制位于所述当前栅格栈顶端的当前栅格出栈的操作,直至所述当前栅格栈为空为止。
3.根据权利要求2所述的方法,其特征在于,还包括:
当所述当前栅格栈为空时,将所述当前地图旋转预设旋转角度,得到旋转后的局部语义点云地图,作为当前地图,并返回执行创建与所述目标栅格栈相同的当前栅格栈的操作,直至所述当前地图旋转一周为止。
4.根据权利要求2所述的方法,其特征在于,所述基于所述当前地图计算所述当前栅格的第一评价指标值,包括:
对所述当前地图进行平移,以将所述当前栅格在所述当前地图中对应的坐标点移动至原点位置,得到平移地图;
获取所述平移地图内的每一个语义特征点在所述目标全局语义栅格地图中对应的栅格中记录的概率值,作为所述语义特征点的概率值;
根据各语义特征点的概率值计算所述当前栅格的第一评价指标值。
5.根据权利要求4所述的方法,其特征在于,所述根据各语义特征点的概率值计算所述当前栅格的第一评价指标值,包括:
如果所述目标全局语义栅格地图不为最低层级的语义栅格地图,则根据各语义特征点的概率值计算各语义特征点的概率平均值,作为所述当前栅格的第一评价指标值;
如果当前语义栅格地图为最低层级的语义栅格地图,则根据各语义特征点的概率值计算各语义特征点的概率平均值和惩罚函数平均值,并将所述概率平均值与所述惩罚函数平均值之间的差值,作为所述当前栅格的第一评价指标值,其中,所述惩罚函数平均值用于表征所述当前地图与所述目标全局语义栅格地图之间的不匹配程度。
6.根据权利要求1-5任一所述的方法,其特征在于,所述根据所述激光点云地图和所述候选位姿集合确定目标位姿,包括:
根据所述候选位姿集合中的各候选位姿对应的第一评价指标,计算各候选位姿的每个位姿参数的加权平均值,作为平均位姿参数;
以所述平均位姿参数为中心确定搜索空间,并对所述搜索空间进行离散化处理,得到多个待搜索位姿;
采用迭代最近点算法确定各待搜索位姿与所述激光点云地图的匹配信息,并基于所述匹配信息计算各待搜索位姿的第二评价指标值;
选取第二评价指标值最大的待搜索位姿作为目标位姿。
7.根据权利要求6所述的方法,其特征在于,在所述选取第二评价指标值最大的待搜索位姿作为目标位姿之前,还包括:
确定第二评价指标值大于第二指标阈值的待搜索位姿的目标位姿参数的标准差小于对应的预设标准差阈值。
8.根据权利要求1-5任一所述的方法,其特征在于,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:
根据全局语义点云地图生成至少两层级的全局语义栅格地图。
9.根据权利要求8所述的方法,其特征在于,所述根据全局语义点云地图生成至少两层级的全局语义栅格地图,包括:
按照预设尺寸对全局语义点云地图进行栅格划分,并确定各栅格内存在目标语义对象的概率,以得到最低层级的全局语义栅格地图;
对所述最低层级的全局语义栅格地图进行至少一次降采样,并将每次降采样得到的全局语义栅格地图作为相应层级的全局语义栅格地图。
10.根据权利要求1-5任一所述的方法,其特征在于,在所述根据所述激光点云地图和所述候选位姿集合确定目标位姿之后,还包括:
继续移动,并在继续移动预设距离后,采用所述预设距离内的局部语义点云地图对所述目标位姿进行验证,以在验证未通过时,重新进行定位。
11.根据权利要求1-5任一所述的方法,其特征在于,在所述获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图之前,还包括:
获取当前位置的原始局部语义点云地图中的各前景语义对象的第一特征点和各背景语义对象的第二特征点;
采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义地图。
12.根据权利要求11所述的方法,其特征在于,所述采用不同的降采样方式对所述第一特征点和所述第二特征点进行降采样,并根据降采样得到的特征点构建目标局部语义地图,包括:
对所述第一特征点进行欧式距离聚类,并将聚类后的各聚类中心作为第一降采样特征点;
对所述第二特征点进行体素化降采样,得到第二降采样特征点;
根据所述第一降采样特征点和所述第二降采样特征点构建目标局部语义地图。
13.根据权利要求1-5任一所述的方法,其特征在于,所述方法应用于对机器人进行定位。
14.一种定位装置,其特征在于,包括:
地图获取模块,用于获取当前位置的目标局部语义点云地图、至少两层级的全局语义栅格地图和激光点云地图,其中,所述全局语义栅格地图的每个栅格中记录有所述栅格内存在目标语义对象的概率值;
候选位姿识别模块,用于基于所述目标局部语义点云地图和所述全局语义栅格地图进行位姿识别,得到候选位姿集合;
目标位姿确定模块,用于根据所述激光点云地图和所述候选位姿集合确定目标位姿,所述目标位姿包括回环位姿和/或重定位位姿;
其中,所述候选位姿识别模块包括:
栅格栈构建单元,用于获取由最高层级的全局语义栅格地图中概率值大于零的栅格构成目标栅格栈,其中,各全局语义栅格地图的层级与分辨率负相关;
候选位姿确定单元,用于分别基于所述目标局部语义点云地图计算所述目标栅格栈中的各栅格的第一评价指标以及其他层级的全局语义栅格地图中的至少一个栅格的第一评价指标值,并根据所述第一评价指标值确定候选位姿,以得到候选位姿集合。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-13中任一所述的定位方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-13中任一所述的定位方法。
CN202110609933.0A 2021-06-01 2021-06-01 定位方法、装置、电子设备和存储介质 Active CN113256712B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110609933.0A CN113256712B (zh) 2021-06-01 2021-06-01 定位方法、装置、电子设备和存储介质
PCT/CN2022/095453 WO2022253113A1 (zh) 2021-06-01 2022-05-27 定位方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110609933.0A CN113256712B (zh) 2021-06-01 2021-06-01 定位方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN113256712A CN113256712A (zh) 2021-08-13
CN113256712B true CN113256712B (zh) 2023-04-18

Family

ID=77185699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110609933.0A Active CN113256712B (zh) 2021-06-01 2021-06-01 定位方法、装置、电子设备和存储介质

Country Status (2)

Country Link
CN (1) CN113256712B (zh)
WO (1) WO2022253113A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113256712B (zh) * 2021-06-01 2023-04-18 北京有竹居网络技术有限公司 定位方法、装置、电子设备和存储介质
CN113763551B (zh) * 2021-09-08 2023-10-27 北京易航远智科技有限公司 一种基于点云的大规模建图场景的快速重定位方法
CN115235482A (zh) * 2021-09-28 2022-10-25 上海仙途智能科技有限公司 地图更新方法、装置、计算机设备及介质
CN113936046A (zh) * 2021-11-02 2022-01-14 北京京东乾石科技有限公司 一种物体定位方法、装置、电子设备及计算机可读介质
CN114627182A (zh) * 2022-01-26 2022-06-14 美的集团(上海)有限公司 机器人的定位方法、装置、电子设备及存储介质
CN115752476B (zh) * 2022-11-29 2024-06-18 重庆长安汽车股份有限公司 一种基于语义信息的车辆地库重定位方法、装置、设备和介质
CN115797422A (zh) * 2022-12-01 2023-03-14 西南交通大学 基于语义地图的地面到无人机激光点云跨视角重定位方法
CN116030134B (zh) * 2023-02-14 2023-07-18 长沙智能驾驶研究院有限公司 定位方法、装置、设备、可读存储介质及程序产品
CN116358573B (zh) * 2023-05-31 2023-08-29 小米汽车科技有限公司 地图建立方法、装置、存储介质以及车辆
CN117593517B (zh) * 2024-01-19 2024-04-16 南京信息工程大学 基于互补感知跨视图融合网络的伪装目标检测方法
CN117870653B (zh) * 2024-03-13 2024-05-14 中国科学技术大学 一种二维差分欧几里得符号距离场地图的建立与更新方法
CN117991259A (zh) * 2024-04-07 2024-05-07 陕西欧卡电子智能科技有限公司 基于激光雷达和毫米波雷达的无人船重定位方法及装置
CN118154676A (zh) * 2024-05-09 2024-06-07 北京理工大学前沿技术研究院 一种基于激光雷达的场景定位方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107144285A (zh) * 2017-05-08 2017-09-08 深圳地平线机器人科技有限公司 位姿信息确定方法、装置和可移动设备
CN111596298A (zh) * 2020-05-13 2020-08-28 北京百度网讯科技有限公司 目标对象的定位方法、装置、设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319655B (zh) * 2017-12-29 2021-05-07 百度在线网络技术(北京)有限公司 用于生成栅格地图的方法和装置
CN110264572B (zh) * 2019-06-21 2021-07-30 哈尔滨工业大学 一种融合几何特性与力学特性的地形建模方法及系统
CN112363158B (zh) * 2020-10-23 2024-03-12 浙江华睿科技股份有限公司 机器人的位姿估计方法、机器人和计算机存储介质
CN112836698A (zh) * 2020-12-31 2021-05-25 北京纵目安驰智能科技有限公司 一种定位方法、装置、存储介质及电子设备
CN113256712B (zh) * 2021-06-01 2023-04-18 北京有竹居网络技术有限公司 定位方法、装置、电子设备和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107144285A (zh) * 2017-05-08 2017-09-08 深圳地平线机器人科技有限公司 位姿信息确定方法、装置和可移动设备
CN111596298A (zh) * 2020-05-13 2020-08-28 北京百度网讯科技有限公司 目标对象的定位方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113256712A (zh) 2021-08-13
WO2022253113A1 (zh) 2022-12-08

Similar Documents

Publication Publication Date Title
CN113256712B (zh) 定位方法、装置、电子设备和存储介质
CN111325796B (zh) 用于确定视觉设备的位姿的方法和装置
JP6830139B2 (ja) 3次元データの生成方法、3次元データの生成装置、コンピュータ機器及びコンピュータ読み取り可能な記憶媒体
US11321593B2 (en) Method and apparatus for detecting object, method and apparatus for training neural network, and electronic device
CN111079619B (zh) 用于检测图像中的目标对象的方法和装置
EP3910543A2 (en) Method for training object detection model, object detection method and related apparatus
JP2022515591A (ja) ターゲットオブジェクトの3d検出方法、装置、媒体及び機器
CN111209978B (zh) 三维视觉重定位方法、装置及计算设备、存储介质
CN110986969B (zh) 地图融合方法及装置、设备、存储介质
CN110663060B (zh) 一种用于表示环境元素的方法、装置、系统、以及车辆/机器人
JP2009186364A (ja) データ処理装置、姿勢推定システム、姿勢推定方法およびプログラム
CN111426312A (zh) 定位地图的更新方法、装置、设备及存储介质
CN113793370B (zh) 三维点云配准方法、装置、电子设备及可读介质
CN114993328B (zh) 车辆定位评估方法、装置、设备和计算机可读介质
WO2023131048A1 (zh) 位姿信息的确定方法、装置、电子设备和存储介质
US20220230350A1 (en) Position recognition method and system based on visual information processing
JP2018072316A (ja) ジオアーク(geoarc)を使用したビークルの二次元位置の特定
CN112712036A (zh) 交通标志识别方法、装置、电子设备及计算机存储介质
CN112085842B (zh) 深度值确定方法及装置、电子设备和存储介质
CN110940994B (zh) 定位初始化方法及其系统
CN115100536B (zh) 建筑物识别方法、装置、电子设备和计算机可读介质
CN112880675B (zh) 用于视觉定位的位姿平滑方法、装置、终端和移动机器人
CN110399892B (zh) 环境特征提取方法和装置
CN110634159A (zh) 一种目标检测方法和装置
CN113761090A (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
GR01 Patent grant
GR01 Patent grant