一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种快速建图方法、芯片和移动机器人与流程

2022-12-09 22:50:56 来源:中国专利 TAG:


1.本发明涉及智能移动机器人slam领域,具体涉及一种快速建图方法、芯片和移动机器人。


背景技术:

2.在智能移动机器人中,快速建图是一个非常重要的功能。而目前主流的快速建图都是基于快速探索随机树(rrt)的衍生方法,rrt方法的优势在于应用简单,只需要在待探索区域随机生成要探索的目标点,无需进行算法建模,无需对待探索区域进行几何划分。并且,rrt方法在搜索空间内的覆盖率高,搜索的范围广。但是,rrt方法同样存在局限性,因为待探索目标点为随机生成,目标点间没有关联性,导致机器人会在探索时来回重复行走,不能有序探索,这样导致快速建图的效率低下。


技术实现要素:

3.为解决上述问题,本发明提供了一种快速建图方法、芯片和移动机器人,在保证快速建图高覆盖率的同时,大大提升建图效率。本发明的具体技术方案如下:一种快速建图方法,所述方法包括如下步骤:步骤s1,静态地图刷新后,根据像素变换的次数找出待探索目标点并生成无向图;步骤s2,基于所述无向图生成多叉树,然后遍历所述多叉树,得到待探索目标点序列;步骤s3,移动机器人从当前探索位置开始,按所述待探索目标点序列的顺序进行待探索目标点探索;其中,移动机器人会给完成探索的目标点设置已访问标记,且每探索完成一个待探索目标点都会刷新一次静态地图,重复执行步骤s1至步骤s3直到待探索目标点序列中所有待探索目标点都设置有已访问标记,至此实现建图。与现有技术相比,本技术方案依据像素变换而非随机生成的方法来获得待探索目标点,且对待探索目标点进行排序,使得移动机器人可以有序探索未知区域,避免因重复探索而导致建图效率低下。
4.进一步地,所述步骤s1中,根据像素变换的次数找出待探索目标点之前还会生成表示静态地图连通性的骨架图,方法包括:步骤s11,提取静态地图中障碍物的边界点并进行判断,如果所述边界点的八邻域内没有其它边界点,则将该边界点视为孤立点并删除,保留剩余的边界点并进入步骤s12;步骤s12,基于步骤s11中剩余的边界点构建 delaunay 三角网,然后生成delaunay 三角网中每个三角形每条边的中垂线;步骤s13,以所述中垂线为边、中垂线的交点为顶点构建泰森多边形,删除delaunay 三角网后即可得到所述骨架图。删除孤立点,可以使地图变得尽量简单,方便后续找出待探索目标点;所述骨架图可以体现连通域信息。
5.进一步地,所述步骤s1中,根据像素变换的次数找出待探索目标点并生成无向图的方法具体包括:步骤s15,在所述骨架图上,如果一个像素点的八邻域内存在两次像素变换,则将该像素点设置为末端点,如果一个像素点的八邻域内存在大于等于六次像素变换,则将该像素点设置为交叉点;其中,所述待探索目标点包含交叉点和末端点,所述交叉点和
末端点包含该点的地图坐标信息以及与该点连通的交叉点和/或末端点信息;步骤s16,根据所述交叉点和末端点的连通性进行连线,即可生成所述无向图;其中,所述连线为无向图的边。所述无向图可以体现待探索目标点之间的关联性。
6.进一步地,所述步骤s15中判断像素变换次数的方法具体包括:步骤s151,遍历骨架图中的一个像素点的八邻域上的所有点,其中,遍历起点为任意一个点,遍历终点与遍历起点相同;步骤s152,遍历过程中,如果相邻两个点的颜色不一致则记录一次像素变换,遍历结束后即可得到该像素点像素变换的次数;其中,骨架图的骨架和骨架图的背景使用不同的颜色进行标记。
7.进一步地,所述步骤s2中,基于所述无向图生成多叉树的方法具体包括:第一次生成多叉树:将无向图中距离移动机器人最近的交叉点设置为根茎节点,放置于树状结构的最顶层,将与该交叉点直接相连的点放置于树状结构的第二层,将与第二层中的点直接相连的点放置于树状结构的第三层,以此类推,即可生成所述多叉树;非第一次生成多叉树:将无向图中未放置于多叉树上的交叉点和/或末端点,依上述方法在上一次生成的多叉树的基础上进行放置。将无向图转换成多叉树的形式,方便后续对待探索目标点进行排序。
8.进一步地,所述步骤s2中,移动机器人使用深度优先搜索算法遍历所述多叉树。内存占用少,且能找出多叉树中所有的节点。
9.进一步地,所述步骤s3中,移动机器人从当前探索位置开始,按所述待探索目标点序列的顺序进行待探测目标点探索的过程中,进行如下判断:如果当前将要探索的待探索目标点是交叉点,则移动机器人不进行探索,然后按所述待探索目标点序列的顺序继续前往下一个待探索目标点;如果当前将要探索的待探索目标点是末端点,则移动机器人探索该点;根据无向图中点与点之间的连通性,如果当前将要探索的待探索目标点是末端点且不与移动机器人当前探索位置连通,则移动机器人先移动到与下一个待探索目标点和移动机器人当前探索位置均连通的交叉点处,然后再前往下一个待探索目标点进行探索。交叉点及其邻域为已知区域,先行判断可以避免重复探索,提高效率。
10.一种移动机器人,所述移动机器人用于实现所述快速建图方法,所述移动机器人包括:骨架图生成模块,用于生成表示静态地图连通性的骨架图,以得到待探索目标点;无向图生成模块,用于根据骨架图中的待探索目标点生成无向图;多叉树生成模块,用于根据无向图生成多叉树,以方便进行深度优先遍历;深度优先遍历模块,用于遍历多叉树,实现待探索目标点的排序;建图模块,用于在探索目标点后刷新静态地图,以实现地图的构建。与现有技术相比,本技术方案可以通过无向图生成模块生成能够表示待探索目标点之间关联性的无向图,然后通过深度优先遍历模块实现待探索目标点的排序,以帮助移动机器人完成未知区域的有序探索,实现快速建图。
11.进一步地,所述移动机器人为激光机器人或视觉机器人,其内部设置的建图模块,用于在探索目标点时根据扫描得到的环境信息刷新静态地图,以实现地图的构建。
12.一种芯片,所述芯片储存有计算机程序代码,所述计算机程序代码被执行时实现所述快速建图方法的步骤。本技术方案可使得移动机器人有序探索地图中的未知区域,在保证快速建图高覆盖率的同时,大大提升建图效率。
附图说明
13.图1为本发明一种实施例所述快速建图方法的流程图。
14.图2为本发明一种实施例所述骨架图的示意图。
15.图3为本发明一种实施例所述无向图的示意图。
16.图4为本发明一种实施例所述像素变换的示意图。
17.图5为本发明一种实施例所述多叉树的示意图。
18.图6为本发明一种实施例所述待探索目标点序列的示意图。
19.图7为本发明一种实施例所述移动机器人内部模块组成框架图。
具体实施方式
20.下面结合附图对本发明的具体实施方式作进一步说明。应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
21.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
22.当移动机器人在一个新的环境中开始工作时,会生成一张初始静态地图。这张静态地图包含未知区域和已知区域两部分,随着移动机器人的探索,已知区域将不断增加。快速建图的目的就是使这张地图的已知区域的增加速度尽量达到最高速度,而增加已知区域的方法就是去探索这张地图的已知区域和未知区域的边界部分,当移动机器人到达这些边界区域后,原来的未知区域将会逐渐变成已知区域。在探索过程中,移动机器人利用其自身携带的各种传感器(例如:加速度传感器、陀螺仪、超声波测距仪、摄像头、单线激光雷达、等等)对未知区域进行搜索,感应每个区域的位置、形状和大小,以及遇到的障碍物的位置、形状和大小,然后将采集到环境信息绘制到所述静态地图上。
23.在智能移动机器人中,快速建图是一个非常重要的功能。而目前主流的快速建图都是基于快速探索随机树(rrt)的衍生方法,rrt方法的优势在于应用简单,只需要在待探索区域随机生成要探索的目标点,无需进行算法建模,无需对待探索区域进行几何划分。并且,rrt方法在搜索空间内的覆盖率高,搜索的范围广。但是,rrt方法同样存在局限性,因为待探索目标点为随机生成,目标点间没有关联性,导致机器人会在探索时来回重复行走,不能有序探索,这样导致快速建图的效率低下。
24.因此,如图1所示,本发明实施例公开一种快速建图方法,所述方法包括如下步骤:步骤s1,静态地图刷新后,根据像素变换的次数找出待探索目标点并生成无向图。
25.需要说明的是,在快速建图的过程中,移动机器人每探索完一个区域都会刷新一次静态地图,因为随着已知区域的扩张才能找到更多的待探索目标点。在静态地图刷新后,移动机器人生成表示静态地图连通性的骨架图(general voronoi diagram,gvd),以便找出所述待探索目标点。生成表示静态地图连通性的骨架图的方法具体包括:步骤s11,提取静态地图中障碍物的边界点并进行判断,如果所述边界点的八邻域内没有其它边界点,则将该边界点视为孤立点并删除,保留剩余的边界点并进入步骤s12,
删除孤立点,可以使地图变得尽量简单,方便后续找出待探索目标点;步骤s12,基于步骤s11中剩余的边界点构建 delaunay 三角网,然后生成每个三角形每条边的中垂线;步骤s13,以所述中垂线为边、中垂线的交点为顶点构建泰森多边形,删除delaunay 三角网后即可得到如图2所示的骨架图,其中,图2左侧为所述骨架图与静态地图的叠加,右侧为单独的骨架图。骨架图可以通过极少的信息量来表达地图的连通域信息,这样能够确保后续提取出的待探索目标点之间是相互关联的,而不是随机生成的没有关联性的点。
26.在执行步骤s1的过程中,根据像素变换的次数找出待探索目标点并生成无向图的方法具体包括:步骤s15,在所述骨架图上,如果一个像素点的八邻域内存在两次像素变换,则将该像素点设置为末端点,如果一个像素点的八邻域内存在大于等于六次像素变换,则将该像素点设置为交叉点;其中,所述待探索目标点包含交叉点和末端点。由前述可知,骨架图可以表达静态地图的连通域信息,所以所述交叉点和末端点除了包含该点的地图坐标信息外,还包含了与该点连通的交叉点和/或末端点的信息。步骤s16,根据所述交叉点和末端点的连通性进行连线,即可生成如图3所示的无向图;其中,所述连线为无向图的边。
27.其中,所述步骤s15中判断像素变换次数的方法具体包括:步骤s151,遍历骨架图中的一个像素点的八邻域上的所有点,其中,遍历起点为任意一个点,遍历终点与遍历起点相同。参照图4,以像素点0为中心点的八邻域上有1-8八个点,如果遍历起点为像素点1,则遍历顺序为1-2-3-4-5-6-7-8-1。又如,遍历起点为像素点3,则遍历顺序为3-4-5-6-7-8-1-2-3。在本实施例中,设遍历起点为像素点1。步骤s152,遍历过程中,如果相邻两个点的颜色不一致则记录一次像素变换,遍历结束后即可得到该像素点像素变换的次数,其中,骨架图的骨架和骨架图的背景使用不同的颜色进行标记。
28.参照图4(a),其中白色像素点1、3、6表示骨架图骨架上的点,黑色像素点2、4、5、7、8表示骨架图背景上的点。类似的,图4(b)中白色像素点2表示骨架图骨架上的点,黑色像素点1、3、4、5、6、7、8表示骨架图背景上的点。在图4(a)中,从像素点1开始遍历,记录到相邻的像素点1和像素点2之间的颜色不一致,像素点2和像素点3之间的颜色不一致,像素点3和像素点4之间的颜色不一致,以此类推,图4(a)中一共有6对相邻的点颜色不一致,即以像素点0为中心点的八邻域上存在6次像素变换。因此,像素点0设置为交叉点。采用同样的方法,图4(b)中发生了存在2次像素变换,则像素点0为末端点。
29.需要说明的是,所述待探索目标点中的交叉点代表的是某个已知区域的中心位置,在实际执行本发明实施例的过程中是不需要进行探索的。因为所述交叉点在成为所谓的交叉点之前已经被探索过了。如果交叉点所在区域附近存在未知区域,那么将会从该交叉点生长出分支,该分支的终点即是所述末端点。末端点所在区域代表的是已知区域和未知区域的边界部分,在骨架图中找出末端点并进行探索即可不断地将未知区域转变成已知区域。
30.步骤s2,基于所述无向图生成多叉树,然后遍历所述多叉树,得到待探索目标点序列。
31.为了方便进行深度优先搜索,在本实施例中,将所述无向图转换成一棵多叉树,多叉树的示意图可参照图5,生成多叉树的方法具体包括:如果是第一次生成多叉树,即刚开始建图时,移动机器人找出无向图中距离移动机器人最近的交叉点并将其设置为根茎节
点,放置于树状结构的最顶层,参照图3,距离移动机器人“r”最近的交叉点为1,所以将点1放置于树状结构的最顶层。然后依据无向图中点与点之间的连通性,将与该交叉点直接相连的点如图5中的点10、2、3放置于树状结构的第二层,将与第二层中的点直接相连的点如图5中的点8、7、6、5、4放置于树状结构的第三层,以此类推,即可生成所述多叉树。如果不是第一次生成多叉树,即已经生成过多叉树的情况下,只需将无向图中未放置于多叉树上的交叉点和/或末端点,依上述方法在上一次生成的多叉树的基础上进行放置。随着地图探索的进行,所述多叉树上的节点会越来越多,后续会给已经探索过的节点设置已访问标记,如此一来,不仅可以避免重复探索,还能保证探索覆盖率。
32.在执行步骤s2的过程中,使用深度优先搜索算法遍历所述多叉树,得到待探索目标点序列,其过程可参照图6,图6上侧为深度优先搜索算法的遍历过程,下侧为遍历得到的待探索目标点序列。深度优先搜索(depth first search,dfs)属于图算法的一种,是一个针对图和树的遍历算法。深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。如果此时图中存在未被访问的节点,则从下一个未探索的节点开始,重新进行深度优先遍历,直到图中所有节点均被访问过为止。
33.步骤s3,移动机器人从当前探索位置开始,按所述待探索目标点序列的顺序前往下一个待探索目标点进行探索;其中,移动机器人会给完成探索的目标点设置已访问标记,且每探索完成一个目标点都会刷新一次静态地图,然后返回步骤s1,重复执行步骤s1至步骤s4直到待探索目标点序列中所有目标点都设置有已访问标记,至此实现建图。
34.需要说明的是,在探索过程中,移动机器人利用其自身携带的各种传感器(例如:加速度传感器、陀螺仪、超声波测距仪、摄像头、单线激光雷达、等等)对未知区域进行搜索,感应每个区域的位置、形状和大小,以及遇到的障碍物的位置、形状和大小,然后将采集到环境信息绘制到所述静态地图上。移动机器人感知环境信息以及绘制地图的过程属现有技术,不在此进行赘述。
35.在执行步骤s3的过程中,移动机器人从当前探索位置开始,按所述待探索目标点序列的顺序前往下一个待探索目标点进行探索的过程中,还会进行如下判断:由前述内容可知,交叉点代表的是某个已知区域的中心位置,所以如果下一个待探索目标点如图6中的目标点2是交叉点,则移动机器人不进行探索,在设置已访问标记后,按所述待探索目标点序列的顺序继续前往下一个待探索目标点8。如果下一个待探索目标点如图6中的目标点10是末端点,则移动机器人探索该点并设置已访问标记。此外,根据无向图中点与点之间的连通性,如果下一个待探索目标点如图6中的目标点11是末端点且不与移动机器人当前探索位置12连通,则移动机器人先移动到与下一个待探索目标点11和移动机器人当前探索位置12均连通的交叉点6(根据待探索目标点序列,目标点6已经完成探索了),然后再前往下一个待探索目标点11进行探索。每探索完成一个点,就代表移动机器人获取了新的未知区域的信息。因此,每探索完成一个目标点,移动机器人都会刷新一次静态地图,不断地扩张地图上的已知区域,以便找出更多的待探索目标点直至所有目标点都设置有已访问标记,即直至地图上的未知区域都已被探索。
36.图7为本发明公开的一种移动机器人内部模块组成框架图,所述移动机器人包括:骨架图生成模块,用于生成表示静态地图连通性的骨架图,以得到待探索目标点,所述待探
索目标点包括交叉点和末端点,所述交叉点代表的是已知区域的中心位置,所述末端点所在区域代表的是已知区域和未知区域的边界部分。无向图生成模块,用于根据骨架图中的待探索目标点生成无向图,所述无向图中的点与点之间具有关联性。多叉树生成模块,用于根据无向图生成多叉树,以方便进行深度优先遍历。深度优先遍历模块,用于遍历多叉树,实现待探索目标点的排序,使得移动机器人可以有序地进行地图探索。建图模块,用于在探索目标点后刷新静态地图,以实现地图的构建。与现有技术相比,本技术方案可以通过无向图生成模块生成能够表示待探索目标点之间关联性的无向图,然后通过深度优先遍历模块实现待探索目标点的排序,以帮助移动机器人完成未知区域的有序探索,实现快速建图。
37.优选地,所述移动机器人为激光机器人或视觉机器人,其内部设置的建图模块,用于在探索目标点时根据扫描得到的环境信息刷新静态地图,以实现地图的构建。
38.本发明还公开一种芯片,该芯片用于存储计算机程序代码,并可以设置在前述的移动机器人内,所述计算机程序代码被执行时实现前述快速建图方法的步骤。或者,所述芯片执行所述计算机程序代码时实现上述移动机器人实施例中各个模块的功能。示例性的,所述计算机程序代码可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述芯片中,并由所述芯片执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序代码在所述移动机器人中的执行过程。例如,所述计算机程序代码可以被分割成:前述移动机器人实施例内的骨架图生成模块、无向图生成模块、多叉树生成模块、深度优先遍历模块和建图模块。所述芯片可使得移动机器人有序探索地图中的未知区域,在保证快速建图高覆盖率的同时,大大提升建图效率。
39.显然,上述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,各个实施例之间的技术方案可以相互结合。此外,如果实施例中出现“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等术语,其指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位或以特定的方位构造和操作,因此不能理解为对本发明的限制。如果实施例中出现“第一”、“第二”、“第三”等术语,是为了便于相关特征的区分,不能理解为指示或暗示其相对重要性、次序的先后或者技术特征的数量。
40.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
41.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术
方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献