未知环境下主动预防极值的层次化在线覆盖路径规划方法技术

技术编号:39139767 阅读:9 留言:0更新日期:2023-10-23 14:54
本发明专利技术公开了一种未知环境下主动预防极值的层次化在线覆盖路径规划方法,目的是避免局部极值,实现高效覆盖。技术方案是先构建由机器人终端和客户端组成的层次化覆盖路径规划系统;客户端提供目标区域边界信息,机器人终端根据目标区域边界信息得到初始的覆盖任务,进而规划出访问所有初始覆盖任务的全局路径及任务到任务的局部路径;机器人一边执行覆盖任务,一边探测机器人局部邻域内的障碍物。如果探测到机器人局部邻域内存在未知障碍物,则引导机器人探测出障碍物的物理边界。基于探测出的物理边界,机器人终端对覆盖任务更新,然后对全局路径和局部进行重规划。采用本发明专利技术可以避免覆盖局部极值产生的重复路径,提高覆盖的效率。盖的效率。盖的效率。

【技术实现步骤摘要】
未知环境下主动预防极值的层次化在线覆盖路径规划方法


[0001]本专利技术属于移动机器人
,具体涉及未知环境下单台机器人的在线覆盖路径规划方法。本专利技术可应用到环境监控、搜索营救、油污清理、区域探索、自动化农业和室内清洁等场景下的机器人在线覆盖路径规划当中。

技术介绍

[0002]作为自动化机器人完成环境监控、地图重建、搜索营救等应用的基础问题,覆盖路径规划(Coverage Path Planning,CPP)旨在设计一条访问目标区域所有点的路径,该路径在避免障碍物的同时最小化覆盖时间。现实环境中,覆盖目标区域通常是完全未知或者部分未知,机器人只能根据传感信息实时在线地规划覆盖路径。因此,有必要设计一个未知环境下基于传感器的在线覆盖路径规划方法。
[0003]经典的覆盖方法可以分为离线规划和在线规划两类。离线规划通常假定环境是已知的,通过精确或启发式的方法预先规划出一条路径最短或者耗时最小的全局路径,而在线规划则根据机器人的局部传感信息逐点规划出覆盖路径。但是因为没有像离线规划那样考虑全局最优的覆盖路径,在线方法可能会陷入局部极值,从而引入重复的覆盖路径。局部极值是指在目标区域存在未覆盖区域情况下,机器人在局部邻域内找不到下一个访问点,因此陷入困境的情况。在区域覆盖问题中,局部极值是影响覆盖效率的一个关键因素。为了实现高效的在线覆盖,在线覆盖规划方法应该对局部极值优化,尽可能避免机器人陷入局部极值。
[0004]根据局部极值优化方式的不同,已有的覆盖路径规划方法可以划分为被动极值处理的覆盖方法和主动预防极值的覆盖方法两类。当机器人陷入局部极值以后,采用被动极值处理的覆盖方法会采用各类启发式的策略,为机器人规划一条从局部极值点到未覆盖区域的一条路径。比如文献“Junnan Song and Shalabh Gupta,ε
*
:An online coverage path planning algorithm.IEEE Transactions on Robotics,34(2):526

533,2018.”(即宋钧南,Shalabh Gupta,ε
*
算法:一种在线覆盖路径规划算法,2018年IEEE机器人杂志34(2),第526

533页)提出了一种基于势能场的ε
*
算法,该算法预先设计了一个阶梯状的势能场,当机器人没有陷入局部极值时,机器人总是选择局部邻域内势能最大的点作为下一个访问点;当机器人陷入局部极值后,通过构建多尺度势能面来为机器人找到下一个访问点,从而逃离局部极值。又比如文献(“E.Gonzalez,O.Alvarez,Y.Diaz,C.Parra,and C.Bustacara.BSA:A complete coverage algorithm.In Robotics and Automation,2005.ICRA 2005.Proceedings of the 2005IEEE International Conference on,2005”,译为:E.Gonzalez,O.Alvarez,Y.Diaz,C.Parra,and C.Bustacara,BSA算法:一个完全覆盖算法,2005年机器人自动化会议)提出了一个回溯螺旋算法(Backtracking Spiral Algorithm,BSA),该方法提前检测并保存可能是未来替代路径起点的网格,即回溯点;当机器人陷入局部极值以后,使用回溯机制返回到保存的上一个回溯点。虽然被动处理局部极值的在线覆盖方法可以帮助机器人逃离局部极值,但是极值逃离时的路径会访问已覆盖区
域,从而降低覆盖效率。
[0005]主动预防极值的覆盖方法采用合适的策略事先规避局部极值的出现。比如文献(Gabriely,Yoav,and E.Rimon."Spanning

tree based coverage of continuous areas by a mobile robot."Annals of Mathematics and Artificial Intelligence(2001).译为:Gabriely,Yoav,and E.Rimon,基于生成树的移动机器人连续区域覆盖,2001年数学与人工智能年鉴)提出了一种基于生成树(Spanning Tree Coverage,STC)算法。STC算法增量式地生成一颗虚拟树,机器人只需环绕该虚拟树运动,即可完成覆盖;这棵虚拟树生长在包含2*2个方格的单元上,这种单元分解方式使得机器人的覆盖路径形成一个环,因此不会出现局部极值。然而,如果障碍物占据了单元中的任何一个小方格,那么整个单元将不会被覆盖,从而导致不完全覆盖。虽然文献(Gabriely,Yoav,and Elon Rimon."Competitive on

line coverage of grid environments by a mobile robot."Computational Geometry 24.3(2003):197

224,译为:Gabriely,Yoav,and Elon Rimon,一个移动机器人对网格环境的竞争性在线覆盖,2003年计算几何,第197

224页)提出了一个完全螺旋STC(Full Spiral STC,FS

STC)算法来解决不完全覆盖问题,但是该方法处理障碍物周围的部分被占用单元时会引入重复覆盖,从而影响覆盖效率。
[0006]以上两类覆盖方法,无论是被动处理极值还是主动预防极值,都是根据局部传感信息逐点生成覆盖路径,并没有像离线规划那样考虑全局最优的覆盖路径,从而引入了局部极值,进而导致覆盖效率变低。针对未知环境下CPP问题,如何设计一个在线覆盖路径规划方法,使其能够在实现完全覆盖的同时避免局部极值以提高覆盖效率,是在线覆盖路径规划需要解决的关键问题。

技术实现思路

[0007]本专利技术要解决的技术问题是针对现有在线覆盖路径规划方法因为引入了局部极值而导致覆盖效率变低的问题,提供一种未知环境下主动预防极值的层次化在线覆盖路径规划方法,该方法从全局和局部层面同时对局部极值进行优化,有效避免局部极值,从而实现高效的覆盖。
[0008]具体技术方案是:
[0009]第一步,构建主动预防极值的层次化在线覆盖路径规划系统。层次化在线覆盖路径规划系统由客户端和机器人终端组成。
[0010]客户端是一台移动终端或者PC机,客户端将用户定义的目标区域的边界信息Boud发送给机器人终端。
[0011]机器人终端是一台真实的机器人,比如阿克曼机器人、Turtlebot机器人等。机器人终端装载有:(1)一个雷达传感器,雷达传感器采集环境信息,包括障碍物与雷达传感器之间的距离和障碍物的形状,可检测半径为r2的圆形区域内的障碍物,雷达传感器将环境信息发送给定位模块,r2为正整数,常见的雷达传感本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种未知环境下主动预防极值的层次化在线覆盖路径规划方法,其特征在于包括以下步骤:第一步,构建主动预防极值的层次化在线覆盖路径规划系统;层次化在线覆盖路径规划系统由客户端和机器人终端组成;客户端是一台移动终端或者PC机,客户端将用户定义的目标区域的边界信息Boud发送给机器人终端;机器人终端是一台真实的机器人,机器人终端装载有一个雷达传感器、一个任务传感器,一个定位模块、一个导航模块、其他机器人运行必备的软硬件控制模块;雷达传感器采集环境信息,包括障碍物与雷达传感器之间的距离和障碍物的形状,检测半径为r2的圆形区域内的障碍物,雷达传感器将环境信息发送给定位模块,r2为正整数;任务传感器用于执行覆盖任务,覆盖宽度为r1大小的矩形区域,r1≤r2;定位模块负责实时定位机器人,得到机器人实时的位姿信息wc及构建的网格地图Gd,将wc及Gd,发送给层次化覆盖路径规划和导航模块,wc为三元组(x
c
,y
c
,θ
c
),x
c
,y
c
表示机器人实时所处的x、y轴坐标,θ
c
表示机器人实时朝向;导航模块从定位模块接收wc和Gd,从层次化覆盖路径规划模块接收目标点的位姿wt,wt为(x
t
,y
t
,θ
t
),引导机器人安全地从wc运动到wt,其中x
t
,y
t
为机器人下一时刻的x、y轴坐标,θ
t
表示机器人下一时刻的朝向;其他机器人运行必备的软硬件控制模块包含机器人固有的操作系统、底层驱动系统、运动控制系统;层次化覆盖路径规划模块与定位模块和导航模块相连,由任务划分与管理子模块、全局路径规划子模块和局部路径规划子模块三个模块组成;任务划分与管理子模块包含一个任务管理器和一个任务生成器,它从客户端接收目标区域边界信息Boud,从定位模块接收wc及Gd,生成覆盖任务集合C和任务更新标志U,将C和U发送给全局路径规划子模块和局部路径规划子模块;任务生成器包含障碍物探索子模块和区域划分子模块,障碍物探索子模块是一个软件模块,用以引导机器人探索障碍物的物理边界,得到障碍物的边界信息B
m
,将B
m
发送给区域划分子模块;区域划分子模块在初始情况下将目标区域划分为初始覆盖任务集合C
init
,在覆盖过程中将与障碍物边界B
m
重叠的区域重新划分为覆盖任务集合C
new
,将C
init
和C
new
发送给任务管理器;任务管理器从区域划分子模块接收C
init
和C
new
,生成覆盖任务集合C,将C存储到一个覆盖任务结构CTS中;如果C中出现新的覆盖任务,任务管理器将任务更新标志U标记为1,并将C和U发送给全局路径规划子模块和局部路径规划子模块;全局路径规划子模块从定位模块接收wc,从任务划分与管理子模块的任务管理器接收C和U,对C中的覆盖任务进行抽象,得到连通图G,基于G生成访问所有覆盖任务的全局路径GT;GT由N个覆盖任务即T1,...,T
n
,...,T
N
组成,其中第n个覆盖任务为T
n
;全局路径规划子模块按T1,...,T
n
,...,T
N
的顺序,将GT发送到局部路径规划子模块;局部路径规划子模块从定位模块接收wc,从全局路径规划子模块接收T1,...,T
n
,...,T
N
,生成从wc到达T1并覆盖T1,从T1到达T2并覆盖T2,...,从T
n
‑1到达T
n
并覆盖T
n


,从T
N
‑1到达T
N
并覆盖T
N
的N条局部路径;局部路径是一个包含若干个点的点集,局部路径规划模块逐点将机器人在局部路径中的目标点处的位姿wt发送给机器人终端的导航模块;第二步,机器人终端的雷达传感器采集环境信息,包括障碍物与雷达传感器之间的距离和障碍物的形状,并将环境信息发送给定位模块;第三步,机器人终端的定位模块根据雷达传感器采集的环境信息,实时构建出环境的
网格地图Gd,并获取机器人当前位姿wc,即三元组(x
c
,y
c
,θ
c
);网格地图Gd用不同的值来表示被障碍物占据的网格和没被障碍物占据的网格;定位模块将网格地图Gd发送给层次化覆盖路径规划模块的任务划分与管理子模块,将当前位姿wc发送给层次化覆盖路径规划模块的任务划分与管理子模块、全局路径规划子模块和局部路径规划子模块;第四步,层次化覆盖路径规划模块的任务划分与管理子模块接收客户端发送的目标区域信息Boud和定位模块发送的wc和Gd,生成初始的覆盖任务C
init
;方法是:4.1任务生成器的区域划分子模块接收客户端发送的目标区域边界信息Boud,对目标区域进行初始化;区域划分子模块假定目标区域内部不存在障碍物;4.2区域划分子模块根据初始化的目标区域信息,采用Boustrophedon分解方法将目标区域划分为多个矩形单元;这些矩形单元中,位于x轴的边的宽度为r1,位于y轴的边的长度等于目标区域的长度;单个矩形单元对应单个覆盖任务,所有矩形单元构成初始的覆盖任务集合C
init
={c
1,1
,...,c
1,n
,...,c
1,N
},N为正整数,其中c
1,n
代表C
init
中第n个覆盖任务,即第n个矩形单元;c
1,n
的基本信息包括在C
init
中的序列号n、中线坐标和相邻单元序列号;区域划分子模块将C
init
发送给任务管理器;4.3任务管理器接收区域划分子模块发送的C
init
,使用覆盖任务结构CTS保存C
init
中各个覆盖任务的基本信息;方法是:4.3.1任务管理器初始化CTS为空;CTS是一个列表,列表中的每个元素保存一个矩形单元即一个覆盖任务的基本信息;矩形单元的基本信息抽象为一个五元组{Id,px,pu,pd,adj},其中Id表示该矩形单元在C
init
中的序号,px表示矩形单元中线的x轴坐标,pu表示矩形单元中线上方端点的y轴坐标,pd表示矩形单元中线下方端点的y轴坐标,adj是保存与该矩形单元相邻的其他矩形单元的序号集合;4.3.2任务管理器的任务更新子模块接收区域划分子模块发送的C
init
,将C
init
对应的所有覆盖任务的信息存储到CTS中;4.3.3令任务更新标志U为1,令覆盖任务集合为C=CTS中存储的覆盖任务集合,任务管理器将C和U发送给全局路径规划子模块和局部路径规划子模块;第五步,全局路径规划子模块从定位模块接收wc,从任务管理器接收C和U;如果U≠0,全局路径规划子模块规划出一条访问所有覆盖任务的全局路径GT,转第六步;如果U=0,表示CTS中没有出现新的覆盖任务,转第八步;全局路径规划子模块规划出一条访问所有覆盖任务的全局路径GT的方法如下:5.1全局路径规划子模块接收任务管理器发送的C和U,将C中所有覆盖任务建模成一个相邻图G=(V,E),其中V是顶点集合,V中任意顶点v
i
∈V,i=1,...,N,N是V中的顶点个数,是自然数,v
i
对应C的第i个覆盖任务c
i
,,v
i
包含c
i
的所有内容,c
i
={i,px
i
,pu
i
,pd
i
,adj
i
},i表示c
i
在C
init
中的序号,px
i
表示c
i
中线的x轴坐标,pu
i
表示c
i
中线上方端点的y轴坐标,pd
i
表示c
i
中线下方端点的y轴坐标,adj
i
是保存与c
i
相邻的其他矩形单元的序号集合;E是边集合,e
i,j
表示顶点v
i
和顶点v
j
之间的共同边界,e
i,j
∈E,j=1,...,N,i≠j;顶点v
i
和顶点v
j
之间有连接两个顶点的边,当且仅当v
i
和v
j
相邻,即j为adj
i
中的一个元素,而i为adj
j
中的一个元素;5.2全局路径规划子模块依次从相邻图G中挑选顶点,增量式生成访问所有覆盖任务的全局路径集合GT,GT中的元素是机器人在全局路径上的覆盖单元;
第六步,令GT={T1,...,T
n
,...,T
N
},N为自然数,T
n
是GT中的第n个覆盖任务,也即第n个顶点;全局路径规划子模块初始化任务序列号n=1,将第n个任务T
n
发送至局部路径规划子模块;第七步,局部路径规划子模块接收任务管理器发送的C、定位模块发送的机器人实时位姿wc和全局路径规划子模块发送的T
n
,为机器人规划出一条从w
c
出发,到达T
n
并覆盖T
n
的局部路径LP,方法是:7.1初始化局部路径LP为空;7.2机器人当前坐标为(x
c
,y
c
),从C中找到一个覆盖任务,令为第k个覆盖任务C
k
,C
k
={k,px
k
,pu
k
,pd
k
,adj
k
},满足px
k
=x
c
,pu
k
≤y
c
≤pd
k
,令机器人当前所处任务TC=C
k
为机器人当前所处任务,1≤k≤K,如果TC和T
n
相邻或者TC和T
n
不连通,转7.3;如果TC和T
n
连通但是不相邻,转7.4;7.3此时TC和T
n
相邻或者TC和T
n
不连通,局部路径规划子模块规划出w
c
出发,到达T
n
并覆盖T
n
的局部路径LP,转第八步;7.4此时TC和T
n
连通但是不相邻,局部路径规划子模块生成从wc出发到达T
n
,并覆盖T
n
的局部路径LP,方法是:7.4.1局部路径规划子模块根据机器人当前坐标(x
c
,y
c
),采用螺旋填充方法生成一条从(x
c
,y
c
)出发,到达T
n
的路径tour
2,1
;7.4.2局部路径规划子模块生成覆盖T
n
的第二局部路径tour
2,2
;7.4.3令局部路径LP=tour
2,1
∪tour
2,2
,此时LP中包含A个顶点,A为正整数,LP={lp1,...,lp
a
,...,lp
A
},lp
a
为LP中的第a个顶点,1≤a≤A,转第八步;第八步,局部路径规划子模块初始化点序列号a=1,将局部路径LP中的第a个点lp
a
作为机器人在lp
a
处的位姿wt,将wt发送到导航模块;第九步,导航模块接收局部路径规划子模块发送的wt,引导机器人运动到wt;机器人到达wt后,利用任务传感器在wt的坐标执行覆盖任务;待任务执行完毕,转第十步;第十步,机器人终端的雷达传感器采集机器人在wt的坐标执行完覆盖任务后的环境信息,包括障碍物与雷达传感器之间的距离和障碍物的形状,并将环境信息发送给定位模块;第十一步,机器人终端的定位模块根据雷达传感器采集的环境信息,对网格地图Gd进行更新,得到更新后的网格地图Gd

,并获取机器人在新的环境信息下的位姿wc

;令wc=wc

,令wx为三元组(x
c
,y
c
,θ
c
),令Gd=Gd

,机器人终端的定位模块将Gd发送给层次化覆盖路径规划模块的任务划分与管理子模块,将wc发送给层次化覆盖路径规划模块的任务划分与管理子模块、全局路径规划子模块和局部路径规划子模块;第十二步,任务划分与管理子模块的任务生成器接收机器人终端发送的网格地图Gd和机器人当前位姿wc,障碍物探索子模块判断wc的位置坐标的局部邻域LN是否存在障碍物,LN指以wc为中心,以1.5r1为半径的圆,方法是查询Gd中与局部邻域LN对应的网格的值,判断局部邻域LN是否存在障碍物;若局部邻域LN不存在障碍物,转第十三步;若存在障碍物,转第十五步;第十三步,如果点序列号a=A,说明机器人已经覆盖完LP中的所有导航点,即已经覆盖完T
n
,转第十四步;否则,说明机器人还没有覆盖完LP中的所有导航点,令a=a+1,局部路径规划子模块将局部路径LP中的第a个点lp
a
作为wt,将wt发送到导航模块;转第九步;
第十四步,如果任务序列号n=N,说明GT中的所有覆盖任务都已经被执行完,转第十七步;否则,说明局部路径规划子模块覆盖完GT中的第n个任务T
n
,但是T
n
到T
N
还没有被执行,令n=n+1,全局路径规划模块将T
n
发送到局部路径规划模块,转第七步;第十五步,任务划分与管理子模块的任务生成器的障碍物探索子模块引导机器人探索出障碍物的完整边界B
m
,任务生成器的区域划分子模块基于障碍物边界信息B
m
,将与障碍物重叠的区域重新划分,得到新的单元集合C
new
,将B
m
和C
new
发送给任务管理器;方法是:15.1任务生成器的障碍物探索子模块采用螺旋填充方法,引导机器人跟随障碍物边界一周,获取障碍物的完整边界B
m
;B
m
是一个包含D个坐标点的点集,满足B
m
={(x
d
,y
d
),d=1,...,A},x
d
,y

【专利技术属性】
技术研发人员:史殿习李林刘衡竹杨文婧杨绍武杨思宁刘哲史燕燕杨焕焕安浩嘉连尧宁
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1