【技术实现步骤摘要】
一种面向动态噪声环境的全覆盖任务分配方法
本专利技术涉及智能机器人系统领域和多智能体强化学习技术,具体涉及一种基于多智能体强化学习的多机器人全覆盖任务分配方法,可用于有噪声存在的动态环境。
技术介绍
移动机器人由于具有可移动性,可以代替人到各种复杂或危险的环境执行探险、探测和操作等任务。移动机器人经过多年的研究与发展,已经逐步走向实用化,在制造业、物流业、服务业等传统领域,已经有不少使用移动机器人提高生产效率或者替代人工作业的实例。而在一些对国家经济、社会、国防等领域具有重大战略意义的项目中,移动机器人的需求也日益明显。随着人类活动范围的不断扩展,移动机器人在星球探测、海洋开发、军事反恐、灾难救助、危险品处理等领域逐渐发挥出巨大的作用,并显现出广泛的应用前景,而这些领域都存在着很大程度的不确定性,有的甚至是完全未知的新环境,探索周围环境成为移动机器人的基本任务,机器人若要在一个不确定、非结构化的环境内完成复杂任务,关键是感知周围环境并创建地图,这也是完成其他任务的基础。实际上,机器人经常在危险环境下作业,如在坍塌的建筑物内进行搜救等,因此研究未知环境中移动机器人的探索问题,对提高移动机器人的实用性至关重要,并有着广泛的经济和社会价值。在未知环境中,全覆盖任务分配往往要求机器人在较短时间内完成对未知环境全覆盖的任务分配,相比于单机器人而言,多机器人协作探索具有更加高效、可靠和鲁棒的优势,因此受到了移动机器人领域的广泛关注。多机器人全覆盖任务分配面临的主要问题包括:1)如何有效地协调多机器人的全覆盖任务分 ...
【技术保护点】
1.一种面向动态噪声环境的全覆盖任务分配方法,其特征在于包括以下步骤:/n第一步,构建多机器人环境,它由N个机器人节点和中心控制节点构成,N为机器人节点全数,N为正整数,N个机器人节点的工作方式一致;机器人节点是可以运行软件程序的异构机器人硬件设备,中心控制节点是具有计算能力的资源可控的计算设备;中心控制节点监控地图状态,为每个机器人更新行为策略参数,多个机器人节点和中心控制节点通过网络设备互联;/n机器人节点i除了装有操作系统外,还装有感知信息获取模块、输入状态估值模块、位置关系判定模块、交互权重估计模块和动作估计模块,1≤i≤N;/n中心控制节点除了装有操作系统以及深度学习框架外,还装有环境状态监测模块、经验采集模块和网络更新模块;/n定义离散化地图中的每个网格为网格点,使用占用网格法来表示地图,根据每个网格上的不同情况,将网格的当前状态分为障碍、已探索和未探索三种地图状态,如公式1所示:/n
【技术特征摘要】
1.一种面向动态噪声环境的全覆盖任务分配方法,其特征在于包括以下步骤:
第一步,构建多机器人环境,它由N个机器人节点和中心控制节点构成,N为机器人节点全数,N为正整数,N个机器人节点的工作方式一致;机器人节点是可以运行软件程序的异构机器人硬件设备,中心控制节点是具有计算能力的资源可控的计算设备;中心控制节点监控地图状态,为每个机器人更新行为策略参数,多个机器人节点和中心控制节点通过网络设备互联;
机器人节点i除了装有操作系统外,还装有感知信息获取模块、输入状态估值模块、位置关系判定模块、交互权重估计模块和动作估计模块,1≤i≤N;
中心控制节点除了装有操作系统以及深度学习框架外,还装有环境状态监测模块、经验采集模块和网络更新模块;
定义离散化地图中的每个网格为网格点,使用占用网格法来表示地图,根据每个网格上的不同情况,将网格的当前状态分为障碍、已探索和未探索三种地图状态,如公式1所示:
P(x,y)为在离散化地图上横坐标为x,纵坐标为y位置的当前状态;
定义机器人节点i的局部环境感知信息为当前状态oi,oi描述了以机器人节点i为中心,以机器人节点i通信范围为半径的正方形网格区域内是否包含障碍物或其余的机器人,半径指正方形边长的一半;定义机器人节点i前往的下一网格点方向的移动为动作ai,到达的下一个状态为o′i,下一网格点方向包括向上、向下、向左、向右;定义机器人节点从到达当前网格点至到达下一网格点的过程中,与障碍物或其余机器人节点的碰撞与否以及下一节点是否为机器人群体已探索过的区域,为当前状态下选择该动作后获得的奖惩信息ri;定义机器人节点i从一个状态开始选择一个动作后直至全覆盖任务结束所得到的奖惩信息之和为该状态下选择该动作后获得的累积回报Ri;将机器人节点i将编号i以及Ki个邻居的编号转化为独热编码向量,得到(Ki+1)×N维的矩阵,定义该矩阵为邻接矩阵Ci,Ki为机器人节点i的邻居机器人的个数,0≤Ki≤N-1;邻接矩阵Ci定义为的第一行代表机器人节点i的编号独热编码,其余Ki行代表Ki个邻居机器人的编号独热编码,由上到下的顺序为机器人编号由小到大的顺序,代表机器人的数目;
中心控制节点的经验采集模块中有一个经验池,经验池存储各个机器人的经验五元组,经验五元组为[当前状态,动作,奖惩信息,下一状态,邻接矩阵];
定义机器人节点i的动作估计模块估计机器人节点i在当前状态oi,采取动作ai得到的累积回报值为Q(oi,ai;θ3),θ3为动作估计模块的网络参数,当前状态oi记录了当前环境状态内的其他机器人节点的相对位置,当前环境状态内的其他机器人节点指机器人节点i视觉范围内的机器人;通过计算当前状态oi对应的所有动作的累积回报值,并挑选出使得累积回报值最大的动作a,即maxaQ(oi,ai;θ3),得到当前状态应该采取的动作a;
下一状态指从当前状态采取了动作后到达的状态;
机器人节点i的感知信息获取模块与机器人节点i的输入状态估值模块、中心控制节点的环境状态监测模块和经验采集模块相连,用于从环境获取当前局部视图,记录机器人节点i的历史轨迹信息以避免重复探索;感知信息获取模块从环境获取机器人节点i的实时位置(xi,yi),(xi,yi)为二维数组,代表实时位置在离散化地图中的坐标值,将实时位置(xi,yi)存储到机器人节点i的历史坐标集合li中;使用机器人节点i的传感器获取机器人节点i的当前状态oi,将oi和li发送给机器人节点i的输入状态估值模块;机器人节点i执行动作后,感知信息获取模块根据传感器获取机器人节点i的下一时刻环境状态o′i,并将oi和o′i发送给环境状态监测模块和经验采集模块;
机器人节点i的输入状态估值模块是包含一个一层的多层感知机的软件模块,与机器人节点i的感知信息获取模块、机器人节点i的位置关系判定模块、机器人节点i的动作估计模块、机器人节点i的交互权重估值模块、Ki个邻居机器人节点的位置关系判定模块相连,它从机器人节点i的感知信息获取模块获取oi和li,对oi和li进行拼接后输入多层感知机,得到输入状态估值向量hi,Ki为机器人节点i的邻居机器人的个数,Ki为小于N的正整数;输入状态估值模块创建机器人节点i的编号独热编码向量,将hi和编号独热编码向量发送给机器人节点i的位置关系判定模块和Ki个邻居机器人节点的位置关系判定模块;将hi发送给机器人节点i的动作估计模块;机器人节点i的输入状态估值模块从中心控制节点的网络更新模块接收更新参数,用于更新输入状态估值模块中多层感知机的网络参数θ1;
机器人节点i的位置关系判定模块与机器人节点i的输入状态估值模块、机器人节点i的交互权重估值模块和Ki个邻居机器人节点的输入状态估值模块相连,它从机器人节点i的输入状态估值模块接收hi和编号独热编码向量,从邻居机器人的输入状态估值模块接收Ki个输入状态估值向量和Ki个编号独热编码向量将hi和整合成N×H维的特征矩阵Fi;机器人节点i的位置关系判定模块利用编号独热编码向量和建立(Ki+1)×N维的邻接矩阵Ci,计算Ci×Fi,得到邻接特征矩阵集合Gi,将Gi发送给机器人节点i的交互权重估值模块和中心控制节点的经验采集模块;机器人节点i视觉范围外的机器人输入状态估值向量用单位向量代替,H代表输入状态估值向量的维度;
单位向量的维度是输入状态估值向量的维度,除第一位为1之外,向量的其余位置均为0;机器人节点i的交互权重估值模块与机器人节点i的位置关系判定模块、机器人节点i的动作估计模块、机器人节点i的输入状态估值模块相连,交互权重估值模块是包含M个注意力头的软件模块,1≤M≤4;注意力头是计算两个机器人的输入状态估值向量之间匹配程度的软件子模块,每个注意力头由查询转换子模块、键值转换子模块和价值转换子模块组成,查询转换子模块、键值转换子模块和价值转换子模块均是包含一层的多层感知机的软件模块;
注意力头的功能是根据Query和Key计算对应Query的Value的权重系数,然后对Source中的Value值进行加权求和,得到邻接加权向量;Query指机器人节点i应该关注的邻居机器人消息的权重查询;Key指交互权重计算时的键值;Value值即价值指每个机器人局部视图中信息的有效信息;Value的权重系数指Value占整个邻接加权向量的百分比;Source指邻居机器人集合;邻接加权向量指所有邻居机器人Value的权重系数与Value值的乘积之和;
机器人节点i的交互权重估值模块从机器人节点i的位置关系判定模块接收机器人节点i的邻接特征矩阵集合Gi,将邻接特征矩阵集合等分为M份,将M份邻接特征矩阵子集合分别分配给M个注意力头并行进行权重估值,得到针对机器人i的来自Ki个邻居机器人的邻接加权向量Qi;机器人节点i的交互权重估值模块从中心控制节点的网络更新模块接收更新参数,用于更新查询转换子模块、键值转换子模块和价值转换子模块中多层感知机的网络参数θ2;
机器人节点i的动作估计模块与机器人节点i的交互权重估值模块、机器人节点i的输入状态估值模块、中心控制节点的环境状态监测模块、经验采集模块和网络更新模块相连,从机器人节点i的交互权重估计模块接收邻接加权向量Qi,从机器人节点i的输入状态估值模块接收输入状态估值向量hi,从中心控制节点的网络更新模块接收动作估计模块的参数,从中心控制节点的环境状态监测模块接收机器人步数;动作估计模块是包括一个两层的多层感知机的软件模块,主要用于计算累积回报值;该两层的多层感知机称为状态估计神经网络,状态估计神经网络将mi和hi转化为状态oi下执行动作ai的累积回报值Q(oi,ai;θ3),;机器人节点i的动作估计模块以∈概率随机挑选的动作a或者以(1-∈)的概率选择累积回报值最大的动作a,a=maxaQ(oi,ai;θ3),∈为不按当前策略采取动作随机采样新动作的概率;机器人节点i的动作估计模块从中心控制节点的网络更新模块接收更新参数,用于更新θ3;
中心控制节点的环境状态监测模块与机器人节点i的动作估计模块、机器人节点i的感知信息获取模块和中心控制节点的经验采集模块相连,从N个机器人节点的感知信息获取模块分别接收N个机器人节点当前时刻状态o1,...,oi,...,oN和下一时刻状态o′1,...,o′i,...,o′N,将o1,...,oi,...,oN简写为o1...N,将o′1,...,o′i,...,o′N简写为o′1...N,根据o1...N更新地图状态,即记录地图哪些位置已经被探索,并记录N个机器人每一步来自环境状态检测模块的决策奖惩信息r1,...,ri,...,rN,将r1,...,ri,...,rN简写为r1...N,将奖惩信息r1...N发送给经验采集模块;记录机器人步数,将机器人步数发送给机器人节点i的动作估计模块;
经验采集模块与N个机器人节点的动作估计模块、N个机器人节点的感知信息获取模块、N个机器人节点的位置关系判定模块、中心控制节点的环境状态监测模块、中心控制节点的网络更新模块相连,从N个机器人节点的动作估计模块接收N个机器人节点分别采取的动作a1...N、从N个机器人节点的感知信息获取模块分别接收N个机器人节点当前时刻状态o1...N和下一时刻状态o′1...N、从N个机器人节点的位置关系判定模块分别接收N个机器人节点的邻接特征矩阵集合G1,...,Gi,...,GN、从环境状态监测模块接收N个机器人节点获得的奖惩信息r1...N,将G1,...,Gi,...,GN简写为G1...N,将经验五元组[o1...N,a1...N,r1...N,o′1...N,G1...N]存入经验池;如果当前时刻到达了预设的网络更新周期,经验采集模块将经验池中的p个经验五元组发送给网络更新模块,p为2的整数次幂;
网络更新模块与机器人节点i的动作估计模块和中心控制节点的经验采集模块相连,从经验采集模块接收p个经验五元组;网络更新模块是一个包含一个2层的多层感知机的软件模块,该2层的多层感知机称为状态现实神经网络;网络更新模块功能是计算状态现实神经网络下一时刻状态及动作的累积回报值,更新现实神经网络的网络参数θ4;并更新动作估计模块、交互权重模块和输入状态估值模块的参数,将更新后的参数发送给相应模块;
第二步,对地图、经验池以及输入状态估值模块、交互权重估计模块、动作估计模块和网络更新模块的多层感知机参数进行初始化,方法是:
2.1初始化地图网格的当前状态,障碍位置标记为0,其余位置标记为-1;
2.2初始化经验池为空;
2.3初始化历史坐标集合为空;
2.4初始化机器人步数t=0,令全覆盖任务周期T1=40;令网络更新周期T2=T1*1000;令策略优化周期T3=T1*50000;
2.5将输入状态估值模块的多层感知机参数θ1、交互权重估值模块的多层感知机参数θ2、及动作估计模块的多层感知机参数θ3以及网络更新模块的多层感知机参数θ4初始化为0至1之间的随机数,其中交互权重估值模块中M个注意力头的θ2分别初始化为不同的随机数;
2.6将N个机器人节点选择各个动作的概率均初始化为1/动作空间维度,动作空间维度指机器人所有可能执行的不同动作个数;
第三步,N个机器人节点的感知信息获取模块并行接收环境感知信息,输入状态估值模块、位置关系判定模块、交互权重估计模块、动作估计模块相互配合决策下一步的动作,N个机器人节点执行动作,N个机器人节点的决策过程完全相同,机器人节点i的决策过程是:
3.1机器人节点i的感知信息获取模块从环境获取机器人节点i的实时位置坐标(xi,yi),将(xi,yi)加入至历史坐标集合li;机器人节点i用传感器获取当前状态oi,将li和oi发送给输入状态估值模块;
3.2机器人节点i的输入状态估值模块从机器人节点i的感知信息获取模块接收li和oi,通过多层感知机得到输入状态估值向量hi;并根据机器人的数目N对编号i进行独热编码得到独热编码向量ei,将hi和ei发送给机器人i的位置关系判定模块和视觉范围内的邻居机器人节点的位置关系判定模块;
3.3机器人节点i的位置关系判定模块从邻居机器人节点的输入状态估值模块接收输入状态估值向量和编号独热编码向量从机器人节点i的输入状态估值模块接收hi和ei,将ei和经过进行转化,得到(Ki+1)×N维的邻接矩阵Ci,将hi和进行转化,得到N×H维的特征矩阵Fi;计算Ci×...
【专利技术属性】
技术研发人员:丁博,王怀民,耿明阳,张捷,贾宏达,巩旭东,怀智博,刘宸羽,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。