基于多头绒泡菌觅食的群体机器人搜索算法及验证方法与流程

文档序号:11519971阅读:492来源:国知局
基于多头绒泡菌觅食的群体机器人搜索算法及验证方法与流程
本发明涉及一种群体智能算法
技术领域
,尤指一种模拟黏菌群体觅食过程的仿生搜索算法,更具体的是通过群体机器人的局部相互作用来完成搜索的基于多头绒泡菌觅食的群体机器人搜索算法及验证方法。
背景技术
:所谓的区域覆盖搜索是指携带有一定探测范围的传感器(如激光、声纳等)的机器人探索访问整个区域,并完成相应任务的过程。这一直是研究中富有挑战性的前沿方向之一。近年来,随着实际应用的需要与机器人研究的不断深入,对于区域覆盖搜索问题的研究引起诸多学者的重视。采用群体机器人完成区域覆盖搜索任务,呈现出安全系数高、搜索效率高、搜索范围大等特点。从实际应用来看,群体机器人覆盖搜索具有十分广泛的应用场景与重要意义,例如:军事侦察、危险环境下的对人员搜救、星球探索等等。从搜索效率上来看,群体机器人比单一机器人的搜索范围跟更大,能更有效地完成单一机器人不能完成的任务。近年来,群体智能算法吸引了国内外众多学者的关注,诸如粒子群算法、蚁群算法等等。不少专家、学者也将一些群体智能算法运用在群体机器人上,例如:国外文献《controloverswarmrobotssearchwithswarmintelligenceprinciples[j]》公开了将群体智能原理运用在群体机器人的搜索控制上,国内文献《基于黄蜂群算法的群机器人区域覆盖问题研究》公开了拓展黄蜂群算法在群体机器人进行区域覆盖搜索问题上等等。多头绒泡菌是一种多核的单细胞生物,是一种黏菌。作为单细胞生物,它没有大脑、中枢神经系统或任何类型的神经组织。它通过感知细胞外的刺激,来改变自身身体的形状。基于这一事实,人们对细胞的“基本智能”进行了大量的研究。例如,在《rulesforbiologicallyinspiredadaptivenetworkdesign.[j]》和《amoebaeanticipateperiodicevents[j]》文献中公开了黏菌可以形成一个最佳的地铁网络和预测周期事件。多头绒泡菌通过自身向四面八方生长来搜索食物的,在一段时间后黏菌又收缩回去,只留下错综复杂的管道来连接食物,通过这些管道来将养分运输给黏菌。整体上看,这些管道形成了一个网络,连接着食物与黏菌;其中,多头绒泡菌原质团的运动受局部环境条件的影响,吸引源(比如增加温度梯度和趋化物营养)会吸引多头绒泡菌向吸引物生长运动,而排斥源(如盐、干燥区域等)会导致黏菌避开这些区域。为了在群体机器人控制算法中模拟这些觅食行为,我们不得不忽略几个来自于黏菌觅食的启发,多头绒泡菌觅食过程。(a)多头绒泡菌开始觅食。(b)多头绒泡菌向四周生长,并以此定位食物。(c)多头绒泡菌开始收缩,留下管道,连接着食物,并通过这些管道传输养分。(d)多头绒泡菌的觅食基本完成,错综复杂的管道形成了一个网络般的养分传输通道。如:对于群体机器人,很难保持在快速向四周拓展时仍像黏菌发散觅食生长时持续保持与黏菌的联系,因此,我们需要设定一种逆时针的搜索方式代替黏菌的向四周发散搜索的方式。关于利用群体机器人进行区域覆盖搜索的研究上,虽然中国专利号为201610749188.9的专利公开了一种基于生物觅食行为的群机器人混合搜索方法,该方法利用群机器人搜索目标,促进对群体自组织原理及协同行为涌现规律的基于生物觅食行为的群机器人混合搜索方法,采用栅格法对搜索环境的建模,将搜索区域划分为若干子区域,安排每个子区域的搜索顺序,混合搜索算法进行搜索,虽然该专利利用机器人代替人完成很多工作,比如排雷排爆、空间探测、地震等灾难后的幸存者搜索、矿难搜救问题等,但该算法相对复杂,执行时间相对较长而且准确性不高;专利号为201510481231.3的专利公开了一种多机器人群体的任务搜索和任务执行方法,具体执根据任务的不同形态及机器人协作形式的不同,也将多机器人协同划分为以下三种形式:多机器人顺序协同、多机器人同步协同、多机器人自由协同,虽然该发明可应用于执行更复杂的任务,将复杂的任务分解成若干份,但是执行的时间相对较长,程序相对复杂,容易造成死机状态。技术实现要素:针对当前群体智能算法过度依赖于群体机器人之间的通信,而在区域覆盖搜索中难以建立全局的通信这一现象,提出一种模仿黏菌覆盖觅食的群体仿生搜索算法,更具体的是通过群体机器人的局部相互作用来完成搜索的基于多头绒泡菌觅食的群体机器人搜索算法及验证方法。本发明所采用的技术方案是:一种基于多头绒泡菌觅食的群体机器人搜索算法,所述的搜索算法包括划分定义群体机器人步骤和运算处理数据步骤。所述的划分定义群体机器人步骤是根据机器人的状态,将群体机器人划分成三种类型的机器人,分别命名为core、branch和forager,其中,core在整个搜索运动中保持静止状态,通过无线通信传递自身的类型与轨迹半径;branch属于停止之前的运动,保持静止状态,为搜索机器人的边缘移动提供方向;forager为根据edge-following进行移动,在通讯半径范围内仅有一个branch或没有任何类型机器人时,转变为branch,除了core,所有机器人都执行着同一个程序;另外机器人群体设置了三个简单的基本的集体行为,分别是edgefollow、lifedistribution和branchgrowth,所述的基本的集体行为分别通过输入各自的伪代码实现。所述的运算处理数据步骤分为四个阶段,分别是初始化阶段,驱散搜索阶段,边缘搜索阶段,信号源吸引阶段。所述的初始化阶段是指,初始时,除了指定为core的机器人外,所有的机器人均为forager,将所有的机器人聚集在一起,初始化数据,等待搜索开始。所述的驱散搜索阶段是指,所有的forager计算与core的距离,遵循edge-following原则,进入轨道,进入下一阶段,若通讯范围内不存在core与branch,则转变为branch,类似于分子间的斥力作用,使得forager发散搜索。所述的边缘搜索阶段是指,forager沿着branch与core所提供的轨迹进行移动,同时遵循着branchgrowth原则更新搜索方向;所述的信号源吸引阶段是指,forager根据自身的信号强度与群体中的最优信号强度相比,逐渐搭建与信号源的分支。edge-following是指在反馈移动中,forager沿着core与branch所提供的轨道进行逆时针的移动,core与branch广播出一个消息以通知forager,forager接收消息后,计算与发送该消息的机器人的距离,轨迹半径,记为r,若此距离超过某一固定的值则左转;当forager距离core或branch小于规定的轨迹半径r时,如果太靠近core或branch,则右转,否则直走。这是通过一个简单的反馈机制实现的群体机器人逆时针运动。所述的lifedistribution是指生命力分布,假设黏菌的生命力随着扩展,生命力降低,黏菌整体呈现出一种生命力梯度,根据这一假设,创建一个虚拟的值以标记着branch与core的大概距离,该值越高则越靠近core。所述的branchgrowth是指模拟多头绒泡菌的发散生长现象用以增加branch的数量,来扩展forager的搜索范围,当forager遵循着edgefollow原则移动时,其通讯范围内仅只有一个branch,则forager转变为branch,构成分支,更新生命力梯度,随着forager不断转换为branch,形成一种由core为中心发散出一种网络般的搜索通道,forager在branch所提供的的轨道上进行移动搜索,branch所构成的搜索网络与多头绒泡菌所形成营养运输管道相类似。基于多头绒泡菌觅食的群体机器人搜索算法的验证方法,所述的验证方法是基于多头绒泡菌的群体机器人搜索算法在kilombo的仿真平台上进行实验,针对群体机器人的运动控制和通讯进行模仿的仿真平台,在kilombo仿真平台上的群体机器人搜索单一信号源和多信号源进行多次实验,仿真的目的是为了展示基于多头绒泡菌的群体机器人搜索算法的可行性与搜索特点;首先,设置实验仿真平台和机器人群体实验参数:在仿真实验中,我们选择一个kilobot为信号源,其余机器人运行本算法进行覆盖搜索;机器人群体实验参数如下表所示:机器人群体参数参数值单位机器人最大通讯半径100mm机器人最大探测半径100mm机器人运动速度3mm/s机器人运动场地面积640*424mm*mm搜索单一信号源时,机器人数量10个搜索多个信号源时,机器人数量15个然后,在kilombo仿真平台下对单一信号源进行多次试验,并记录试验数据和实验图像:基于多头绒泡菌的群体机器人搜索算法在kilombo仿真平台上的群体机器人搜索单一信号源时,将不同的机器人设置为不同的颜色,然后以逆时针搜索的方式,随着搜索算法的运行,呈现出以中心机器人为中心的螺旋、辐射性搜索,且集中指向信号源的位置,实验过程中记录初始态的不同时间段的参数和实验图像,建立坐标图;再然后,在kilombo仿真平台下对多信号源进行多次试验,并记录试验数据和实验图像:基于多头绒泡菌的群体机器人搜索算法在kilombo仿真平台上的群体机器人搜索多个信号源,将不同的机器人设置为不同的颜色,群体机器人对多信号源的搜索同样呈现出逆时针的搜索,随着branch不断增多,逐渐形成一个类似于多头绒泡菌的营养运输网络的群体机器人搜索网络。最后,分析实验数据得出实验结论:根据在实验过程中不同时间段所记录的实验图像及参数,建立坐标图进行实验数据分析并得出结论,在群体机器人搜索单一信号源与多信号源的时间波动图中,尽量保持信号源与forager之间的距离相似,信号源与forager之间的距离不能保持绝对的相等,距离的差异影响搜索的时间,增加机器人数量进行搜索在本算法中并不意味着搜索效率的提升,但往往因机器人数量的增加导致机器人之间碰撞的几率增多,导致搜索效率有下降的可能。基于多头绒泡菌觅食的群体机器人搜索算法的验证方法,所述的验证方法是指硬件演示实验,是基于多头绒泡菌的群体机器人搜索算法在真实机器人上成功演示实验,演示实验的目的主要为了验证基于多头绒泡菌的群体机器人搜索算法的核心思想具有一定的普遍性并且能够在真实的机器人上使用;首先,选择设置实验平台:所述的试验方法中所用的实验平台为kilobot机器人系统,实验共用10个kilobot在场地为0.4×0.6㎡的亚克力板上进行,kilobot通过红外发射、接收器进行机器人的通讯与测距,通过振动电机实现kilobot的运动;kilobot实验平台的相关参数如下表所示:kilobot的参数名称参数值单位最大通讯半径120mm最大探测半径120mm运动速度10mm/s运动场地面积0.4×0.6m×m数量10个转弯时角速度0.64rad/s然后,以一个独立的kilobot为信号源,其余机器人执行本算法的程序;最后,通过实验的过程的截图分析验证了基于多头绒泡菌的群体机器人搜索算法的核心思想具有一定的普遍性并且能够在真实的机器人上使用。本发明的有益效果是:本发明采用伪代码控制群体机器人执行模拟多头绒泡菌觅食的方式进行搜索计算,通过仿真实验平台对单一信号源和多信号源分别进行仿真实验验证,以及在硬件仿真实验中对单一信号源进行演示验证,得出本发明的算法在面对机器人通讯半径有限的覆盖搜索问题上取得较好的效果结论,实现了一种非常简单,对机器人通讯依赖小的适应于区域覆盖搜索算法,在区域覆盖搜索问题上,具有较高的效率与应用价值。附图说明图1是本发明中算法的基本流程图。图2是本发明中针对单一信号源进行仿真搜索的稳定性情况示意图。图3是本发明中针对多信号源进行仿真搜索的稳定性情况示意图。图4是本发明中不同机器人数量对机器人数量的影响情况示意图。图5是在kilombo仿真平台下对单一信号源进行试验的过程示意图。图6是在kilombo仿真平台下对多信号源进行试验的过程示意图。图7是在真实的机器人kilobot系统上,以一个独立的kilobot为信号源进行实验的过程示意图。具体实施方式以下结合说明书附图,详细说明本发明的具体实施方式:如图1所示,一种基于多头绒泡菌觅食的群体机器人搜索算法,所述的搜索算法包括划分定义群体机器人步骤和运算处理数据步骤。所述的划分定义群体机器人步骤是根据机器人的状态,将群体机器人划分成三种类型的机器人,分别命名为core、branch和forager,其中,core在整个搜索运动中保持静止状态,通过无线通信传递自身的类型与轨迹半径;branch属于停止之前的运动,保持静止状态,为搜索机器人的边缘移动提供方向;forager为根据edge-following进行移动,在通讯半径范围内仅有一个branch或没有任何类型机器人时,转变为branch,除了core,所有机器人都执行着同一个程序;另外机器人群体设置了三个简单的基本的集体行为,分别是edgefollow、lifedistribution和branchgrowth,所述的基本的集体行为分别通过输入各自的伪代码实现。所述的edge-following是指在反馈移动中,forager沿着core与branch所提供的轨道进行逆时针的移动,core与branch广播出一个消息以通知forager,forager接收消息后,计算与发送该消息的机器人的距离,轨迹半径,记为r,若此距离超过某一固定的值则左转;当forager距离core或branch小于规定的轨迹半径r时,如果太靠近core或branch,则右转,否则直走。这是通过一个简单的反馈机制实现的群体机器人逆时针运动。所述的lifedistribution是指生命力分布,假设黏菌的生命力随着扩展,生命力降低,黏菌整体呈现出一种生命力梯度,根据这一假设,创建一个虚拟的值以标记着branch与core的大概距离,该值越高则越靠近core;例当如core发出一个固定值为255的值,表示它是生命力的来源,所有接收到这个消息的branch都发送一个值为254的消息,此时称这个值为生命值,当离自己最近的branch的生命值比自身的值大,则更新自己的生命值为x-1,并广播x-1此生命值,其中x为离自己最近的branch的生命值。所述的branchgrowth是指模拟多头绒泡菌的发散生长现象用以增加branch的数量,来扩展forager的搜索范围,当forager遵循着edgefollow原则移动时,其通讯范围内仅只有一个branch,则forager转变为branch,构成分支,更新生命力梯度,随着forager不断转换为branch,形成一种由core为中心发散出一种网络般的搜索通道,forager在branch所提供的的轨道上进行移动搜索,branch所构成的搜索网络与多头绒泡菌所形成营养运输管道相类似。所述的运算处理数据步骤分为四个阶段,分别是初始化阶段,驱散搜索阶段,边缘搜索阶段,信号源吸引阶段。所述的初始化阶段是指,初始时,除了指定为core的机器人外,所有的机器人均为forager,将所有的机器人聚集在一起,初始化数据,等待搜索开始。所述的驱散搜索阶段是指,所有的forager计算与core的距离,遵循edge-following原则,进入轨道,进入下一阶段,若通讯范围内不存在core与branch,则转变为branch,类似于分子间的斥力作用,使得forager发散搜索。所述的边缘搜索阶段是指,forager沿着branch与core所提供的轨迹进行移动,同时遵循着branchgrowth原则更新搜索方向;所述的信号源吸引阶段是指,forager根据自身的信号强度与群体中的最优信号强度相比,逐渐搭建与信号源的分支。基于多头绒泡菌觅食的群体机器人搜索算法的验证方法,所述的验证方法是基于多头绒泡菌的群体机器人搜索算法在kilombo的仿真平台上进行实验,kilombo是由fredrikjansson等所开发的,针对群体机器人的运动控制和通讯进行模仿的仿真平台,在kilombo仿真平台上的群体机器人搜索单一信号源和多信号源进行多次实验,仿真的目的是为了展示基于多头绒泡菌的群体机器人搜索算法的可行性与搜索特点;首先,设置实验仿真平台和机器人群体实验参数:在仿真实验中,我们选择一个kilobot为信号源,其余机器人运行本算法进行覆盖搜索;机器人群体实验参数如下表1所示:机器人群体参数参数值单位机器人最大通讯半径100mm机器人最大探测半径100mm机器人运动速度3mm/s机器人运动场地面积640*424mm*mm搜索单一信号源时,机器人数量10个搜索多个信号源时,机器人数量15个然后,在kilombo仿真平台下对单一信号源进行多次试验,并记录试验数据和实验图像:实验过程及实验画面截图如图5所示,基于多头绒泡菌的群体机器人搜索算法在kilombo仿真平台上的群体机器人搜索单一信号源时,将不同的机器人设置为不同的颜色,例如黄色为core(图5中c所示),黑色为forager(如图5中f所示),红色为信号源(如图5中s所示),出现紫色意味搜索完成,然后以逆时针搜索的方式,随着搜索算法的运行,分别截取初始态(即实验准备好但尚未进行的第0秒时刻)、实验进行到第28秒、实验进行到第60秒、实验进行到第144秒和试验进行到第172秒(试验结束的时刻)的实验画面截图,从图5中可以看出,通过伪代码执行的机器人群体呈现出以中心机器人为中心的螺旋、辐射性搜索,且集中指向信号源的位置;实验过程及实验画面截图如图5所示。然后,在kilombo仿真平台下对多信号源进行多次试验,并记录试验数据和实验图像:实验过程及实验画面截图如图6所示,基于多头绒泡菌的群体机器人搜索算法在kilombo仿真平台上的群体机器人搜索多个信号源,将不同的机器人设置为不同的颜色,其中红色为core(图6中c所示),黑色为forager(如图6中f所示),黄色为信号源(如图6中s所示),分别截取初始态(即实验准备好但尚未进行的第0秒时刻)、实验进行到第18秒、实验进行到第90秒和实验中机器人forager(如图6中f所示)发生碰撞的实验画面截图,从图6中可以看出,群体机器人对多信号源的搜索同样呈现出逆时针的搜索,随着branch不断增多,逐渐形成一个类似于多头绒泡菌的营养运输网络的群体机器人搜索网络;实验过程及实验画面截图如图6所示。最后,分析实验数据得出实验结论:根据在实验过程中不同时间段所记录的实验图像及参数,建立坐标图进行实验数据分析并得出结论,通过在仿真平台上对本算法进行多次实验,分别对算法在面对多个信号源、单一信号源进行多次实验,并分析实验差异的原因,如图2-4所示,在群体机器人搜索单一信号源与多信号源的时间波动图中,均尽量保持信号源与forager之间的距离相似,而造成实验耗时波动差异的原因主要有以下两点,第一,在多次实验中,信号源与forager之间的距离不能保持绝对的相等,距离的差异影响搜索的时间;第二,在实验中,forager存在碰撞的可能,由于碰撞,导致群体机器人容易在某一地方停留较长时间。基于多头绒泡菌觅食的群体机器人搜索算法的验证方法,所述的验证方法是指硬件演示实验,是基于多头绒泡菌的群体机器人对单一信号源搜索算法在真实机器人上成功演示实验,演示实验的目的主要为了验证基于多头绒泡菌的群体机器人搜索算法的核心思想具有一定的普遍性并且能够在真实的机器人上使用。首先,选择设置实验平台:所述的试验方法中所用的实验平台为kilobot机器人系统,实验共用10个kilobot在场地为0.4×0.6㎡的亚克力板上进行,kilobot通过红外发射、接收器进行机器人的通讯与测距,通过振动电机实现kilobot的运动。kilobot实验平台的相关参数如下表4所示:kilobot的参数名称参数值单位最大通讯半径120mm最大探测半径120mm运动速度10mm/s运动场地面积0.4×0.6m×m数量10个转弯时角速度0.64rad/s然后,基于多头绒泡菌的群体机器人搜索算法成功的实现在真实的机器人kilobot系统上,以一个独立的kilobot为信号源,其余机器人执行本算法的程序。最后,通过实验的过程的截图分析,如图7所示,分别截取了硬件演示实验中,如图初始态第0秒(右侧为信号源,左侧机器人不在右侧机器人的检测范围内)、实验进行到第2分40秒和实验进行到4分20秒群体机器人完成了搜索,搜索机器人首次抵达信号源位置,完成搜索的实验截图,验证了基于多头绒泡菌的群体机器人搜索算法的核心思想具有一定的普遍性并且能够在真实的机器人上使用。本发明针对当前群体智能算法过度依赖于群体机器人之间的通信,而在区域覆盖搜索中难以建立全局的通信这一现象,提出一种模仿黏菌覆盖觅食的群体仿生搜索算法,该算法充分利用群体机器人内部的通信与协作,达到了无需大量的数据计算与明确的通讯,即可完成区域覆盖搜索,该算法无需机器人群明确的信息交流,唯一的交流行为是机器人对机器人进行距离的探测,本发明的算法在面对机器人通讯半径有限的覆盖搜索问题上取得较好的效果,并通过计算机仿真平台和kilobot群体机器人实验平台验证所提方法有效,更具体的是通过模仿多头绒泡菌觅食的普遍行为,实现了一种非常简单,对机器人通讯依赖小的适应于区域覆盖搜索算法,在区域覆盖搜索问题上,具有较高的效率与应用价值。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1