CN115014362A - 一种基于合成单元的牛耕式全覆盖路径规划方法和装置 - Google Patents
一种基于合成单元的牛耕式全覆盖路径规划方法和装置 Download PDFInfo
- Publication number
- CN115014362A CN115014362A CN202210946915.6A CN202210946915A CN115014362A CN 115014362 A CN115014362 A CN 115014362A CN 202210946915 A CN202210946915 A CN 202210946915A CN 115014362 A CN115014362 A CN 115014362A
- Authority
- CN
- China
- Prior art keywords
- unit
- grid
- path
- robot
- traversed
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本发明属于单机器人全覆盖路径规划领域,涉及一种基于合成单元的牛耕式全覆盖路径规划方法和装置,该方法包括:步骤一,基于机器人的平面目标作业区域,构建坐标系化的栅格地图;步骤二,对栅格地图进行按行划分,生成若干个基本路径片段集合并对两两基本路径片段集合之间进行判断后合并处理得到合成单元,同时确定机器人遍历起始单元;步骤三,基于合成单元间的相邻关系,生成拓扑地图,机器人利用所述拓扑地图,采用基于贪心算法的方式,通过三次求解旅行商问题,得到机器人的最终规划路径。本发明降低了规划最终路径的重复率,解决了现有方法在旅行商问题求解时,需要进行多次求解,严重影响了机器人的作业效率的问题。
Description
技术领域
本发明属于单机器人全覆盖路径规划领域,涉及一种基于合成单元的牛耕式全覆盖路径规划方法和装置。
背景技术
路径规划作为机器人的关键技术之一,深刻地影响着机器人的作业质量和作业效率。路径规划一般可分为传统的点到点式路径规划以及全覆盖路径规划。点到点路径规划是最常见、最基本的路径规划,它的目标是为机器人在作业空间中寻找一条从起点到终点的无碰撞最优或较优路径;全覆盖路径规划则要求机器人在作业空间中寻找一条经过封闭区域中所有可达区域的路径,同时某些性能达到最优或较优。
目前全覆盖路径规划已广泛应用于机器人扫地、喷涂、消毒、扫雷等需要遍历整个任务区域的多中不同场景。
牛耕式运动是一种应用广泛的全覆盖路径规划方式,适用于矩形等规则区域。实际生产生活中的目标区域往往边界不规则,且内部存在障碍物,因此常按照一定规则对其进行单元分解,从而获得若干个较规则单元。这样单元内即可采用牛耕式运动,而单元间则转化为旅行商问题求解。
然而现有的单元分解方式,例如,一种基于多边形分解的全覆盖路径规划算法(专利号CN202111669496.8)、基于单元分解的全覆盖路径规划方法及相关设备(专利号CN202111579455.X)等,不能确保牛耕式运动在每个单元内部实现无重复地遍历,且每个单元内的最佳路径起点和终点有时亦难以确定,导致最终所得路径并非最优,在路径长度(路径重复率)、转弯次数等方面存在改进空间。
同时,现有的旅行商问题求解方式,例如,一种基于深度强化学习的旅行商问题求解方法和求解系统(专利号CN202110716587.6)一种基于改进蚁群算法的旅行商问题求解方法(专利号CN202010181530.6)等,存在计算量较大的问题,尤其是当分解得到的单元数目增加的时候,其计算量呈现指数级增加,导致求解过程较慢,十分影响机器人的作业效率。
因此,需要研究一种新的方法以解决目标区域的单元分解,以及旅行商问题求解计算量较大这两个问题。
发明内容
为了解决现有技术中存在的上述技术问题,本发明提出了一种基于合成单元的牛耕式全覆盖路径规划方法和装置,采用单元合成与基于贪心算法求解旅行商问题的方式,其具体技术方案如下:
一种基于合成单元的牛耕式全覆盖路径规划方法,包括以下步骤:
步骤一,基于机器人的平面目标作业区域,构建坐标系化的栅格地图;
步骤二,对栅格地图进行按行划分,生成若干个基本路径片段集合并对两两基本路径片段集合之间进行判断后合并处理得到合成单元,同时确定机器人遍历起始单元;
步骤三,基于合成单元间的相邻关系,生成拓扑地图,机器人利用所述拓扑地图,采用基于贪心算法的方式,通过三次求解旅行商问题,得到机器人的最终规划路径。
进一步的,所述步骤一具体为:根据机器人的自身尺寸大小和平面目标作业范围大小,确定栅格尺寸,根据栅格尺寸大小,对所述平面目标作业范围即机器人进行作业的地图进行栅格划分,同时以地图左上角为坐标原点O,向下为X轴正向,向右为Y轴正向建立坐标系,并以坐标(a,b)表示第a行、第b列栅格,得到坐标系化的栅格地图。
进一步的,所述栅格地图共有xmax行、ymax列,建立与栅格地图对应的xmax行、ymax列矩阵,并以数值0表示矩阵对应位置的栅格为待遍历栅格,数值1为障碍物,函数F(a, b)为获取矩阵第a行、第b列数值,且当坐标(a,b)超出地图范围时,
则所有待遍历栅格集合C1可表示为:
xi与yi分别表示坐标系化的栅格地图C0上的第xi行和第yi列。
进一步的,所述对栅格地图进行按行划分,生成若干个基本路径片段集合,具体为:对栅格地图,沿X轴正向,依次以一平行于Y轴的直线横穿地图,并将每一行直线所串联的未被障碍物阻断的待覆盖栅格归于同一基本路径片段集合,即所述基本路径片段集合为栅格地图上位于同一行,且未被障碍物隔离的全部连通栅格的有序排列集合,某一基本路径片段集合CR={(xR,y1), (xR,y2),…,(xR,yr)}满足:
则栅格地图划分生成的所有基本路径片段集合C2={ CR1 ,C R2 ,C R3 ,…,C Rn}满足:
进一步的,所述确定机器人遍历起始单元,具体为:设机器人的直线运动均平行于X轴或平行于Y轴,每次转向角度均为90°,并将一次掉头视为两次转向,则机器人从坐标为(a, b)的栅格移动到坐标为(c, d)的栅格的路径代价函数计算如下:
其中,L为以A*算法获得的从(a,b)栅格到(c,d)栅格的路径长度,以栅格数表示;T为转向次数;P为一修正系数,其值为机器人一次转向与直线移动一个栅格长度距离的时间比;
通过所述路径代价函数对C2中所有n个元素分别计算:机器人初始位置(x0,y0)到每个元素第一个栅格的路径代价,以及到最后一个栅格的路径代价,获得2n个值,从这2n个值中选择最小值,若存在多个最小值则在其中随机选择,其对应的栅格为路径起始点,设其坐标为(x0’,y0’),对应的基本路径片段集合在后续生成的单元为遍历起始单元,记为CR0,同时若(x0’,y0’)为CR0的最后一个元素,则将CR0中的元素倒序排列。
进一步的,所述对两两基本路径片段集合之间进行判断后合并得到合成单元,具体包括:
步骤1):初始化生成集合CMer,用于存储合并完成的集合即合成单元;
步骤2):判断C2中的是否存在基本路径片段集合CRm满足如下要求:
CRm与CRp的首尾共四个栅格,有且仅有两个是相邻的;
路径起始点栅格(x0’,y0’)视为与任意其它栅格均不相邻,同时,针对只有一个栅格的基本路径片段集合,若该栅格与另一集合的任意首尾栅格相邻,则视为满足条件(2);
若存在CRm满足,则将相邻集合CRp合并至CRm,并调整合并后的集合即合成单元中的栅格排列顺序,同时从C2中移除,则将C2中剩余集合记为CMer’;
步骤3):重复对C2中的其他集合进行步骤2)的操作,将合并后的集合添加至CMer,直至C2中不存在集合满足要求,CMer和CMer’构成合成单元的集合,其中的每个元素即为合并后的集合。
进一步的,所述基于合成单元间的相邻关系,生成拓扑地图,具体为:将每个合成单元视为一个节点,并将相邻单元数目大于2的单元与遍历起始单元均视为根节点,小于等于2的单元视为非根节点,连接于同一个根节点的若干个非根节点组成一个分枝,且同一个分枝中有且仅有一个相邻单元数目为1的非根节点,以此构成分叉树,生成拓扑地图。
进一步的,所述利用所述拓扑地图,采用基于贪心算法的方式,通过三次求解旅行商问题,获取最终规划路径,其中的第一次求解旅行商问题具体为:
首先初始化生成表示最终规划路径的导航点集合CNav1=CR0,其中CR0为机器人起始遍历单元;
再判断上一个遍历单元CRL及其相邻单元CRN是否满足如下要求:
CRL与CRN均为非根节点;
CRL与CRN均不属于任意分枝;
相邻单元CRN未遍历;
若上一个遍历单元CRL及其相邻单元CRN满足,则将CRN作为下一个待遍历的单元,否则通过路径代价函数计算CNav1的末端栅格到各个未遍历单元的第一个栅格和最后一个栅格的路径代价,并从中选择最小值,最小值对应的单元即为最近单元,作为下一个待遍历的单元,再判断下一个待遍历单元是否存在已遍历的相邻单元:
若否,则通过路径代价函数分别计算当前CNav1的末端元素栅格,到下一个待遍历单元的第一个栅格和最后一个栅格的路径代价,并进行比较:若前者较小,则将该下一个待遍历单元中的元素依次添加至CNav1的末端;若后者较小,则先将该下一个待遍历单元中的元素进行倒序排列,再添加至CNav1的末端,并寻找下一个待遍历单元;
若是,则将下一个待遍历单元中的栅格坐标添加至CNav1的末端,并通过路径代价函数计算此时由CNav1生成路径的代价,其中两个导航点之间的实际移动路径依据A*算法获取,再获取下一个待遍历单元的相邻已遍历单元的所有相邻栅格,并寻找所述所有相邻栅格坐标在集合CNav1中的最小和最大排列序号,设最小序号为N1、最大序号为N2,寻找将该待遍历单元内所有元素以正序添加至CNav1中N1-1~N2+1的最佳位置,计算此时由CNav1生成路径的代价;再寻找将该待遍历单元内所有元素以倒序添加至CNav1中N1-1~N2+1的最佳位置,计算此时由CNav1生成路径的代价,从所述代价中寻找最小值,将对应的添加方式作为当前下一个待遍历单元的最终结果,并添加至CNav1;
最后重复上述操作,继续寻找下一个待遍历的单元,直至不存在未遍历的单元。
进一步的,所述三次求解旅行商问题中的第二次求解和第三次求解具体为:
首先,获取第一次求解时各个合成单元添加进导航点集合CNav1的顺序,并得到各合成单元的相邻情况;
对第一次求解时,满足优先遍历的单元进行合并处理,对进行过合并的单元,若其首末两个栅格的Y值相等,则对单元内元素的再次排序调整,以使单元内遍历路径的起点和终点位于不同列;
生成导航点集合CNav2用于存储第二次求解结果,之后重复第一次求解旅行商问题的操作,获得第二次规划结果;
对第二次求解时,若同一分枝中,子节点优先于其相邻父节点添加进CNav2,以及某一分枝中存在节点优先于该分枝相邻的根节点添加进CNav2,则将相关节点单元进行合并;
生成导航点集合CNav3用于存储第三次求解结果,之后重复第二次求解的操作,获得第三次规划结果;若机器人初始位置所在栅格与最终得到的单元的集合首端栅格不同,则将机器人初始位置所在栅格添加到集合首端栅格之前。
一种基于合成单元的牛耕式全覆盖路径规划装置,包括一个或多个处理器,用于实现所述的一种基于合成单元的牛耕式全覆盖路径规划方法。
有益效果:
本发明采用一种合成单元的方式,解决了现有单元分解方式在部分情况下所得单元,其内部无法以牛耕式运动进行无重复地遍历,导致所得的最终路径长度和转弯次数等评价指标较差的问题,以确保每个单元内均能以牛耕式运动无重复地遍历,从而降低了最终路径的重复率,并优化了转弯次数;采用一种基于贪心算法的方式,通过三次求解即可获得较优路径,为现有的以遗传算法、蚁群算法、深度学习等方法求解旅行商问题存在较大计算量提供了一种新的思路,解决了现有方法在旅行商问题求解时,无论是遗传算法,还是蚁群算法,抑或是深度学习等其它方法,大多数都需要进行多次求解,并且这些方法的求解次数随单元数目的增多而呈现指数级增加,严重影响了机器人的作业效率的问题。
附图说明
图1是本发明的一种基于合成单元的牛耕式全覆盖路径规划方法流程示意图;
图2是本发明所采用的单元合成和基于贪心算法求解旅行商问题的整体流程图;
图3为本发明的对两两基本路径片段集合间进行判断后合并处理得到合成单元的具体流程示意图;
图4为本发明所采用的基于贪心算法的旅行商问题求解时,每次求解的流程图;
图5为本发明实施例的机器人在已知二维平面环境下进行全覆盖路径规划的示例说明的地图示意图;
图6为依据图5所示地图生成坐标系化的的栅格地图示意图;
图7为以图6所示栅格地图为基础,按行划分生成基本路径片段集合后,以线段依次连接同一个路径片段内各栅格的结果示意图;
图8为本发明实施例的机器人初始位置所在栅格坐标为(1,1)时合成单元后,以线段分别依次连接同一个单元集合内各栅格的结果示意图;
图9为根据图8所示的单元合成结果,依据各单元间的相邻关系,所生成的拓扑地图示意图;
图10为本发明的求解三次旅行商问题的第一次求解后,所得的路径规划结果示意图;
图11为本发明的依据第一次求解结果和拓扑地图,合并同一分枝中父节点优先子节点插入导航点集合、优先遍历单元节点后,以线段分别依次连接同一个单元集合内各栅格的结果示意图;
图12为第二次求解后,所得的路径规划结果示意图;
图13为依据第二次求解结果,合并同一分枝中子节点优先父节点插入导航点集合的节点单元后,以线段分别依次连接同一个单元集合内各栅格的结果示意图;
图14为第三次求解后,所得的路径规划结果示意图;
图15为本方法实施例的一种基于合成单元的牛耕式全覆盖路径规划装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
如图1和图2所示,一种基于合成单元的牛耕式全覆盖路径规划方法,包括以下步骤内容:
步骤一,基于机器人的平面目标作业区域,构建坐标系化的栅格地图;
根据机器人的自身尺寸大小和平面目标作业范围大小,确定栅格尺寸,以使得栅格尺寸大小介于机器人自身尺寸与其最大作业范围尺寸之间。
根据栅格尺寸大小,对附图5所示地图进行栅格划分,同时以地图左上角为坐标原点O,向下为X轴正向,向右为Y轴正向建立坐标系,并以坐标(a,b)表示第a行、第b列栅格,如图6所示。其中附图6中黑色栅格为障碍物,障碍物未满一格的栅格也均视为障碍物栅格,白色栅格为待覆盖的栅格,地图边缘之外视为障碍物区域。为便于后续建立矩阵,以障碍物将栅格地图填充为矩形。
设栅格地图C0共有xmax行、ymax列,建立与栅格地图对应的xmax行、ymax列矩阵,并以数值0表示矩阵对应位置的栅格为待遍历栅格,数值1为障碍物,函数F(a, b)为获取矩阵第a行、第b列数值,且当坐标(a, b)超出地图范围时,
则所有待遍历栅格集合C1可表示为:
xi与yi分别表示坐标系化的栅格地图C0上的第xi行和第yi列。
步骤二,对栅格地图进行按行划分,生成若干个基本路径片段并对两两基本路径片段之间进行判断后合并处理得到合成单元,同时确定机器人遍历起始单元;
对附图6的机器人作业栅格区域进行按行划分,划分结果如图7所示,生成若干个基本路径片段集合,具体如下:对栅格地图,沿X轴正向,依次以一平行于Y轴的直线横穿整个地图,并将每一行直线所串联的未被障碍物阻断的待覆盖栅格归于同一基本路径片段集合。其中,以线段相连在一起的栅格同属于同一基本路径片段集合。
记录划分所得的各个基本路径片段集合,基本路径片段集合为地图上位于同一行,且未被障碍物隔离的全部连通栅格的有序排列集合,某一基本路径片段集合CR={(xR,y1), (xR,y2),…,(xR,yr)}需满足:
显然,由某一栅格地图划分生成的所有基本路径片段集合C2={ CR1 ,C R2 ,C R3,…,C Rn}满足:
确定遍历起始单元:假定机器人的直线运动均平行于X轴或平行于Y轴,每次转向角度均为90°,并将一次掉头视为两次转向,则机器人从坐标为(a, b)的栅格移动到坐标为(c, d)的栅格的路径代价函数计算如下:
其中,L为以A*算法获得的从(a,b)栅格到(c,d)栅格的路径长度,以栅格数表示;T为转向次数;P为一修正系数,其值为机器人一次转向与直线移动一个栅格长度距离的时间比,由机器人自身性能确定,本发明实施例取P=2。
以式(1)对C2中所有n个元素分别计算:机器人初始位置(x0,y0)到每个元素第一个栅格的路径代价,以及到最后一个栅格的路径代价,获得2n个值。
从这2n个值中选择最小值,若存在多个最小值则在其中随机选择,其对应的栅格为路径起始点,设其坐标为(x0’,y0’),对应的基本路径片段集合在后续生成的单元为遍历起始单元,记为CR0,同时若(x0’,y0’)为CR0的最后一个元素,则将CR0中的元素倒序排列。
此外,若机器人初始位置(x0, y0)与路径起始点(x0’, y0’)不重合,则机器人将首先移动至该路径起始点,之后再进行遍历作业。
本发明实施例中,设机器人的初始位置所在栅格为(1,1),由于该栅格为一基本路径片段的第一个栅格,故由该基本路径片段所生成的单元即为机器人后续进行遍历作业的起始单元。
对所有基本路径片段集合进行两两判断,并对满足要求的基本路径片段进行合并,如图3所示,具体如下:
步骤1):初始化生成集合CMer,用于存储合并完成的集合即合成单元;
步骤2):判断C2中的是否存在集合CRm满足如下全部要求:
CRm与CRp的首尾共四个栅格,有且仅有两个是相邻的;
此外,路径起始点栅格(x0’,y0’)视为与任意其它栅格均不相邻,以避免有遍历路径出现在起始点之前。同时,针对只有一个栅格的基本路径片段集合,若该栅格与另一集合的任意首尾栅格相邻,则同样视为满足条件(2)。
若存在集合CRm满足全部要求,则将集合CRp合并至CRm,并调整合并后的集合中的栅格排列顺序,以使得以线段依次连接合并后的集合中前后排列的两个栅格,所生成的牛耕往复运动路径无重复;
步骤3):再重复对C2中的其他集合进行判断与合并,并将最终合并所得的集合添加至CMer,同时从C2中移除,则将C2中剩余集合记为CMer’,
直至C2中不存在集合满足要求。
则此时CMer和CMer’中的每个元素即为合并后的集合,且这些合成单元存在以下特点:
以线段连接每个单元内前后相邻排列的栅格元素,所得路径能无重复地遍历当前单元;
该单元内遍历路径的起点为单元的首尾两个栅格元素之一,且除起始遍历单元CR0外,其余单元内路径的移动方向待定。
至此,针对目标区域进行单元合成的相关步骤完毕。
如图8所示是最终合并的结果,每个合成单元内的直线是相关集合内各栅格依次相连的结果,该直线即为机器人在该单元内的遍历路径。可以发现除了机器人所在细胞外,其余细胞内路径方向待定,集合的两个端点栅格即为该合成所得单元内,后续机器人进行遍历时的路径的起点和终点。
步骤三,基于合成单元间的相邻关系,生成拓扑地图,机器人利用所述拓扑地图,采用基于贪心算法的方式,通过三次求解旅行商问题,得到机器人的最终规划路径。
完成单元合并后,转化为旅行商问题进行旅行商问题求解,以基于贪心算法的方法进行第一次求解,基于单元的合成情况,从起始单元开始,以贪心算法获取下一个待遍历的单元,并将该单元中栅格以较优的方式插入到导航点集合中。
具体的,如图4所示,首先初始化生成表示最终规划路径的导航点集合CNav1=CR0,其中CR0为机器人起始遍历单元。
再判断上一个遍历单元CRL及其相邻单元CRN是否满足如下要求:
CRL与CRN均为非根节点;
CRL与CRN均不属于任意分枝;
相邻单元CRN未遍历;
若上一个遍历单元CRL及其相邻单元CRN全部满足要求,则将CRN作为下一个待遍历的单元,否则以式(1)计算CNav1的末端栅格到各个未遍历单元的第一个栅格和最后一个栅格的路径代价,并从中选择最小值,最小值若存在多个则在其中随机选择,其对应的单元即为最近单元,作为下一个待遍历的单元,再判断下一个待遍历单元是否存在已遍历的相邻单元:
若否,则以式(1)分别计算当前CNav1的末端元素栅格,到下一个待遍历单元的第一和最后一个栅格的路径代价,并进行比较。若前者较小,则将该单元中的元素依次添加至CNav1的末端;若后者较小,则先将该单元中的元素进行倒序排列,再添加至CNav1的末端,并寻找下一个待遍历单元;
若是,则以最优方式将下一个待遍历单元中的栅格坐标添加至CNav1的末端,并以式(1)计算此时由CNav1生成路径的代价,其中两个导航点之间的实际移动路径依据A*算法获取,再获取下一个待遍历单元的相邻已遍历单元的所有相邻栅格,并寻找这些栅格坐标在集合CNav1中的最小和最大排列序号,设最小序号为N1、最大序号为N2,寻找将该待遍历的单元内所有元素以正序添加至CNav1中N1-1~N2+1的最佳位置,计算此时由CNav1生成路径的代价;再寻找将该单元内所有元素以倒序添加至CNav1中N1-1~N2+1的最佳位置,计算此时由CNav1生成路径的代价。
从这多个路径代价中寻找最小值,将对应的添加方式作为当前下一个待遍历单元的最终结果,并添加至CNav1。重复上述判断操作,继续寻找下一个待遍历的单元,直至不存在未遍历的单元。
所得导航点集合CNav1即为第一次求解规划路径的结果,附图10为第一次求解后,依据导航点集合CNav1所获得的机器人全覆盖路径,以A*算法补全机器人在导航点集合内前后两个不相邻栅格之间的移动路径。
根据最终所得导航点集合CNav1,以A*算法生成机器人实际运动路径,且在生成的过程中,若下一个导航点集合栅格在此之前已遍历,则将之忽略。此外,若机器人的初始位置所在栅格与CNav1第一个栅格不同,需额外增加这两个栅格之间的移动路径。
进行第二次求解,基于第一次各单元插入导航点集合的顺序以及拓扑地图,对拓扑地图的分枝中父节点顺序先于子节点单元,以及优先遍历的单元进行合并,之后再次求解。
具体的,首先,获取第一次求解时各个合成单元添加进导航点集合CNav1的顺序,并得到各合成单元的相邻情况,生成附图9所示的拓扑地图,该地图亦可视为一分叉树,其中每个合成单元可视为一个节点,并将相邻单元数目大于2的单元与遍历起始单元均视为根节点,小于等于2的单元视为非根节点;连接于同一个根节点的若干个非根节点组成一个分枝,且同一个分枝中有且仅有一个相邻单元数目为1的非根节点。附图9中每个圆代表各合成单元节点,以线段相连的两圆代表这两个单元节点是相邻的。
在遍历同一个分枝的某个节点之前,一般多会优先遍历该节点的父节点。由于第一次求解时采用的是每个单元节点依次添加进导航点集合CNav1,在部分情况下,尤其是存在多个最优单元插入方案时,将这些分枝中的部分单元节点合并后所得的规划路径可能更优。
因此,根据所得分叉树,针对每个分枝,从相邻单元数为1的单元节点开始,若某节点的父节点在第一次规划时添加进CNav1的顺序先于该节点,则将该节点所代表的单元合并至其父节点。重复以上操作,直到每个分枝均不存在父节点单元优先其相邻子节点单元插入CNav1。
同时,对第一次求解时,满足优先遍历的单元亦进行合并处理,对进行过合并的单元,若其首末两个栅格的Y值相等,则对单元内元素的再次排序调整,以使单元内遍历路径的起点和终点位于不同列,从而降低路径重复率。附图11为第二次求解前,对满足要求的父子节点,以及优先遍历的单元进行合并后,所得的结果。
生成导航点集合CNav2用于存储第二次求解结果,之后重复第一次求解的操作,获得第二次规划结果,附图12为第二次求解所得的规划路径,以A*算法补全机器人在导航点集合内前后两个不相邻栅格之间的移动路径。
进行第三次求解:基于第二次求解结果,将分枝中子节点顺序先于父节点单元、以及分枝中节点先于其相邻根节点单元进行合并,之后第三次求解。
具体的,对第二次求解时,若同一分枝中,子节点优先于其相邻父节点添加进CNav2,以及某一分枝中存在节点优先于该分枝相邻的根节点添加进CNav2,则将相关节点单元进行合并。附图13为第三次求解前,对满足合并要求的单元进行合并后,所得的结果。
生成导航点集合CNav3用于存储第三次求解结果。
重复第二次求解的操作,获得第三次规划结果,附图14为第二次求解所得的规划路径,以A*算法补全机器人在导航点集合内前后两个不相邻栅格之间的移动路径。
若机器人初始位置所在栅格与最终得到的单元的集合首端栅格不同,则将机器人初始位置所在栅格添加到集合首端栅格之前。以式(1)计算三次路径规划所得结果的代价花费,并选择最小值所对应的规划路径作为最终规划路径,此处机器人的最优全覆盖规划路径为第三次规划路径。
与前述一种基于合成单元的牛耕式全覆盖路径规划方法的实施例相对应,本发明还提供了一种基于合成单元的牛耕式全覆盖路径规划装置的实施例。
参见图15,本发明实施例提供的一种基于合成单元的牛耕式全覆盖路径规划装置,包括一个或多个处理器,用于实现上述实施例中的一种基于合成单元的牛耕式全覆盖路径规划方法。
本发明一种机器人牛耕式全覆盖路径规划装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图15所示,为本发明一种基于合成单元的牛耕式全覆盖路径规划装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图15所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种基于合成单元的牛耕式全覆盖路径规划方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于合成单元的牛耕式全覆盖路径规划方法,其特征在于,包括以下步骤:
步骤一,基于机器人的平面目标作业区域,构建坐标系化的栅格地图;
步骤二,对栅格地图进行按行划分,生成若干个基本路径片段集合并对两两基本路径片段集合之间进行判断后合并处理得到合成单元,同时确定机器人遍历起始单元;
步骤三,基于合成单元间的相邻关系,生成拓扑地图,机器人利用所述拓扑地图,采用基于贪心算法的方式,通过三次求解旅行商问题,得到机器人的最终规划路径。
2.如权利要求1所述的一种基于合成单元的牛耕式全覆盖路径规划方法,其特征在于,所述步骤一具体为:根据机器人的自身尺寸大小和平面目标作业范围大小,确定栅格尺寸,根据栅格尺寸大小,对所述平面目标作业范围即机器人进行作业的地图进行栅格划分,同时以地图左上角为坐标原点O,向下为X轴正向,向右为Y轴正向建立坐标系,并以坐标(a,b)表示第a行、第b列栅格,得到坐标系化的栅格地图。
5.如权利要求4所述的一种基于合成单元的牛耕式全覆盖路径规划方法,其特征在于,所述确定机器人遍历起始单元,具体为:设机器人的直线运动均平行于X轴或平行于Y轴,每次转向角度均为90°,并将一次掉头视为两次转向,则机器人从坐标为(a, b)的栅格移动到坐标为(c, d)的栅格的路径代价函数计算如下:
其中,L为以A*算法获得的从(a,b)栅格到(c,d)栅格的路径长度,以栅格数表示;T为转向次数;P为一修正系数,其值为机器人一次转向与直线移动一个栅格长度距离的时间比;
通过所述路径代价函数对C2中所有n个元素分别计算:机器人初始位置(x0,y0)到每个元素第一个栅格的路径代价,以及到最后一个栅格的路径代价,获得2n个值,从这2n个值中选择最小值,若存在多个最小值则在其中随机选择,其对应的栅格为路径起始点,设其坐标为(x0’,y0’),对应的基本路径片段集合在后续生成的单元为遍历起始单元,记为CR0,同时若(x0’,y0’)为CR0的最后一个元素,则将CR0中的元素倒序排列。
6.如权利要求5所述的一种基于合成单元的牛耕式全覆盖路径规划方法,其特征在于,所述对两两基本路径片段集合之间进行判断后合并得到合成单元,具体包括:
步骤1):初始化生成集合CMer,用于存储合并完成的集合即合成单元;
步骤2):判断C2中的是否存在基本路径片段集合CRm满足如下要求:
CRm与CRp的首尾共四个栅格,有且仅有两个是相邻的;
路径起始点栅格(x0’,y0’)视为与任意其它栅格均不相邻,同时,针对只有一个栅格的基本路径片段集合,若该栅格与另一集合的任意首尾栅格相邻,则视为满足条件(2);
若存在CRm满足,则将相邻集合CRp合并至CRm,并调整合并后的集合即合成单元中的栅格排列顺序,同时从C2中移除,则将C2中剩余集合记为CMer’;
步骤3):重复对C2中的其他集合进行步骤2)的操作,将合并后的集合添加至CMer,直至C2中不存在集合满足要求,CMer和CMer’构成合成单元的集合,其中的每个元素即为合并后的集合。
7.如权利要求6所述的一种基于合成单元的牛耕式全覆盖路径规划方法,其特征在于,所述基于合成单元间的相邻关系,生成拓扑地图,具体为:将每个合成单元视为一个节点,并将相邻单元数目大于2的单元与遍历起始单元均视为根节点,小于等于2的单元视为非根节点,连接于同一个根节点的若干个非根节点组成一个分枝,且同一个分枝中有且仅有一个相邻单元数目为1的非根节点,以此构成分叉树,生成拓扑地图。
8.如权利要求7所述的一种基于合成单元的牛耕式全覆盖路径规划方法,其特征在于,所述利用所述拓扑地图,采用基于贪心算法的方式,通过三次求解旅行商问题,获取最终规划路径,其中的第一次求解旅行商问题具体为:
首先初始化生成表示最终规划路径的导航点集合CNav1=CR0,其中CR0为机器人起始遍历单元;
再判断上一个遍历单元CRL及其相邻单元CRN是否满足如下要求:
CRL与CRN均为非根节点;
CRL与CRN均不属于任意分枝;
相邻单元CRN未遍历;
若上一个遍历单元CRL及其相邻单元CRN满足,则将CRN作为下一个待遍历的单元,否则通过路径代价函数计算CNav1的末端栅格到各个未遍历单元的第一个栅格和最后一个栅格的路径代价,并从中选择最小值,最小值对应的单元即为最近单元,作为下一个待遍历的单元,再判断下一个待遍历单元是否存在已遍历的相邻单元:
若否,则通过路径代价函数分别计算当前CNav1的末端元素栅格,到下一个待遍历单元的第一个栅格和最后一个栅格的路径代价,并进行比较:若前者较小,则将该下一个待遍历单元中的元素依次添加至CNav1的末端;若后者较小,则先将该下一个待遍历单元中的元素进行倒序排列,再添加至CNav1的末端,并寻找下一个待遍历单元;
若是,则将下一个待遍历单元中的栅格坐标添加至CNav1的末端,并通过路径代价函数计算此时由CNav1生成路径的代价,其中两个导航点之间的实际移动路径依据A*算法获取,再获取下一个待遍历单元的相邻已遍历单元的所有相邻栅格,并寻找所述所有相邻栅格坐标在集合CNav1中的最小和最大排列序号,设最小序号为N1、最大序号为N2,寻找将该待遍历单元内所有元素以正序添加至CNav1中N1-1~N2+1的最佳位置,计算此时由CNav1生成路径的代价;再寻找将该待遍历单元内所有元素以倒序添加至CNav1中N1-1~N2+1的最佳位置,计算此时由CNav1生成路径的代价,从所述代价中寻找最小值,将对应的添加方式作为当前下一个待遍历单元的最终结果,并添加至CNav1;
最后重复上述操作,继续寻找下一个待遍历的单元,直至不存在未遍历的单元。
9.如权利要求8所述的一种基于合成单元的牛耕式全覆盖路径规划方法,其特征在于,所述三次求解旅行商问题中的第二次求解和第三次求解具体为:
首先,获取第一次求解时各个合成单元添加进导航点集合CNav1的顺序,并得到各合成单元的相邻情况;
对第一次求解时,满足优先遍历的单元进行合并处理,对进行过合并的单元,若其首末两个栅格的Y值相等,则对单元内元素的再次排序调整,以使单元内遍历路径的起点和终点位于不同列;
生成导航点集合CNav2用于存储第二次求解结果,之后重复第一次求解旅行商问题的操作,获得第二次规划结果;
对第二次求解时,若同一分枝中,子节点优先于其相邻父节点添加进CNav2,以及某一分枝中存在节点优先于该分枝相邻的根节点添加进CNav2,则将相关节点单元进行合并;
生成导航点集合CNav3用于存储第三次求解结果,之后重复第二次求解的操作,获得第三次规划结果;若机器人初始位置所在栅格与最终得到的单元的集合首端栅格不同,则将机器人初始位置所在栅格添加到集合首端栅格之前。
10.一种基于合成单元的牛耕式全覆盖路径规划装置,其特征在于,包括一个或多个处理器,用于实现权利要求1~9中任一项所述的一种基于合成单元的牛耕式全覆盖路径规划方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210946915.6A CN115014362B (zh) | 2022-08-09 | 2022-08-09 | 一种基于合成单元的牛耕式全覆盖路径规划方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210946915.6A CN115014362B (zh) | 2022-08-09 | 2022-08-09 | 一种基于合成单元的牛耕式全覆盖路径规划方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115014362A true CN115014362A (zh) | 2022-09-06 |
CN115014362B CN115014362B (zh) | 2022-11-15 |
Family
ID=83066208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210946915.6A Active CN115014362B (zh) | 2022-08-09 | 2022-08-09 | 一种基于合成单元的牛耕式全覆盖路径规划方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115014362B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185303A (zh) * | 2022-09-14 | 2022-10-14 | 南开大学 | 用于国家公园及自然保护地的无人机巡护路径规划方法 |
CN115857516A (zh) * | 2023-03-02 | 2023-03-28 | 之江实验室 | 结合牛耕式运动与遗传算法的全覆盖路径规划方法和装置 |
CN116048069A (zh) * | 2022-12-19 | 2023-05-02 | 香港中文大学(深圳) | 一种基于gps定位的室外全覆盖路径规划方法及机器人 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006081816A1 (de) * | 2005-02-05 | 2006-08-10 | Tomtom Work Gmbh | Verfahren und vorrichtung zur routenplanung |
US20110025554A1 (en) * | 2009-08-03 | 2011-02-03 | Bailey David A | Method for a deeper search in a time-limited image satellite planning environment |
US8972057B1 (en) * | 2013-01-09 | 2015-03-03 | The Boeing Company | Systems and methods for generating a robotic path plan in a confined configuration space |
WO2016045618A2 (zh) * | 2014-09-25 | 2016-03-31 | 苏州宝时得电动工具有限公司 | 自动行走设备及其路径规划方法 |
CN109459052A (zh) * | 2018-12-28 | 2019-03-12 | 上海大学 | 一种扫地机全覆盖路径规划方法 |
CN110134121A (zh) * | 2019-04-23 | 2019-08-16 | 浙江工业大学 | 一种移动充电器的最优路径规划方法 |
CN110375759A (zh) * | 2019-07-15 | 2019-10-25 | 天津大学 | 基于蚁群算法的多机器人路径规划方法 |
CN113219975A (zh) * | 2021-05-08 | 2021-08-06 | 珠海市一微半导体有限公司 | 一种路线优化方法、路径规划方法、芯片及机器人 |
CN113281993A (zh) * | 2021-05-11 | 2021-08-20 | 北京理工大学 | 一种贪心k-均值自组织神经网络多机器人路径规划方法 |
CN114397889A (zh) * | 2021-12-22 | 2022-04-26 | 深圳市银星智能科技股份有限公司 | 基于单元分解的全覆盖路径规划方法及相关设备 |
CN114494329A (zh) * | 2022-04-15 | 2022-05-13 | 之江实验室 | 用于移动机器人在非平面环境自主探索的导引点选取方法 |
-
2022
- 2022-08-09 CN CN202210946915.6A patent/CN115014362B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006081816A1 (de) * | 2005-02-05 | 2006-08-10 | Tomtom Work Gmbh | Verfahren und vorrichtung zur routenplanung |
US20110025554A1 (en) * | 2009-08-03 | 2011-02-03 | Bailey David A | Method for a deeper search in a time-limited image satellite planning environment |
US8972057B1 (en) * | 2013-01-09 | 2015-03-03 | The Boeing Company | Systems and methods for generating a robotic path plan in a confined configuration space |
WO2016045618A2 (zh) * | 2014-09-25 | 2016-03-31 | 苏州宝时得电动工具有限公司 | 自动行走设备及其路径规划方法 |
CN109459052A (zh) * | 2018-12-28 | 2019-03-12 | 上海大学 | 一种扫地机全覆盖路径规划方法 |
CN110134121A (zh) * | 2019-04-23 | 2019-08-16 | 浙江工业大学 | 一种移动充电器的最优路径规划方法 |
CN110375759A (zh) * | 2019-07-15 | 2019-10-25 | 天津大学 | 基于蚁群算法的多机器人路径规划方法 |
CN113219975A (zh) * | 2021-05-08 | 2021-08-06 | 珠海市一微半导体有限公司 | 一种路线优化方法、路径规划方法、芯片及机器人 |
CN113281993A (zh) * | 2021-05-11 | 2021-08-20 | 北京理工大学 | 一种贪心k-均值自组织神经网络多机器人路径规划方法 |
CN114397889A (zh) * | 2021-12-22 | 2022-04-26 | 深圳市银星智能科技股份有限公司 | 基于单元分解的全覆盖路径规划方法及相关设备 |
CN114494329A (zh) * | 2022-04-15 | 2022-05-13 | 之江实验室 | 用于移动机器人在非平面环境自主探索的导引点选取方法 |
Non-Patent Citations (3)
Title |
---|
ZHENCHAO WANG; HAIBIN DUAN; XIANGYIN ZHANG: "An Improved Greedy Genetic Algorithm for Solving Travelling Salesman Problem", 《2009 FIFTH INTERNATIONAL CONFERENCE ON NATURAL》 * |
孔令夷: "混沌遗传算法寻优有约束旅行商路径", 《微电子学与计算机》 * |
李维维,李建东: "栅格环境下机器人导航路径的双种群蚁群规划", 《机械设计与制造》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185303A (zh) * | 2022-09-14 | 2022-10-14 | 南开大学 | 用于国家公园及自然保护地的无人机巡护路径规划方法 |
CN116048069A (zh) * | 2022-12-19 | 2023-05-02 | 香港中文大学(深圳) | 一种基于gps定位的室外全覆盖路径规划方法及机器人 |
CN116048069B (zh) * | 2022-12-19 | 2023-12-26 | 香港中文大学(深圳) | 一种基于gps定位的室外全覆盖路径规划方法及机器人 |
CN115857516A (zh) * | 2023-03-02 | 2023-03-28 | 之江实验室 | 结合牛耕式运动与遗传算法的全覆盖路径规划方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115014362B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115014362B (zh) | 一种基于合成单元的牛耕式全覆盖路径规划方法和装置 | |
CN108413963B (zh) | 基于自学习蚁群算法的条形机器人路径规划方法 | |
CN109459026B (zh) | 一种多运动体协同全覆盖路径规划方法 | |
CN110361017B (zh) | 一种基于栅格法的扫地机器人全遍历路径规划方法 | |
EP3201709B1 (en) | Method and system for determining a path of an object for moving from a starting state to an end state set avoiding one or more obstacles | |
CN111176286B (zh) | 一种基于改进D*lite算法的移动机器人路径规划方法及系统 | |
CN110231824B (zh) | 基于直线偏离度方法的智能体路径规划方法 | |
Hameed et al. | Driving angle and track sequence optimization for operational path planning using genetic algorithms | |
CN107037827B (zh) | 无人机航空作业任务分配与航迹规划联合优化方法及装置 | |
CN110006429A (zh) | 一种基于深度优化的无人船航迹规划方法 | |
Harabor et al. | Hierarchical path planning for multi-size agents in heterogeneous environments | |
US20200125115A1 (en) | Methods and systems of distributing task regions for a plurality of cleaning devices | |
CN110196602A (zh) | 目标导向集中优化的快速水下机器人三维路径规划方法 | |
CN109214596B (zh) | 求取具有方向约束和障碍限制的栅格最短路径规划方法 | |
CN113110520A (zh) | 一种多智能优化并行算法的机器人路径规划方法 | |
CN111580514A (zh) | 基于联合编队的移动机器人最优路径覆盖方法 | |
Garcia et al. | GPU-based dynamic search on adaptive resolution grids | |
CN106204719B (zh) | 基于二维邻域检索的三维场景中海量模型实时调度方法 | |
Pivtoraiko et al. | Differentially constrained motion replanning using state lattices with graduated fidelity | |
CN113703488A (zh) | 基于改进蚁群算法的多架次作业植保无人机路径规划方法 | |
CN113649206A (zh) | 一种用于船体建造喷漆的轨迹生成优化方法 | |
De Berg et al. | Shortest path queries in rectilinear worlds | |
Zhao et al. | Complete coverage path planning scheme for autonomous navigation ROS-based robots | |
Xu et al. | Research on global path planning algorithm for mobile robots based on improved A | |
CN113791610B (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 |