基于二维栅格地图的机器人重定位方法、装置及机器人与流程

文档序号:31708847发布日期:2022-10-01 13:50阅读:284来源:国知局
基于二维栅格地图的机器人重定位方法、装置及机器人与流程

1.本发明涉及机器人技术领域,具体来说,涉及一种基于二维栅格地图的机器人重定位方法、装置及机器人。


背景技术:

2.自主导航移动机器人要求移动机器人能实现点到点的自主寻径行走能力,实现这一能力前提是移动机器人知道自己所在位置和要到达的目标点位置。因此自主导航移动机器人的定位技术是近年来研究热点技术之一。目前广泛应用在室内自主导航移动机器人的定位方式包括激光定位方式,二维码定位方式,uwb定位方式,视觉定位方式等。其中激光定位方式由于其定位精度高、技术方案成熟,价格适宜,安装方便等优点,已经成为室内自主移动机器人优先采用的定位方式。
3.参考图1,激光定位方式其定位流程主要为,首先提前准备一张室内轮廓二维栅格地图,该栅格图也是由输入激光扫描帧,人为控制机器人在场景内行走,通过slam技术生成的用于导航地图(栅格地图有三种颜色表示,默认灰色表示机器人不需要过去的地方,另外白色代表机器人潜在需要行走的地方,黑色表示室内的二维轮廓形状)。其次需要人为在地图中给出机器人的所在大概位置,对机器人进行位置初始化,然后才能实现机器人自主行走定位导航功能。因此室内巡逻机器人必须得面对一个令人头疼的问题,那就是一旦机器人位置丢失,需要人为给机器人设置初始位置,影响机器人长时间无人运行。
4.目前解决室内自主移动机器人位置丢失主要有以下两个主要技术方式:
5.1.引入辅助设备:比如在比较空旷的地方,可以使用gps进行重定位,在密闭室内可以采用提前安装uwb设备进行全局重定位,在图像特征明显的地方可以使用相机。使用辅助设备的方式,特别是在室内的定位由于gps在室内定位不准确,在使用uwb时,需要提前布设uwb设备,会导致成本增加。
6.2.不引入辅助设备,使用重定位算法:例如采用全局遍历法,即随机给定一个初值位置,然后开始按固定步长进行选值,找到一个位置使当前激光扫描帧与地图最合适,这种方案很容易陷入错误的位置。
7.本文提供的背景描述用于总体上呈现本公开的上下文的目的。除非本文另外指示,在该章节中描述的资料不是该申请的权利要求的现有技术并且不要通过包括在该章节内来承认其成为现有技术。


技术实现要素:

8.针对相关技术中的上述技术问题,本发明提出了一种基于二维栅格地图的机器人重定位方法,其包括如下步骤:
9.s1,获取机器人重定位指令,加载建图时保存的机器人路径轨迹点;
10.s2,获取机器人获取的激光点云帧;
11.s3,将所述激光点云帧转换为二维栅格子图cur_map;
12.s4,将所述二维场景栅格地图以每一个路经轨迹点为中心分割成宽高为m*m的多个栅格图集sub_maps;
13.s5,对二维栅格子图cur_map进行图像特征向量化,得到第一特征向量cur_d;
14.s6,对多个栅格图集sub_maps的全部子图进行图像特征向量化,得到第二特征向量集d;
15.s7,计算所述第二特征向量集与所述第一特征向量的向量二范数获取使所述向量二范数差值最小的多个栅格图集中的栅格小地图;
16.s8,加载所述小栅格地图对应的中心路经轨迹点,将此点作为机器人初始点。
17.具体的,步骤s2包括:控制机器人原地旋转,获取360度的激光点云帧。
18.具体的,步骤s2具体包括:利用imu旋转角度yaw信息将激光雷达在旋转过程中的扫描帧scan合并拼接成激光点云帧s。
19.具体的,步骤s5对二维栅格子图cur_map进行图像特征向量化以及s6中对二维栅格子图cur_map进行图像特征向量化,均是使用dbow3进行图像特征向量化。
20.具体的,所述第一特征向量以及第二特征向量集中的特征向量均是64维。
21.第二方面,本发明的另一个方面公开了一种基于二维栅格地图的机器人重定位装置,其包括如下单元:
22.重定位指令获取单元,用于获取机器人重定位指令,加载建图时保存的机器人路径轨迹点;
23.激光点云帧获取单元,用于获取机器人获取的激光点云帧;
24.二维栅格子图获取单元,用于将所述激光点云帧转换为二维栅格子图;
25.子栅格地图获取单元,用于将所述二维场景栅格地图以每一个路经轨迹点为中心分割成宽高为m*m的多个栅格图集;
26.二维栅格子图特征获取单元,用于对二维栅格子图进行图像特征向量化,得到第一特征向量;
27.子栅格地图特征获取单元,用于对多个栅格图集的全部子图进行图像特征向量化,得到第二特征向量集;
28.栅格小地图匹配单元,用于计算所述第二特征向量集与所述第一特征向量的向量二范数获取使所述向量二范数差值最小的多个栅格图集中的栅格小地图;
29.重定位单元,用于加载所述小栅格地图对应的中心路经轨迹点,将此点作为机器人初始点。
30.具体的,所述激光点云帧获取单元包括:控制机器人原地旋转,获取360度的激光点云帧。
31.具体的,所述激光点云帧获取单元具体包括:利用imu旋转角度yaw信息将激光雷达在旋转过程中的扫描帧scan合并拼接成激光点云帧s。
32.具体的,所述二维栅格子图特征获取单元中对二维栅格子图cur_map进行图像特征向量化以及子栅格地图特征获取单元中对二维栅格子图cur_map进行图像特征向量化,均是使用dbow3进行图像特征向量化。
33.第三方面,本发明的另一实施例公开了一种机器人,所述机器人包括一中央处理器,一存储器,一激光雷达,所述存储器上存储有指令,所述处理器在执行所述指令时用以
实现上述的方法。
34.第四方面,本发明的另一实施例公开了一种非易失性存储器,所述存储器上存储有指令,所述处理器在执行所述指令时用以实现上述的方法。
35.本发明通过将室内大的栅格地图,以轨迹点为中心分割成多个宽高的小个栅格地图,依靠图像信息更容易找相似的栅格,从而能更好更快地实现机器人重定位。相较于相比全局遍历法更加鲁棒,准确。
附图说明
36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是本发明实施例提供二维栅格示意图;
38.图2是本发明实施例提供的一种基于二维栅格地图的机器人重定位方法示意图;
39.图3是本发明实施例提供的分割的小栅格地图示意图;
40.图4是本发明实施例提供的一种基于二维栅格地图的机器人重定位装置示意图;
41.图5是本发明实施例提供的一种基于二维栅格地图的机器人重定位设备示意图。
具体实施方式
42.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
43.实施例一
44.参考图2,本实施例提供了一种基于二维栅格地图的机器人重定位方法,其包括如下步骤:
45.s1,获取机器人重定位指令,加载建图时保存的机器人路径轨迹点;
46.具体的,本实施例的机器人在发生位置丢失时,需要进行重定位,具体的本实施可以在无法获取机器人的位置时,自动启动重定位指令。
47.s2,获取机器人获取的激光点云帧;
48.机器人安装有激光雷达用于获取周围的环境,具体激光雷达均有一定的扫描角度。
49.本实施的激光雷达的一次扫描范围是270度,但在实际使用时需要获取360度的环境点云数据,需要旋转一定的角度来获取360度的环境点云数据。
50.本实施例步骤s2包括:控制机器人原地旋转,获取360度的激光点云帧。
51.具体的,本实施例的激光雷达的一次扫描范围是270度,因此,控制机器人原地旋转90度即可获取360度的环境点云数据。
52.如果机器人搭载的激光雷达一次扫描范围是180度,则需要旋转180度来获取机器人360度环境点云数据。
53.具体的,本实施例利用imu旋转角度yaw信息将激光雷达在旋转过程中的扫描帧scan合并拼接成激光点云帧s;
[0054][0055]
其中:
[0056]
n-代表步骤s2中为获取360度的环境数据而进行激光扫描帧数量;
[0057]
k-代表的是第k帧激光扫描帧;
[0058]
yaw
k-代表第k帧激光扫描帧时机器人旋转的角度,由imu获取;
[0059]
s3,将所述激光点云帧转换为二维栅格子图cur_map;
[0060]
具体的,本实施例将激光点云帧转为为二维栅格子图的方式,属于现有技术,本实施例不在赘述。
[0061]
s4,将所述二维场景栅格地图以每一个路经轨迹点为中心分割成宽高为m*m的多个栅格图集sub_maps;
[0062]
参考图3,本实施例将所述二维场景栅格地图以每一个路经轨迹点为中心分割成宽高为200*200的多个栅格图集sub_maps(1,2,3,

,t),其中t代表是分割的多个栅格图集的数量。
[0063]
s5,对二维栅格子图cur_map进行图像特征向量化,得到第一特征向量cur_d;
[0064]
本实施例通过调用dbow3库来对cur_map进行图像特征向量化,得到64维特征向量cur_d;
[0065]
s6,对多个栅格图集sub_maps的全部子图进行图像特征向量化,得到第二特征向量集d;
[0066]
通过调用dbow3库来对sub_maps里面全部子图进行图像特征向量化,得到64维特征向量集d;
[0067]
s7,计算所述第二特征向量集与所述第一特征向量的向量二范数获取使所述向量二范数差值最小的多个栅格图集中的栅格小地图;
[0068]
循环遍历计算向量二范数‖cur_d-di‖2,其中i代表导航栅格地图分割出来的第i个栅格小地图,找到使二范围数差值最小的i值;
[0069]
s8,加载所述小栅格地图对应的中心路经轨迹点,将此点作为机器人初始点;
[0070]
加载第i个小栅格地图对应的中心路经轨迹点,将此点作为机器人初始点,进行初始化,完成重定位。
[0071]
本实施例通过将室内大的栅格地图,以轨迹点为中心分割成多个宽高的小个栅格地图,依靠图像信息更容易找相似的栅格,从而能更好更快地实现机器人重定位。相较于相比全局遍历法更加鲁棒,准确。
[0072]
实施例二
[0073]
参考图4,本实施例提供了一种基于二维栅格地图的机器人重定位装置,其包括如下单元:
[0074]
重定位指令获取单元,用于获取机器人重定位指令,加载建图时保存的机器人路径轨迹点;
[0075]
具体的,本实施例的机器人在发生位置丢失时,需要进行重定位,具体的本实施可以在无法获取机器人的位置时,自动启动重定位指令。
[0076]
激光点云帧获取单元,用于获取机器人获取的激光点云帧;
[0077]
机器人安装有激光雷达用于获取周围的环境,具体激光雷达均有一定的扫描角度。
[0078]
本实施的激光雷达的一次扫描范围是270度,但在实际使用时需要获取360度的环境点云数据,需要旋转一定的角度来获取360度的环境点云数据。
[0079]
本实施例的激光点云帧获取单元包括:控制机器人原地旋转,获取360度的激光点云帧。
[0080]
具体的,本实施例的激光雷达的一次扫描范围是270度,因此,控制机器人原地旋转90度即可获取360度的环境点云数据。
[0081]
如果机器人搭载的激光雷达一次扫描范围是180度,则需要旋转180度来获取机器人360度环境点云数据。
[0082]
具体的,本实施例利用imu旋转角度yaw信息将激光雷达在旋转过程中的扫描帧scan合并拼接成激光点云帧s;
[0083][0084]
其中:
[0085]
n-代表步骤s2中为获取360度的环境数据而进行激光扫描帧数量;
[0086]
k-代表的是第k帧激光扫描帧;
[0087]
yaw
k-代表第k帧激光扫描帧时机器人旋转的角度,由imu获取;
[0088]
二维栅格子图获取单元,用于将所述激光点云帧转换为二维栅格子图cur_map;
[0089]
具体的,本实施例将激光点云帧转为为二维栅格子图的方式,属于现有技术,本实施例不在赘述。
[0090]
子栅格地图获取单元,用于将所述二维场景栅格地图以每一个路经轨迹点为中心分割成宽高为m*m的多个栅格图集sub_maps;
[0091]
参考图3,本实施例将所述二维场景栅格地图以每一个路经轨迹点为中心分割成宽高为200*200的多个栅格图集sub_maps(1,2,3,

,t),其中t代表是分割的多个栅格图集的数量。
[0092]
二维栅格子图特征获取单元,用于对二维栅格子图cur_map进行图像特征向量化,得到第一特征向量cur_d;
[0093]
本实施例通过调用dbow3库来对cur_map进行图像特征向量化,得到64维特征向量cur_d;
[0094]
子栅格地图特征获取单元,用于对多个栅格图集sub_maps的全部子图进行图像特征向量化,得到第二特征向量集d;
[0095]
通过调用dbow3库来对sub_maps里面全部子图进行图像特征向量化,得到64维特征向量集d;
[0096]
栅格小地图匹配单元,用于计算所述第二特征向量集与所述第一特征向量的向量
二范数获取使所述向量二范数差值最小的多个栅格图集中的栅格小地图;
[0097]
循环遍历计算向量二范数‖cur_d-di‖2,其中i代表导航栅格地图分割出来的第i个栅格小地图,找到使二范围数差值最小的i值;
[0098]
重定位单元,用于加载所述小栅格地图对应的中心路经轨迹点,将此点作为机器人初始点;
[0099]
加载第i个小栅格地图对应的中心路经轨迹点,将此点作为机器人初始点,进行初始化,完成重定位。
[0100]
本实施例通过将室内大的栅格地图,以轨迹点为中心分割成多个宽高的小个栅格地图,依靠图像信息更容易找相似的栅格,从而能更好更快地实现机器人重定位。相较于相比全局遍历法更加鲁棒,准确。
[0101]
实施例三
[0102]
本实施例公开了一种机器人,所述机器人包括一中央处理器,一存储器,一激光雷达,,所述所述存储器上存储有指令,所述处理器在执行所述指令时用以实现基于二维栅格地图的机器人重定位方法。
[0103]
实施例四
[0104]
参考图5,图5是本实施例的一种基于二维栅格地图的机器人重定位设备的结构示意图。该实施例的基于二维栅格地图的机器人重定位设备20包括处理器21、存储器22以及存储在所述存储器22中并可在所述处理器21上运行的计算机程序。所述处理器21执行所述计算机程序时实现上述方法实施例中的步骤。或者,所述处理器21执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
[0105]
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器22中,并由所述处理器21执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于二维栅格地图的机器人重定位设备20中的执行过程。例如,所述计算机程序可以被分割成实施例二中的各个模块,各模块具体功能请参考上述实施例所述的装置的工作过程,在此不再赘述。
[0106]
所述基于二维栅格地图的机器人重定位设备20可包括,但不仅限于,处理器21、存储器22。本领域技术人员可以理解,所述示意图仅仅是基于二维栅格地图的机器人重定位设备20的示例,并不构成对基于二维栅格地图的机器人重定位设备20的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于二维栅格地图的机器人重定位设备20还可以包括输入输出设备、网络接入设备、总线等。
[0107]
所述处理器21可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器21是所述基于二维栅格地图的机器人重定位设备20的控制中心,利用各种接口和线路连接整个基于二维栅格地图的机器人重定位设备20的各个部分。
[0108]
所述存储器22可用于存储所述计算机程序和/或模块,所述处理器21通过运行或
执行存储在所述存储器22内的计算机程序和/或模块,以及调用存储在存储器22内的数据,实现所述基于二维栅格地图的机器人重定位设备20的各种功能。所述存储器22可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0109]
其中,所述基于二维栅格地图的机器人重定位设备20集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器21执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0110]
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0111]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1