一种清扫机器人全覆盖遍历路径规划算法的设计方法

文档序号:10561815阅读:558来源:国知局
一种清扫机器人全覆盖遍历路径规划算法的设计方法
【专利摘要】本发明公开了一种清扫机器人全覆盖遍历路径规划算法的设计方法,它具体包括以下主要过程:利用Standard混沌方程生成矩形区域内的遍历清扫轨迹,矩形子区域分解,矩形迭代子区域的构造,最优子区域衔接路径的构造,矩形过渡子区域和重复子区域的构造,最优全覆盖遍历清扫连通图的构造,迭代子区域的自动衔接,可行区域内的全覆盖遍历清扫任务实现。本发明算法重复率低,覆盖率高,不存在清扫盲区;算法规划效率高,不需要确定起点和终点;算法简单,容易实现。本发明能够很好地满足机器人室内清扫并实现全覆盖遍历路径规划的任务。
【专利说明】
一种清扫机器人全覆盖遍历路径规划算法的设计方法
技术领域
[0001] 本发明涉及一种移动机器人路径规划方法,具体地说是一种清扫机器人全覆盖遍 历路径规划算法的设计方法,属于机器人路径规划技术领域。
【背景技术】
[0002] 随着经济建设的飞速发展和现代人生活节奏的加快,越来越多的人希望从繁重的 家务劳动中解脱出来,智能化清扫机器人的出现正好满足了这种需求。清扫机器人在室内 环境下运动,实现清扫、避障、路径规划等功能,这里尤其涉及到一项关键技术一一全覆盖 遍历路径规划算法,随着人工智能控制技术的发展和智能服务机器人的广泛应用,目前这 项技术已经得到了深入研究。
[0003] 全覆盖路径规划是指机器人以尽可能低的重复率遍历环境中的全部无障区,其目 标是在封闭区域内实现最大覆盖率和最小重复率的行走路径。目前已经涌现出了很多相关 算法。按照对环境的了解程度,全覆盖路径规划可分为两类:无环境模型的规划和基于环境 模型的规划。环境未知情况下主要采用随机算法。随机算法不需要进行规划,所需的硬件设 备的成本低,易实现,目前在大部分的家用清扫机器人里面仍旧使用。缺点在于重复率高, 效率低。不基于地图的非随机移动策略均有不同程度的盲目性,难以提高覆盖效率。为了提 高规划效率,大部分研究工作首先进行未知环境的地图重构,将未知环境转换为已知环境 进行路径规划。因此目前已知环境下的路径规划算法研究较多。
[0004] 已知环境下基于地图的全覆盖路径规划包括环境建模和路径搜索策略两个子问 题。环境建模方法主要有势场栅格表示法、可视图法和拓扑图法等。势场栅格表示法是将运 行区域划分为大致与机器人等大的小栅格,然后将根据机器人周围环境的状态对栅格进行 赋值。常用的基于赋值栅格的搜索算法有Yang.S.X和Meng.M提出的基于生物激励神经网络 算法,算法将房间划分成的小栅格作为一个神经元,通过生物激励神经网络模型的动力学 激励公式来判断栅格的激励值大小。该算法的缺陷是随着环境规模的增大,存储栅格信息 的空间也相应增大,路径规划的计算复杂程度也随之增大。杜元源等在发明专利"一种应用 于扫地机器人的改进势场栅格法"(专利号:CN201510701062 .X)中,结合牛耕式全覆盖路径 规划算法使机器人在已知环境中规划出全局清扫路径,用以减少路径死节点与清扫盲点。 可视图建模方法中经典的搜索算法是Neumann de Carvalho R等提出的模板法。模板法将 机器人的行为划分为多种固定的模板,根据实际位置选择合适的模板,最后实现路径的遍 历。此算法有利于编程,但机器人对环境的识别能力应较高,不适合较为复杂的环境。基于 拓扑图模型常用的搜索算法是区域分解法。这种方法将机器人所要遍历的区域根据环境中 的障碍物或其它方法分为若干子区域,通过对各子区域的遍历实现对整个区域的遍历。这 种思想在很大的程度上降低了全局覆盖实现的难度,因此对区域分解法的研究是近年来的 主要趋势。
[0005] 区域分解法主要研究三方面的内容:目标区域的分解、子区域衔接和区域分解后 子区域内的遍历方法。对目标区域进行分解是区域分解法的第一步骤,分解的结果直接影 响各子区域间的衔接和各子区域内的遍历。因此目标区域的分解是至关重要的一步,也是 目前研究的较多而且较成熟的一个方面。区域分解算法主要有Latombe提出的Trapezoidal (梯形)分解法和Howie Choset提出的Boustrophedon(牛耕式)算法。Trapezoidal算法将环 境分解为梯形块,在单个分块中机器人通过往返移动来进行遍历。Boustrophedon算法是 Trapezoidal算法的改进,其目的是减少由于分块过多而造成的重复遍历。在此基础上衍生 出许多其他的算法。Wes I ey H Huang提出了线扫法,把"水平切割线"改为"任意倾角切割 线",把减少转弯次数即子区域总高度作为确定倾角的目标。田春颖等提出了矩形分解算 法,对环境中的障碍物实行矩形化建模。在子区域分割工作完成之后,面临的就是子区域衔 接问题了。目前普遍用到的方法是将子区域中心点抽象出来,构造成求解旅行商问题的优 化连通图。求解方法有连续Hopfield人工神经网络,状态树搜索算法等。这些算法随着子区 域的变大,不能保证搜索全覆盖距离最短。单元分解后子区域内的遍历方法有随机算法、梳 状遍历和螺旋收缩式。随机算法最简单,但不能保证全覆盖,覆盖效率也较低。梳状遍历会 留有由障碍物遮挡引起的未覆盖区域,障碍物越多,未覆盖区域就越多。螺旋收缩式的优点 是可以走非矩形螺旋,缺陷是会留有未覆盖的区域,即陷入某个螺旋旋涡出不来,最终按结 束条件停止行进。
[0006] 基于区域分解的机器人全覆盖路径规划的方法可以将复杂的问题简单化,其中区 域分解法已经相对成熟,但是子区域的衔接和子区域内部的遍历的研究仍处于初级阶段, 子区域衔接算法复杂,子区域内的遍历区域存在重复遍历、盲区等问题。针对这些情况,设 计一个切实可行、易于工程实现和具有较优覆盖效率的的移动机器人全覆盖路径规划算 法,具有重要的理论研究意义和社会应用价值。

【发明内容】

[0007] 针对现有技术的不足,本发明提出一种清扫机器人全覆盖遍历路径规划算法的设 计方法,能够使清扫机器人遍历区域重复率低、覆盖率高且不存在清扫盲区,并且满足清扫 机器人在室内清扫实现全覆盖遍历任务。
[0008] 本发明解决其技术问题采取的技术方案是:一种清扫机器人全覆盖遍历路径规划 算法的设计方法,具体包括以下步骤:
[0009] 步骤一:选择Standard混纯方程及其仿射变换产生矩形区域内的遍历清扫轨迹; [0010]步骤二:将一个含有矩形障碍物的封闭清扫环境采用多条平行分割线沿着障碍物 和清扫环境边缘对可行清扫区域进行分割,并把机器人可行清扫区域划分成若干个矩形子 区域S x,其中下标X表示各个子区域的编号;
[0011] 步骤三:根据各个矩形子区域之间的邻接关系将矩形子区域Sx组合为若干个矩形 迭代子区域Sb,其中z表示矩形迭代子区域的编号,所有的迭代子区域组合为整个可行清 扫区域,并求出各个迭代子区域Sb内的Standard仿射变换方程;因此对整个可行清扫区域 的清扫就分解为对各个迭代子区域的清扫;
[0012] 步骤四:将矩形迭代子区域S1^根据相邻关系勾画出可遍历空间的连通路,然后根 据连通路求出最优子区域衔接路径;
[0013] 步骤五:根据最优子区域衔接路径中矩形迭代子区域的邻接关系,构造出相邻 矩形迭代子区域S1^之间的矩形过渡子区域ST_Z和重复子区域Sc lz,其中z表示矩形迭代子区 域的编号,并求出各个矩形过渡子区域St_z内的Standard仿射变换方程;
[0014] 步骤六:将矩形过渡子区域ST_Z和重复子区域Sclz插入到所求出的最优子区域衔接 路径中,产生全覆盖遍历连通图;
[0015] 步骤七:根据全覆盖遍历连通图中矩形迭代子区域的邻接关系,利用矩形过渡子 区域ST_Z、重复子区域Sc lz和矩形过渡子区域ST_Z内的Standard仿射变换所产生的遍历轨迹, 进行矩形迭代子区域的自动衔接;当机器人遍历完一个迭代子区域,通过重复子区域Sc lz和 过渡子区域ST_zg动衔接到下一个迭代子区域,直到所有迭代子区域遍历完成为止;
[0016] 步骤八:根据全覆盖遍历连通图设计清扫机器人全覆盖遍历程序的流程图,用以 实现机器人遍历清扫任务;在可行清扫区域内,初始化清扫机器人的起点以及清扫一次所 需要的总的迭代次数,选择清扫方向为顺时针或逆时针迭代,然后根据全覆盖遍历连通图 中的迭代顺序以及流程图程序,利用Standard仿射变换产生的轨迹依次实现各个矩形子区 域内的遍历清扫,以及子区域的自动衔接,直至整个遍历清扫任务完成。
[0017] 进一步地,在步骤一中,Standard混纯方程是一个简单的二维动力学方程,控制简 单,只有一个参数K,根据参数的调整可以控制方程的混沌特性,Standard混沌方程的离散 化形式表示为:
[0019] 式中,(xn,yn)为清扫机器人全覆盖遍历路径的运行轨迹坐标,K为混纯状态参数。
[0020] 进一步地,当K = S时,系统处于混沌状态,所生成的轨迹是一个吸引子,局限在一 个有限区域内,此时系统具有最大的Lyapunov指数为2.0862,根据混沌方程特性判断,此时 系统具有最好的随机特性和拓扑遍历特性,因此本申请取K = 8,
[0021] 当K = 8时方程(1)的映射方程为:
[0023]在方程(2)中,随机给定一个初始值(XQ,yQ),可以求出它任意时刻的迭代值(χ η, yn);方程⑵中后面两个式子将时间序列的坐标U,yn)对2π进行取余运算,两个坐标的范 围都限定在了[0 2JT]之间,因此时间序列(Xn,yn)被限定在了一个矩形区域[0-23t;0-2jt]内。 [0024]通过仿射变换将清扫机器人全覆盖遍历路径的运行轨迹( Xn,yn)映射到一个任意 大小的矩形区域内,仿射变换方程为:
[0026]其中,(a,b)是平移变换,(c,d)是比例变换,(χη,yn)是清扫机器人清扫轨迹点的坐 标,将时间序列中所有相邻的轨迹点U,yn)和(Hyn)依次连接起来就形成了机器人矩 形区域内的遍历清扫轨迹。Standard混沌方程不仅具有类似于随机信号的随机性、均匀性 等分布特性,因为轨迹是根据方程迭代产生的,相对于随机信号而言,还具有确定性,可以 被设计者所控制。另外,混沌状态下的Standard方程还具有拓扑遍历特性,在运行的矩行区 域内是满映射,因此可以保证在经过仿射变换后的矩形区域内,完成全覆盖遍历清扫任务。 [0027] 进一步地,在步骤二中,Standard混沌方程所产生的清扫轨迹是一个吸引子,分布 在一个有限的矩形区域内,通过仿射变换映射到任意大小的矩形区域内,从而将含有矩形 障碍物的封闭清扫环境划分为若干个矩形子区域。因为Standard方程所生成的轨迹是一个 吸引子,分布在一个有限的矩形区域内,利用这个特点和基于综合考虑的目的,子区域分解 和子区域衔接方法都要利用矩形区域进行构造。Standard方程可以通过仿射变换映射到任 意大小的矩形区域内,将含有矩形障碍物的封闭清扫环境划分为若干个矩形子区域,方便 Standard方程在矩形区域内运行。沿着障碍物和清扫环境边缘进行划分,是为了机器人在 进行子区域衔接时,避免与障碍物和清扫区域边缘碰撞。
[0028] 进一步地,在步骤三中,清扫机器人将各个矩形迭代子区域S1^遍历完后,就实现 了整个空间的遍历清扫任务;
[0029] 按照矩形子区域Sx的排列顺序从上到下(或从下到上)合并或者从左到右合并或 者从下到上(或从右到左)合并矩形子区域S x构造矩形迭代子区域S1^,如果按照上述两种 顺序构造出的个数相同,选择其中一个即可,否则则选择矩形迭代子区域个数最少 的那个构造顺序来构造矩形迭代子区域;
[0030] 构造迭代子区域所要遵循的构造原则是:
[0031] (a)最大原则,每个迭代S1^区域要尽量的大,即S1^中所包含的S x个数要尽量的 多;
[0032] (b)最少原则,构造完成的个数要尽量的少;
[0033] (c)所有的迭代子区域SLz不重叠;
[0034] (d)所有的SLz合起来为整个可行清扫区域;
[0035] (e)迭代子区域SLz为矩形。
[0036] 上述构造原则保证机器人能够高效地完成可行清扫区域的遍历。规则(a)和(b)的 目标是一致的,都是为了减少判断次数,从而减少子区域衔接次数,提高规划效率。规则(C) 是为了不重复遍历。规则(d)是为了机器人能够无遗漏地遍历整个可行区域。规则(e)是为 了方便Standard方程实现在矩形子区域内的迭代,产生迭代清扫轨迹。
[0037]进一步地,在步骤四中,最优子区域衔接路径的选择要满足以下条件:
[0038] (a)为了不遗漏的遍历所有区域,环路中必须包含每个迭代子区域;
[0039] (b)环路中包含的每个子区域的个数最少,从而减少重复遍历。
[0040] 进一步地,在步骤五中,重复子区域Sclz位于矩形迭代子区域S1^中,由所在的矩形 迭代子区域S 1^内的矩形子区域Sx合并组成,每个重复子区域Sclz中所选的矩形子区域S x个 数要尽量的多,即合并后的重复子区域Sclz要尽量的大,目的是为了减少转移判断次数,从 而减少子区域衔接时间;过渡子区域St_ z由两个相邻矩形迭代子区域S1^之间的重复子区域 So_z组成。
[0041] 因为要利用Standard混沌方程在这两种区域内实现子区域自动衔接,因此要求矩 形迭代子区域ST_ Z和重复子区域Sclz是矩形。
[0042] 进一步地,在步骤七中,机器人遍历完一个迭代子区域自动衔接到下一个迭代子 区域的具体步骤为:
[0043] (a)当前矩形迭代子区域S1^内执行Standard混沌方程迭代运算,产生清扫轨迹, 直至矩形迭代子区域清扫任务完成;
[0044] (b)当前矩形迭代子区域S1^执行一次Standard混沌方程迭代运算,生成过渡轨 迹;
[0045] (c)判断步骤(b)中生成的过渡轨迹是否进入其中的重复子区域So_z,如果进入其 中的重复子区域Sc lz继续以下操作,否则转到步骤(b);
[0046] (d)当前重复子区域Sclz所在的过渡子区域ST_JA行一次Standard混沌方程迭代运 算,生成过渡轨迹;
[0047] (e)判断步骤(d)中生成的过渡轨迹是否进入过渡子区域ST_Z所包含的另一个重复 子区域Sc lz中,如果是则继续以下操作,否则转到步骤(d);
[0048] (f)进入到当前重复子区域Sclz所在的迭代子区域S1^,实现自动衔接。在迭代子区 域内执行Standard方程,产生遍历清扫轨迹,实现子区域遍历清扫任务。
[0049] 执行一次迭代子区域自动衔接,每个迭代子区域S1^转移到其中的重复子区域Sclz 中的转移概率为:
[0051]每个迭代子区域ST_Z转移到所包含的另一个重复子区域Sclz中的转移概率为:
[0053]从式(4)和式(5)可以看出,重复子区域Sclz越大,转移概率越大,因此尽量增大重 复子区域Sclz来减少判断次数,从而减少衔接时间、提高规划效率。
[0054]自动衔接一次所需要的判断次数大约为:
[0056]判断次数与迭代子区域S1^内的迭代次数无关。当可行区域内的迭代次数较大时, 自动衔接次数可以忽略不计。通过计算出所有的转移概率,可以推断出执行一次清扫任务 所需要的大概判断次数。
[0057] 进一步地,在步骤八中,设置整个区域清扫一次的总的迭代步数N,根据面积大小 求出每个迭代子区域S1^所需要的迭代步数n,选择清扫方向为顺时针或逆时针迭代,在可 行清扫区域内选择一个随机点为起点,确定所在的迭代子区域S 1^,根据全覆盖遍历连通图 中的迭代顺序以及流程图程序,利用Standard仿射变换产生的轨迹依次实现各个矩形子区 域内的遍历清扫,以及各个子区域的自动衔接,直至所有迭代子区域的遍历完成。
[0058] 本发明的有益效果如下:本发明将子区域分解、子区域衔接和子区域内的遍历方 法综合考虑进行设计,采用具有拓扑遍历和随机特性的混沌Standard方程进行矩形子区域 内的仿射变换,生成迭代清扫轨迹,完成子区域内的遍历清扫和子区域自动衔接的任务;混 沌状态下的Standard方程,具有拓扑遍历特性和随机特性,在运行区域内是满映射,因此可 以很好地完成子区域内的全覆盖遍历清扫任务和子区域的自动衔接;由矩形子区域构造矩 形迭代子区域、过渡子区域和重复子区域,形成最优全覆盖遍历清扫连通图,子区域过渡不 需要设计起点和终点,可以自动衔接。
[0059]相比于传统的设计方法,本发明算法重复率低,覆盖率高,不存在清扫盲区;算法 规划效率高,子区域衔接由Standard方程根据初始值迭代产生,不需要确定起点和终点;算 法简单,容易实现。本发明能够很好地满足机器人室内清扫并实现全覆盖遍历路径规划的 任务。
【附图说明】
[0060]图1为本发明的方法流程图;
[0061] 图2为Standard混纯方程迭代轨迹(迭代次数η = 1000)示意图;
[0062]图3为Standard混沌方程仿射变换后的迭代轨迹示意图;
[0063] 图4为Standard混沌方程所产生的清扫轨迹(迭代次数η = 1000时)示意图;
[0064] 图5为Standard混沌方程所产生的清扫轨迹(迭代次数η = 5000时)示意图;
[0065]图6为Standard混沌方程对初始值的敏感特性(迭代次数η = 20)示意图;
[0066]图7为初始值为(XQ,yQ) = (2,2)的迭代轨迹(迭代次数η= 1000时)示意图;
[0067]图8为清扫环境示例图;
[0068]图9为矩形子区域Sx划分示意图;
[0069] 图10为矩形迭代子区域的构造(从上到下)示意图;
[0070] 图11为矩形迭代子区域的构造(从左到右)示意图;
[0071] 图12为矩形迭代子区域连通图的示意图;
[0072] 图13为最优子区域衔接路径的示意图;
[0073] 图14为最优全覆盖遍历清扫连通图的示意图;
[0074]图15为迭代子区域自动衔接流程图;
[0075]图16为两个迭代子区域内的遍历清扫及自动衔接路径(迭代次数η = 20)的示意 图;
[0076]图17为两个迭代子区域内的遍历清扫及自动衔接路径(迭代次数η = 40)的示意 图;
[0077]图18为全覆盖遍历清扫流程图;
[0078]图19为全覆盖遍历清扫轨迹(迭代步数N=500)的示意图;
[0079]图20为全覆盖遍历清扫轨迹(迭代步数N=3000)的示意图。
【具体实施方式】
[0080]为能清楚说明本方案的技术特点,下面通过【具体实施方式】,并结合其附图,对本发 明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结 构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以 在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示 所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例 绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
[0081] 针对清扫移动机器人全覆盖遍历路径规划,基于区域分解算法中存在的子区域衔 接算法复杂、子区域内遍历存在清扫盲点等问题,提出了一种将子区域分解、子区域衔接和 子区域内的遍历清扫相结合进行综合设计的方法。子区域内的遍历清扫轨迹由混纯 Standard方程产生。因为Standard方程所产生轨迹的范围分布在一个有限的矩形区域内, 因此需要将含有矩形障碍物的可行清扫区域分解为矩形子区域,子区域衔接也通过矩形区 域内Standard方程所产生的迭代轨迹完成。由矩形子区域构造矩形迭代子区域、过渡子区 域和重复子区域,形成最优全覆盖遍历清扫连通图。与一般区域分解构造方法相比,这种综 合的设计方法重复率低、覆盖高率高,子区域过渡不需要设计起点和终点,可以自动衔接, 子区域内遍历不存在覆盖盲区,能够保证全区域遍历。
[0082] 如图1所示,本发明的一种清扫机器人全覆盖遍历路径规划算法的设计方法,它具 体包括以下步骤:
[0083 ] 1、利用Standard混纯方程生成矩形区域内的遍历清扫轨迹
[0084] Standard方程是一个简单的二维动力学方程,控制简单,只有一个参数K,根据参 数的调整可以控制方程的混沌特性。它的离散化形式为:
[0086]当K = S时,系统处于混沌状态,所生成的轨迹是一个吸引子,局限在一个有限区域 内。此时系统具有最大的Lyapunov指数为2.0862,根据混沌方程特性判断,此时系统具有最 好的随机特性和拓扑遍历特性,因此这里取K = 8时的映射方程:
[0088]在上述方程中,随机给定一个初始值(XQ,y〇),可以求出它任意时刻的迭代值(Xn, yn)。方程中后面两个式子把时间序列的坐标(Xn,yn)对231进行取余运算,两个坐标的范围都 限定在了 [0-231]之间,因此时间序列(Xn,yn)被限定在了一个矩形区域[0-231;0-231]内。图2 画出了初始值(XQ,yo) = (0.5,0.5),迭代次数η = 1000 时的迭代轨迹。从图中可以看出,轨迹 点具有与随机信号类似的均匀特性、随机特性等分布特性,变量值(xn,yn)被限制在[0-2JT; 0-2JI]的一个矩形区域内,迭代轨迹点是有界的。
[0089]可以通过仿射变换,将(Xn,yn)的运行轨迹映射到一个任意大小的矩形区域内:
[0091]其中(a,b)是平移变换,(c,d)是比例变换。例如当(a,b) = (0,0),(c,d) = (100/2 π,100/231)时,轨迹映射到了 [0-100 ; 0-100]区域内,图3画出了将图2中的运行轨迹经过仿 射变换后的结果。图形中每一个(Xn,y n)即是所求的清扫轨迹点,将所有相邻的轨迹点(Xn, yn)和(Xn-Un-i)依次连接起来就形成了机器人矩形区域内的的遍历清扫轨迹。如图4所示 中的直线,是迭代1000次时的清扫轨迹。清扫轨迹没有死角,可以遍历每个角落。并且迭代 次数越多,轨迹分布越均匀,清扫效果越好,如图5所示,是清扫5000次时的效果图。
[0092]混沌状态下的Standard方程对初始值具有敏感特性。初始值只要有微小的差异, 就能够产生两条完全不同的清扫轨迹。如图6所示,小圆圈为起点,实线和虚线为产生的迭 代轨迹,迭代次数η = 20。初始值分别为(XQ,yo) = (0.5,0.5)和(XQ,yo) = (0.500001, 0.500001 ),相差仅有0.000001,仅仅经过有限次迭代,就可以产生两条完全不同的迭代轨 迹。说明方程具有非常好的敏感特性,有利于机器人产生随机性能好的清扫路径。
[0093] Standard混纯方程虽然对初始值具有敏感特性,但是初始值的选择,不影响清扫 轨迹的整体分布特性。如图7所示,初始值为(XO,yo ) = ( 2,2 ),迭代次数η = 1000时的迭代轨 迹点,与图2所示轨迹点分布情况区别不大,因此可以随机选择清扫初始值。
[0094] 从以上图形中可以看出,Standard混沌方程不仅具有类似于随机信号的随机性、 均匀性等分布特性,因为轨迹是根据方程迭代产生的,相对于随机性而言,还具有确定性, 可以被设计者所控制。另外,混沌状态下的Standard方程还具有拓扑遍历特性,在运行的矩 行区域内是满映射,因此可以保证在经过仿射变换后的矩形区域内,完成全覆盖遍历清扫 任务。
[0095] 2、矩形子区域分解
[0096] 在一个含有矩形障碍物的封闭清扫环境内,采用多条平行分割线沿着障碍物和清 扫环境边缘,对可行区域进行分割,把机器人可行区域划分成若干个矩形子区域S x,下标X 表不各个子区域的编号。
[0097] 例如在一个10 X 10的清扫环境内,有两个矩形障碍物,用深灰色表示,大小分别为 3X3、3X2,分别位于平面内左下标为(2,5)和(6,1)的位置,如图8所示。对平面内的空白区 域按照上述方法进行矩形子区域分割,结果如图9所示。分割后形成了 23个矩形子区域Sx, 分别记为:Sa~Sw,下标a~w为区域编号。
[0098] 3、矩形迭代子区域的构造
[0099]将矩形子区域Sx,根据它们之间的邻接关系,构造矩形迭代子区域SluZ表示所构 造的子区域编号。所有的迭代子区域组合为整个可行区域。机器人将各个子区域Sb遍历完 后,就实现了整个空间的遍历清扫任务。求出各个迭代子区域Sb内的Standard仿射变换方 程,产生子区域内的清扫覆盖轨迹。
[0100] 迭代子区域的构造顺序有两种,按照矩形子区域Sx的排列顺序,可以从上到下 (从下到上),或从左到右(从右到左)合并矩形子区域S x。如果按照这两种顺序构造出的S1^ 个数相同,则说明两种方法的构造效果相同,选择其中一个即可。如果结果不同,则选择S 1^ 个数最少的那个构造顺序。
[0101] 构造迭代子区域所要遵循的构造原则是:
[0102] (a)最大原则。每个迭代S1^区域要尽量的大,即S1^中所包含的S x个数要尽量的 多;
[0103] (b)最少原则。构造完成的个数要尽量的少;
[0104] (C)所有的迭代子区域SLz不重叠;
[0105] (d)所有的SLz合起来为整个可行区域;
[0106] (e)迭代子区域SLz为矩形。
[0107] 上述构造原则是为了保证机器人能够高效地完成可行区域的遍历。规则(a)和(b) 的目标是一致的,都是为了减少判断次数,从而减少子区域衔接次数,提高规划效率。规则 (c)是为了不重复遍历。规则(d)是为了机器人能够无遗漏地遍历整个可行区域。规则(e)是 为了方便Standard方程实现在矩形子区域内的迭代,产生迭代清扫轨迹。
[0108] 将图9所示的矩形子区域Sx按照上述构造原则,依据从上到下的顺序所构造的矩 形迭代子区域Sl_j#果如图 10所不,分别为Sl_abcde、Sl_ghilmn、Sl_f、Sl」k、Sl_r、Sl_Qpq、Sl_stuvw 七 个迭代子区域,其中S^abcde由矩形子区域53^二、5(1、3 (3组成,其他迭代子区域的组成根据 下标依次类推,这里不再赘述。依据从左到右的顺序所构造的矩形迭代子区域S 1^结果如图 I 1 所不,分别为Sl_af jos、Sl_bcde、Sl_ghi、Sl_klpqtu、Sl_mn、Sl_r、Sl_vw七个迭代子区域。因为两种方 法构造的迭代子区域个数相同,因此两种方法的构造效果是相同的,选用其中一种即可。这 里选用图10中所示的从上到下的构造顺序。
[0109] 图10中的七个迭代子区域的仿射变换参数[a b c d]分别如下:
[0110] Si_ abode : [0 8 10/2312/231];
[0111] Sl_ghilmn:[5 4 5/2314/231];
[0112] Si_f:[0 5 2/2313/231 ];
[0113] Si」k:[0 4 5/2311/231];
[0114] Si_r:[8 I 2/2313/231 ];
[0115] Si-_:[0 I 6/23t3/2jt];
[0116] Si_stuvw:[0 0 10/23Tl/23i]〇
[0117] 4、最优子区域衔接路径的构造
[0118] 将所构造的矩形迭代子区域S1^,根据相邻关系勾画出可遍历空间的连通路,然后 根据连通路,从中选出最优子区域衔接路径。
[0119]最优子区域衔接路径的选择要满足以下条件:
[0120] (a)为了不遗漏的遍历所有区域,环路中必须包含每个迭代子区域;
[0121] (b)环路中包含的每个子区域的个数最少,从而减少重复遍历。
[0122] 根据图10中的构造结果,画出七个相邻的矩形迭代子区域Si^的连接关系,如图12 所示。图中实线箭头表示顺时针方向相邻连接,虚线箭头表示逆时针方向相邻连接。在图12 中,按照单一方向(顺或逆),共有六个联通环路,其中符合要求的只有一条,如图13所示。因 此图13所选的环路为最优子区域衔接路径。
[0123] 5、矩形过渡子区域和重复子区域的构造
[0124] 根据所求的最优子区域衔接路径中子区域S1^的邻接关系,构造相邻之间的矩 形过渡子区域ST_ Z和重复子区域Sclz,z表示所构造的子区域编号。这两个子区域的设置是为 了实现子区域的自动衔接。
[0125] 重复子区域Sclz位于迭代子区域S1^中,由所在的迭代子区域S1^内的矩形子区域 Sx合并组成。每个Sclz中所选的Sx个数要尽量的多,即合并后的Sc lz要尽量的大,目的是为了 减少转移判断次数,从而减少子区域衔接时间。过渡子区域3^由两个相邻迭代子区域S 1^ 之间的重复子区域Sclz组成。因为要利用Standard方程在这两种区域内实现遍历过渡,因此 要求是矩形D
[0126] 根据图13中矩形迭代子区域S1^的邻接关系,所求得矩形过渡子区域ST_4P重复子 区域下所示:
[01 27] Sl_abc(k和Sl ghilmn之间:过渡子区域为ST_cxleghilmn,重复子区域为Sci c^和Sci ghilmn;
[01 28] Sl ghilmn和Sl r之间:过渡子区域为ST_inr,重复子区域为Sci in和S〇_r ;
[0? 29] Si r和Sl stuvw之间:过渡子区域为ST_rw,重复子区域为Sci r和S〇_w;
[0130] Sl stuvw和Sl opq之间:过渡子区域为ST_〇pqstu,重复子区域为Sci opq和Sci stu;
[0131 ] Si_〇pq和Sijk之间:过渡子区域为St」-,重复子区域为Scijk和So_〇p;
[0132] Sijk和Si_f之间:过渡子区域为ST_fj,重复子区域为Scij和So_f;
[0133] Sl_f和Sl_abcde之间:过渡子区域为ST_af,重复子区域为Sci_f和S〇_aD
[0134] 所求得的七个矩形过渡子区域3^的仿射变换参数[a b c d]分别如下:
[0135] St-cdeghii随:[5 4 5/2ji6/2ji];
[0136] Sx_inr:[8 I 2/2ji7/2ji];
[0137] Sx_rw:[8 0 2/2ji4/2ji];
[0138] St- opqstu : [0 0 6/2π4/23τ];
[0139] STJk〇P:[0 I 5/2314/231 ];
[0140] Sx_fj:[0 4 2/2314/231 ];
[0141] Sx_af:[0 5 2/2315/231 ] 〇
[0142] 6、最优全覆盖遍历清扫连通图的构造
[0143] 将上述所构造的过渡子区域ST_Z和重复子区域Sclz插入到图13所求的最优衔接路 径中,产生最优全覆盖遍历清扫连通图,如图14所示。
[0144] 7、迭代子区域的自动衔接
[0145] 根据全覆盖遍历连通图中矩形迭代子区域的邻接关系,利用矩形过渡子区域ST_Z、 重复子区域Sc lz和矩形过渡子区域St_z内的Standard方程仿射变换所产生的遍历轨迹,实现 矩形迭代子区域的自动衔接。当机器人遍历完一个迭代子区域,通过重复子区域Sc lz和过渡 子区域ST_zg动衔接到下一个迭代子区域,直到所有迭代子区域遍历完成。
[0146] 子区域自动衔接步骤为:
[0147] (a)当前迭代子区域S1^内执行Standard方程迭代,产生清扫轨迹,直至子区域清 扫任务完成;
[0148] (b)当前迭代子区域SLz执行一次Standard方程迭代运算,生成过渡轨迹;
[0149] (c)判断轨迹是否进入其中的重复子区域SQ_Z。是的话继续以下操作,否则转移到 (b);
[0150] (d)进入当前重复子区域Sclz所在的过渡子区域ST_ Z,并在过渡子区域内执行一次 Standard方程迭代运算,生成过渡轨迹;
[0151] (e)判断轨迹是否进入ST_Z所包含的另一个重复子区域Sc lz中。是的话继续以下操 作,否则转移到(d);
[0152] (f)进入到当前重复子区域Sclz所在的迭代子区域S1^,实现自动衔接。在迭代子区 域内执行Standard方程,产生遍历清扫轨迹,实现子区域遍历清扫任务。
[0153] 迭代子区域S^abcde和Suihllmn之间的自动衔接流程图如图15所示。图形中"迭代"的 意思是利用Standard方程在本区域内进行仿射变换所产生的清扫迭代轨迹。
[0154] 执行一次子区域自动衔接,每个转移到其中的Sclz中的转移概率为:
[0156]每个ST_ZR移到所包含的另一个Sclz中的转移概率为:
[0158]从方程中可以看出,Sclz越大,转移概率越大,因此尽量增大Sclz可以减少判断次 数,从而减少衔接时间、提高规划效率。自动衔接一次所需要的判断次数大约为:
[0160]判断次数与迭代子区域S1^内的迭代次数无关。通过计算出所有的转移概率,可以 推断出执行一次清扫任务所需要的大概判断次数。
[0161 ]根据图15中自动衔接流程图所求出的转移概率为:
[0164]则从迭代子区域S1^bi自动衔接到SuihllW^需要的总的判断次数大约为4次。
[0166]依据以上方法可以求出可行区域内所需要的总衔接次数大约为32次。
[0167] 根据图15的自动衔接流程图,图16画出了迭代子区域Sl_abcde和Sl_ghilmn内的仿真遍 历清扫以及两个子区域的自动衔接轨迹。为了看清楚图形,选了较少的迭代次数。两个子区 域的迭代次数η = 20,起点(XQ,yο ) = ( 1,9)。图形中小圆圈内的点表示迭代起点,小方框内的 点表示迭代终点,小圆点表示迭代轨迹点,细实线表示所生成的迭代清扫轨迹,粗实线表示 子区域衔接时的判断和转移轨迹。从图16中可以看出来,经过3次判断就实现了迭代子区域 的自动衔接,并且子区域内的轨迹以及自动衔接轨迹都不与障碍物和工作区域边缘碰撞, 说明子区域衔接方法是可行、高效的,子区域分解方法是可行、安全的。为了对比,图17画出 了迭代40次的仿真结果,自动衔接判断次数只用了 4次。判断次数与子区域迭代次数无关。 当可行区域内的迭代次数较大时,自动衔接次数可以忽略不计。
[0168] 8、可行区域内的全覆盖遍历清扫任务实现
[0169] 在清扫区域内,设置整个区域清扫一次的总的迭代步数N,根据面积大小求出每个 子区域S1^所需要的迭代步数η。选择清扫的迭代方向为顺时针或逆时针迭代。在可行区域 内选择一个随机点,确定所在的迭代子区域S 1^,根据全覆盖遍历连通图中的迭代顺序,利 用Standard仿射变换产生的轨迹依次实现各个矩形子区域内的遍历清扫,以及各个子区域 的自动衔接,当所有迭代子区域的遍历完成后,则清扫任务完成。
[0170] 根据图14设计全覆盖遍历清扫程序流程图,如图18所示。这里选择顺时针迭代方 向,即实线箭头所指的遍历方向。设起点(x〇,y〇) = (1,9),位于子区域Si_abcxb内,因此从这个 区域开始整个可行区域的全覆盖遍历清扫任务。总的迭代次数N=500。根据面积大小依次 求出各个子区域内的迭代步数。根据图18所求得的运行仿真图形如图19所示。自动衔接次 数为18次。图形中各个符号的含义同图16和图17。图20为清扫次数N = 3000时的清扫轨迹, 自动衔接次数为21次。
[0171] 从图19和图20的仿真图形中可以看出,轨迹位于空白的可行区域内,不与障碍物 和工作区域边界交叉或碰撞,说明子区域分解、子区域衔接等算法是可行、安全的;清扫轨 迹充满整个可行区域,分布均匀,因此不存在清扫死脚、盲区,能够保证全覆盖遍历,覆盖率 高,重复率低,并且清扫次数越多,清扫效果越好。迭代可行区域的衔接不需要设计固定的 起点和终点,由Standard方程根据初始值迭代产生,因此可以实现可行区域的自动衔接,算 法简单。
[0172] 以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在 不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发 明的保护范围。
【主权项】
1. 一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征是,包括以下步骤: 步骤一:选择standard混纯方程及其仿射变换产生矩形区域内的遍历清扫轨迹; 步骤二:将一个含有矩形障碍物的封闭清扫环境采用多条平行分割线沿着障碍物和清 扫环境边缘对可行清扫区域进行分割,并把机器人可行清扫区域划分成若干个矩形子区域 Sx,其中下标X表示各个子区域的编号; 步骤三:根据各个矩形子区域之间的邻接关系将矩形子区域Sx组合为若干个矩形迭代 子区域,其中z表示矩形迭代子区域的编号,所有的迭代子区域组合为整个可行清扫区 域,并求出各个迭代子区域Si_z内的Standard仿射变换方程; 步骤四:将矩形迭代子区域根据相邻关系勾画出可遍历空间的连通路,然后根据连 通路求出最优子区域衔接路径; 步骤五:根据最优子区域衔接路径中矩形迭代子区域的邻接关系,构造出相邻矩形 迭代子区域之间的矩形过渡子区域ST_Z和重复子区域SQ_Z,其中z表示矩形迭代子区域的 编号,并求出各个矩形过渡子区域St_ z内的Standard仿射变换方程; 步骤六:将矩形过渡子区域ST_Z和重复子区域SQ_Z插入到所求出的最优子区域衔接路径 中,产生全覆盖遍历连通图; 步骤七:根据全覆盖遍历连通图中矩形迭代子区域的邻接关系,利用矩形过渡子区域 St_z、重复子区域SQ_Z和矩形过渡子区域ST_ Z内的Standard仿射变换所产生的遍历轨迹,进行 矩形迭代子区域的自动衔接;当机器人遍历完一个迭代子区域,通过重复子区域So_ z和过渡 子区域ST_zg动衔接到下一个迭代子区域,直到所有迭代子区域遍历完成为止; 步骤八:根据全覆盖遍历连通图设计清扫机器人全覆盖遍历程序的流程图,用以实现 机器人遍历清扫任务;在可行清扫区域内,初始化清扫机器人的起点以及清扫一次所需要 的总的迭代次数,选择清扫方向为顺时针或逆时针迭代,然后根据全覆盖遍历连通图中的 迭代顺序以及流程图程序,利用Standard仿射变换产生的轨迹依次实现各个矩形子区域内 的遍历清扫,以及子区域的自动衔接,直至整个遍历清扫任务完成。2. 如权利要求1所述的一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征 是,在步骤一中,Standard混纯方程是一个简单的二维动力学方程,Standard混纯方程的离 散化形式表示为:式中,(xn,yn)为清扫机器人全覆盖遍历路径的运行轨迹坐标,K为混沌状态参数。3. 如权利要求2所述的一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征 是,当K = 8时方程(1)的映射方程为:在方程⑵中,随机给定一个初始值(xQ,y〇),可以求出它任意时刻的迭代值(xn,yn); 通过仿射变换将清扫机器人全覆盖遍历路径的运行轨迹(Xn,yn)映射到一个任意大小 的矩形区域内,仿射变换方程为:其中,(a,b)是平移变换,(c,d)是比例变换,(Xn,yn)是清扫机器人清扫轨迹点的坐标, 将时间序列中所有相邻的轨迹点(Xn,yn)和(nyn)依次连接起来就形成了机器人矩形区 域内的遍历清扫轨迹。4. 如权利要求1所述的一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征 是,在步骤二中,Standard混沌方程所产生的清扫轨迹是一个吸引子,分布在一个有限的矩 形区域内,通过仿射变换映射到任意大小的矩形区域内,从而将含有矩形障碍物的封闭清 扫环境划分为若干个矩形子区域。5. 如权利要求1所述的一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征 是,在步骤三中,清扫机器人将各个矩形迭代子区域遍历完后,就实现了整个空间的遍 历清扫任务; 按照矩形子区域Sx的排列顺序从上到下合并或者从左到右合并矩形子区域Sx构造矩形 迭代子区域Sb,如果按照上述两种顺序构造出的Sb个数相同,选择其中一个即可,否则则 选择矩形迭代子区域Su个数最少的那个构造顺序来构造矩形迭代子区域Su; 构造迭代子区域Sb所要遵循的构造原则是: (a) 最大原则,每个迭代区域要尽量的大,即中所包含的Sx个数要尽量的多; (b) 最少原则,构造完成的个数要尽量的少; (c) 所有的迭代子区域不重叠; (d) 所有的合起来为整个可行清扫区域; (e) 迭代子区域Slz为矩形。 上述构造原则保证机器人能够高效地完成可行清扫区域的遍历。6. 如权利要求1所述的一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征 是,在步骤四中,最优子区域衔接路径的选择要满足以下条件: (a)为了不遗漏的遍历所有区域,环路中必须包含每个迭代子区域; (b)环路中包含的每个子区域的个数最少,从而减少重复遍历。7. 如权利要求1所述的一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征 是,在步骤五中,重复子区域SQ_ Z位于矩形迭代子区域中,由所在的矩形迭代子区域 内的矩形子区域Sx合并组成,每个重复子区域SQ_Z中所选的矩形子区域S x个数要尽量的多, 即合并后的重复子区域So_z要尽量的大;过渡子区域ST_Z由两个相邻矩形迭代子区域之 间的重复子区域So组成。8. 如权利要求1所述的一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征 是,在步骤七中,机器人遍历完一个迭代子区域自动衔接到下一个迭代子区域的具体步骤 为: (a) 当前矩形迭代子区域内执行Standard混沌方程迭代运算,产生清扫轨迹,直至 矩形迭代子区域清扫任务完成; (b) 当前矩形迭代子区域执行一次Standard混沌方程迭代运算,生成过渡轨迹; (c) 判断步骤(b)中生成的过渡轨迹是否进入其中的重复子区域So_z,如果进入其中的 重复子区域So_ z继续以下操作,否则转到步骤(b); (d) 当前重复子区域SQ_Z所在的过渡子区域ST_JA行一次Standard混沌方程迭代运算, 生成过渡轨迹; (e) 判断步骤(d)中生成的过渡轨迹是否进入过渡子区域ST_Z所包含的另一个重复子区 域So_ z中,如果是则继续以下操作,否则转到步骤(d); (f) 进入到当前重复子区域SQ_Z所在的迭代子区域,实现自动衔接。9. 如权利要求8所述的一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征 是,执行一次迭代子区域自动衔接,每个迭代子区域转移到其中的重复子区域S Q_Z中的 转移概率为:每个迭代子区域ST_Z转移到所包含的另一个重复子区域SQ_Z中的转移概率为:从式⑷和式(5)可以看出,重复子区域S〇_z越大,转移概率越大,因此尽量增大重复子 区域Sci_z来减少判断次数,从而减少衔接时间、提高规划效率。10. 如权利要求1所述的一种清扫机器人全覆盖遍历路径规划算法的设计方法,其特征 是,在步骤八中,设置整个区域清扫一次的总的迭代步数N,根据面积大小求出每个迭代子 区域所需要的迭代步数n,选择清扫方向为顺时针或逆时针迭代,在可行清扫区域内选 择一个随机点为起点,确定所在的迭代子区域,根据全覆盖遍历连通图中的迭代顺序以 及流程图程序,利用Standard仿射变换产生的轨迹依次实现各个矩形子区域内的遍历清 扫,以及各个子区域的自动衔接,直至所有迭代子区域S Lz的遍历完成。
【文档编号】B25J9/16GK105922267SQ201610487847
【公开日】2016年9月7日
【申请日】2016年6月28日
【发明人】李彩虹, 宋勇, 王凤英, 王志强, 梁振英, 李贻斌
【申请人】山东理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1