本发明涉及机器人自动检测技术领域,特别是一种群机器人的搜索方法。
背景技术:
近几年,全球开启工业4.0模式,其发展方向是走向互联网和物联网、信息流和数据流的进一步融合,也加快了机器人领域的发展速度,提高了机器人软硬件技术,拓宽了移动机器人应用的范围,由机器人来完成服务、家居生活、工业生产等方面的工作成为一种势不可挡的潮流,在餐厅中做服务员的机器人、工厂中忙于生产的机械臂等随处可见。
虽然单个机器人可以完成一些简单的任务,但是由于单个机器人一般都体积大、能耗高、结构复杂,灵活性差,在使用单机器人进行搜索任务时的效果不是很好,而群机器人因为其体积小、数量多、结构简单、比较灵活、鲁棒性强,比单个机器人更容易控制,而且其容错能力强,即使其中某个机器人坏了,也不会影响整体的搜索等特征,因此,近几年受到越来越多的关注。
研究利用群机器人搜索目标,在理论和实际研究中都有重要的意义。从理论上来说,通过研究群机器人寻找目标的过程,可以促进对群体自组织原理及协同行为涌现规律的研究。从实际上来说,研究利用群机器人搜索目标,可以利用机器人代替人完成很多工作,比如排雷排爆、空间探测、地震等灾难后的幸存者搜索、矿难搜救问题等,从而使机器人的应用变得更加广阔。
技术实现要素:
本发明需要解决的技术问题是提供一种高效率的群机器人搜索方法。
为解决上述技术问题,本发明所采取的技术方案如下。
基于动态粒子蜜蜂算法的群机器人搜索方法,具体包括以下步骤:
a.采用组合拍卖法对搜索问题建模;
其中,
xij=0,1,(i,j=1,2,…,n);
cij表示机器人ri搜索目标gj所需要的代价;
b.设置搜索领域以及搜索时间t;
c.利用动态粒子蜜蜂算法进行搜索,直到整个搜索区域搜索完成或者设定的搜索时间达到,结束搜索。
上述基于动态粒子蜜蜂算法的群机器人搜索方法,步骤c具体包括以下内容:
c1.利用蜜蜂算法进行全局搜索;
c2.当发现目标之后,转变为动态粒子群搜索算法进行局部搜索,确定动态离子群搜索时间t1;.在t1时间内,一直采用动态粒子群搜索算法进行目标位置的确定;确定目标位置后,判断是否完成整个区域的搜索,如果完成,则结束当前区域的搜索;如没有确定目标,则在t1时间到达后,转换为蜜蜂算法,继续进行当前区域的搜索;
c3.如果蜜蜂算法没有发现目标,一直使用蜜蜂搜索算法进行搜索,直到整个搜索区域搜索完成或者搜索时间t到达,结束搜索。
上述基于动态粒子蜜蜂算法的群机器人搜索方法,步骤c1具体包括以下内容:
c11.初始化被随机释放在搜索环境中的侦查蜂位置;
c12.计算侦查蜂的适应度值,按降序排列,选取出nb只最佳蜂;
c13.招募nrb只蜜蜂,进行领域搜索;
c14.计算最佳蜂的适应度值,按降序排列,选取出ne只精英蜂;
c15.招募nre只蜜蜂,进行领域搜索。
上述基于动态粒子蜜蜂算法的群机器人搜索方法,所述适应度值计算采用下式计算获得:
式中:
其中,α,β和γ分别是质量、成本和机器人性能的控制参数,
vik是第k个机器人对第i个任务的性能值,
n是机器人个数,gik是第k个机器人得到关于第i个任务的信息,
cik是第k个机器人执行第i个任务花费的成本,
ti是完成第i个任务花费的时间,
m是目标个数,t为搜索总时间,
fi表示任务i的标准化优先权,
fi是任务i的优先权,第k个机器人完成第i个目标的成本就是相互间的距离dik,
(xi,yi)和(xk,yk)分别代表目标和机器人的位置;
上述适应度计算过程中,所有侦查蜂的适应度值总和为1,所有最佳蜂的适应度总和为1。
上述基于动态粒子蜜蜂算法的群机器人搜索方法,步骤c2具体包括以下内容:
c21.均匀分割搜索空间成若干子搜索空间,并初始化子搜索空间,确定粒子坐标值;
c22.随机生成敏感粒子,计算器适应度值,通过响应阈值来衡量敏感粒子的适应度值;
c23.以一定的比例更新粒子的位置和速度,直到确定目标位置或者动态离子群搜索时间t1到达。
上述基于动态粒子蜜蜂算法的群机器人搜索方法,所述粒子和敏感粒子的适应度计算公式如下:
fitness(i)=positionx(i)+positiony(i)
其中,fitness(i)表示粒子i的适应度值;positionx(i)表示粒子i的位置x坐标值,positiony(i)表示粒子i的位置y坐标值。
上述基于动态粒子蜜蜂算法的群机器人搜索方法,所述粒子和敏感粒子的速度和位置更新公式如下:
其中,pbestx是粒子本身在搜索过程中在x轴的最好位置,
pbesty是粒子本身在搜索过程中在y轴的最好位置,
gbestx是在通信范围内所有粒子中在x轴的最好位置,
gbesty是在通信范围内所有粒子中在y轴的最好位置,
w,c1,c2为权值,0<w<2,0<c1/c2<2。
上述基于动态粒子蜜蜂算法的群机器人搜索方法,所述动态粒子群进行局部搜索时加入邻域设置,使精英蜂和最佳蜂在局部搜索过程中,位置迭代的总和在设置的最大值和最小值之间,即xidmin≤xid(t+1)≤xidmax。
由于采用了以上技术方案,本发明所取得技术进步如下。
本发明基于动态粒子算法和蜜蜂算法,应用于群机器人作业过程中,改善了全局搜索的速度,收敛性好,能够使群机器人在较短的时间内迅速搜索到目标,大大提高了搜索效率以及搜索结果的准确性。
附图说明
图1为本发明的流程图;
图2为本发明所述动态粒子蜜蜂算法的流程图;
图3为本发明所述动态粒子群算法的流程图;
图4为本发明中所述蜜蜂算法的流程图。
具体实施方式
下面将结合附图和具体实施例对本发明进行进一步详细说明。
本发明受到蜂群觅食行为的启发,提出在群机器人执行搜索任务过程中,以模拟蜂群觅食的过程为思想进行目标搜索,即在未知环境中,群机器人利用蜂群觅食行为的特征来搜索目标。
一种基于动态粒子蜜蜂算法的群机器人搜索方法,具体包括以下步骤。
a.采用组合拍卖法对搜索问题建模。
设一个组合拍卖的竞标集合g={b1,b,2,…bs},一个竞标就是一个二元组bj≤sj,cij>0,此处代价函数cij>0可认为竞标的出价,代价函数cij表示机器人ri搜索目标gj所需要的代价。
当xij=1时,表示机器人ri搜索到目标gj;当xij=0时,表示机器人ri未搜索未到目标gj。
当机器人ri搜索完目标点gj之后,必须要有一个确切的即将探测的目标点;而探测目标点gj之前必须要有一个刚刚探测过的确切目标。
那么,基于组合拍卖法的混合整数线性规划的数学模型如下:
其中,
xij=0,1,(i,j=1,2,…,n);
cij表示机器人ri搜索目标gj所需要的代价。
b.设置搜索领域以及搜索时间t;设置搜索区域,并在搜索区域内设置4个目标点,实际坐标分别为(-60,-60)、(40,40)、(-40,40)和(40,-40),利用100个机器人进行搜索的任务,搜索时间为t。
c.利用动态粒子蜜蜂算法进行搜索,直到整个搜索区域搜索完成或者设定的搜索时间达到,结束搜索,具体流程如图2所示。
步骤c具体包括以下内容:
c1.利用蜜蜂算法进行全局搜索,具体流程如图4所示。
c11.初始化被随机释放在搜索环境中的侦查蜂位置。
c12.计算侦查蜂的适应度值,按降序排列,选取出nb只最佳蜂。
c13.招募nrb只蜜蜂,进行领域搜索。
c14.计算最佳蜂的适应度值,按降序排列,选取出ne只精英蜂。
c15.招募nre只蜜蜂,进行领域搜索。
上述侦查蜂和最佳蜂适应度值计算采用下式计算获得。
式中:
其中,α,β和γ分别是质量、成本和机器人性能的控制参数,
vik是第k个机器人对第i个任务的性能值,
n是机器人个数,gik是第k个机器人得到关于第i个任务的信息,
cik是第k个机器人执行第i个任务花费的成本,
ti是完成第i个任务花费的时间,
m是目标个数,t为搜索总时间,
fi表示任务i的标准化优先权,
fi是任务i的优先权,第k个机器人完成第i个目标的成本就是相互间的距离dik,
(xi,yi)和(xk,yk)分别代表目标和机器人的位置;
上述适应度计算过程中,所有侦查蜂的适应度值总和为1,所有最佳蜂的适应度总和为1。
c2.当发现目标之后,转变为动态粒子群搜索算法进行局部搜索,确定动态离子群搜索时间t1;.在t1时间内,一直采用动态粒子群搜索算法进行目标位置的确定;确定目标位置后,判断是否完成整个区域的搜索,如果完成,则结束当前区域的搜索;如没有确定目标,则在t1时间到达后,转换为蜜蜂算法,继续进行当前区域的搜索,动态粒子群算法的具体流程如图3所示。
c21.均匀分割搜索空间成若干子搜索空间,并初始化子搜索空间,确定粒子坐标值。
本步骤中,动态粒子群进行局部搜索时加入邻域设置,使精英蜂和最佳蜂在局部搜索过程中,位置迭代的总和在设置的最大值和最小值之间,即xidmin≤xid(t+1)≤xidmax。
例如设置的邻域边界设置为20和25,那么整个过程xid的值不能超过20*25这个矩形,如果其值超过这个范围,邻域设置会将其限制在20*25这个范围内,提高完成搜索的效率。
c22.随机生成敏感粒子,计算器适应度值,通过响应阈值来衡量敏感粒子的适应度值。
粒子和敏感粒子的适应度计算公式如下:
fitness(i)=positionx(i)+positiony(i)
其中,fitness(i)表示粒子i的适应度值;positionx(i)表示粒子i的位置x坐标值,positiony(i)表示粒子i的位置y坐标值。
c23.以一定的比例更新粒子的位置和速度,直到确定目标位置或者动态离子群搜索时间t1到达。
粒子和敏感粒子的速度和位置更新公式如下:
其中,pbestx是粒子本身在搜索过程中在x轴的最好位置,
pbesty是粒子本身在搜索过程中在y轴的最好位置,
gbestx是在通信范围内所有粒子中在x轴的最好位置,
gbesty是在通信范围内所有粒子中在y轴的最好位置,
w,c1,c2为权值,0<w<2,0<c1/c2<2。
c3.如果蜜蜂算法没有发现目标,一直使用蜜蜂搜索算法进行搜索,直到整个搜索区域搜索完成或者搜索时间t到达,结束搜索。