利索能及
我要发布
收藏
专利号: 2022112182062
申请人: 江苏电子信息职业学院
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-01
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于时序窗口矩阵的多机器人路径规划方法,通过路径规划模块为集群中每个机器人规划出一条基础路径,再通过冲突处理模块处理所有耦合点,确保机器人行进彼此不会发生碰撞;其方法包括三个模块的建立,具体是环境初始化模块、基础路径规划模块和冲突处理模块;

(1)环境初始化模块的建立

对工作空间环境建模,得到环境初始化模块,其步骤如下:步骤1:将环境地图网格化,形成一个单元格密度为X×Y的栅格地图,每个单元格被表(x,y) x y示为c ,横坐标表示为c ,纵坐标表示为c ;障碍物单元格标记为“0”,可行单元格标记为“1”;栅格中每个单元格的右下角在直角坐标系中的坐标作为单元格坐标;

步骤2:设集群中机器人规模为M,则第m(m=1,…,M)个机器人的出发点单元格坐标被Sm(x,y) (x,y)记录,目标点单元格坐标被Dm 记录;栅格地图中标记每个机器人的出发点单元格和目标点单元格;

(2)基础路径规划模块的建立

对第m个机器人进行路径规划,得到基础路径规划模块,其步骤如下:(x,y)

步骤1:初始化栅格地图信息素:每个单元格记录两种信息素,分别用函数θ1(c )和θ2(x,y) (x,y) (x,y)(c )计算,第一种信息素θ1(c )的计算基于单元格c 被走过的次数,初始值为0;第(x,y)二种信息素θ2(c )的计算基于单元格所在的最短路径长度,初始值为X×Y;

(x,y)

步骤2:初始化蚁群:在初始点Sm 位置初始化种群规模为I的蚁群;第i只蚂蚁被符号化为Anti;按下标划分,当i mod 10=0时Anti蚂蚁作为分流蚁(mod表示取模运算),执行分流搜索操作;当i mod 10≠0时Anti蚂蚁作为贪婪蚁,执行贪婪搜索操作;

步骤3:蚁群搜索:蚁群在迭代次数MAX限定范围内完成执行搜索,用Pm记录当前全局最优路径;Pi记录Anti发现的最优路径,在算法执行过程中Pi、Pm与栅格地图信息素被不断更新;

步骤4:输出最优路径Pm;

(3)冲突处理模块的建立

通过时序窗口矩阵算法处理集群中机器人路径的耦合点;当M个机器人都通过基础路径规划模块规划出M条可行路径后,将M条可行路径存储于一个M行,N列的矩阵A中,这里N=X×Y;存储方法是第m条路径Pm存储在矩阵A的第m行;矩阵A称为时序窗口矩阵,其中Am,n表示矩阵中第m行n列的元素(本质上为一个单元格),Am表示第m行所有元素,这里Am理解为一个线性表,An表示第n列所有元素;时序窗口矩阵算法执行过程如下:步骤1:建立时序窗口矩阵A并插入数据;将M条路径作为M行数据插入到矩阵A中;此时A中M行数据长短不同;每一个数据本质为一个单元格,每一行数据Am理解为一个线性表;

步骤2:查找矩阵A中的耦合点;以处理第n列数据为例(其他列处理方法相同),遍历第n列数据,当出现相同单元格,则发现耦合点;

步骤3:耦合点处理;例如m行n列所存储的单元格与m+e行n列所存储的单元格相同,即:Am,n=Am+e,n;则比较A中m行与m+e行长度,选择其中较短的一个执行线性表插入,具体做法如下:length(Am):表示求一个线性表Am的长度;insert(Am,n,Am,n‑1)表示将Am,n‑1元素插入到线性表Am的第n个位置;insert(Am+e,n,Am+e,n‑1)表示将Am+e,n‑1元素插入到线性表Am+e的第n个位置;

步骤4:第n列数据处理完毕。

2.根据权利要求1所述的一种基于时序窗口矩阵的多机器人路径规划方法,其特征是:所述基础路径规划模块的建立步骤3中,蚁群搜索,具体包括:Pi记录当前蚂蚁Anti一发现的最优路径,Anti当前行进的路径为pathi,pathi={p1,p2,…,pt},这里,pathi为一个禁忌线性表,其特点是其中元素有序且不重复,p1,p2,…,pt为单元格,pt存放t时刻蚂蚁Anti所在的(x,y)单元格,也就是Anti当前所在的单元格,p1,p2,…,pt构成了Anti的行进路径;Fi={fj |j(x,y)=1,2,…}表示Antn的可行域,由pt周围除pt‑1以外的所有可行单元格fj 构成;

如果Anti是分流蚁,则执行分流搜索操作,Anti行进一步依据下面公式完成:where

fj∈Fi

(x,y)

上式中θ1(fj )表示第一类信息素计算,计算依据单元格被行走的次数,对于pathi上(x,y)的单元格c ,其中第一类信息素更新方法为:

(x,y) (x,y)

θ1(c )=θ1(c )+1

(x,y)

表示路径pathi上单元格c 的行走次数加1;

(x,y) (x,y)

τ(fj )为启发信息,含义为fj 到目标单元格的欧氏距离,计算方法为:参数α1,α2属于超参数,决定了信息素和启发信息的重要程度,在分流蚁行进过程中,算法鼓励通过分流发现新路径,因此α1=0.6,α2=0.4;rand{Fi}则表示从集合Fi随机选择一个单元格;r是一个随机数并且r~U(0,1);r0是一个阈值,r0=0.7;

如果Anti是贪婪蚁,则执贪婪搜索操作,则Anti行进一步依据下面公式完成:where

fj∈Fi

(x,y)

上式中θ2(fj )表示第二类信息素计算,第二类信息素更新方法为:(x,y) (x,y)

θ2(c )=min{length(pathi),θ2(c )}(x,y)

第二类信息素记录了经过c 的最短路径长度值,其中length(pathi)表示计算pathi路径长度;

(x,y)

τ(fj )含义与分流搜索相同;参数β1,β2属于超参数,决定了信息素和启发信息的重要程度,在贪婪蚁行进过程中,算法鼓励发现最短路径,因此β1=0.4,β2=0.6;rand{Fi}含义与分流搜索相同;r与r0含义与分流搜索相同;

(x,y)

当Fi中存在单元格Dm ,则发现一条可行路径,按下面公式更新Pi,Pi=Opt(Pi,pathi)

按下面公式更新Pm:

Pm=Opt(Pm,pathi)

进一步更新所有pathi路径上的单元格信息系素。

3.根据权利要求1所述的一种基于时序窗口矩阵的多机器人路径规划方法,其特征是它的具体步骤如下:步骤S101:将环境地图网格化,形成一个单元格密度为X×Y的栅格地图,每个单元格被(x,y) x y表示为c ,横坐标表示为c ,纵坐标表示为c ;障碍物单元格100标记为“0”,可行单元格

200标记为“1”;栅格中每个单元格的右下角在直角坐标系中的坐标作为单元格坐标;

步骤S102:设集群中机器人规模为M,则第m(m=1,…,M)个机器人的出发点单元格300(x,y) (x,y)坐标被Sm 记录,目标点单元格400坐标被Dm 记录;栅格地图中标记每个机器人的出发点单元格和目标点单元格;

步骤S103:对集群中M个机器人进行基础路径规划,为每个机器人生成一条基础路径,该基础路径为最优或相对最优,规划过程不考虑耦合点;

步骤S104:时序窗口矩阵算法处理集群中机器人路径的耦合点;

步骤S105:时序窗口矩阵A的第m行数据,对应集群中第m个机器人的最终规划路径,输出所有路径。

4.根据权利要求3所述的一种基于时序窗口矩阵的多机器人路径规划方法,其特征是对步骤S103基础路径规划模块进行详细描述如下:(x,y)

步骤S201:初始化栅格地图信息素;每个单元格记录两种信息素,分别用函数θ1(c )(x,y) (x,y) (x,y)和θ2(c )计算,第一种信息素θ1(c )的计算基于单元格c 被走过的次数,初始值为:(x,y)

0;第二种信息素θ2(c )的计算基于单元格所在的最短路径长度,初始值为:X×Y;

(x,y)

步骤S202:初始化蚁群;在初始点Sm 位置初始化种群规模为I的蚁群,第i只蚂蚁被符号化为Anti;按下标划分,当i mod 10=0时Anti蚂蚁作为分流蚁(mod表示取模运算),执行分流搜索操作;当i mod 10≠0时Anti蚂蚁作为贪婪蚁,执行贪婪搜索操作;

步骤S203:蚁群搜索;蚁群在迭代次数MAX限定范围内完成执行搜索,用Pm记录当前全局最优路径;Pi记录当前蚂蚁Anti一发现的最优路径,Anti当前行进的路径为pathi,pathi={p1,p2,…,pt},这里,pathi为一个禁忌线性表,其特点是其中元素有序且不重复,p1,p2,…,pt为单元格,pt存放t时刻蚂蚁Anti所在的单元格,也就是Anti当前所在的单元格;p1,p2,…,(x,y)pt构成了Anti的行进路径;Fi={fj |j=1,2,…}表示Antn的可行域,由pt周围除pt‑1以外(x,y)的所有可行单元格fj 构成;

如果Anti是分流蚁,则执行分流搜索操作,Anti行进一步依据公式(1)完成:(x,y) (x,y) (x,y)

公式(1)中θ1(fj )表示第一类信息素计算;τ(fj )为启发信息,含义为fj 到目(x,y)标单元格的欧氏距离;τ(fj )通过公式(2)计算:参数α1,α2属于超参数,决定了信息素和启发信息的重要程度,在分流蚁行进过程中,算法鼓励通过分流发现新路径,因此α1=0.6,α2=0.4;rand{Fi}则表示从集合Fi随机选择一个单元格;r是一个随机数并且r~U(0,1);r0是一个阈值,r0=0.7;

如果Anti是贪婪蚁,则执贪婪搜索操作,则Anti行进一步依据公式(3)完成:(x,y) (x,y)

公式(3)中θ2(fj )表示第二类信息素计算;τ(fj )含义与分流搜索相同;参数β1,β2属于超参数,决定了信息素和启发信息的重要程度,在贪婪蚁行进过程中,算法鼓励发现最短路径,因此β1=0.4,β2=0.6;rand{Fi}含义与分流搜索相同;r与r0含义与分流搜索相同;

(x,y)

当Fi中存在单元格Dm ,则发现一条可行路径,按公式(4)Anti发现的最优路径Pi:Pi=Opt{Pi,pathi}                             (4)按公式(5)更新全局最优路径Pm:

Pm=Opt(Pm,pathi)                     (5)(x,y)

进一步更新所有pathi路径上的单元格信息系素;对于pathi上的单元格c ,其中第一类信息素更新方法为:(x,y) (x,y)

θ1(c )=θ1(c )+1                    (6)(x,y)

表示路径pathi上单元格c 的行走次数加1;

第二类信息素更新方法为:

(x,y) (x,y)

θ2(c )=min(length(pathi),θ2(c ))           (7)(x,y) (x,y)

表示路径pathi单元格c 第二类信息素记录了经过c 的最短路径长度值,其中length(pathi)表示计算pathi路径长度。

5.根据权利要求3所述的一种基于时序窗口矩阵的多机器人路径规划方法,其特征是对步骤S104冲突处理模块中时序窗口矩阵算法处理耦合点进行详细描述如下:步骤S301:建立时序窗口矩阵A并插入数据;将步骤S103规划出的M条路径作为M行数据插入到矩阵A中;矩阵A的规模为M行,N列,其中N=X×Y;将第m条路径Pm对应存储于矩阵A的第m行;此时A中M行数据长短不同;每一个数据本质为一个单元格,每一行数据Am可以理解为一个线性表;

步骤S302:设置循环控制变量n←0;

步骤S303:执行n←n+1;

步骤S304:处理第An列存在的耦合点;遍历An列所有单元格,如果有相同单元格安下面方法处理:如果m行n列所存储的单元格与m+e行n列所存储的单元格相同,即:Am,n=Am+e,n;则比较A中m行与m+e行长度,选择其中较短的一个执行线性表插入,具体做法如下:length(Am)表示求一个线性表Am的长度;insert(Am,n,Am,n‑1)表示将Am,n‑1元素插入到线性表Am的第n个位置;insert(Am+e,n,Am+e,n‑1)表示将Am+e,n‑1元素插入到线性表Am+e的第n个位置;

步骤S305:如果n≤N,则执行S303;否则执行S306;

步骤S306:输出矩阵A,冲突处理完毕。