定位方法、装置、机器人和存储介质与流程

文档序号:32041490发布日期:2022-11-03 05:26阅读:37来源:国知局
定位方法、装置、机器人和存储介质与流程

1.本技术涉及机器人技术领域,特别是涉及一种定位方法、装置、机器人和存储介质。


背景技术:

2.同步定位与建图(simultaneous localization and mapping,slam)是机器人能够自主运行的基本要求,而激光雷达和视觉传感器是slam中的两种主流传感器,基于这两种传感器的slam算法也广泛应用在机器人的导航定位过程中。
3.然而,激光slam通过激光雷达前后帧获取点云的微小偏差推算机器人运动轨迹,在环境变化很大,周围物体大量存在运动的时候,建图定位效果较差。
4.因此,亟需一种可以在复杂场景下实现有效建图与定位,提高slam系统稳定性的方法。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够提高激光slam定位稳定性的定位方法、装置、机器人和存储介质。
6.第一方面,本技术提供了一种定位方法,该方法包括:
7.若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧;目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息;
8.从地图数据库中获取当前视觉图像帧对应的标准视觉信息;
9.根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿。
10.在其中一个实施例中,从地图数据库中获取当前视觉图像帧对应的标准视觉信息,包括:
11.基于目标局部地图,从地图数据库中获取目标局部地图对应的视觉信息,得到第一候选视觉信息;
12.从地图数据库中获取与目标局部地图相邻的至少一个候选局部地图,将各候选局部地图对应的视觉信息确定为第二候选视觉信息;
13.根据第一候选视觉信息和/或第二候选视觉信息,确定当前视觉图像帧对应的标准视觉信息。
14.在其中一个实施例中,根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿,包括:
15.获取标准视觉信息在对应的局部地图中的位姿信息;
16.根据当前视觉图像帧和标准视觉信息匹配的多个匹配特征点对,获取当前视觉图像帧和标准视觉信息之间的变换关系;
17.根据位姿信息和变换关系,确定机器人在目标环境中的位姿。
18.在其中一个实施例中,若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧之前,包括:
19.获取机器人采集的目标环境的激光帧序列,以及机器人每间隔预设时长在目标环境中采集的多个视觉信息;各视觉信息位于相邻局部地图之间;
20.根据激光帧序列和多个视觉信息,构建地图数据库。
21.在其中一个实施例中,根据激光帧序列和多个视觉信息,构建地图数据库,包括:
22.按照预设数量对激光帧序列进行划分,对划分得到的多组激光帧分别进行建图,得到多个局部地图;
23.获取多个视觉信息和激光帧序列之间的关联关系;
24.根据关联关系,将多个视觉信息添加到对应的局部地图中,得到地图数据库。
25.在其中一个实施例中,获取多个视觉信息和激光帧序列之间的关联关系,包括:
26.获取采集多个视觉信息的视觉传感器的标定参数,以及视觉传感器与采集激光帧序列的激光传感器之间的坐标转换关系;
27.根据视觉传感器的标定参数和坐标转换关系,确定多个视觉信息和激光帧序列之间的关联关系。
28.在其中一个实施例中,该方法还包括:
29.若机器人激光定位精度低于预设值,则执行视觉信息补充操作;视觉信息补充操作用于补充采集目标环境中的视觉信息。
30.在其中一个实施例中,该方法还包括:
31.若目标环境的当前激光帧与目标局部地图匹配成功,则根据当前激光帧和目标局部地图,确定机器人在目标环境中的位姿。
32.第二方面,本技术还提供了一种定位装置,该装置包括:
33.环境图像获取模块,用于若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧;目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息;
34.视觉信息获取模块,用于从地图数据库中获取当前视觉图像帧对应的标准视觉信息;
35.定位模块,用于根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿。
36.第三方面,本技术还提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面中任一方法实施例的步骤。
37.第四方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面中任一方法实施例的步骤。
38.第五方面,本技术还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,计算机程序被处理器执行时实现上述第一方面中任一方法实施例的步骤。
39.上述定位方法、装置、机器人和存储介质,若目标环境的当前激光帧与目标局部地
图匹配失败,获取目标环境的当前视觉图像帧,并从地图数据库中获取当前视觉图像帧对应的标准视觉信息,进而根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿。其中,目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息。也即是,本技术预先在地图数据库中补充存储了局部地图对应的视觉信息,因此,在激光slam失效的情况下,可以通过采集当前视觉图像帧,并从地图数据库中匹配对应的标准视觉信息后,然后通过视觉图像帧和标准视觉信息进行定位,以弥补激光slam定位在动态环境中定位的局限性,保证了机器人定位系统可以在复杂环境中正常运行。如此,通过经验总结更为鲁棒的激光slam进行机器人定位,并加以视觉信息辅助,不仅可以保持激光slam良好的实时性,还增强了定位系统的运行稳定性。
附图说明
40.图1为一个实施例中定位方法的流程示意图;
41.图2为一个实施例中获取标准视觉信息的流程示意图;
42.图3为一个实施例中局部地图和视觉信息的对应关系示意图;
43.图4为一个实施例中视觉定位的流程示意图;
44.图5为另一个实施例中定位方法的流程示意图;
45.图6为一个实施例一种地图数据库构建方法的流程示意图;
46.图7为一个实施例中视觉信息的采集间隔示意图;
47.图8为一个实施例中另一种地图数据库构建方法的流程示意图;
48.图9为另一个实施例中地图数据库构建方法的流程示意图;
49.图10为一个实施例中定位装置的结构框图;
50.图11为一个实施例中机器人的内部结构图。
具体实施方式
51.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
52.随着机器人应用场景的不断增加,对机器人建图和定位技术的要求也越来越高。激光传感器和视觉传感器作为slam中的两种主流传感器,基于这两种传感器的slam也广泛应用在机器人的建图和定位过程中。
53.其中,激光slam的运行原理是:设置在机器人固定位置的激光传感器,可以探测到一个水平面(或几个有限角度切面)上一定角度范围内,基于机器人前方障碍物距离信息所形成的点云点。进一步地,基于实时采集的连续激光帧,通过对比前后激光帧中点云在空间位置上的微小偏移,可以推算出机器人运动轨迹。
54.激光slam在环境保持静态时,能获得很好的定位结果,但在环境中障碍物分布变动很大,机器人周围存在大量的动态障碍时,可能存在定位失效的问题,会影响机器人定位系统的稳定性。
55.进一步地,视觉传感器(比如摄像头)采集的视觉图像具有比激光传感器采集的点
云数据更高维度、更丰富的信息,也最接近于人眼观察世界的方式。但视觉图像中包含的海量图像信息,需要更大的算力和更强的推理逻辑来实现基于图像信息定位机器人的位姿。然而,机器人多运行在嵌入式平台中,有限的计算资源阻碍了视觉slam在机器人身上的应用。同时,视觉图像容易受到光线干扰,且存在相似图案特征误检等问题,也会影响机器人定位系统的稳定性。
56.激光slam和视觉slam均存在弊端与瓶颈,因此,如何能更加高效、更加鲁棒地应对各种复杂场景的机器人运行,成为机器人技术领域中亟待解决的问题。
57.基于上述分析,本技术提供了一种定位方法、装置、机器人和存储介质,以将两种slam技术的优势进行结合,依托于激光slam强大的实时性、稳定性、高效性,增加视觉辅助功能,提升环境信息的采集维度,从而为激光slam在复杂场景下的定位找到可行的解决方案。而且,本技术采集的视觉信息不用于执行复杂的视觉slam操作,仅用于建立局部地图和视觉信息的关联关系,不影响激光slam的定位效率。
58.在一个实施例中,本技术提供的定位方法,可以应用于定位装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为处理器的部分或者全部,集成在计算机设备中。其中,计算机设备可以是能够自主移动的机器人,也可以是其他智能终端。
59.接下来,将通过实施例并结合附图具体地对本技术实施例的技术方案,以及本技术实施例的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。显然,所描述的实施例是本技术实施例一部分实施例,而不是全部的实施例。
60.在一个实施例中,如图1所示,提供了一种定位方法,以该方法应用于机器人为例进行说明,包括以下步骤:
61.步骤110:若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧;目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息。
62.需要说明的是,机器人在导航定位时主要采用激光slam进行定位,正常情况下的工作状态是:根据实时激光帧和地图数据库中的局部地图进行匹配,进而根据匹配上的局部地图,计算机器人的实时位姿。
63.换言之,若目标环境的当前激光帧与目标局部地图匹配成功,则根据当前激光帧和目标局部地图,确定机器人在目标环境中的位姿。
64.具体地,根据当前激光帧中的点云和目标局部地图中的3d地图点进行特征点匹配,获取当前激光帧和目标局部地图之间的匹配关系,进而根据匹配关系计算机器人的位姿。
65.然而,当机器人所处目标环境中分布的障碍物发生移动,比如,环境中的桌椅在前后激光帧中的位置偏差较大时,当前激光帧可能在地图数据库中无法匹配到对应的局部地图,此时,激光slam定位失效。
66.基于此,当机器人在目标环境中采集的当前激光帧与目标局部地图匹配失败,即激光slam定位失效时,可以借助视觉信息进行辅助定位,即执行上述步骤110,机器人获取目标环境的当前视觉图像帧,并以此来定位。
67.需要说明的是,在机器人建图过程中,目标局部地图为前一激光帧对应的局部地
图;在机器人基于先验地图的重定位过程中,目标局部地图可以为地图数据库中已经建好的局部地图,且目标局部地图与当前激光帧的相似度最高。
68.此处的目标局部地图与当前激光帧之间相似度高,是较地图数据库中其他局部地图与当前激光帧的相似度而言的,目标局部地图和当前激光帧之间的相似度最高,并不代表当前激光帧和目标局部地图一定匹配成功。
69.进一步地,判断当前激光帧和目标局部地图之间的匹配情况时,可以采用但不限于以下两种方式:
70.方式1:根据当前激光帧和目标局部地图,计算机器人的位姿,根据机器人的位姿与上一激光帧确定的位姿之间的偏差情况,判断当前激光帧和目标局部地图是否匹配成功。
71.其中,若机器人的位姿与上一激光帧确定的位姿之间的偏差大于预设的位姿偏差值,表征机器人位姿发生了很大变化,定位结果可能存在异常,则判定当前激光帧和目标局部地图匹配失败,需要借助视觉信息进行定位。
72.若机器人的位姿与上一激光帧确定的位姿之间的偏差不大于预设的位姿偏差值,则判定当前激光帧与目标局部地图匹配成功,可以直接根据当前激光帧和目标局部地图,确定机器人在目标环境中的位姿。
73.方式2:根据当前激光帧和目标局部地图进行特征点匹配,获取匹配特征点对;进而根据匹配特征点对和预设的特征点对阈值,判断当前激光帧和目标局部地图是否匹配成功。
74.应该理解的是,当前激光帧和目标局部地图之间的匹配特征点对越多,则表征当前激光帧和目标局部地图中环境信息的相似度越高,根据两者确定的位姿也更准确。
75.因此,当匹配特征点对的数量大于特征点对阈值时,判定当前激光帧和目标局部地图匹配成功,可以直接根据当前激光帧和目标局部地图,确定机器人在目标环境中的位姿;当匹配特征点对的数量小于或等于特征点对阈值时,判定当前激光帧和目标局部地图匹配失败,需要借助视觉信息进行定位。
76.步骤120:从地图数据库中获取当前视觉图像帧对应的标准视觉信息。
77.其中,地图数据库中存储有多个局部地图,以及每个局部地图对应的视觉信息。每个局部地图可能对应一个视觉信息,也可能对应多个视觉信息,采集的视觉信息的数量可以在建图过程中基于实际需求进行灵活设置,本实施例对此不做限制。
78.其中,每个局部地图对应的视觉信息可以为视觉图像,也可以为视觉图像中的特征点,该视觉信息是通过激光slam构建局部地图时,通过视觉传感器采集得到的。
79.作为一个示例,视觉信息可以是人为设置在目标环境中的标识(即maker),比如,具有明确的编码规则的点阵码/二维码。可以将这些maker贴在目标环境的天花板或者墙上,然后,当机器人在目标环境中移动时,通过机器人顶部/前部的视觉传感器拍摄这些maker,从而获取到这些maker所表示的视觉信息。
80.作为另一个示例,视觉信息还可以是目标环境中的自然物的外观信息和位姿信息,比如,目标环境中桌椅、走廊、窗户等物体的分布情况等。
81.在一种可能的实现方式中,步骤120的实现过程可以为:基于当前视觉图像帧,遍历地图数据库中各局部地图对应的视觉信息,并计算当前视觉图像帧和多个视觉信息之间
的相似度,将相似度最高的一个视觉信息,确定为当前视觉图像帧对应的标准视觉信息。
82.步骤130:根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿。
83.其中,该步骤的实现过程与视觉slam相同,即根据当前图像帧和标准视觉信息,获取两张图像中的匹配特征点对,进而根据匹配特征点对中特征点的偏移信息,确定机器人在目标环境中的位姿。在此不再赘述,可以参见视觉slam定位的相关技术。
84.但需要说明的是,步骤130的定位过程虽然与视觉slam相同,但本技术只在激光slam定位失效,即当前激光帧与目标局部地图匹配失败的情况下,才根据当前视觉图像帧和标准视觉信息确定机器人的位姿,以保证机器人可以在激光slam无法作业的复杂环境中正常运行,定位系统的鲁棒性更好。
85.可选地,通过视觉信息确定机器人在目标环境中的位姿后,可以将该位姿作为初始值赋给激光slam,激光slam以该位姿为起始状态进行二次定位,如果二次定位成功,则切换到激光slam工作状态。
86.上述定位方法中,若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧,并从地图数据库中获取当前视觉图像帧对应的标准视觉信息,进而根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿。其中,目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息。也即是,本技术预先在地图数据库中补充存储了局部地图对应的视觉信息,因此,在激光slam失效的情况下,可以通过采集当前视觉图像帧,并从地图数据库中匹配对应的标准视觉信息,然后通过视觉图像帧和标准视觉信息进行定位,以弥补激光slam定位在动态环境中的局限性,保证了机器人定位系统可以在复杂环境中正常运行。如此,通过经验总结更为鲁棒的激光slam进行机器人定位时,加以视觉信息辅助,可以保持激光slam良好的实时性,同时增强定位系统的运行稳定性。
87.基于上述实施例,从地图数据库中获取当前视觉图像帧对应的标准视觉信息时,可以通过遍历的方式来获取,也可以利用目标局部地图,缩小地图数据库的遍历范围,进而提高标准视觉信息的获取效率。
88.应该理解的是,虽然目标局部地图与当前激光帧匹配失败,但目标局部地图较地图数据库中其他局部地图而言,与当前激光帧中的环境信息之间具有一定的相似度。因此,基于目标局部地图,可以在目标局部地图的邻近局部地图对应的视觉信息中,快速确定标准视觉信息。
89.基于此构思,在一个实施例中,如图2所示,上述步骤120中从地图数据库中获取当前视觉图像帧对应的标准视觉信息的实现过程,可以包括以下步骤:
90.步骤210:基于目标局部地图,从地图数据库中获取目标局部地图对应的视觉信息,得到第一候选视觉信息。
91.其中,目标局部地图对应的视觉信息可以是一个视觉图像的视觉特征信息,也可以是多个视觉图像的视觉特征信息。
92.需要说明的是,在建图过程中,若激光slam建图效果较好,则可以按照预设的采集时长获取视觉信息;若激光slam建图效果不佳,则可以增大视觉信息的采集频率,以采集更
多的视觉信息补充到局部地图中,提高局部地图中环境信息的可靠性。
93.作为一个示例,激光slam的建图效果可以根据激光帧定位结果来确定。具体地,若根据激光帧和前一激光帧确定的机器人位姿,较机器人前一次定位的历史位姿之间的偏差大于预设的位姿偏差值,表征当前激光帧和前一激光帧对应的环境信息变化较大,当前激光帧中环境信息可能与前一激光帧中环境信息在空间上不连续,无法用于构建局部地图,因此,认定激光slam建图效果不佳。
94.步骤220:从地图数据库中获取与目标局部地图相邻的至少一个候选局部地图,将各候选局部地图对应的视觉信息确定为第二候选视觉信息。
95.由于地图数据库中各局部地图描述的空间环境是连续的,各局部地图之间存在一定的连接顺序。因此,基于目标局部地图可以确定与目标局部地图相邻的至少一个候选局部地图,进而获取各候选局部地图对应的视觉信息。
96.步骤230:根据第一候选视觉信息和/或第二候选视觉信息,确定当前视觉图像帧对应的标准视觉信息。
97.在一种可能的实现方式中,步骤230的实现过程可以为:若第一候选视觉信息有多个,从第一候选视觉信息中确定当前视觉图像帧对应的标准视觉信息。若第一候选视觉信息只有一个,则可以根据第二候选视觉信息,确定当前视觉图像帧对应的标准视觉信息;也可以根据第一候选视觉信息和第二候选视觉信息,确定当前视觉图像帧对应的标准视觉信息。
98.其中,标准视觉信息为与当前视觉图像帧中环境信息相似度最高的一个候选视觉信息。
99.基于上述步骤210-步骤230,参见图3,假设机器人建图时在每次构建局部地图,以及局部地图的中间激光帧的采样时刻执行一次获取视觉信息的操作,由于前后两个局部地图中存在重叠的激光帧,因此,建图时刻采集的视觉信息可能存在于两个相邻的局部地图中。
100.作为一个示例,若局部地图2中存在一个激光slam定位失效点1,则可以在局部地图2中获取4个第一候选视觉信息(即图3中定位失效点1虚线连接的4个视觉信息),同时,在局部地图1中获取对应的2个视觉信息,在局部地图3中获取对应的5个视觉信息,将局部地图1和局部地图3中获取的视觉信息作为第二候选视觉信息,然后,根据第一候选信息和/或第二候选视觉信息确定标准视觉信息。
101.作为另一个示例,若局部地图4中存在一个激光slam定位失效点2,则可以在局部地图4中确定距离该定位失效点2最近的视觉信息(即图3中定位失效点2虚线连接的1个视觉信息),并将该视觉信息直接确定为标准视觉信息。
102.可选地,由于相邻局部地图共享一个视觉信息,因此,在获取第一候选信息和第二候选信息后,可以对重复的视觉信息进行剔除操作。
103.在本实施例中,基于目标局部地图,在目标局部地图和/或目标局部地图相邻的至少候选局部地图中,筛选当前视觉图像帧对应的标准视觉信息,可以缩小标准视觉信息的搜索范围,提高标准视觉信息的获取效率,以及获取到的标准视觉信息和当前视觉图像帧之间的匹配度。
104.在一个实施例中,如图4所示,上述步骤130中根据当前视觉图像帧与标准视觉信
息,确定机器人在目标环境中的位姿的实现过程,可以包括以下步骤:
105.步骤410:获取标准视觉信息在对应的局部地图中的位姿信息。
106.在一种可能的实现方式中,步骤410的实现过程可以为:获取视觉传感器和激光传感器之间的坐标转换关系;对视觉信息中的特征点和局部地图中的特征点进行匹配,进而根据局部地图中各特征点的位姿信息和坐标转换关系,确定标准视觉信息中对应特征点转换到局部地图中时对应的位姿,以此确定标准视觉信息在局部地图中的位姿信息。
107.另外,位姿信息可以根据建图时采集视觉信息的视觉传感器的位姿确定,也可以在建图过程中直接将位姿信息记录对应的局部地图中。
108.步骤420:根据当前视觉图像帧和标准视觉信息匹配的多个匹配特征点对,获取当前视觉图像帧和标准视觉信息之间的变换关系。
109.具体地,根据当前视觉图像帧和标准视觉信息匹配的多个匹配特征点对,确定当前视觉图像帧中的特征点,较标准视觉信息中对应特征点的偏移信息,进而根据多个匹配特征点对中特征点的偏移信息,计算当前视觉图像帧和标准视觉信息之间的变换关系。
110.其中,该变换关系可以反映采集当前视觉图像帧的视觉传感器和采集标准视觉信息的视觉传感器之间的坐标系变换关系。
111.步骤430:根据位姿信息和变换关系,确定机器人在目标环境中的位姿。
112.在一种可能的实现方式中,根据位姿信息和变换关系,即可将当前视觉图像帧中的特征点,转换到标准视觉信息对应的局部地图中进行表示,以此来确定机器人在局部地图中的位姿,进而确定机器人在目标环境中的位姿。
113.作为一个示例,机器人的位姿可以通过下述公式(1)计算得到:
114.pose_current=pmark_node*ptrans_cams(1)
115.式中,pose_current表示机器人当前时刻在目标环境中的位姿,ptrans_cams是根据当前视觉图像帧和标准视觉信息计算出来的变换关系,pmark_node为标准视觉信息在对应的局部地图中的位姿信息。
116.在本实施例中,在当前激光帧和目标局部地图失败的情况下,机器人定位系统切换至视觉辅助定位流程,通过采集当前视觉图像帧,以及当前视觉图像帧对应的标准视觉信息,确定机器人在目标环境中的位姿,实现了复杂场景下的有效定位,保证机器人定位系统的稳定运行。
117.综合上述各方法实施例,如图5所示,本技术还提供了另一种定位方法,同样以该方法应用于机器人为例进行说明,包括以下步骤:
118.步骤510:根据当前激光帧与目标局部地图的匹配情况,确定激光slam定位是否失效。
119.其中,若目标环境的当前激光帧与目标局部地图匹配成功,则执行下述步骤520;若目标环境的当前激光帧与目标局部地图匹配失败,则激光slam定位失效,切换至视觉slam定位,执行下述步骤530。
120.另外,目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息。
121.步骤520:若目标环境的当前激光帧与目标局部地图匹配成功,根据当前激光帧和目标局部地图,确定机器人在目标环境中的位姿。
122.步骤530:若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧。
123.步骤540:基于目标局部地图,从地图数据库中获取目标局部地图对应的视觉信息,得到第一候选视觉信息。
124.步骤550:从地图数据库中获取与目标局部地图相邻的至少一个候选局部地图,将各候选局部地图对应的视觉信息确定为第二候选视觉信息。
125.步骤560:根据第一候选视觉信息和/或第二候选视觉信息,确定当前视觉图像帧对应的标准视觉信息。
126.步骤570:获取标准视觉信息在对应的局部地图中的位姿信息。
127.步骤580:根据当前视觉图像帧和标准视觉信息匹配的多个匹配特征点对,获取当前视觉图像帧和标准视觉信息之间的变换关系。
128.步骤590:根据位姿信息和变换关系,确定机器人在目标环境中的位姿。
129.需要说明的是,本实施例提供的定位方法中各步骤的实现原理和技术效果与前面各方法实施例相类似,具体的限定和解释可参见前面各方法实施例,在此不再赘述。
130.基于上述实施例中的定位方法,机器人在基于先验地图进行导航定位之前,还需要预先在目标环境中移动一圈,以构建目标环境对应的多个局部地图。接下来,结合附图6-图8,对建图过程中构建地图数据库的实现过程进行解释说明。
131.在一个实施例中,如图6所示,本技术还提供了一种地图数据库构建方法,同样以该方法应用于机器人为例进行说明,包括以下步骤:
132.步骤610:获取机器人采集的目标环境的激光帧序列,以及机器人每间隔预设时长在目标环境中采集的多个视觉信息。
133.其中,预设时长是预先设置的视觉信息采集周期,比如,10秒、20秒、30秒等;预设时长还可以是根据激光传感器的数据采集频率设置的,比如,每采集5次激光帧,采集一次视觉信息。
134.在可选实施例中,每采集预设次激光帧,则会生成一个局部地图,且同时会采集一次视觉信息,从而使得视觉信息可以位于相邻局部地图之间,且分别与相邻的两个局部地图关联。
135.在其他实施例中,也可以是在局部地图中采集视觉信息,这里不做限定。
136.另外,若机器人激光定位精度低于预设值,则执行视觉信息补充操作;视觉信息补充操作用于补充采集目标环境中的视觉信息。
137.也即是,根据当前激光帧和前一激光帧确定的位姿和上一次激光定位确定的位姿之间的偏差大于预设值时,则表征激光定位精度较低,需要补充采集视觉信息,以通过视觉信息弥补激光传感器采集的目标环境中的环境信息。
138.作为一个示例,参见图7,假设在每次构建局部地图的时刻均采集一次视觉信息,同时,在局部地图对应的中间激光帧的采集时刻也采集一次视觉信息。若a时刻基于当前激光帧和前一激光帧确定机器人激光定位精度低于预设值,则在a时刻补充采集一次视觉信息;同理,若b时刻基于当前激光帧和前一激光帧确定机器人激光定位精度低于预设值,则在b时刻补充采集一次视觉信息。
139.也即是,一个局部地图中可以对应多个视觉信息,补充采集的视觉信息均是在基
于相邻激光帧进行机器人定位时,定位精度低于预设值的时刻补充采集的。
140.步骤620:根据激光帧序列和多个视觉信息,构建地图数据库。
141.需要说明的是,激光帧序列中的激光帧数量远多于视觉信息的采集数量,在构建地图数据库时,局部地图是根据激光帧序列中的激光点云数据构建的,视觉信息作为局部地图的补充信息,同样存储在地图数据库中。
142.换言之,本技术采用的是激光slam进行建图的,在建图过程中采集的视觉信息仅在激光定位失效的情况下作为补充信息进行定位,并不执行视觉slam建图的流程。
143.在一种可能的实现方式中,步骤620的实现过程可以为:根据激光帧序列生成多个在空间上连续的局部地图;根据各视觉信息和激光帧的采集时刻,确定视觉信息对应的激光帧,进而将视觉信息添加到对应激光帧所构建的局部地图中,构建地图数据库。
144.如此,构建好的地图数据库中包括多个局部地图,且每个局部地图对应至少一个视觉信息。
145.在本实施例中,机器人在目标环境中移动时,通过激光传感器采集目标环境的激光帧序列,并按照预设时长在目标环境中采集视觉信息,进而根据激光帧序列和多个视觉信息,构建地图数据库。如此,由于地图数据库中预先存储有一些视觉信息,则在激光定位失效的情况下,可以通过采集视觉图像帧,并从地图数据库中匹配视觉信息的方式来进行定位,以保证定位系统在复杂环境下的稳定性。
146.接上述图6对应的实施例,在一个实施例中,如图8所示,上述步骤620中根据激光帧序列和多个视觉信息,构建地图数据库的实现过程,可以包括以下步骤:
147.步骤810:按照预设数量对激光帧序列进行划分,对划分得到的多组激光帧分别进行建图,得到多个局部地图。
148.其中,预设数量可以是基于经验设定的数量,比如,5帧、10帧、15帧等。
149.需要说明的是,为保证局部地图在空间环境上的连续性,建图时的相邻局部地图中至少存在一个重复的激光帧。
150.作为一个示例,若局部地图1和局部地图2为空间上相邻的局部地图,且建图时设定使用5个激光帧创建一张局部地图,则第1-5个激光帧用于创建局部地图1,第4-9个激光帧用于创建局部地图2,第4个激光帧在局部地图1和局部地图2中均存在。
151.步骤820:获取多个视觉信息和激光帧序列之间的关联关系。
152.在一种可能的实现方式中,步骤820的实现过程为:获取采集多个视觉信息的视觉传感器的标定参数,以及视觉传感器与采集激光帧序列的激光传感器之间的坐标转换关系;根据视觉传感器的标定参数和坐标转换关系,确定多个视觉信息和激光帧序列之间的关联关系。
153.其中,视觉传感器的标定参数可以反映采集的视觉图像帧中特征点与视觉传感器的坐标系之间的转换关系。视觉传感器和激光传感器之间的坐标转换关系,可以根据与视觉信息对齐的激光帧中的特征点确定。
154.因此,根据视觉传感器的标定参数和坐标转换关系,可以计算视觉信息中特征点在局部地图中的位姿,从而建立多个视觉信息和激光帧序列之间的关联关系。
155.作为一个示例,多个视觉信息和激光帧序列之间的关联关系可以通过下述公式(2)计算得到:
156.pmark_node=pose_vcam*pose_vmark(2)
157.式中,pmark_node表示视觉信息在对应的局部地图中的位姿,pose_vmark表示视觉传感器的标定参数,可根据双目视觉恢复三维技术、rgbd三维技术获得;pose_vcam为视觉传感器与激光传感器之间的坐标转换关系。
158.步骤830:根据关联关系,将多个视觉信息添加到对应的局部地图中,得到地图数据库。
159.也即是,在确定视觉信息中的特征点转换到局部地图中的位姿后,即可将视觉信息添加到对应的局部地图中,创建地图数据库。
160.需要说明的是,激光slam建图后,还需要进行一次大回环优化,调整局部地图、激光帧在世界坐标系中的位姿,然后利用调整后的激光帧和局部地图,构建目标环境的全局地图,完成建图。
161.由于视觉信息中特征点的坐标都是通过上述公式(2)快速计算得到的,因此,回环优化过程中不会额外增加视觉信息中特征点位姿调整的计算量。
162.在本实施例中,按照预设数量对激光帧序列进行划分,对划分得到的多组激光帧分别进行建图,得到多个局部地图;然后,根据多个视觉信息和激光帧序列之间的关联关系,将多个视觉信息添加到对应的局部地图中,得到地图数据库。如此,在地图数据库中引入视觉信息,但又没有将视觉信息的匹配关系加入地图优化过程中,降低了地图优化的计算复杂度,同时保留了视觉信息的丰富性,在激光匹配失效的时候可以快速切换尝试视觉辅助功能,从而保证定位可继续实施。
163.综合上述建图过程对应的实施例,如图9所示,本技术还提供了另一种地图数据库构建方法,同样以该方法应用于机器人为例进行说明,包括以下步骤:
164.步骤910:获取机器人采集的目标环境的激光帧序列,以及机器人每间隔预设时长在目标环境中采集的多个视觉信息。
165.其中,若机器人激光定位精度低于预设值,则执行视觉信息补充操作;视觉信息补充操作用于补充采集目标环境中的视觉信息。
166.步骤920:按照预设数量对激光帧序列进行划分,对划分得到的多组激光帧分别进行建图,得到多个局部地图。
167.步骤930:获取采集多个视觉信息的视觉传感器的标定参数,以及视觉传感器与采集激光帧序列的激光传感器之间的坐标转换关系。
168.步骤940:根据视觉传感器的标定参数和坐标转换关系,确定多个视觉信息和激光帧序列之间的关联关系。
169.步骤950:根据关联关系,将多个视觉信息添加到对应的局部地图中,得到地图数据库。
170.需要说明的是,本实施例提供的地图数据库构建方法中各步骤的实现原理和技术效果与前面图6和图7对应的方法实施例相类似,具体的限定和解释可参见前面图6和图7对应的方法实施例,在此不再赘述。
171.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而
且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
172.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的定位方法的定位装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个定位装置实施例中的具体限定可以参见上文中对于定位方法的限定,在此不再赘述。
173.在一个实施例中,如图10所示,提供了一种定位装置,该装置1000包括:环境图像获取模块1010、视觉信息获取模块1020和定位模块1030,其中:
174.环境图像获取模块1010,用于若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧;目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息;
175.视觉信息获取模块1020,用于从地图数据库中获取当前视觉图像帧对应的标准视觉信息;
176.定位模块1030,用于根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿。
177.在其中一个实施例中,视觉信息获取模块1020,包括:
178.第一获取单元,用于基于目标局部地图,从地图数据库中获取目标局部地图对应的视觉信息,得到第一候选视觉信息;
179.第二获取单元,用于从地图数据库中获取与目标局部地图相邻的至少一个候选局部地图,将各候选局部地图对应的视觉信息确定为第二候选视觉信息;
180.视觉信息确定单元,用于根据第一候选视觉信息和/或第二候选视觉信息,确定当前视觉图像帧对应的标准视觉信息。
181.在其中一个实施例中,定位模块1030,包括:
182.第三获取单元单元,用于获取标准视觉信息在对应的局部地图中的位姿信息;
183.匹配单元,用于根据当前视觉图像帧和标准视觉信息匹配的多个匹配特征点对,获取当前视觉图像帧和标准视觉信息之间的变换关系;
184.位姿确定单元,用于根据位姿信息和变换关系,确定机器人在目标环境中的位姿。
185.在其中一个实施例中,该装置1000,还包括:
186.数据采集模块,用于获取机器人采集的目标环境的激光帧序列,以及机器人每间隔预设时长在目标环境中采集的多个视觉信息;各视觉信息位于相邻局部地图之间;
187.建图模块,用于根据激光帧序列和多个视觉信息,构建地图数据库。
188.在其中一个实施例中,建图模块,包括:
189.数据分组单元,用于按照预设数量对激光帧序列进行划分,对划分得到的多组激光帧分别进行建图,得到多个局部地图;
190.信息关联单元,用于获取多个视觉信息和激光帧序列之间的关联关系;
191.信息补充单元,用于根据关联关系,将多个视觉信息添加到对应的局部地图中,得
到地图数据库。
192.在其中一个实施例中,信息关联单元,包括:
193.第一获取子单元,用于获取采集多个视觉信息的视觉传感器的标定参数,以及视觉传感器与采集激光帧序列的激光传感器之间的坐标转换关系;
194.确定子单元,用于根据视觉传感器的标定参数和坐标转换关系,确定多个视觉信息和激光帧序列之间的关联关系。
195.在其中一个实施例中,在装置1000中:
196.上述数据采集模块,还用于若机器人激光定位精度低于预设值,则执行视觉信息补充操作;视觉信息补充操作用于补充采集目标环境中的视觉信息。
197.在其中一个实施例中,在该装置1000中:
198.上述定位模块1030,还用于若目标环境的当前激光帧与目标局部地图匹配成功,则根据当前激光帧和目标局部地图,确定机器人在目标环境中的位姿。
199.上述定位装置1000中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
200.在一个实施例中,提供了一种机器人,该机器人的内部结构如图11所示。该机器人包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该机器人的处理器用于提供计算和控制能力。该机器人的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该机器人的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种定位方法。该机器人的显示屏可以是液晶显示屏或者电子墨水显示屏,该机器人的输入装置可以是显示屏上覆盖的触摸层,也可以是机器人外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
201.本领域技术人员可以理解,图11中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
202.在一个实施例中,提供了一种计算机设备,该计算机设备可以为上述机器人或其他智能移动设备;该计算机设备包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
203.若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧;目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息;
204.从地图数据库中获取当前视觉图像帧对应的标准视觉信息;
205.根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿。
206.上述实施例提供的一种计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
207.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
208.若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧;目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息;
209.从地图数据库中获取当前视觉图像帧对应的标准视觉信息;
210.根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿。
211.上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
212.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
213.若目标环境的当前激光帧与目标局部地图匹配失败,获取目标环境的当前视觉图像帧;目标局部地图为地图数据库中与当前激光帧相匹配的局部地图,地图数据库中包括针对目标环境预先构建的多个局部地图和每个局部地图对应的视觉信息;
214.从地图数据库中获取当前视觉图像帧对应的标准视觉信息;
215.根据当前视觉图像帧与标准视觉信息,确定机器人在目标环境中的位姿。
216.上述实施例提供的一种计算机程序产品,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
217.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
218.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
219.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1