基于粒子群算法的机器人路径规划方法、装置及终端设备与流程

文档序号:15631549发布日期:2018-10-12 20:43阅读:186来源:国知局

本发明属于人工智能技术领域,尤其涉及一种基于粒子群算法的机器人路径规划方法、装置及终端设备。



背景技术:

随着社会发展的需要和机器人应用领域的扩大,人们对移动机器人的要求越来越高。移动机器人关键技术主要涉及:导航,定位,避障和路径规划。而路径规划的关键就是算法的研究和设计。

在现有技术中,可将路径规划算法分为传统路径规划算法和智能仿生学路径规划算法。传统路径规划算法如:dijkstra算法,dijkstra算法是一种单源的路径规划算法,因为运用穷举所以存在运算时间过长且效率低等问题;智能仿生学算法如粒子群算法,粒子群算法虽然计算简单,全局寻优能力强,但是规划出的路径具有转弯次数多,累计转折角大等缺陷。



技术实现要素:

有鉴于此,本发明实施例提供了一种基于粒子群算法的机器人路径规划方法及终端设备,以解决现有技术中机器人路径规划算法规划路径不平滑且效率低的问题。

本发明实施例的第一方面提供了一种基于粒子群算法的机器人路径规划方法,包括:

s1:根据机器人活动场地的信息进行建模,生成模拟环境,具体包括:

s101:根据所述活动场地的信息建立直角坐标系,在所述直角坐标系中确定机器人活动的起点和终点;

s102:对所述活动场地中的障碍物进行规则化处理,获得所述障碍物在所述直角坐标系中的顶点坐标;

s103:使用数组表示所述障碍物的各个顶点坐标;

s2:根据所述机器人活动的起点和终点随机生成n条不与所述障碍物相交的初始路径,采用基于粒子群算法的方法在所述模拟环境中,对n条初始路径进行优化,在优化产生的路径中选出m条全局最优路径,其中m,n均为大于1的正整数,m为预先设定的值;

s3:采用基于dijkstra算法的方法从所述m条全局最优路径中选出最终路径。

本发明实施例的第二方面提供了一种基于粒子群算法的机器人路径规划装置,包括:

建模模块,用于根据机器人活动场地的信息进行建模,生成模拟环境;

第一优化模块,根据所述机器人活动的起点和终点随机生成n条不与所述障碍物相交的初始路径,采用基于粒子群算法的方法在所述模拟环境中,对n条初始路径进行优化,在优化产生的路径中选出m条全局最优路径;

第二优化模块,采用基于dijkstra算法的方法从所述m条全局最优路径中选出最终路径。

本发明实施例的第三方面提供了一种基于粒子群算法的机器人路径规划终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上第一方面所提供的方法的步骤。

本发明实施例的第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上第一方面所提供的方法的步骤。

本发明实施例与现有技术相比存在的有益效果是:首先根据机器人活动场地的信息进行建模,生成模拟环境,将所述模拟环境作为算法的环境背景;根据粒子群算法产生m条备选路径;在所述m条备选路径上,由dijkstra算法对所述m条备选路径做平滑处理,从m条备选路径的所有结点中搜索出一条从起始点到目标点的最优路径作为最终路径。本发明相较于粒子群算法,由于使用了dijkstra算法,产生的最优解比粒子群算法产生的最优解更平滑,路径更短;相较于dijkstra算法,本发明通过处理效率高的粒子群算法缩小路径计算范围,减少了dijkstra算法进行后续处理的计算量,从而提升了计算效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于粒子群算法的机器人路径规划方法的实现流程示意图;

图2是本发明实施例提供的基于粒子群算法的机器人路径规划装置的结构框图;

图3是本发明实施例提供的基于粒子群算法的机器人路径规划终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一

图1示出了本发明实施例一提供的基于粒子群算法的机器人路径规划方法的实现流程,详述如下:

步骤s1,根据机器人活动场地的信息进行建模,生成模拟环境。

在本发明实施例中,所述根据机器人活动场地的信息进行建模生成模拟环境,即环境建模过程包括:

步骤s101,根据所述活动场地的信息建立直角坐标系,在所述直角坐标系中确定机器人活动的起点和终点。

可选地,首先获取机器人活动场地的信息,其中所述机器人活动场地的信息包括活动场地中所有障碍物的位置和形状,机器人的尺寸信息,机器人在活动场地中运动的起点和终点。

进一步地,在机器人活动场地中建立直角坐标系,在所述直角坐标系中,根据上述获取到的机器人活动的起点和终点,记录下所述机器人活动的起点和终点的坐标。

步骤s102,对所述活动场地中的障碍物进行规则化处理,获得所述障碍物在所述直角坐标系中的顶点坐标。

可选地,根据所述根据所述障碍物的形状和位置信息,使用能够完全覆盖所述障碍物的最小矩形进行初步建模,其中所述矩形与所述直角坐标系的坐标轴平行;

将所述初步建模的矩形的四边分别向外延伸二分之一机器人的长度,获得延伸后得到的矩形的各个顶点坐标。

可选地,为了方便路径规划,可对环境中的障碍物进行抽象描述:由于不存在障碍物的区域对机器人的行动不造成影响,所以将所述不存在障碍物的区域取为自由空间;相反对于存在障碍物的区域,因为直接阻碍了机器人的行动,所以将其取为障碍物空间。同时为了区分障碍物区域和机器人可通行区域,可以用无色表示指环境中的可行空间,黑色表示环境中的障碍物区域,此处不做限定。

步骤s103,使用数组表示所述障碍物的各个顶点坐标。

可选地,因为障碍物为矩形,所以可以用包含所有障碍物顶点坐标的数组表示所述障碍物。进一步地,采用直角坐标法表示环境信息,即环境中的每一个点都可以用二维平面坐标系中的坐标进行唯一表示。

进行上述处理后,就完成了障碍物建模,即环境中所有障碍物由包含每个障碍物矩形的四个顶点坐标的数组表示。

步骤s2,根据所述机器人活动的起点和终点随机生成n条不与所述障碍物相交的初始路径,采用基于粒子群算法的方法在所述模拟环境中,对n条初始路径进行优化,在优化产生的路径中选出m条全局最优路径,其中m,n均为大于1的正整数,m为预先设定的值。

在本发明实施例中,所述采用基于粒子群算法的方法在所述模拟环境中对n条初始路径进行优化,在优化产生的路径中选出m条全局最优路径包括:

步骤s201:初始化粒子群,其中所述粒子群中包含n个粒子,每个粒子均为与所述障碍物不相交的初始路径。

可选地,初始化粒子群,将初始粒子群表示为n个粒子,即n条随机生成的与障碍物不相交的初始路径,用xi代表第i个粒子,即第i条路径,可用数学表示成如公式(1)所示:

x={x1,x2,…xn}(1)

可选地,粒子i是由d个路径结点构成,即d个位置坐标点构成,可以描述成粒子i是d维粒子,xi表示第i个粒子中所有元素的位置集合。数学描述可以表示为公式(2):

xi={s,xid,t},d=2,…,d-1;i=1,2,…,n(2)

其中,s是起点,t是终点。

步骤s202:根据预设更新规则从每个粒子的起点开始进行路径节点更新,从而生成若干条优化路径。

示例地,本实施例中d维粒子i中的每一维元素的位置置更新变量用速度vi来表示,由于d维粒子i中的第一个元素s表示路径的起点,d维粒子i中的最后一个元素t表示路径的终点,这两个点的位置不发生变化,所以粒子i的第一个元素和最后一个元素速度不发生变化,即vi1和vid都为0。最终d维粒子i的速度表示如公式

(3)所示:

进一步地,粒子i的位置是当前粒子i中的第d个元素的位置xid与第d个元素的速度之和,公式表示如(4):

其中,s表示路径起点,t表示终点,均为固定值。

具体地,将粒子i的第d维元素(路径的第d个结点)位置更新为x’id后,需要判断其与第d-1维元素(路径的第d-1个结点)连成的直线段是否和环境中的障碍物相交,即对(xid-1,x’id)直线段与障碍物是否相交进行判断。

进一步地,若(xid-1,x’id)直线段与环境中的障碍物不相交,则x’id作为粒子i的第d维元素(路径的第d个结点)更新后的位置合适,继续进行下一步的位置更新;若(xid-1,x’id)直线段和环境中的障碍物有交点,则采用速度更新公式重新生成粒子i的第d维元素的(路径的第d个结点)速度,速度更新公式如公式(5)所示:

其中,r1和r2是[0,1]区间内的任意值,c1=2及c2=2,t表示粒子位置更新的时间;

pid(t)表示时间为t时,粒子i从起点到第d维元素的自身最优解;pgd(t)表示时间为t时的全局最优解。可选地,在算法迭代过程中,通过适应度函数计算出d维粒子i的适应度值(粒子i的路径总长度)将粒子i的自身历史所有路径进行比较,将适应度值最小(路径最短)的路径,记为自身最优解pi;将适应度函数计算出的粒子群中适应度值最小(路径最短)的粒子,记为全局最优解pg。

ω为速度更新公式中第k次迭代的惯性权重,可由公式(6)计算得出:

其中,在本实施例中令ωmax=0.9,ωmin=0.4,迭代次数itermax=50。

步骤s203:对每个粒子自身产生的所有优化路径进行适应度函数计算,从所有粒子的所有优化路径中选出m个适应度值最小的路径作为全局最优路径。

在步骤s202的迭代中每个粒子i都产生了若干条备选路径,分别计算每条路径的适应度值,对所有粒子的所有产生的路径进行比对,选出m条适应度值最小的路径作为全局最优路径。可选地,m为预先设定的值,此处不做限定。

步骤s3,采用基于dijkstra算法的方法从所述m条全局最优路径中选出最终路径。

可选地,首先将步骤s2中产生的所述m条全局最优路径表示成集合p:

其中,s表示路径的起始位置,t表示目标位置,s和t均为定值;nmi表示第m个粒子中的第i个路径节点。

进一步地,对集合p中的任意两结点(ni,nj)用直线连成线段,判断所述线段是否与所述障碍物相交,若不相交,则计算结点ni和结点nj之间的欧氏距离dij并作为ninj弧的权值;若相交,则ninj弧的权值为∞。

可选地,更新完m条路径的加权图后,将所述加权图保存在一个邻接矩阵a中;

步骤s304:根据最优粒子dijkstra算法从所述邻接矩阵a中选出最小加权值对应的路径为最终路径。其中,所述dijkstra算法是用来计算从一个顶点到其余各个顶点的最短路径的算法,所述邻接矩阵可表示为公式(8):

a=(aij)((d-2)×m+2)×((d-2)×m+2)(8)

其中,((d-2)×m+2)表示加权图中的结点个数。

可选地,最后将dijkstra算法选出的路径作为最终路径。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

实施例二

图2示出了本发明实施例提供的基于粒子群算法的机器人路径规划装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该基于粒子群算法的机器人路径规划装置2包括:建模模块21,第一优化模块22,第二优化模块23。

其中,建模模块21,用于根据机器人活动场地的信息进行建模,生成模拟环境;

第一优化模块,根据所述机器人活动的起点和终点随机生成n条不与所述障碍物相交的初始路径,采用基于粒子群算法的方法在所述模拟环境中,对n条初始路径进行优化,在优化产生的路径中选出m条全局最优路径;

第二优化模块,采用基于dijkstra算法的方法从所述m条全局最优路径中选出最终路径。

可选地,所述建模模块21包括:

建立坐标系单元,用于根据所述活动场地的信息建立直角坐标系,在所述直角坐标系中确定机器人活动的起点和终点;

障碍物处理单元,用于对所述活动场地中的障碍物进行规则化处理,获得所述障碍物在所述直角坐标系中的顶点坐标;

数组单元,用于使用数组表示所述障碍物的各个顶点坐标。

进一步地,所述障碍物处理单元包括:

坐标获取单元,用于根据所述根据所述障碍物的形状和位置信息,使用能够完全覆盖所述障碍物的最小矩形进行初步建模,其中所述矩形与所述直角坐标系的坐标轴平行;

将所述初步建模的矩形的四边分别向外延伸二分之一机器人的长度,获得延伸后得到的矩形的各个顶点坐标。

可选地,所述第一优化22包括:

初始化单元,用于初始化粒子群,其中所述粒子群中包含n个粒子,每个粒子均为与所述障碍物不相交的初始路径;

路径更新单元,根据预设更新规则从每个粒子的起点开始进行路径节点更新,从而生成若干条优化路径;

适应度计算单元,对每个粒子自身产生的所有优化路径进行适应度函数计算,从所有粒子的所有优化路径中选出m个适应度值最小的路径作为全局最优路径。

进一步地,所述路径更新单元包括:

第一单元,用于根据当前第d个路径节点的位置更新速度vd对相应的粒子进行路径节点更新,判断所述更新后的第d+1个路径节点与所述第d个路径节点连成的直线段是否与所述障碍物相交;

第二单元,用于若所述更新后的第d+1个路径节点与所述第d个路径节点连成的直线段与所述障碍物相交,则采用粒子群算法速度更新公式重新生成所述上一个第d个路径节点的位置更新速度vd并返回第一单元;

第三单元,用于若所述更新后的第d+1个路径节点与所述第d个路径节点连成的直线段不与所述障碍物相交,则继续对所述粒子进行路径节点更新,直至到达所述终点为止。

可选地,所述第二优化单元23包括:

集合单元,用于将所述m条全局最优路径表示成集合p:

其中,s表示路径的起始位置,t表示目标位置,s和t均为定值;nmi表示第m个粒子中的第i个路径节点;

权值计算单元,用于对集合p中的任意两结点(ni,nj)用直线连成线段,判断所述线段是否与所述障碍物相交,若不相交,则计算结点ni和结点nj之间的欧氏距离dij并作为ninj弧的权值;若相交,则ninj弧的权值为∞;

加权图单元,用于新完m条路径的加权图后,将所述加权图保存在一个邻接矩阵a中;

最终路径单元,用于根据最优粒子dijkstra算法从所述邻接矩阵a中选出最小加权值对应的路径为最终路径。

实施例三

图3是本发明一实施例提供的基于粒子群算法的机器人路径规划终端设备的示意图。如图3所示,该实施例的基于粒子群算法的机器人路径规划终端设备3包括:处理器30、存储器31以及存储在所述存储器31中并可在所述处理器30上运行的计算机程序32,例如基于粒子群算法的机器人路径规划程序。所述处理器30执行所述计算机程序32时实现上述各个基于粒子群算法的机器人路径规划方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器30执行所述计算机程序32时实现上述各装置实施例中各模块/单元的功能,例如图2所示模块21至23的功能。

示例性的,所述计算机程序32可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序32在所述基于粒子群算法的机器人路径规划终端设备3中的执行过程。例如,所述计算机程序32可以被分割成建模模块、第一优化模块、第二优化模块,各模块具体功能如下:

建模模块,用于根据机器人活动场地的信息进行建模,生成模拟环境;

第一优化模块,根据所述机器人活动的起点和终点随机生成n条不与所述障碍物相交的初始路径,采用基于粒子群算法的方法在所述模拟环境中,对n条初始路径进行优化,在优化产生的路径中选出m条全局最优路径;

第二优化模块,采用基于dijkstra算法的方法从所述m条全局最优路径中选出最终路径。

所述基于粒子群算法的机器人路径规划终端设备3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于粒子群算法的机器人路径规划终端设备可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图3仅仅是基于粒子群算法的机器人路径规划终端设备3的示例,并不构成对基于粒子群算法的机器人路径规划终端设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于粒子群算法的机器人路径规划终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器30可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器31可以是所述基于粒子群算法的机器人路径规划终端设备3的内部存储单元,例如基于粒子群算法的机器人路径规划终端设备3的硬盘或内存。所述存储器31也可以是所述基于粒子群算法的机器人路径规划终端设备3的外部存储设备,例如所述基于粒子群算法的机器人路径规划终端设备3上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器31还可以既包括所述基于粒子群算法的机器人路径规划终端设备3的内部存储单元也包括外部存储设备。所述存储器31用于存储所述计算机程序以及所述基于粒子群算法的机器人路径规划终端设备所需的其他程序和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。

由上可见,本实施例通过首先根据机器人活动场地的信息进行建模,生成模拟环境,将所述模拟环境作为算法的环境背景;根据粒子群算法产生m条备选路径;在所述m条备选路径上,由dijkstra算法对所述m条备选路径做平滑处理,从m条备选路径的所有结点中搜索出一条从起始点到目标点的最优路径作为最终路径。本实施例相较于粒子群算法,由于使用了dijkstra算法,产生的最优解比粒子群算法产生的最优解更平滑,路径更短;相较于dijkstra算法,本实施例通过处理效率高的粒子群算法缩小路径计算范围,减少了dijkstra算法进行后续处理的计算量,从而提升了计算效率。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1