买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:湖南第一师范学院
摘要:本发明公开了一种基于树划分多Dubins机器人协同覆盖路径规划方法。技术方案是构建由服务端、客户端及K台机器人组成的多Dubins机器人覆盖路径规划系统。服务端上安装有区域分解模块、初始划分模块、划分细调模块和路径规划模块。客户端采集目标区域的信息,初始划分模块将目标区域划分为K个分区,得到分区集合P,计算每个分区对应的代价;划分细调模块对P进行调整,得到细调分区集合P';路径规划模块在P’对应的K个分区上并行执行路径规划算法,生成K条Dubins覆盖路径。K台机器人并行地按照覆盖路径运动,生成K条运动轨迹,实现目标区域的覆盖。采用本发明能规划出近似最优的覆盖路径,满足机器人的运动力学约束。
主权项:1.一种基于树划分多Dubins机器人协同覆盖路径规划方法,其特征在于包括以下步骤:第一步,构建多Dubins机器人覆盖路径规划系统;多Dubins机器人覆盖路径规划系统由服务端、客户端及K台机器人组成,K为正整数;客户端与服务端相连,客户端存储机器人信息、目标区域信息和算法信息;机器人信息包括K台机器人的起始位置SP、前进速度speed、转弯半径radius和任务传感器的覆盖宽度width;目标区域信息包括目标区域的二进制地图MAP,客户端上有探测传感器,通过探测传感器获取目标区域信息,计算目标区域的二进制地图MAP,将MAP发送给服务端;MAP里包含M×N个单元,每个单元是一个小方格,其宽度为width;算法信息包括服务端所需的最大迭代次数Inum,Inum为一个整数;客户端将机器人信息SP、speed、radius和width,目标区域信息MAP和算法信息Inum发送给服务端;服务端与客户端和K台机器人相连,其上安装有区域分解模块、初始划分模块、划分细调模块和路径规划模块;区域分解模块与客户端、初始划分模块相连,接收客户端发送的二进制地图信息MAP和机器人覆盖宽度width,对目标区域进行分解,得到分解后的覆盖单元集合C,C中的覆盖单元为矩形单元,将C发送给初始划分模块;初始划分模块与客户端、区域分解模块、划分细调模块相连,从客户端接收K个机器人的起始位置SP,从区域分解模块接收覆盖单元集合C,将C划分为K个分区,K个分区放到分区集合P中,P={p1,...,pk,...,pK},pk表示P中的第k个分区,1≤k≤K,根据分区的面积及SP到分区的最短距离生成P中各分区对应的代价集合Cost,将P及Cost发送给划分细调模块;划分细调模块与客户端、初始划分模块、路径规划模块相连,从客户端接收算法最大迭代次数Inum,从初始划分模块接收P和Cost,对P进行调整,得到调整后的细调分区集合P′,P′={p′1,...,p′k,...,p′K},p′k是pk调整后的分区,将P’发送给路径规划模块;路径规划模块与客户端、划分细调模块、K台机器人相连,从客户端接收K台机器人的起始位置SP、前进速度speed、转弯半径radius,从划分细调模块接收P’,生成覆盖P’中K个分区的Dubins路径,将这K条路径发送给K个机器人终端;K台机器人与路径规划模块相连,是K台同构Dubins机器人;K台同构的Dubins机器人从路径规划模块接收覆盖P’中K个分区的Dubins路径,并行地按照对应的路径运动,生成K条运动轨迹,实现对目标区域的完全覆盖;第二步,客户端的探测传感器采集目标区域的信息,生成目标区域对应的二维单元地图MAP,目标区域的信息包括目标区域的面积、障碍物、边界;MAP里包含M×N个单元,单元值为0表示该单元被障碍物占据,单元值为1表示该单元为待覆盖单元;通过计算MAP源点与机器人起点的相对距离获得SP,通过查询机器人说明书获得speed、radius,通过查询机器人装载的任务传感器说明书获得width,由用户设定算法最大迭代次数Inum;将MAP和机器人的覆盖宽度width发送给区域分解模块,将K台机器人的起始位置SP发送给初始划分模块,将Inum发送给划分细调模块,将K台机器人的起始位置SP、前进速度speed、转弯半径radius发送给路径规划模块;第三步,区域分解模块接收客户端发送的二维网格地图MAP和机器人的覆盖宽度width,将目标区域分解成多个矩形单元,这些矩形单元构成初始的覆盖单元集合C,将C发送给初始划分模块;方法是:采用Semi-BCD分解算法,根据MAP将目标区域划分为多个矩形单元,每个矩形单元的宽等于width,矩形单元的长度由障碍物边界和目标区域边界决定;单个矩形单元对应单个覆盖任务,所有矩形单元构成初始的覆盖单元集合C,C={c1,...,cz,...,cZ},Z为覆盖单元总数,Z为正整数,cz代表C中第z个覆盖任务,1≤z≤Z;将单元集合C发送给初始划分模块;第四步,初始划分模块从客户端接收K个机器人的起始位置SP和区域分解模块发送的覆盖单元集合C,将目标区域划分为K个分区,令为分区集合P,并计算P中每个分区对应的代价,得到P中各分区对应的代价集合Cost,将P和Cost发送给划分细调模块,方法是:4.1将覆盖单元集合C抽象成一个连通图G,G={V,E},其中V代表顶点集合,E代表顶点之间的边集合;V={v1,...,vz,...,vZ},其中第z个顶点vz对应覆盖单元集合C的第z个单元cz;|vz|为顶点vz的权重,代表cz的覆盖面积;边ei,j∈E,表示顶点vi和顶点vj之间存在共同的边界,1≤i≤Z,1≤j≤Z,i≠j;4.2将覆盖单元集合C划分成K个分区,令K个分区集合为P,方法是:4.2.1令分区集合P={p1,...,pk,...,pK},pk是P中第k个分区,令p1,...,pk,...,pK均为空,令已分配覆盖单元数量num为0,1≤k≤K;4.2.2依次为p1,...,pk,...,pK分配第一个单元,并计算机器人访问p1,...,pk,...,pK的代价,得到cost1,...,costk,...,costK,costk是机器人访问pk的代价;4.2.3依次为p1,...,pk,...,pK分配其他单元,并更新机器人访问p1,...,pk,...,pK的代价,方法如下:4.2.3.1令分区序号k=1;4.2.3.2计算V中与pk相邻,且尚未分配的覆盖单元集合adjk;4.2.3.3从相邻单元集合adjk中随机挑选一个覆盖单元ac,将ac分配给pk,即令pk=pk∪{ac},令pk中包含的覆盖单元个数pnum=pnum+1,令已分配覆盖单元数量num=num+1;4.2.3.4更新机器人访问pk的代价costk,即令costk=costk-|ac|,其中|ac|为覆盖单元的面积,将costk放到代价集合Cost中;4.2.3.5判断num是否等于Z;如果num=Z,表示C中的所有覆盖单元已分配完毕,初始划分结束,此时Cost={cost1,....,costk,....,costK},将P和Cost发送给划分细调模块,转第五步;如果numZ,判断k是否等于K,如果k=K,令k=1,转4.2.3.2;如果kK,令k=k+1,转4.2.3.2;第五步,划分细调模块接收初始划分模块发送的P和Cost,从客户端接收Inum,对P进行调整,得到调整后的细调分区集合P′,将P′发送给路径规划模块,方法是:5.1令细调分区集合P′=P,令细调代价集合Cost’=Cost={cost′1,....,cost′k,....,cost′K},其中cost′k=costk,1≤k≤K,令迭代次数o=0;5.2从P′中挑选出需要进行任务交换的两个分区,令为p′k和p′q,具体方法如下:5.2.1定义任务交换两个分区中,出让任务的一方为交换的卖家,接收任务的一方为任务交换过程中的买家;P′中K个分区对应Cost’中的K个代价,在Cost′中找到最大值,令该最大值为cost′k,令cost′k对应的分区为p′k,令p′k作为任务交换时的卖家seller;5.2.2计算P′的K个分区中,与p′k相邻的其他分区;定义p′k和分区p′l相邻,p′l∈P′,1≤l≤K,k≠l,至少存在一对覆盖单元ck和cl,ck∈p′k,cl∈p′l,ck和cl之间存在边ek,l,ek,l∈E;令P′的K个分区中,与p′k相邻的其他分区个数为QQ为整数,且满足0≤Q≤K-1,这Q个分区构成分区集合ADV,这Q个分区的代价构成第二代价集合Cost′A={cost′A1,...,cost′Aq,...,cost′AQ},1≤q≤Q;5.2.3ADV共有Q个分区,计算这Q个分区与p′k的Q个代价差值{delat1,...,delatq,...,delatQ},其中delatq=cost′k-cost′Aq,这个Q个代价差值构成集合Delta;令deltaq为Delta的最大值,令分区集合ADV中第q个分区p′q作为任务交换时的买家buyer;5.3确定卖家seller和买家buyer之间待交换的覆盖单元集合,方法是:5.3.1计算卖家seller和买家buyer之间的相邻覆盖单元集合AC,方法是:令卖家seller包含的覆盖单元个数为M,M为整数,且满足1≤M≤Z-1,即seller={cs,1,...,cs,m,...,cs,M},其中cs,m为卖家seller中第m个覆盖单元,1≤m≤M;令卖家buyer包含的覆盖单元个数为N,N为整数,且满足1≤N≤Z-1,即buyer={cb,1,...,cb,n,...,cb,N},cb,n为卖家buyer中第n个覆盖单元,1≤n≤N;定义覆盖单元cs,m与分区buyer相邻,当且仅当分区buyer存在单元cb,n,cs,m与cb,n之间存在一条边e∈E;令seller里的M个覆盖单元中,与buyer相邻的单元的数量为R,1≤R≤M,这R个覆盖单元构成相邻单元集合AC,AC={ac1,...,acr,...,acR},1≤r≤R;AC中R个单元对应R个单元面积,这R个单元面积构成权重集合WAC,WAC={w1,...,wr...,wR},wr是AC中第r个覆盖单元acr的权重值;5.3.2从相邻单元集合AC中,挑选出卖家seller和买家buyer之间待交换的覆盖单元集合EV,方法是:5.3.2.1令WAC中最大的权重值为wr;5.3.2.2将seller中的M个覆盖单元抽象成一个连通图GS,GS={VS,ES},其中VS代表顶点集合,ES代表顶点之间的边集合;VS={vs1,...,vsm,...,vsM},其中第m个顶点vsm对应seller的第m个覆盖单元cs,m;边esi,j∈ES,表示覆盖单元cs,i和cs,j之间存在共同的边界;根据割点的定义,判断覆盖单元acr是否为GS的割点;如果acr是GS的割点,转5.3.2.3;否则,从AC中剔除acr,即令AC=AC-acr,并删除WAC中的第r个权重值wr,转5.3.2.1;5.3.2.3使用深度优先搜索方法,找到连通图GS中以acr为根节点的QQ棵子树,并通过这QQ棵子树确定seller和buyer之间待交换的覆盖单元集合EV,其中QQ为正整数,且QQ1;5.4引导seller和buyer交换EV,并更新对应的代价;方法是:5.4.1更新细调分区集合P’中seller和buyer的覆盖单元集合,即令seller=seller-EV,令buyer=buyer+EV;5.4.2令seller为P’中第x个分区,更新Cost’中seller对应代价cost’x为wseller+Ds,其中wseller代表seller所有覆盖单元的面积,Ds为机器人起点SP到达分区seller的最短路径;令buyer为P’中第y个分区,更新Cost’中buyer对应代价cost’y为wbuyer+Db,其中wbuyer代表分区buyer所有覆盖单元的面积和,Db为机器人起点SP到达分区buyer的最短路径;5.5令o=o+1,如果o等于最大迭代次数Inum,说明迭代结束,得到细调分区集合P’,将P’发送给路径规划模块,转第六步;如果o小于最大迭代次数Inum,转5.2;第六步,路径规划模块从划分细调模块接收P’,从客户端接收K台Dubins机器人的起始位置SP、前进速度speed、转弯半径radius,根据地图MAP、起始位置SP、前进速度speed、转弯半径radius,在P’对应的K个分区上并行执行单机器人Dubins路径规划算法,K个分区对应生成K条Dubins覆盖路径,将K条Dubins覆盖路径分别发送给与P’对应的K台Dubins机器人;第七步,K台机器人从路径规划模块并行接收对应的Dubins覆盖路径,并行地按照对应的Dubins覆盖路径运动,一边运动一边执行任务,生成K条运动轨迹,这K条运动轨迹实现对目标区域的完全覆盖。
全文数据:
权利要求:
百度查询: 湖南第一师范学院 基于树划分多Dubins机器人协同覆盖路径规划方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。