一种面向复杂场景的多机器人协同侦察方法
未命名
08-29
阅读:103
评论:0

1.本发明涉及在复杂的未知环境中,如何利用多机器人系统和多智能体强化学习领域知识,使分布式多机器人完成合作侦察任务的方法。尤其涉及多机器人面对无法提前预知、缺乏先验信息的侦察任务场景时(例如灾后地形勘察,环境侦察),实现保持个性化决策的同时相互合作形成协同策略,以完成目标追踪、场景侦察等任务的方法。
背景技术:
2.移动机器人是涉及能源、控制、材料和计算机等多个领域知识的复杂系统,近年来随着人工智能,传感器等技术领域的发展,机器人已具备了极大程度的智能性,可以代替人类承担一些复杂、危险或受制环境下的侦察和搜救等任务,能够极大程度地忽略场景制约,并且降低人力风险和成本。
3.而相较于对单机器人的研究及性能提升,从20世纪80年代开始,多个国家对如何实现多机器人之间的合作,构建自主协同、高效配合的多机器人系统投入了极大的研究热情。这种动机源于一个事实:在许多场景中,多机器人系统都比单个机器人拥有更好的适用性。具体来说,多机器人系统更具备高效性和可靠性,且不会出现单点故障,同时可以实现多种功能,甚至能够在对任务的学习中展现出一定程度的群体智能,这些特质使多机器人系统能够在搜救、探索和运输等许多实际场景中提供更有效的解决方案。经过多年的发展,多机器人系统已经逐步在制造、物流、服务等领域展露优势,与此同时,在国防军队现代化中也发挥着至关重要的作用。例如在无人对抗场景中,多机器人系统展现出了成熟的智能,该系统可实现无人机在空中自主集结、编队、变换队形和协同打击等功能。而在灾后救援等场景中,多机器人系统也展现出了极大的优势,在完成搜救任务的同时,极大提升了搜救效率以及人员存活率,降低了人力成本和人力风险。除此之外,多机器人协同合作在协作导航、协作运输、协作侦察等其他场景中也发挥着极大的作用。
4.然而,目前的多机器人自主合作完成任务的策略是由人类手工设计的,通常需要提前训练,而训练得到的策略只能适用于某个特定任务场景。然而,真实的任务环境并不是静态和封闭的,它存在极大不确定性,在执行任务过程中机器人可随时加入、退出或出现故障,同时每次执行的任务目标和任务环境也具有极大差异。因此,当面对这样动态变化的场景,人类手工设计的策略无法考虑到所有的可能情况,这也为多机器人完成协同任务带来更多的挑战。因此,为了应对真实场景,若任务场景是多机器人从未见过的,复杂变换的,多机器人需要根据观测到的环境自主形成协同策略。例如,在地震发生后,往往需要开展灾后侦察任务,获取地震后地形地貌变化,各处塌方状况,以及可能的生命轨迹分布情况。然而灾后机器人需要探索的环境是未知的,且时刻处于动态变化中的。在这种情况下,想要人工通过现场勘测,设计对未知环境的探索策略是很难实现的,而且会不可避免地浪费掉宝贵的救灾时间,不利于救灾工作更为高效迅速的开展。因此,如何应对复杂变换的的未知场景,实现多机器人自主形成协同策略,从而在灾情发生后快速对现场环境实现有效侦察,是本领域技术人员迫切希望解决的一个难点热点问题。针对这类问题,如何实现多机器人仅
经过短时间训练就能快速获得最优侦察策略,并根据最优侦察策略对未知复杂场景进行充分且准确的侦察是本领域需要解决的难点。
5.多机器人在侦察任务中面临的主要问题是如何自主协调多个机器人的行为。在探索如何完成任务的过程中,机器人的数目和角色会不断发生变化,其他机器人的行为也会对当前机器人的环境和奖励(下定义)产生影响,并且这种相互作用是持续存在的。因此,需要协调多个机器人之间高度配合,以实现充分的探测和对目标环境的侦察。缺乏协调可能会导致多个机器人环境探测区域重叠,或是对环境探测不充分,任务完成不完整。
6.传统方法对多机器人控制的研究大多针对一阶或二阶积分器模型,很少考虑到非线性模型下的协同控制。而在复杂动态环境中,多机器人问题往往具有非线性时变的特点,受环境扰动等随机因素的影响,难以精确建模。
7.强化学习算法作为一种替代方法,尤其是针对单个机器人的强化学习算法,近年来常被用于解决机器人领域的问题。强化学习是机器学习的重要分支。机器人通过与环境的持续交互,得到环境反馈的奖励,机器人根据奖励大小对那些得到较低值的动作采取惩罚,而对那些得到较高奖励的动作给予鼓励,从而使智能体的累积奖励最大化,学习到一个最佳策略。强化学习不需要监督,也不依赖于人为建模和设计策略,可以在未知环境中学到一个理想的策略。具体来说,机器人在执行某个任务时,在当前状态s下采取行动a,获得新状态s’,同时环境反馈一个即时奖励r,从而形成一个经验元组《s,a,r,s’》保存下来。通过与环境的不断探索与交互,获取大量的经验样本,从这些经验中机器人逐渐学到一个侦察最优策略,而在面临新状态时选择一个获得最大奖励的动作。由于强化学习算法具有灵活性、自适应性等特点,它可以解决多机器人在复杂未知任务中面临的问题,从而实现在开放式应用场景中取得侦察准确的效果。
8.然而,在将针对单个机器人的强化学习算法应用到多机器人场景时,会面临环境的非平稳性问题,即单个机器人采取的动作会引起环境的变化,并影响其他机器人的决策。所以在多机器人场景下,需要对多机器人的策略网络采取联合训练,从而引导机器人相互配合,共同完成任务。例如,多机器人在完成侦察的真实任务时,不同机器人承担着对不同区域的侦察任务,同时他们之间需要相互通信相互合作,以协同完成侦察任务。多机器人系统中机器人这种相互作用和相互关联的特点,对完成协作任务极为关键,但同时也给协同策略的生成带来了极大的不确定性和复杂性。
9.为了解决上述提到的环境非平稳性问题,“集中式训练分布式执行”范式被提出并广泛应用于多机器人侦察场景中。主要分为两类方法:基于演员-评论家的方法和基于价值的方法。对于第一类方法,例如论文《multi-agent deep deterministic policy gradient》(译为“多智能体深度确定策略梯度算法”,简称maddpg,发表在arxiv预印本论文网站,算法源码网址:https://github.com/openai/maddpg)提出针对多机器人的深度确定策略,为了避免多机器人间的相互干扰从而带来的环境不稳定性,单个机器人在决策时将其他机器人的策略也考虑其中;而论文《counterfactual multi-agent policy gradients》(译为“反事实基线的多智能体策略梯度”,发表在会议论文网站aaai,出版时间2018年,可下载网站为https://ojs.aaai.org/index.php/aaai/article/download/11794/11653)引入了反事实基线来解决多智能体之间的信用分配问题,根据每个机器人对完成目标所做的贡献,反馈给它应得的奖励,使得合理分配每个机器人的奖励;论文
《actor-attention-critic for multi-agent reinforcement learning》(译为“基于注意力机制的演员-评论家多智能体强化学习方法”,发表在pmlr会议论文网站,网址为http://proceedings.mlr.press/v97/iqbal19a.html,出版时间2019年)提出将注意力机制应用于多机器人场景,有利于智能体在决策考虑其他智能体的重要信息,这样做既能解决扩展性问题,还能帮助智能体有选择性地筛选出重要的环境信息,忽略掉不重要的信息。第二类是基于价值的方法,例如论文《qmix:monotonic value function factorisation for deep multi-agent reinforcement learning》(译为“多智能体深度强化学习的单调值函数分解”,发表在会议论文网站icml,出版时间为2018年,可下载网址为https://www.jmlr.org/papers/volume21/20-081/20-081.pdf)利用价值分解对机器人的联合行为价值拆解,分配给每个智能体一个单独的行为价值,从而更加准确地协调机器人间的行为;论文《qtran:learning to factorize with transformation for cooperative multi-agent reinforcement learning》(译为“基于因式变换的合作多智能体强化学习”,发表在icml会议论文网站,可下载网址为http://proceedings.mlr.press/v97/son19a/son19a.pdf,出版时间2019年)放宽了前文提到的qmix方法中的单调性限制,从而促进更加有效的学习。总而言之,以上两种针对多机器人的强化学习方法(基于演员-评论家的方法和基于价值的方法)都是通过联合协调所有机器人的行为策略,以获得来自环境的更大奖励,该奖励评价了所有机器人的联合行为。换句话说,这些方法都是基于对所有机器人的行为评价,引导每个智能体的行为策略。
10.然而,上述两类方法存在一定的问题:对所有机器人联合行为的评价是基于全局视角的,不能评价个体贡献从而激励个体行为,这会导致灾难性的不协调,业界称之为贡献不匹配。类比于人类生活中团队的管理模式,管理者仅通过整个团队的成绩衡量单个智能体的贡献是不合理的。这不仅可能包庇个体偷懒,未完全发挥个体价值,甚至可能会导致整个团体陷入次优状态中。比方说,一个团体共同完成一项任务,由于大老板对每个人的分工不了解,它只能对整个团队的表现进行打分。如果把对整个团队的评价分数作为每个个体的最终打分,那必然是不匹配的,因为有些个体对团队的贡献大,极大推动了任务的执行;而有些个体并未完全发挥效用,甚至拖慢任务的进度。这样的做法只会打消个体的行动积极性,不利于将团队价值发挥到最大化。
11.另一方面,只对所有机器人联合行为进行打分的评价机制是单一的。如果用这个评价分数来激励所有机器人的行为,会导致智能体产生同质化的行为,从而抑制个性化的策略。然而在侦查场景中,每个机器人面临的具体环境都是具有差异的,可能有些机器人需要探测山地地形,而另一个机器人需要侦察湖泊区域,应对不同场景机器人需要采取的策略也应是异构的。因此,如何通过设计更加准确的对单个机器人的评价机制,在引导多机器人协作完成任务的同时,保持各机器人行为策略的异构性,激励单个机器人的个性化贡献,从而在复杂场景中更快速高效的完成合作任务,成为协同侦察场景下技术人员需要重点解决的问题之一。
12.目前解决此类问题的多机器人协同侦察方法,都是采用复杂的神经网络来拟合每个机器人在团队中的贡献,但是它们面临消耗计算资源大,应用场景固定且有限等问题。在现实场景中,单个机器人是可能随时加入或退出系统的,每当机器人数目或角色发生变化时,基于神经网络的技术都需要重新训练一遍神经网络模型,再把侦察策略重新部署到本
地机器人,这种做法是耗时且不现实的。不管是“时间就是金钱”的灾区侦察场景,还是瞬息万变的其它环境侦察,都对时间和效率有着很高的要求,在这些场景下,多机器人系统需要快速应对智能体、任务和环境的动态变化,机器人在保持个性化策略的同时,又需要相互之间快速协调合作来完成侦察目标。论文《celebrating diversity in shared multi-agent reinforcement learning》(译为“激励多智能体强化学习的多样性”,发表在nips会议论文网站,可下载网址为https://proceedings.neurips.cc/paper/2021/file/20aee3a5f4643755a79ee5f6a73050ac-p aper.pdf,出版时间2021年)借助信息理论最大化机器人轨迹与身份之间的相互信息,从而鼓励广泛的探索和多样的个性化行为。这个方法虽然做到了鼓励智能体采取异构的行为策略,但也存在基于场景配置固定的问题,当任务场景发生变化时,原来训练好的模型在新的任务中可能无法达到理想的效果。
技术实现要素:
13.本发明所面向的应用场景是,多机器人在没有先验信息的无法预知的情况下的多机器人协同侦察任务。该应用场景具体有以下挑战:第一,侦察任务中对时间和训练效果都有着很高的要求,不管是灾情侦察还是其它环境勘察,现场情况都很复杂且瞬息万变,这不管是对多机器人系统的训练时间还是训练效果都有非常严格的要求,可能没有足够的时间来获取有效的策略。第二,在任务开展之前并不了解场景的具体信息,可能仅仅知道即将要面对的场景类型,但是不知道具体的环境细节,如需要的机器人数量和环境奖励机制等等。
14.本发明要解决的技术问题是提供一种面向复杂场景的多机器人协同侦察方法,使得机器人能快速且高效地获得新侦察任务场景下的协同策略,并且保持不同机器人之间个性化的行为策略,使得侦察时间短且能完成灾后可能出现的多种场景下的侦察任务。
15.为此,针对已有技术的局限性分析,本发明提供一种面向复杂场景的多机器人协同侦察方法,通过分别基于全局层面和个体层面引入贡献激励机制,使得多机器人在保持协作的同时学习异构的行为策略,从而对不同环境产生个性化的灵活决策,最终达到在动态变化的复杂环境中高效自主协同侦察。
16.本发明的技术方案是构建由机器人节点和云端服务器节点组成的多机器人侦察系统;预训练机器人节点仿真模型,将机器人节点仿真模型个性化协同策略存储到服务器节点;利用仿真场景中训练好的策略训练真实场景下多机器人协同侦察任务中策略网络,获得多机器人自主协同侦察真实场景的采样策略;多机器人系统根据采样策略完成多目标侦察任务。本发明采用双层评判机制,基于全局和个体引入激励机制,使多机器人能对不同环境产生个性化灵活决策,可在动态变化的复杂环境中高效自主协同侦察,且可在更短时间高效完成侦察任务。具体来说,策略网络在更新策略时,需要分别从本地评价网络和全局评价网络获取对采取当前动作的评价值,根据评价值学习如何在获得更高团体奖励的同时也获取更高的个体奖励,从而制定更为理想的行动指令。在全局层面,全局评价网络基于全局视角评判多机器人的行为,以协调团队获得最大奖励并完成协同侦察任务;而在个体层面,根据每个机器人的本地信息,为每个机器人引入一个单独的本地评价网络以激励个性化的贡献,从而使不同机器人根据不同环境选取个性化的行为策略。一种直观的解释是,在团队中,既需要大老板对整个团队的表现做出评价,并引导团队取得更好的成绩;又需要相关负责人听取个体意见,对每个个体的行为做出评判,在个体利益最大化和群体利益化中
达到平衡。借助该技术,机器人系统能够在不曾预知的、复杂关联的侦察任务场景中,快速应对智能体、任务和环境的动态变化,不依赖于特定协同方式地形成灵活的联合策略,同时保持不同机器人之间的行为策略异构性。
17.目前还没有公开文献涉及将双层评判技术应用于多机器人协同侦察。
18.本发明包括以下步骤:
19.第一步,构建多机器人侦察系统,它由k个机器人节点和一个云端服务器节点组成,k为正整数。k个机器人节点均与云端服务器节点相连。机器人节点由能够观测、运动、通信的机器人构成,能运行软件系统,机器人节点工作方式相同。例如,无人机节点intel aero,地面机器人turtlebot3等,每个机器人节点都安装有匹配x86架构处理器的ubuntu(16.04及以上版本)操作系统或是匹配arm架构处理器的ubuntumate(16.04及以上版本)操作系统、机器人操作系统ros和深度学习框架pytorch1.7.0,还安装有探测模块、第一计算模块、第一存储模块、运动模块、第一通信模块。
20.探测模块是采集环境数据的传感器,例如红外摄像头、深度摄像头、扫描雷达等。探测模块与第一存储模块相连,每隔t秒对视线范围内的环境信息和其他机器人节点状态进行拍摄或扫描,获得侦察任务状态信息,并将状态信息存储到第一存储模块中。这里,t的取值建议在0.3秒到1秒之间。
21.第一存储模块与探测模块和第一计算模块相连,可用空间为1gb以上。在第一存储模块中有一个经验回放池,存放所属机器人节点的最近的n条轨迹经验信息(n建议取值范围是5000~10000)。其中第n(1≤n≤n)条轨迹经验信息表示为[sn,an,rn,s
n+1
],sn表示第n个时间点探测模块观察到的任务状态信息,包括可观察范围内的环境信息,以及除所属机器人节点外的其他k-1个机器人节点的速度和位置信息。an表示在第n和n+1两个时间点之间机器人节点k(1≤k≤k)采取的动作,比如机器人节点执行了一个向某个方向施加作用力或加速的动作。机器人节点k在执行动作时,探测模块自动记录下an。rn是探测模块观察到的在第n个时间点环境对于当前任务完成情况的反馈得分。s
n+1
是第n+1个时间点探测模块观察到的任务状态信息,它也包含除了当前机器人节点k以外,其他k-1个机器人的速度位置信息,环境障碍物的位置信息等。从逻辑关系上看,s
n+1
可以理解为由sn在机器人执行动作an后得到的新的任务状态信息。
[0022]
第一计算模块负责设计和优化侦察策略,并根据侦察策略向运动模块发送行动指令。第一计算模块与第一存储模块、运动模块和第一通信模块相连。第一计算模块由6个全连接的神经网络组成,这6个全连接神经网络都使用pytorch深度学习框架创建,它们分别为形成行动指令的策略网络和目标策略网络,以及用于优化策略的本地评价网络、全局评价网络、本地目标评价网络、全局目标评价网络(原理可参考论文《actor-critic algorithms》,译作“演员-评论家算法”,发表于acm会议出版机构,出版时间为2001年4月,可下载网站为https://www.researchgate.net/publication/2354219_actor-critic_algorithms)。
[0023]
策略网络与第一存储模块、运动模块、第一通信模块、目标策略网络、本地评价网络,全局评价网络相连,从第一存储模块的经验回放池中抽取h(1≤h≤h)条本地轨迹经验信息(即所属机器人的轨迹经验信息),根据本地轨迹经验信息中的当前任务状态信息确定下一步动作,并向运动模块发送包含下一步动作的指令,同时将自身的网络参数(即各层网
络的权重矩阵和偏置向量)发送给目标策略网络。策略网络从本地评价网络和全局评价网络获取当前策略网络所采取动作的评价值,根据评价值学习如何获得更高的行动评价值,制定更为理想的行动指令。策略网络将策略网络参数保存为.data格式的文件,发送给第一通信模块。动作完成后,将保存有该策略网络参数的文件发送到第一通信模块。
[0024]
目标策略网络与策略网络相连,根据从策略网络获取的策略网络的网络参数,更新目标策略网络自身网络参数。
[0025]
本地评价网络与第一存储模块、策略网络、本地目标评价网络相连,从第一存储模块接收策略网络抽取的h条本地轨迹经验信息,从本地目标评价网络接收损失函数度量值,根据损失函数度量值评估所述机器人的动作价值,同时将自己的网络参数发送给本地目标评价网络。为了指导策略网络更新,本地评价网络将当前策略网络所采取动作的评价值发送给策略网络。
[0026]
本地目标评价网络与本地评价网络相连,根据从本地评价网络获取的本地评价网络的网络参数,更新本地目标评价网络自身网络参数。
[0027]
全局评价网络与第一存储模块、策略网络、全局目标评价网络相连,从第一存储模块接收与本地评价网络抽取的h条本地轨迹经验信息同一时间步的h条全局轨迹经验信息(即所有机器人的联合轨迹经验信息),并从全局目标评价网络中接收损失函数度量值,根据损失函数度量值评估所有机器人的联合动作价值,同时将自己的网络参数发送给全局目标评价网络。为了指导策略网络更新,全局评价网络将联合动作(当前策略网络所采取动作联合其他机器人采取动作)的评价值发送给策略网络。
[0028]
全局目标评价网络与全局评价网络相连,根据从全局评价网络获取的全局评价网络的网络参数,更新全局目标评价网络自身网络参数。
[0029]
本说明书中提到的“策略”,具体表示为策略网络的参数:当前任务状态信息s会被输入到策略网络中,经过层层神经元之间权重矩阵相乘,以及每层神经元偏置向量相加,在策略网络的输出层得到一个动作指令a。在宏观层面上,策略网络使机器人节点能够根据当前观测到的侦察场景状态,独立决定下一步执行什么动作。因此,策略网络的参数也反映了机器人节点的决策过程,也就是“策略”。每个机器人节点都具有独立的策略网络参数,自主地确定自己的行为。当然,除了策略网络外,其他的5个神经网络则辅助指导策略网络的参数更新。
[0030]
运动模块由马达、轮胎等驱动设备和数模转换器构成。运动模块与第一计算模块相连,从第一计算模块的策略网络接收动作指令,借助内置的数模转换器把数字信号转换成模拟信号,再将模拟信号传输给驱动设备,使机器人做出相应动作,最终导致侦察场景发生变化。
[0031]
第一通信模块与云端服务器节点、第一计算模块相连,第一通信模块(例如无线网卡)从第一计算模块的策略网络接收.data格式的参数文件,通过ssh通信服务将.data格式的参数文件上传到云端服务器节点。
[0032]
云端服务器节点是指工作站、服务器等云端设备,安装有第二通信模块(例如无线网卡),第二存储模块(例如容量大于500gb的硬盘)。第二存储模块上安装了ubuntu16.04操作系统,以及与机器人节点相同版本的pytorch深度学习框架。在云端服务器上,第二通信模块与第二存储模块相连并通过ssh通信协议与k个机器人节点相互通信。
[0033]
第二步,基于gazebo仿真环境(要求版本9.10.0及以上)构建m个侦察场景,用于预训练第一计算模块中的六个网络。具体步骤如下:
[0034]
2.1挑选一台安装有ubuntu操作系统(版本应与机器人节点上安装的一致)的计算机,并安装运行gazebo仿真环境,模拟第一步构建的多机器人系统中k个机器人节点,为k个机器人节点建立对应的机器人节点仿真模型。
[0035]
2.2参照侦察环境中可能出现的各种环境要素(例如障碍物、目标点、侦察环境中的机器人等),进行等比例缩放建模,构建尽量逼近真实环境的环境仿真模型。
[0036]
2.3随机选取机器人节点仿真模型和各种环境要素,对它们的初始位置和数目进行随机初始化,从而形成m个侦察场景,用于模拟各种可能会出现的真实场景。其中m为正整数,m不少于10个,在资源允许的情况下,m越大越好。
[0037]
2.4设计侦察任务完成度的评价指标,评价当前多机器人联合策略在仿真环境下的任务完成效果。如果机器人节点仿真模型在侦察中漏掉一个目标点,扣1分;机器人节点仿真模型在运动过程中与障碍物模型相撞,扣10分;与其他机器人节点仿真模型发生碰撞,减5分。例如,在某一时刻,机器人节点仿真模型从开始运动到该时间点的过程中漏掉5个目标点,在侦察过程中该机器人节点仿真模型与障碍物模型碰撞了1次,与其他机器人节点仿真模型碰撞了2次,则该时间点获得的分数为-(5
×
1+10+2
×
5)=-25分。任务完成度评价指标是由用户根据现场情况灵活制定的。原则上是对有利于任务目标完成的行为给予加分,而对不利于任务完成的行为实行扣分。
[0038]
第三步,在第二步构建好的m个侦察场景中对k个机器人节点仿真模型进行预训练,使机器人节点仿真模型获取在不同侦察场景下的协同侦察策略,从而得到记录了k个机器人节点仿真模型在每个侦察仿真场景下的协同策略的k个.data格式的参数文件;单个机器人节点仿真模型采取ddpg(continuous control with deep reinforcement learning,译为“深度强化学习的连续控制”,发表在arxiv预印本论文网站,网址为https://arxiv.53yu.com/abs/1509.02971,出版时间2015年9月)强化学习算法训练策略网络,当然,预训练并不仅局限于此算法,其他如ppo(proximal policy optimization algorithms,译为“近端策略优化算法”,发表在arxiv预印本论文网站,网址为https://arxiv.53yu.com/abs/1707.06347,出版时间2017年7月)算法亦可参考采用。k个机器人节点仿真模型相互独立,并行训练策略网络,其中,第k(1≤k≤k)个机器人节点仿真模型采取ddpg强化学习算法训练策略网络的方法是:
[0039]
3.1初始化机器人节点仿真模型k的第一计算模块,第一计算模块中的六个神经网络都要初始化参数,包括每个神经网络每层之间的权重矩阵以及偏置向量,权重矩阵以及偏置向量的值根据期望值为0、方差为2的正态分布随机生成,k个机器人节点仿真模型选取的参数可以相互不同也可以相同。
[0040]
3.2初始化变量m=0。
[0041]
3.3在gazebo仿真环境中从m个仿真侦察场景选取第m个仿真侦察场景。
[0042]
3.4在第m个仿真侦察场景中随机初始化第k个机器人节点仿真模型的初始位置、第m个仿真侦察场景中各种环境要素的初始点。初始化训练轮数i=0,并设定最大训练轮数i(i为正整数,取值范围建议在400~1000)。
[0043]
3.5初始化第i个训练轮数中第k个机器人节点仿真模型的行动步数j=0,并设定
第i个训练轮数中第k个机器人节点仿真模型可以行动的最大步数j(j为正整数,建议取值范围30~50),如果第k个机器人节点仿真模型可在j步之内完成任务,则第i个训练轮数第k个机器人节点仿真模型的实际行动步数小于j。
[0044]
3.6第k个机器人节点仿真模型的策略网络从第一存储模块获取第j步时的本地状态信息oj(例如,第k个机器人节点仿真模型的位置等信息),将ij输入策略网络,经过策略网络中层层神经元之间权重矩阵相乘,以及每层神经元偏置向量相加输出第j步时的动作指令aj,将aj发送到第一存储模块和运动模块。
[0045]
3.7第一存储模块存储aj,同时运动模块执行动作aj。
[0046]
3.8第k个机器人节点仿真模型探测到其他k-1个机器人节点在第j步执行的动作,并组合第k个机器人节点仿真模型执行的动作aj得到k个机器人节点在第j步执行的联合动作也可表示为aj,存储到第一存储模块。
[0047]
3.9根据2.4步制定的评价指标,第k个机器人节点仿真模型执行动作aj后得到任务完成度评分rj,将rj反馈给第k个机器人节点仿真模型中的第一存储模块。
[0048]
3.10第k个机器人节点仿真模型在执行动作aj后导致侦察环境的状态发生变化,第k个机器人节点仿真模型的探测模块观察到第j+1步时的全局状态信息s
j+1
和本地状态信息o
j+1
,将s
j+1
和o
j+1
存储到第一存储模块。
[0049]
3.11第k个机器人节点仿真模型的第一存储模块通过分别组合sj、s
j+1
、aj、rj和oj、o
j+1
、aj、rj,得到第j组全局轨迹经验信息[sj,aj,rj,s
j+1
]和第j组本地轨迹经验信息[oj,aj,rj,o
j+1
],将同一步的全局轨迹经验信息和本地轨迹经验信息称之为轨迹经验信息对。并将轨迹经验信息对[sj,aj,rj,s
j+1
]和[oj,aj,rj,o
j+1
]发送到第一存储模块的经验回放池,经验回放池对[sj,aj,rj,s
j+1
]和[oj,aj,rj,o
j+1
]分开存储。
[0050]
3.12第k个机器人节点仿真模型的第一计算模块对经验回放池的存储量进行判断,如果已经存满h个轨迹经验信息对,则从经验回放池随机抽取h个轨迹经验信息对。将h条全局轨迹经验信息发送给全局评价网络,将h条本地轨迹经验信息发送给本地评价网络,转步骤3.13;否则,令j=j+1,转步骤3.6,h的取值建议为100~200。
[0051]
3.13第k个机器人节点仿真模型的第一计算模块按照先后顺序,将抽取的h个轨迹经验信息对编号为1~h。初始化标记序号q=0。
[0052]
3.14第k个机器人节点仿真模型的第一计算模块从标记序号q=0开始,按照先后顺序选取前h个轨迹经验信息对,(1≤h≤h)。并令q=q+h,即将q更新为选取的h个轨迹经验信息对中最后一对的标记序号。
[0053]
3.15第k个机器人节点仿真模型的全局评价网络根据选取的h个全局轨迹经验信息,采用梯度下降法分别最小化全局损失函数l
global
;同时第k个机器人节点仿真模型的本地评价网络根据选取的h个本地轨迹经验信息,采用梯度下降法分别最小化本地损失函数l
local
,从而更新全局评价网络和本地评价网络的参数:
[0054]
[0055][0056]
其中,q
global
代表全局评价网络,q
local
表示本地评价网络,q
′
global
表示全局目标评价网络,q
′
local
表示本地目标评价网络。aj代表策略网络在第j步为第k个机器人节点仿真模型选取的动作;aj表示k个机器人节点仿真模型在第j步执行的联合动作。μ
′
代表目标策略网络,这些字母紧跟的括号里的符号表示该网络的输入信息,μ
′
(o
j+1
)表示将第k个机器人节点仿真模型在第j+1步观察到的本地状态信息o
j+1
输入到目标策略网络后输出的行动指令;μ
′
(s
j+1
)表示在第j+1步k个机器人根据全局状态信息s
j+1
预测的联合动作。q
local
(oj,aj)表示将本地状态信息oj和动作aj输入到本地评价网络,得到对第k个机器人节点仿真模型动作的估计得分。(rj+αq
′
global
(s
j+1
,μ
′
)-q
global
(sj,aj))表示使全局评价网络对联合动作的估计得分q
global
(sj,aj)越接近全局目标得分rj+αq
′
global
(s
j+1
,μ
′
)越好,同理,(rj+αq
′
local
(o
j+1
,μ
′
(o
j+1
))-q
local
(oj,aj))表示使本地评价网络对第k个机器人节点仿真模型动作的估计得分q
local
(oj,aj)越接近本地目标得分rj+αq
′
local
(o
j+1
,μ
′
(o
j+1
))越好。
[0057]
α表示折扣因子,取0~1的常数,α优选范围为0.2~0.3。
[0058]
公式(2)部分来自于mdp(全程markov decision process,译为“马尔科夫决策过程”),第k个机器人节点仿真模型的本地评价网络评估第k个机器人节点仿真模型在第j步动作的得分。第k个机器人节点仿真模型的策略网络根据第j+1步状态信息预测第j+1步的动作,第k个机器人节点仿真模型的本地目标评价网络对第j+1步的状态和预估动作做出评价,得到第j+1步动作的估计得分,将第j+1步动作的估计得分乘以折扣因子α再加上第j步动作后从环境中获取的奖励rj,获取对第j步动作的目标得分。将对第j步动作的估计得分与目标得分相减得到差值,将差值作为本地评价网络的梯度优化目标,用本地评价网络的梯度优化目标更新本地评价网络的参数,同时更新第k个机器人节点仿真模型的本地目标评价网络的参数。通过最小化目标函数l
local
可以有效帮助本地评价网络对第j步动作价值做出更好的估计。
[0059]
公式(1)同理,第k个机器人节点仿真模型的全局评价网络估计k个机器人节点仿真模型在第j步时联合动作的估计得分。同时也要对第j+1步的全局状态和联合动作做出评价,得到第j+1步联合动作的估计得分,并且将第j+1步联合动作的估计得分乘以折扣因子α再加上第j步联合动作后从环境中获取的奖励rj,获取对第j步联合动作的目标得分。将对第j步联合动作的估计得分与目标得分相减得到差值,将差值作为全局评价网络的梯度优化目标,用全局评价网络的梯度优化目标更新全局评价网络的参数,通过最小化目标函数l
global
可以有效帮助全局评价网络对联合动作价值做出更好的估计。
[0060]
3.16全局评价网络和本地评价网络采用双层评判机制,共同指导策略更新,第k个机器人节点仿真模型策略网络按公式(3)进行参数更新:
[0061][0062]
其中aj表示策略网络uj在第j步为第k个机器人节点仿真模型选取的动作,q
global
(sj,aj)表示将全局状态信息sj和联合动作aj输入到全局评价网络获取联合动作的估计得
分;q
local
(oj,aj)表示将本地状态信息oj和动作aj。输入到本地评价网络,得到对第k个机器人节点仿真模型动作的估计得分。从公式(3)可以看出全局评价网络和本地评价网络的双层评判机制。
[0063]
3.17若q+h》h,执行步骤3.18;否则,转步骤3.13。
[0064]
3.18第k个机器人节点仿真模型的全局目标评价网络根据全局评价网络的参数更新自己的网络参数,如公式(4)所示;本地目标评价网络根据本地评价网络的参数更新自己的网络参数,如公式(5)所示;而目标策略网络根据策略网络的参数,更新自己的网络参数,如公式(6)所示:
[0065][0066][0067][0068]
其中,分别表示在第j步时全局评价网络、本地评价网络、策略网络的参数;表示第j步时全局目标评价网络、本地目标评价网络、目标策略网络的参数。τ1、τ2是0~1之间的权值常数,建议取值范围为0.2~0.3。公式(4)、公式(5)、公式(6)实现了对三个目标网络参数的赋值,通过这种不完全更新来减慢训练的步伐,从而避免过度训练。
[0069]
3.19令j=j+1,若j达到设定的每轮最大步数j,执行步骤3.20;否则执行步骤3.6。
[0070]
3.20令i=i+1,若i达到设定的最大训练轮数i,执行步骤3.21;否则执行步骤3.4。
[0071]
3.21令m=m+1,若m等于最大侦察场景数m,执行步骤3.23;否则,执行步骤3.22。
[0072]
3.22第k个机器人节点仿真模型的第一计算模块保存训练好的策略网络模型,并以仿真侦察场景的序号m对其命名。同时,第k个机器人节点仿真模型的第一计算模块清空策略网络、目标策略网络、全局评价网络、全局目标评价网络、本地目标评价网络中的所有网络参数,重新赋予它们随机初始值。第k个机器人节点仿真模型的第一存储模块清空经验池,为新场景任务的训练做好准备。转步骤3.23。
[0073]
3.23第k个机器人节点仿真模型的第一计算模块将策略网络的参数(即第k个机器人节点仿真模型在侦察仿真场景下的协同策略)保存在.data格式的文件(由pytorch深度学习框架生成.data格式的参数文件,)。接下来执行第四步。
[0074]
第三步是由k个机器人节点仿真模型并行执行的,从而得到针对每个仿真场景的k个.data格式的参数文件,它们记录了k个机器人节点仿真模型在侦察仿真场景下的协同策略,用于之后进一步调整机器人节点仿真模型策略。
[0075]
第四步,k个机器人节点仿真模型分别将.data格式的参数文件通过ssh服务上传到云端服务器节点,也就是说把通过第三步训练得到的个性化协同策略存储到云端服务器节点,实现预训练阶段得到的策略网络模型保存与共享。k台机器人节点仿真模型并行执行,以第k个机器人节点仿真模型为例来说明。
[0076]
4.1第k个机器人节点仿真模型的第一计算模块将.data格式的参数文件发送给第k个机器人节点仿真模型的第一通信模块。
[0077]
4.2第k个机器人节点仿真模型的第一通信模块通过ssh通信服务将.data格式的参数文件发送给第二通信模块(云端服务器节点)。
[0078]
4.3第二通信模块把收到的.data格式的参数文件保存在云端服务器节点的第二存储模块。
[0079]
第五步,将第一步构建的多机器人系统部署到需要开展侦察任务的地点,即需要完成侦察任务的灾区或战区等真实的复杂场景,利用仿真场景中训练好的策略模型即.data格式的参数文件来帮助真实场景下多机器人协同侦察任务中策略网络的训练,提升在仿真侦察场景下训练的侦察策略在真实场景中的任务完成效果。具体方法是k台机器人节点并行执行下面步骤,以第k个机器人节点为例来说明具体方法:
[0080]
5.1第k个机器人节点的第一通信模块向云端服务器节点的第二通信模块发送下载请求,请求下载策略模型。
[0081]
5.2第二通信模块从云端服务器节点的第二存储模块中读取与第k个机器人节点面临的未知场景最为相似的仿真场景下保存好的.data格式的策略网络模型参数文件,通过ssh服务协议将.data格式的参数文件传输到第k个机器人节点的第一通信模块。
[0082]
5.3第k个机器人节点的第一通信模块把.data格式的参数文件传送给第k个机器人节点的第一计算模块。
[0083]
5.4第k个机器人节点将.data格式的参数文件加载到第k个机器人节点的策略网络中,由pytorch深度学习框架直接加载。
[0084]
5.5对第k个机器人节点的目标策略网络、本地评价网络以及全局评价网络分别进行参数初始化。每个神经网络的权重矩阵和偏置向量都以期望值为0、方差为2的正态分布随机生成,k个机器人节点的模型初始化参数既可以相同也可以不同。
[0085]
5.6将第k个机器人节点的第一存储模块的经验回放池清空。
[0086]
5.7初始化第k个机器人节点已执行动作步数j=0,可执行的最大步数为j(为了保证机器人节点可在j步之内能够取得理想策略,j的建议取值范围为1000~2000)。
[0087]
5.8第k个机器人节点的第一计算模块中的策略网络从第一存储模块中获得第j步侦察场景的本地状态信息oj,将oj输入策略网络,得到动作指令aj,将aj存储到第一存储模块,并将aj发送给运动模块;
[0088]
5.9运动模块根据指令做出动作aj;
[0089]
5.10根据步骤2.4中设计好的侦察任务完成度评价指标,第k个机器人节点执行动作aj后得到任务场景反馈的完成度评分rj,并将rj存储到机器人节点k的第一存储模块。
[0090]
5.11第k个机器人节点执行动作aj后会导致侦察环境的全局环境和本地状态均发生变化,机器人节点k的探测模块在观察到第j+1步全局状态信息s
j+1
和本地状态信息o
j+1
后,将s
j+1
和o
j+1
存储到第一存储模块。
[0091]
5.12第k个机器人节点分别整合信息sj、s
j+1
、aj、rj和oj、o
j+1
、aj、rj,得到第j组全局轨迹经验信息[sj,aj,rj,s
j+1
]和第j组本地轨迹经验信息[oj,aj,rj,o
j+1
],将[sj,aj,rj,s
j+1
]和[oj,aj,rj,o
j+1
]存储到第一存储模块的经验轨迹回放池。
[0092]
5.13第k个机器人节点的第一计算模块的第一存储模块对经验回放池中的数据进行判断,如果已经存满了2h条轨迹经验信息,则从回放池中随机抽取对应的h条全局轨迹经验信息和h条本地轨迹经验信息,用于第一计算模块中六个神经网络的参数优化,h的建议
取值为50~100(与前面不一致),然后执行步骤5.14;否则,令j=j+1,转至步骤5.8。
[0093]
5.14第k个机器人节点的全局评价网络和本地评价网络分别读取h条全局轨迹经验信息和h条本地轨迹经验信息,利用梯度下降法最小化公式(1)中的全局损失函数l
global
和公式(2)中的本地损失函数l
local
,从而分别实现对全局评价网络和本地评价网络参数更新。
[0094]
5.15第k个机器人节点的策略网络读取h条全局轨迹经验信息和h条本地轨迹经验信息,通过梯度下降法,根据公式(3)中的策略梯度更新公式更新策略网络的参数,实现对策略网络的优化。
[0095]
5.16第k个机器人节点的全局目标评价网络、本地目标评价网络和目标策略网络,按照公式(4)(5)(6)的更新公式,分别更新全局目标评价网络、本地目标评价网络、目标策略网络的参数。
[0096]
5.17令j=j+1,若j达到最大步数j,代表协同侦察策略在真实场景下优化完毕,接着执行第六步;否则,执行步骤5.8。
[0097]
执行完第五步之后,根据当前真实场景训练优化得到的侦察策略,机器人节点能够实现根据观测到的全局状态和本地状态信息,自主决定下一步要采取的动作。这k个机器人节点的策略网络参数共同构成多机器人自主协同侦察真实场景的采样策略。
[0098]
第六步,将k个机器人节点部署到第五步的真实场景(即需要开展侦察任务的场景)中。
[0099]
第七步,多机器人侦察系统根据第五步获得的多机器人自主协同侦察真实场景的采样策略,在开放环境下自主协同完成多目标侦察任务。k个机器人节点并行完成多目标侦察任务,其中第k个机器人节点完成多目标侦察任务的方法是:
[0100]
7.1根据侦察任务要求,设置多机器人侦察系统需要侦察的多个目标点,并将所有目标点的坐标存储在列表l中,将l发送给第k个机器人节点的第一通信模块。第一通信模块将列表l转发给第k个机器人节点第一计算模块。机器人节点参考与目标点的位置等环境信息从列表l中选择目标点。
[0101]
7.2初始化第k个机器人节点的执行步数j=0。
[0102]
7.3第k个机器人节点的探测模块获取第j步全局状态信息sj(例如,周围其他机器人节点信息,各类环境要素信息)和第j步本地状态信息oj(例如,第k个机器人节点的位置等信息),将sj和oj发送给第k个机器人节点的第一计算模块。
[0103]
7.4第k个机器人节点的计算模块将sj,oj,以及从列表l中选择的目标点坐标整合成一个状态三元组。
[0104]
7.5第k个机器人节点的第一计算模块的策略网络根据状态三元组进行决策,输出动作指令aj,将aj发送给运动模块。
[0105]
7.6第k个机器人节点的运动模块在接收到动作指令aj后,执行前往所选目标点的动作。
[0106]
7.7若第k个机器人节点到达目标点坐标附近a米内,表示机器人已经侦察到该目标(a的建议取值为0.5~0.8米),将目标点坐标从列表l中删除,然后执行步骤7.8;否则,令j=j+1,执行步骤7.3。
[0107]
7.8第k个机器人节点判断l中是否还存有目标点坐标,若l不为空,则转步骤7.2;
否则,转第八步。
[0108]
第八步,结束。
[0109]
采用本发明可以达到如下有益技术:使得机器人能快速且高效地获得新侦察任务场景下的协同策略,并且保持不同机器人之间个性化的行为策略,使得侦察时间短且能完成灾后或其它环境可能出现的多种场景下的侦察任务。
[0110]
1.本发明第三步在仿真环境中预训练好策略网络模型,从预训练中转移知识,实现在真实的开放场景下快速优化当前的多机器人协同侦察策略(即k个机器人的策略网络),从而有效地应对多机器人在复杂场景中需要大量时间、大量数据学习策略的问题,从而更加高效地完成侦察任务。
[0111]
2.本发明第3.16步由全局评价网络和本地评价网络共同指导单个机器人节点仿真模型或单个机器人策略网络的参数更新,实现了单个机器人在多机器人系统中面对复杂环境时,在保持个性化决策的同时,又能实现多机器人协同合作共同完成任务。从而帮助真实场景下的多机器人学习灵活的行为策略,完成灾后或其它环境可能出现的多种场景下的侦察任务。
[0112]
3.本发明第五步由全局评价网络、全局目标评价网络、本地评价网络、本地目标评价网络、目标策略网络共同辅助策略网络的训练,实现了多机器人在面对无法提前预知的侦察任务场景时,不依赖于人为针对不同任务场景手工设计搜索路线和避障策略,多机器人自主优化协同完成任务的策略网络,实现了在没有专业人士的情况下亦可按照以上步骤轻松执行任务。
[0113]
4.通过基于仿真环境的测试,本发明与背景技术maddpg方法相比,实现了在更短时间内帮助机器人学到有效的协同策略,并且获取更高的累计奖励。
附图说明
[0114]
图1为本发明在第一步中构建的多机器人自主协同侦察系统逻辑结构图。
[0115]
图2为本发明的总体流程图。
[0116]
图3为本发明在第一步中构建的多机器人自主协同侦察系统的软件模块部署示意图。
[0117]
图4为在仿真环境中对本发明效果测试的实验示意图。图4(a)箭头左侧图表示多机器人系统在第三步中面对的仿真侦察场景(即可知的侦察场景),箭头右侧图表示多机器人系统在第五步和第六步中面对的侦察场景(即本发明中提到的真实场景)的仿真示意图,均设置为3个机器人节点(由图中的黑色圆点表示)在地面上侦察3个目标点位置(由图中的浅色圆点表示),当3个机器人节点到达目标点附近时即表示侦察出目标点信息。图4(b)表示在侦察持续移动目标场景下的实验效果测试,箭头左侧图表示多机器人系统在第三步中面对的侦察场景(即可知的侦察场景),右侧图表示多机器人系统在第五和第六步中面对的真实侦察场景的仿真示意图,设置为4个机器人节点(由图中的实心圆点表示)追逐2个移动目标点(由图中的空心圆点表示),以实时获取目标点的位置等信息。
[0118]
图5为效果测试实验的实验结果图。图5(a),图5(b)为该发明利用基于双层评判机制的多机器人协同侦察方法,在多机器人系统中重复执行图4(a)图4(b)的实验设置200次后得到的累积奖励反馈值,该奖励是针对特定侦察场景设置的任务完成度得分。
具体实施方式
[0119]
图2是本发明总体流程图,本发明包括以下步骤,如图2所示:
[0120]
第一步,构建多机器人侦察系统,它由k个机器人节点和一个云端服务器节点组成,k为正整数。k个机器人节点均与云端服务器节点相连。机器人节点由能够观测、运动、通信的机器人构成,能运行软件系统,机器人节点工作方式相同。例如,无人机节点intel aero,地面机器人turtlebot3等,每个机器人节点都安装有匹配x86架构处理器的ubuntu(16.04及以上版本)操作系统或是匹配arm架构处理器的ubuntumate(16.04及以上版本)操作系统、机器人操作系统ros和深度学习框架pytorch1.7.0,还安装有探测模块、第一计算模块、第一存储模块、运动模块、第一通信模块。
[0121]
探测模块是采集环境数据的传感器,例如红外摄像头、深度摄像头、扫描雷达等。探测模块与第一存储模块相连,每隔t秒对视线范围内的环境信息和其他机器人节点状态进行拍摄或扫描,获得侦察任务状态信息,并将状态信息存储到第一存储模块中。这里,t的取值建议在0.3秒到1秒之间。
[0122]
第一存储模块与探测模块和第一计算模块相连,可用空间为1gb以上。在第一存储模块中有一个经验回放池,存放所属机器人节点的最近的n条轨迹经验信息(n建议取值范围是5000~10000)。其中第n(1≤n≤n)条轨迹经验信息表示为[sn,an,rn,s
n+1
],sn表示第n个时间点探测模块观察到的任务状态信息,包括可观察范围内的环境信息,以及除所属机器人节点外的其他k-1个机器人节点的速度和位置信息。an表示在第n和n+1两个时间点之间机器人节点k(1≤k≤k)采取的动作,比如机器人节点执行了一个向某个方向施加作用力或加速的动作。机器人节点k在执行动作时,探测模块自动记录下an。rn是探测模块观察到的在第n个时间点环境对于当前任务完成情况的反馈得分。s
n+1
是第n+1个时间点探测模块观察到的任务状态信息,它也包含除了当前机器人节点k以外,其他k-1个机器人的速度位置信息,环境障碍物的位置信息等。从逻辑关系上看,s
n+1
可以理解为由sn在机器人执行动作an后得到的新的任务状态信息。
[0123]
第一计算模块负责设计和优化侦察策略,并根据侦察策略向运动模块发送行动指令。第一计算模块与第一存储模块、运动模块和第一通信模块相连。第一计算模块由6个全连接的神经网络组成,这6个全连接神经网络都使用pytorch深度学习框架创建,它们分别为形成行动指令的策略网络和目标策略网络,以及用于优化策略的本地评价网络、全局评价网络、本地目标评价网络、全局目标评价网络(原理可参考论文《actor-critic algorithms》,译作“演员-评论家算法”,发表于acm会议出版机构,出版时间为2001年4月,可下载网站为https://www.researchgate.net/publication/2354219_actor-critic_algorithms)。
[0124]
策略网络与第一存储模块、运动模块、第一通信模块、目标策略网络、本地评价网络,全局评价网络相连,从第一存储模块的经验回放池中抽取h(1≤h≤h)条本地轨迹经验信息(即所属机器人的轨迹经验信息),根据本地轨迹经验信息中的当前任务状态信息确定下一步动作,并向运动模块发送包含下一步动作的指令,同时将自身的网络参数(即各层网络的权重矩阵和偏置向量)发送给目标策略网络。策略网络从本地评价网络和全局评价网络获取当前策略网络所采取动作的评价值,根据评价值学习如何获得更高的行动评价值,制定更为理想的行动指令。策略网络将策略网络参数保存为.data格式的文件,发送给第一
通信模块。动作完成后,将保存有该策略网络参数的文件发送到第一通信模块。
[0125]
目标策略网络与策略网络相连,根据从策略网络获取的策略网络的网络参数,更新目标策略网络自身网络参数。
[0126]
本地评价网络与第一存储模块、策略网络、本地目标评价网络相连,从第一存储模块接收策略网络抽取的h条本地轨迹经验信息,从本地目标评价网络接收损失函数度量值,根据损失函数度量值评估所述机器人的动作价值,同时将自己的网络参数发送给本地目标评价网络。为了指导策略网络更新,本地评价网络将当前策略网络所采取动作的评价值发送给策略网络。
[0127]
本地目标评价网络与本地评价网络相连,根据从本地评价网络获取的本地评价网络的网络参数,更新本地目标评价网络自身网络参数。
[0128]
全局评价网络与第一存储模块、策略网络、全局目标评价网络相连,从第一存储模块接收与本地评价网络抽取的h条本地轨迹经验信息同一时间步的h条全局轨迹经验信息(即所有机器人的联合轨迹经验信息),并从全局目标评价网络中接收损失函数度量值,根据损失函数度量值评估所有机器人的联合动作价值,同时将自己的网络参数发送给全局目标评价网络。为了指导策略网络更新,全局评价网络将联合动作(当前策略网络所采取动作联合其他机器人采取动作)的评价值发送给策略网络。
[0129]
全局目标评价网络与全局评价网络相连,根据从全局评价网络获取的全局评价网络的网络参数,更新全局目标评价网络自身网络参数。
[0130]
本说明书中提到的“策略”,具体表示为策略网络的参数:当前任务状态信息s会被输入到策略网络中,经过层层神经元之间权重矩阵相乘,以及每层神经元偏置向量相加,在策略网络的输出层得到一个动作指令a。在宏观层面上,策略网络使机器人节点能够根据当前观测到的侦察场景状态,独立决定下一步执行什么动作。因此,策略网络的参数也反映了机器人节点的决策过程,也就是“策略”。每个机器人节点都具有独立的策略网络参数,自主地确定自己的行为。当然,除了策略网络外,其他的5个神经网络则辅助指导策略网络的参数更新。
[0131]
运动模块由马达、轮胎等驱动设备和数模转换器构成。运动模块与第一计算模块相连,从第一计算模块的策略网络接收动作指令,借助内置的数模转换器把数字信号转换成模拟信号,再将模拟信号传输给驱动设备,使机器人做出相应动作,最终导致侦察场景发生变化。
[0132]
第一通信模块与云端服务器节点、第一计算模块相连,第一通信模块(例如无线网卡)从第一计算模块的策略网络接收.data格式的参数文件,通过ssh通信服务将.data格式的参数文件上传到云端服务器节点。
[0133]
云端服务器节点是指工作站、服务器等云端设备,安装有第二通信模块(例如无线网卡),第二存储模块(例如容量大于500gb的硬盘)。第二存储模块上安装了ubuntu16.04操作系统,以及与机器人节点相同版本的pytorch深度学习框架。在云端服务器上,第二通信模块与第二存储模块相连并通过ssh通信协议与k个机器人节点相互通信。
[0134]
第二步,基于gazebo仿真环境(要求版本9.10.0及以上)构建m个侦察场景,用于预训练第一计算模块中的六个网络。具体步骤如下:
[0135]
2.1挑选一台安装有ubuntu操作系统(版本应与机器人节点上安装的一致)的计算
机,并安装运行gazebo仿真环境,模拟第一步构建的多机器人系统中k个机器人节点,为k个机器人节点建立对应的机器人节点仿真模型。
[0136]
2.2参照侦察环境中可能出现的各种环境要素(例如障碍物、目标点、侦察环境中机器人等),进行等比例缩放建模,构建尽量逼近真实环境的环境仿真模型。
[0137]
2.3随机选取机器人节点仿真模型和各种环境要素,对它们的初始位置和数目进行随机初始化,从而形成m个侦察场景,用于模拟各种可能会出现的真实场景。其中m为正整数,m不少于10个,在资源允许的情况下,m越大越好。
[0138]
2.4设计侦察任务完成度的评价指标,评价当前多机器人联合策略在仿真环境下的任务完成效果。如果机器人节点仿真模型在侦察中漏掉一个目标点,扣1分;机器人节点仿真模型在运动过程中与障碍物模型相撞,扣10分;与其他机器人节点仿真模型发生碰撞,减5分。例如,在某一时刻,机器人节点仿真模型从开始运动到该时间点的过程中漏掉5个目标点,在侦察过程中该机器人节点仿真模型与障碍物模型碰撞了1次,与其他机器人节点仿真模型碰撞了2次,则该时间点获得的分数为-(5
×
1+10+2
×
5)=-25分。任务完成度评价指标是由用户根据现场情况灵活制定的。原则上是对有利于任务目标完成的行为给予加分,而对不利于任务完成的行为实行扣分。
[0139]
第三步,在第二步构建好的m个侦察场景中对k个机器人节点仿真模型进行预训练,使机器人节点仿真模型获取在不同侦察场景下的协同侦察策略,从而得到记录了k个机器人节点仿真模型在每个侦察仿真场景下的协同策略的k个.data格式的参数文件;单个机器人节点仿真模型采取ddpg(continuous control with deep reinforcement learning,译为“深度强化学习的连续控制”,发表在arxiv预印本论文网站,网址为https://arxiv.53yu.com/abs/1509.02971,出版时间2015年9月)强化学习算法训练策略网络,当然,预训练并不仅局限于此算法,其他如ppo(proximal policy optimization algorithms,译为“近端策略优化算法”,发表在arxiv预印本论文网站,网址为https://arxiv.53yu.com/abs/1707.06347,出版时间2017年7月)算法亦可参考采用。k个机器人节点仿真模型相互独立,并行训练策略网络,其中,第k(1≤k≤k)个机器人节点仿真模型采取ddpg强化学习算法训练策略网络的方法是:
[0140]
3.1初始化机器人节点仿真模型k的第一计算模块,第一计算模块中的六个神经网络都要初始化参数,包括每个神经网络每层之间的权重矩阵以及偏置向量,权重矩阵以及偏置向量的值根据期望值为0、方差为2的正态分布随机生成,k个机器人节点仿真模型选取的参数可以相互不同也可以相同。
[0141]
3.2初始化变量m=0。
[0142]
3.3在gazebo仿真环境中从m个仿真侦察场景选取第m个仿真侦察场景。
[0143]
3.4在第m个仿真侦察场景中随机初始化第k个机器人节点仿真模型的初始位置、第m个仿真侦察场景中各种环境要素的初始点。初始化训练轮数i=0,并设定最大训练轮数i(i为正整数,取值范围建议在400~1000)。
[0144]
3.5初始化第i个训练轮数中第k个机器人节点仿真模型的行动步数j=0,并设定第i个训练轮数中第k个机器人节点仿真模型可以行动的最大步数j(j为正整数,建议取值范围30~50),如果第k个机器人节点仿真模型可在j步之内完成任务,则第i个训练轮数第k个机器人节点仿真模型的实际行动步数小于j。
[0145]
3.6第k个机器人节点仿真模型的策略网络从第一存储模块获取第j步时的本地状态信息oj(例如,第k个机器人节点仿真模型的位置等信息),将oj输入策略网络,经过策略网络中层层神经元之间权重矩阵相乘,以及每层神经元偏置向量相加输出第j步时的动作指令aj,将aj发送到第一存储模块和运动模块。
[0146]
3.7第一存储模块存储aj,同时运动模块执行动作aj。
[0147]
3.8第k个机器人节点仿真模型探测到其他k-1个机器人节点在第j步执行的动作,并组合第k个机器人节点仿真模型执行的动作aj得到k个机器人节点在第j步执行的联合动作也可表示为aj,存储到第一存储模块。
[0148]
3.9根据2.4步制定的评价指标,第k个机器人节点仿真模型执行动作aj后得到任务完成度评分rj,将rj反馈给第k个机器人节点仿真模型中的第一存储模块。
[0149]
3.10第k个机器人节点仿真模型在执行动作aj后导致侦察环境的状态发生变化,第k个机器人节点仿真模型的探测模块观察到第j+1步时的全局状态信息s
j+1
和本地状态信息o
j+1
,将s
j+1
和o
j+1
存储到第一存储模块。
[0150]
3.11第k个机器人节点仿真模型的第一存储模块通过分别组合sj、s
j+1
、aj、rj和oj、o
j+1
、aj、rj,得到第j组全局轨迹经验信息[sj,aj,rj,s
j+1
]和第j组本地轨迹经验信息[oj,aj,rj,o
j+1
],将同一步的全局轨迹经验信息和本地轨迹经验信息称之为轨迹经验信息对。并将轨迹经验信息对[sj,aj,rj,s
j+1
]和[oj,aj,rj,o
j+1
]发送到第一存储模块的经验回放池,经验回放池对[sj,aj,rj,s
j+1
]和[oj,aj,rj,o
j+1
]分开存储。
[0151]
3.12第k个机器人节点仿真模型的第一计算模块对经验回放池的存储量进行判断,如果已经存满h个轨迹经验信息对,则从经验回放池随机抽取h个轨迹经验信息对。将h条全局轨迹经验信息发送给全局评价网络,将h条本地轨迹经验信息发送给本地评价网络,转步骤3.13;否则,令j=j+1,转步骤3.6,h的取值建议为100~200。
[0152]
3.13第k个机器人节点仿真模型的第一计算模块按照先后顺序,将抽取的h个轨迹经验信息对编号为1~h。初始化标记序号q=0。
[0153]
3.14第k个机器人节点仿真模型的第一计算模块从标记序号q=0开始,按照先后顺序选取前h个轨迹经验信息对,(1≤h≤h)。并令q=q+h,即将q更新为选取的h个轨迹经验信息对中最后一对的标记序号。
[0154]
3.15第k个机器人节点仿真模型的全局评价网络根据选取的h个全局轨迹经验信息,采用梯度下降法分别最小化全局损失函数l
global
;同时第k个机器人节点仿真模型的本地评价网络根据选取的h个本地轨迹经验信息,采用梯度下降法分别最小化本地损失函数l
local
,从而更新全局评价网络和本地评价网络的参数:
[0155][0156][0157]
其中,q
global
代表全局评价网络,q
local
表示本地评价网络,q
′
global
表示全局目标评价网络,q
′
local
表示本地目标评价网络。aj代表策略网络在第j步为第k个机器人节点仿真模
型选取的动作;aj表示k个机器人节点仿真模型在第j步执行的联合动作。μ
′
代表目标策略网络,这些字母紧跟的括号里的符号表示该网络的输入信息,μ
′
(o
j+1
)表示将第k个机器人节点仿真模型在第j+1步观察到的本地状态信息o
j+1
输入到目标策略网络后输出的行动指令;μ
′
(s
j+1
)表示在第j+1步k个机器人根据全局状态信息s
j+1
预测的联合动作。q
local
(oj,aj)表示将本地状态信息oj和动作aj输入到本地评价网络,得到对第k个机器人节点仿真模型动作的估计得分。(rj+αq
′
global
(s
j+1
,μ
′
)-q
global
(sj,aj))表示使全局评价网络对联合动作的估计得分q
global
(sj,aj)越接近全局目标得分rj+αq
′
global
(s
j+1
,μ
′
)越好,同理,(rj+αq
′
local
(o
j+1
,μ
′
(o
j+1
))-q
local
(oj,aj))表示使本地评价网络对第k个机器人节点仿真模型动作的估计得分q
local
(oj,aj)越接近本地目标得分rj+αq
′
local
(o
j+1
,μ
′
(o
j+1
))越好。
[0158]
α表示折扣因子,取0~1的常数,α优选范围为0.2~0.3。
[0159]
公式(2)部分来自于mdp(全程markov decision process,译为“马尔科夫决策过程”),第k个机器人节点仿真模型的本地评价网络评估第k个机器人节点仿真模型在第j步动作的得分。第k个机器人节点仿真模型的策略网络根据第j+1步状态信息预测第j+1步的动作,第k个机器人节点仿真模型的本地目标评价网络对第j+1步的状态和预估动作做出评价,得到第j+1步动作的估计得分,将第j+1步动作的估计得分乘以折扣因子α再加上第j步动作后从环境中获取的奖励rj,获取对第j步动作的目标得分。将对第j步动作的估计得分与目标得分相减得到差值,将差值作为本地评价网络的梯度优化目标,用本地评价网络的梯度优化目标更新本地评价网络的参数,同时更新第k个机器人节点仿真模型的本地目标评价网络的参数。通过最小化目标函数l
local
可以有效帮助本地评价网络对第j步动作价值做出更好的估计。
[0160]
公式(1)同理,第k个机器人节点仿真模型的全局评价网络估计k个机器人节点仿真模型在第j步时联合动作的估计得分。同时也要对第j+1步的全局状态和联合动作做出评价,得到第j+1步联合动作的估计得分,并且将第j+1步联合动作的估计得分乘以折扣因子α再加上第j步联合动作后从环境中获取的奖励rj,获取对第j步联合动作的目标得分。将对第j步联合动作的估计得分与目标得分相减得到差值,将差值作为全局评价网络的梯度优化目标,用全局评价网络的梯度优化目标更新全局评价网络的参数,通过最小化目标函数l
global
可以有效帮助全局评价网络对联合动作价值做出更好的估计。
[0161]
3.16全局评价网络和本地评价网络采用双层评判机制,共同指导策略更新,第k个机器人节点仿真模型策略网络按公式(3)进行参数更新:
[0162][0163]
其中aj表示策略网络uj在第j步为第k个机器人节点仿真模型选取的动作,q
global
(sj,aj)表示将全局状态信息sj和联合动作aj输入到全局评价网络获取联合动作的估计得分;q
local
(oj,aj)表示将本地状态信息oj和动作aj。输入到本地评价网络,得到对第k个机器人节点仿真模型动作的估计得分。
[0164]
3.17若q+h》h,执行步骤3.18;否则,转步骤3.13。
[0165]
3.18第k个机器人节点仿真模型的全局目标评价网络根据全局评价网络的参数更新自己的网络参数,如公式(4)所示;本地目标评价网络根据本地评价网络的参数更新自己
的网络参数,如公式(5)所示;而目标策略网络根据策略网络的参数,更新自己的网络参数,如公式(6)所示:
[0166][0167][0168][0169]
其中,分别表示在第j步时全局评价网络、本地评价网络、策略网络的参数;表示第j步时全局目标评价网络、本地目标评价网络、目标策略网络的参数。τ1、τ2是0~1之间的权值常数,建议取值范围为0.2~0.3。公式(4)、公式(5)、公式(6)实现了对三个目标网络参数的赋值,通过这种不完全更新来减慢训练的步伐,从而避免过度训练。
[0170]
3.19令j=j+1,若j达到设定的每轮最大步数j,执行步骤3.20;否则执行步骤3.6。
[0171]
3.20令i=i+1,若i达到设定的最大训练轮数i,执行步骤3.21;否则执行步骤3.4。
[0172]
3.21令m=m+1,若m等于最大侦察场景数m,执行步骤3.23;否则,执行步骤3.22。
[0173]
3.22第k个机器人节点仿真模型的第一计算模块保存训练好的策略网络模型,并以仿真侦察场景的序号m对其命名。同时,第k个机器人节点仿真模型的第一计算模块清空策略网络、目标策略网络、全局评价网络、全局目标评价网络、本地目标评价网络中的所有网络参数,重新赋予它们随机初始值。第k个机器人节点仿真模型的第一存储模块清空经验池,为新场景任务的训练做好准备。转步骤3.23。
[0174]
3.23第k个机器人节点仿真模型的第一计算模块将策略网络的参数(即第k个机器人节点仿真模型在侦察仿真场景下的协同策略)保存在.data格式的文件(由pytorch深度学习框架生成.data格式的参数文件,)。接下来执行第四步。
[0175]
第三步是由k个机器人节点仿真模型并行执行的,从而得到针对每个仿真场景的k个.data格式的参数文件,它们记录了k个机器人节点仿真模型在侦察仿真场景下的协同策略,用于之后进一步调整机器人节点仿真模型策略。
[0176]
第四步,k个机器人节点仿真模型分别将.data格式的参数文件通过ssh服务上传到云端服务器节点,也就是说把通过第三步训练得到的个性化协同策略存储到云端服务器节点,实现预训练阶段得到的策略网络模型保存与共享。k台机器人节点仿真模型并行执行,以第k个机器人节点仿真模型为例来说明。
[0177]
4.1第k个机器人节点仿真模型的第一计算模块将.data格式的参数文件发送给第k个机器人节点仿真模型的第一通信模块。
[0178]
4.2第k个机器人节点仿真模型的第一通信模块通过ssh通信服务将.data格式的参数文件发送给第二通信模块(云端服务器节点)。
[0179]
4.3第二通信模块把收到的.data格式的参数文件保存在云端服务器节点的第二存储模块。
[0180]
第五步,将第一步构建的多机器人系统部署到需要开展侦察任务的地点,即需要完成侦察任务的灾区或战区等真实的复杂场景,利用仿真场景中训练好的策略模型即
.data格式的参数文件来帮助真实场景下多机器人协同侦察任务中策略网络的训练,提升在仿真侦察场景下训练的侦察策略在真实场景中的任务完成效果。具体方法是k台机器人节点并行执行下面步骤,以第k个机器人节点为例来说明具体方法:
[0181]
5.1第k个机器人节点的第一通信模块向云端服务器节点的第二通信模块发送下载请求,请求下载策略模型。
[0182]
5.2第二通信模块从云端服务器节点的第二存储模块中读取与第k个机器人节点面临的未知场景最为相似的仿真场景下保存好的.data格式的策略网络模型参数文件,通过ssh服务协议将.data格式的参数文件传输到第k个机器人节点的第一通信模块。
[0183]
5.3第k个机器人节点的第一通信模块把.data格式的参数文件传送给第k个机器人节点的第一计算模块。
[0184]
5.4第k个机器人节点将.data格式的参数文件加载到第k个机器人节点的策略网络中,由pytorch深度学习框架直接加载。
[0185]
5.5对第k个机器人节点的目标策略网络、本地评价网络以及全局评价网络分别进行参数初始化。每个神经网络的权重矩阵和偏置向量都以期望值为0、方差为2的正态分布随机生成,k个机器人节点的模型初始化参数既可以相同也可以不同。
[0186]
5.6将第k个机器人节点的第一存储模块的经验回放池清空。
[0187]
5.7初始化第k个机器人节点已执行动作步数j=0,可执行的最大步数为j(为了保证机器人节点可在j步之内能够取得理想策略,j的建议取值范围为1000~2000)。
[0188]
5.8第k个机器人节点的第一计算模块中的策略网络从第一存储模块中获得第j步侦察场景的本地状态信息oj,将oj输入策略网络,得到动作指令aj,将aj存储到第一存储模块,并将aj发送给运动模块;
[0189]
5.9运动模块根据指令做出动作aj;
[0190]
5.10根据步骤2.4中设计好的侦察任务完成度评价指标,第k个机器人节点执行动作aj后得到任务场景反馈的完成度评分rj,并将rj存储到机器人节点k的第一存储模块。
[0191]
5.11第k个机器人节点执行动作aj后会导致侦察环境的全局环境和本地状态均发生变化,机器人节点k的探测模块在观察到第j+1步全局状态信息s
j+1
和本地状态信息o
j+1
后,将s
j+1
和o
j+1
存储到第一存储模块。
[0192]
5.12第k个机器人节点分别整合信息sj、s
j+1
、aj、rj和oj、o
j+1
、aj、rj,得到第j组全局轨迹经验信息[sj,aj,rj,s
j+1
]和第j组本地轨迹经验信息[oj,aj,rj,o
j+1
],将[sj,aj,rj,s
j+1
]和[oj,aj,rj,o
j+1
]存储到第一存储模块的经验轨迹回放池。
[0193]
5.13第k个机器人节点的第一计算模块的第一存储模块对经验回放池中的数据进行判断,如果已经存满了2h条轨迹经验信息,则从回放池中随机抽取对应的h条全局轨迹经验信息和h条本地轨迹经验信息,用于第一计算模块中六个神经网络的参数优化,h的建议取值为50~100(与前面不一致),然后执行步骤5.14;否则,令j=j+1,转至步骤5.8。
[0194]
5.14第k个机器人节点的全局评价网络和本地评价网络分别读取h条全局轨迹经验信息和h条本地轨迹经验信息,利用梯度下降法最小化公式(1)中的全局损失函数l
global
和公式(2)中的本地损失函数l
local
,从而分别实现对全局评价网络和本地评价网络参数更新。
[0195]
5.15第k个机器人节点的策略网络读取h条全局轨迹经验信息和h条本地轨迹经验
信息,通过梯度下降法,根据公式(3)中的策略梯度更新公式更新策略网络的参数,实现对策略网络的优化。
[0196]
5.16第k个机器人节点的全局目标评价网络、本地目标评价网络和目标策略网络,按照公式(4)(5)(6)的更新公式,分别更新全局目标评价网络、本地目标评价网络、目标策略网络的参数。
[0197]
5.17令j=j+1,若j达到最大步数j,代表协同侦察策略在真实场景下优化完毕,接着执行第六步;否则,执行步骤5.8。
[0198]
执行完第五步之后,根据当前真实场景训练优化得到的侦察策略,机器人节点能够实现根据观测到的全局状态和本地状态信息,自主决定下一步要采取的动作。这k个机器人节点的策略网络参数共同构成多机器人自主协同侦察真实场景的采样策略。
[0199]
第六步,将k个机器人节点部署到第五步的真实场景(即需要开展侦察任务的场景)中。
[0200]
第七步,多机器人侦察系统根据第五步获得的多机器人自主协同侦察真实场景的采样策略,在开放环境下自主协同完成多目标侦察任务。k个机器人节点并行完成多目标侦察任务,其中第k个机器人节点完成多目标侦察任务的方法是:
[0201]
7.1根据侦察任务要求,设置多机器人侦察系统需要侦察的多个目标点,并将所有目标点的坐标存储在列表l中,将l发送给第k个机器人节点的第一通信模块。第一通信模块将列表l转发给第k个机器人节点第一计算模块。机器人节点参考与目标点的位置等环境信息从列表l中选择目标点。
[0202]
7.2初始化第k个机器人节点的执行步数j=0。
[0203]
7.3第k个机器人节点的探测模块获取第j步全局状态信息sj(例如,周围其他机器人节点信息,各类环境要素信息)和第j步本地状态信息oj(例如,第k个机器人节点的位置等信息),将sj和oj发送给第k个机器人节点的第一计算模块。
[0204]
7.4第k个机器人节点的计算模块将sj,oj,以及从列表l中选择的目标点坐标整合成一个状态三元组。
[0205]
7.5第k个机器人节点的第一计算模块的策略网络根据状态三元组进行决策,输出动作指令aj,将aj发送给运动模块。
[0206]
7.6第k个机器人节点的运动模块在接收到动作指令aj后,执行前往所选目标点的动作。
[0207]
7.7若第k个机器人节点到达目标点坐标附近a米内,表示机器人已经侦察到该目标(a的建议取值为0.5~0.8米),将目标点坐标从列表l中删除,然后执行步骤7.8;否则,令j=j+1,执行步骤7.3。
[0208]
7.8第k个机器人节点判断l中是否还存有目标点坐标,若l不为空,则转步骤7.2;否则,转第八步。
[0209]
第八步,结束。
[0210]
通过以下仿真环境中的实验对本发明的实验效果进行说明:
[0211]
本发明技术在仿真测试实验中进行效果测试。该环境具有真实的物理引擎,存在摩擦,惯性等客观物理因素。任务目标是多机器人系统可以通过探测模块帮助机器人自主协同侦察多个目标点,这些目标点可以是固定的也可是移动的。用于实验的电脑安装有64
位ubuntu操作系统,搭载有amd图形处理器,英特尔酷睿八核cpu(处理频率为3.6ghz),电脑内存容量为16gb。
[0212]
图4是在仿真测试实验中对本发明效果测试的实验示意图。图4(a)左侧图表示多机器人系统在仿真环境下模拟的机器人系统可能面对的侦察场景(即可知的侦察场景),此场景中三个机器人节点(由图中的黑色圆点表示)根据探测信息,在地面上分别侦察三个目标点的位置(由图中的浅色圆点表示),当三个机器人节点到达目标点附近时,即表示侦察出目标点信息,同时还要避免与其他机器人节点的碰撞。4(a)右侧图则表示在实际情况中无法提前预知灾后或者战后侦察场景(即本发明中提到的真实场景)的仿真示意图,此场景中有与仿真场景不相同的摩擦系数,三个机器人节点仍需侦察三个目标点的信息。图4(b)表示针对侦察目标移动场景的仿真测试实验二的示意图,左侧图表示在仿真环境中模拟可能出现情况的侦察场景(即可知的侦察场景),右侧图表示不可提前预知的侦察场景(即本发明中提到的开放场景)的仿真示意图。它们均设置为四个机器人节点(由图中的黑色圆点表示)追逐两个移动目标点(由图中的圆点表示),多机器人的任务目标是实时获取目标点的位置等信息。这两个场景下摩擦系数等环境要素是不同的。
[0213]
图5是针对图4(a)效果测试的实验结果图。该图的横坐标是场景中侦察进行的轮数,纵坐标是累计奖励值,它是衡量当前轮数结束后任务完成效果的完成度评价指标度量值,即任务完成度评分。在执行任务时,机器人与对应目标点的距离越近,则任务完成度评分越高;相反,如果机器人与其他机器人或障碍物发生碰撞,则会被扣除评分,被给予惩罚。因此,任务完成度评分越高,则表明当前轮数内多机器人的行为越明智,配合度越高,学习效果越好。对于每个轮数内机器人最多行动25步,训练周期为5000轮,机器人节点每次从经验回放池中抽取64条轨迹经验信息进行训练。本实验共有两组数据,其中一组为对照组数据。对照组应用了背景技术讲到的maddpg多机器人强化学习技术,直接将预训练模型用于真实场景中优化,边训练边形成协同侦察策略,另一组则将本发明提出的基于双层评判机制的多机器人协同侦察策略方法,目的在于验证本发明的有效性。每组数据都由机器人节点重复执行200次,计算每个执行轮数的奖励平均值,形成图中折线。
[0214]
图5(a)为多机器人对固定目标点侦察任务的完成情况,图5(b)为衡量多机器人对移动目标实时侦察场景下的协同策略的学习情况,本实验意在预训练策略网络的帮助下,验证本发明中多机器人协同侦察方法能够更快帮助多机器人学到有效的协同策略并且获取更高的累计奖励。从图5(a)可以看出,随着训练轮数的增加,不同技术的任务完成度评分都会出现波动,但整体都呈现增大的趋势。可以明显发现,本发明的数据曲线不管是就收敛速度(任务完成度评分的增大速度)还是学习得分都远高于对照组。这说明在开始执行任务时,本发明可以快速学习到一个有效的协同策略,而在整个训练过程中,本发明的任务完成度都远高于对照组方法,体现了基于本发明学到的协同策略在完成侦察任务时具备更好的性能。
[0215]
以上对本发明所提供的面向复杂场景的多机器人协同侦察技术进行了详细阐述。本文对本发明的原理及实施办法进行了说明,以上说明用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通研究人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
技术特征:
1.一种面向复杂场景的多机器人协同侦察方法,其特征在于包括以下步骤:第一步,构建多机器人侦察系统,多机器人侦察系统由k个机器人节点和一个云端服务器节点组成,k为正整数;k个机器人节点均与云端服务器节点相连;机器人节点由能够观测、运动、通信的机器人构成,能运行软件系统,机器人节点工作方式相同;每个机器人节点都安装有匹配x86架构处理器的ubuntu操作系统或是匹配arm架构处理器的ubuntumate操作系统、机器人操作系统ros和深度学习框架pytorch1.7.0,还安装有探测模块、第一计算模块、第一存储模块、运动模块、第一通信模块;探测模块是采集环境数据的传感器,探测模块与第一存储模块相连,每隔t秒对视线范围内的环境信息和其他机器人节点状态进行拍摄或扫描,获得侦察任务状态信息,并将状态信息存储到第一存储模块中;第一存储模块与探测模块和第一计算模块相连,在第一存储模块中有一个经验回放池,存放所属机器人节点的最近的n条轨迹经验信息;其中第n条轨迹经验信息表示为[s
n
,a
n
,r
n
,s
n+1
],1≤n≤n,s
n
表示第n个时间点探测模块观察到的任务状态信息,包括可观察范围内的环境信息,以及除所属机器人节点外的其他k-1个机器人节点的速度和位置信息;a
n
表示在第n和n+1两个时间点之间机器人节点k采取的动作,1≤k≤k;r
n
是探测模块观察到的在第n个时间点环境对于当前任务完成情况的反馈得分;s
n+1
是第n+1个时间点探测模块观察到的任务状态信息;s
n+1
为由s
n
在机器人执行动作a
n
后得到的新的任务状态信息;第一计算模块负责设计和优化侦察策略,并根据侦察策略向运动模块发送行动指令;第一计算模块与第一存储模块、运动模块和第一通信模块相连;第一计算模块由6个全连接的神经网络组成,这6个全连接神经网络使用pytorch深度学习框架创建,它们分别为形成行动指令的策略网络和目标策略网络,以及用于优化策略的本地评价网络、全局评价网络、本地目标评价网络、全局目标评价网络;策略网络与第一存储模块、运动模块、第一通信模块、目标策略网络、本地评价网络,全局评价网络相连,从第一存储模块的经验回放池中抽取h条本地轨迹经验信息,根据本地轨迹经验信息中的当前任务状态信息确定下一步动作,并向运动模块发送包含下一步动作的指令,同时将自身的网络参数即各层网络的权重矩阵和偏置向量发送给目标策略网络;策略网络从本地评价网络和全局评价网络获取当前策略网络所采取动作的评价值,根据评价值学习如何获得更高的行动评价值,制定行动指令;策略网络将策略网络参数保存为.data格式文件,发送给第一通信模块;动作完成后,将保存有该策略网络参数的文件发送到第一通信模块;目标策略网络与策略网络相连,根据从策略网络获取的策略网络的网络参数,更新目标策略网络自身网络参数;本地评价网络与第一存储模块、策略网络、本地目标评价网络相连,从第一存储模块接收策略网络抽取的h条本地轨迹经验信息,从本地目标评价网络接收损失函数度量值,根据损失函数度量值评估所述机器人的动作价值,同时将自己的网络参数发送给本地目标评价网络;本地评价网络还将当前策略网络所采取动作的评价值发送给策略网络;本地目标评价网络与本地评价网络相连,根据从本地评价网络获取的本地评价网络的网络参数,更新本地目标评价网络自身网络参数;全局评价网络与第一存储模块、策略网络、全局目标评价网络相连,从第一存储模块接
收与本地评价网络抽取的h条本地轨迹经验信息同一时间步的h条全局轨迹经验信息,从全局目标评价网络接收损失函数度量值,根据损失函数度量值评估所有机器人的联合动作价值,同时将自己的网络参数发送给全局目标评价网络;全局评价网络还将联合动作的评价值发送给策略网络,所述联合动作指当前策略网络所采取动作联合其他机器人所采取动作;全局目标评价网络与全局评价网络相连,根据从全局评价网络获取的全局评价网络的网络参数,更新全局目标评价网络自身网络参数;运动模块由驱动设备和数模转换器构成;运动模块与第一计算模块相连,从第一计算模块的策略网络接收动作指令,借助内置的数模转换器把数字信号转换成模拟信号,再将模拟信号传输给驱动设备,使机器人做出相应动作,最终导致侦察场景发生变化;第一通信模块与云端服务器节点、第一计算模块相连,第一通信模块从第一计算模块的策略网络接收.data格式文件,通过ssh通信服务将.data格式文件上传到云端服务器节点;云端服务器节点是指云端设备,安装有第二通信模块,第二存储模块;第二存储模块上安装了ubuntu16.04操作系统,以及与机器人节点相同版本的pytorch深度学习框架;在云端服务器上,第二通信模块与第二存储模块相连并通过ssh通信协议与k个机器人节点相互通信;第二步,基于gazebo仿真环境构建m个侦察场景,用于预训练第一计算模块中的六个网络;方法是:2.1挑选一台安装有与机器人节点上的ubuntu操作系统或ubuntumate操作系统版本相同的计算机,并安装运行gazebo仿真环境,模拟第一步构建的多机器人系统中k个机器人节点,为k个机器人节点建立对应的机器人节点仿真模型;2.2参照侦察环境中可能出现的各种环境要素,进行等比例缩放建模,构建尽量逼近真实环境的环境仿真模型;2.3随机选取机器人节点仿真模型和各种环境要素,对它们的初始位置和数目进行随机初始化,从而形成m个侦察场景,用于模拟各种可能会出现的真实场景;其中m为正整数;2.4设计侦察任务完成度的评价指标,评价当前多机器人联合策略在仿真环境下的任务完成效果;如果机器人节点仿真模型在侦察中漏掉一个目标点,扣1分;机器人节点仿真模型在运动过程中与障碍物模型相撞,扣10分;与其他机器人节点仿真模型发生碰撞,减5分;第三步,在第二步构建好的m个侦察场景中对k个机器人节点仿真模型进行预训练,得到记录了k个机器人节点仿真模型在每个侦察仿真场景下的协同策略的k个.data格式的参数文件;单个机器人节点仿真模型采取ddpg强化学习算法训练策略网络,k个机器人节点仿真模型相互独立,并行训练策略网络,其中,第k个机器人节点仿真模型采取ddpg强化学习算法训练策略网络的方法是:3.1初始化机器人节点仿真模型k的第一计算模块,第一计算模块中的六个神经网络都要初始化参数,包括每个神经网络每层之间的权重矩阵以及偏置向量,权重矩阵以及偏置向量的值根据期望值为0、方差为2的正态分布随机生成,1≤k≤k;3.2初始化变量m=0;
3.3在gazebo仿真环境中从m个仿真侦察场景选取第m个仿真侦察场景;3.4在第m个仿真侦察场景中随机初始化第k个机器人节点仿真模型的初始位置、第m个仿真侦察场景中各种环境要素的初始点;初始化训练轮数i=0,并设定最大训练轮数i,i为正整数;3.5初始化第i个训练轮数中第k个机器人节点仿真模型的行动步数j=0,并设定第i个训练轮数中第k个机器人节点仿真模型可以行动的最大步数j,j为正整数,如果第k个机器人节点仿真模型可在j步之内完成任务,则第i个训练轮数第k个机器人节点仿真模型的实际行动步数小于j;3.6第k个机器人节点仿真模型的策略网络从第一存储模块获取第j步时的本地状态信息o
j
,将o
j
输入策略网络,经过策略网络中层层神经元之间权重矩阵相乘,以及每层神经元偏置向量相加输出第j步时的动作指令a
j
,将a
j
发送到第一存储模块和运动模块;3.7第一存储模块存储a
j
,同时运动模块执行动作a
j
;3.8第k个机器人节点仿真模型探测到其他k-1个机器人节点在第j步执行的动作,并组合第k个机器人节点仿真模型执行的动作a
j
得到k个机器人节点在第j步执行的联合动作将联合动作表示为a
j
,存储到第一存储模块;3.9根据2.4步制定的评价指标,第k个机器人节点仿真模型执行动作a
j
后得到任务完成度评分r
j
,将r
j
反馈给第k个机器人节点仿真模型中的第一存储模块;3.10第k个机器人节点仿真模型在执行动作a
j
后导致侦察环境的状态发生变化,第k个机器人节点仿真模型的探测模块观察到第j+1步时的全局状态信息s
j+1
和本地状态信息o
j+1
,将s
j+1
和o
j+1
存储到第一存储模块;3.11第k个机器人节点仿真模型的第一存储模块通过分别组合s
j
、s
j+1
、a
j
、r
j
和o
j
、o
j+1
、a
j
、r
j
,得到第j组全局轨迹经验信息[s
j
,a
j
,r
j
,s
j+1
]和第j组本地轨迹经验信息[o
j
,a
j
,r
j
,o
j+1
],将同一步的全局轨迹经验信息和本地轨迹经验信息称之为轨迹经验信息对;并将轨迹经验信息对[s
j
,a
j
,r
j
,s
j+1
]和[o
j
,a
j
,r
j
,o
j+1
]发送到第一存储模块的经验回放池,经验回放池对[s
j
,a
j
,r
j
,s
j+1
]和[o
j
,a
j
,r
j
,o
j+1
]分开存储;3.12第k个机器人节点仿真模型的第一计算模块对经验回放池的存储量进行判断,如果已经存满h个轨迹经验信息对,则从经验回放池随机抽取h个轨迹经验信息对;将h条全局轨迹经验信息发送给全局评价网络,将h条本地轨迹经验信息发送给本地评价网络,转步骤3.13;否则,令j=j+1,转步骤3.6,h为正整数;3.13第k个机器人节点仿真模型的第一计算模块按照先后顺序,将抽取的h个轨迹经验信息对编号为1~h;初始化标记序号q=0;3.14第k个机器人节点仿真模型的第一计算模块从标记序号q=0开始,按照先后顺序选取前h个轨迹经验信息对,1≤h≤h;并令q=q+h,即将q更新为选取的h个轨迹经验信息对中最后一对的标记序号;3.15第k个机器人节点仿真模型的全局评价网络根据选取的h个全局轨迹经验信息,采用梯度下降法分别最小化全局损失函数l
global
;同时第k个机器人节点仿真模型的本地评价网络根据选取的h个本地轨迹经验信息,采用梯度下降法分别最小化本地损失函数l
local
,从而更新全局评价网络和本地评价网络的参数:
其中,q
global
代表全局评价网络,q
local
表示本地评价网络,q
′
global
表示全局目标评价网络,q
′
local
表示本地目标评价网络;μ
′
代表目标策略网络,这些字母紧跟的括号里的符号表示该网络的输入信息,μ
′
(o
j+1
)表示将第k个机器人节点仿真模型在第j+1步观察到的本地状态信息o
j+1
输入到目标策略网络后输出的行动指令;μ
′
(s
j+1
)表示在第j+1步k个机器人根据全局状态信息s
j+1
预测的联合动作;q
local
(o
j
,a
j
)表示将本地状态信息o
j
和动作a
j
输入到本地评价网络,得到对第k个机器人节点仿真模型动作的估计得分;q
global
(s
j
,a
j
)表示将全局状态信息s
j
和联合动作a
j
输入到全局评价网络获取联合动作的估计得分;(r
j
+αq
′
global
(s
j+1
,μ
′
)-q
global
(s
j
,a
j
))表示使全局评价网络对联合动作的估计得分q
global
(s
j
,a
j
)越接近全局目标得分r
j
+αq
′
global
(s
j+1
,μ
′
)越好,(r
j
+αq
′
local
(o
j+1
,μ
′
(o
j+1
))-q
local
(o
j
,a
j
))表示使本地评价网络对第k个机器人节点仿真模型动作的估计得分q
local
(o
j
,a
j
)越接近本地目标得分r
j
+αq
′
local
(o
j+1
,μ
′
(o
j+1
))越好;α表示折扣因子,取0~1的常数;3.16全局评价网络和本地评价网络采用双层评判机制,共同指导策略更新,第k个机器人节点仿真模型的策略网络按公式(3)进行参数更新:3.17若q+h>h,执行步骤3.18;否则,转步骤3.13;3.18第k个机器人节点仿真模型的全局目标评价网络根据全局评价网络的参数更新自己的网络参数,如公式(4)所示;本地目标评价网络根据本地评价网络的参数更新自己的网络参数,如公式(5)所示;目标策略网络根据策略网络的参数更新自己的网络参数,如公式(6)所示:(6)所示:(6)所示:其中,分别表示在第j步时全局评价网络、本地评价网络、策略网络的参数;表示第j步时全局目标评价网络、本地目标评价网络、目标策略网络的参数;τ1、τ2是0~1之间的权值常数;3.19令j=j+1,若j达到设定的每轮最大步数j,执行步骤3.20;否则执行步骤3.6;3.20令i=i+1,若i达到设定的最大训练轮数i,执行步骤3.21;否则执行步骤3.4;
3.21令m=m+1,若m等于最大侦察场景数m,执行步骤3.23;否则,执行步骤3.22;3.22第k个机器人节点仿真模型的第一计算模块保存训练好的策略网络模型,并以仿真侦察场景的序号m对其命名;同时,第k个机器人节点仿真模型的第一计算模块清空策略网络、目标策略网络、全局评价网络、全局目标评价网络、本地目标评价网络中的所有网络参数,重新赋予它们随机初始值;第k个机器人节点仿真模型的第一存储模块清空经验池,为新场景任务的训练做好准备;转步骤3.23;3.23第k个机器人节点仿真模型的第一计算模块将策略网络的参数即第k个机器人节点仿真模型在侦察仿真场景下的协同策略保存在.data格式文件,执行第四步;第四步,k个机器人节点仿真模型分别将.data格式文件通过ssh服务上传到云端服务器节点,也就是说把通过第三步训练得到的个性化协同策略存储到云端服务器节点,实现预训练阶段得到的策略网络模型保存与共享;k台机器人节点仿真模型并行执行,第k个机器人节点仿真模型将.data格式文件通过ssh服务上传到云端服务器节点的方法是;4.1第k个机器人节点仿真模型的第一计算模块将.data格式文件发送给第k个机器人节点仿真模型的第一通信模块;4.2第k个机器人节点仿真模型的第一通信模块通过ssh通信服务将.data格式文件发送给第二通信模块;4.3第二通信模块把收到的.data格式文件保存在云端服务器节点的第二存储模块;第五步,将第一步构建的多机器人系统部署到需要开展侦察任务的地点,利用仿真场景中训练好的策略模型即.data格式文件来帮助真实场景下多机器人协同侦察任务中策略网络的训练,具体方法是k台机器人节点并行执行,第k个机器人节点的执行过程是:5.1第k个机器人节点的第一通信模块向云端服务器节点的第二通信模块发送下载请求,请求下载策略模型;5.2第二通信模块从云端服务器节点的第二存储模块中读取与第k个机器人节点面临的未知场景最为相似的仿真场景下保存好的.data策略网络模型参数文件,通过ssh服务协议将.data格式文件传输到第k个机器人节点的第一通信模块;5.3第k个机器人节点的第一通信模块把.data格式文件传送给第k个机器人节点的第一计算模块;5.4第k个机器人节点将.data格式文件加载到本地的策略网络中,由pytorch深度学习框架直接加载;5.5对第k个机器人节点的目标策略网络、本地评价网络以及全局评价网络分别进行参数初始化;每个神经网络的权重矩阵和偏置向量都以期望值为0、方差为2的正态分布随机生成;5.6将第k个机器人节点的第一存储模块的经验回放池清空;5.7初始化第k个机器人节点已执行动作步数j=0,可执行的最大步数为j,j为正整数;5.8第k个机器人节点的第一计算模块中的策略网络从第一存储模块中获得第j步侦察场景的本地状态信息o
j
,将o
j
输入策略网络,得到动作指令a
j
,将a
j
存储到第一存储模块,并将a
j
发送给运动模块;5.9运动模块根据指令做出动作a
j
;5.10根据步骤2.4中设计好的侦察任务完成度评价指标,第k个机器人节点执行动作a
j
后得到任务场景反馈的完成度评分r
j
,并将r
j
存储到机器人节点k的第一存储模块;5.11第k个机器人节点执行动作a
j
后导致侦察环境的全局环境和本地状态均发生变化,机器人节点k的探测模块在观察到第j+1步全局状态信息s
j+1
和本地状态信息o
j+1
后,将s
j+1
和o
j+1
存储到第一存储模块;5.12第k个机器人节点分别整合信息s
j
、s
j+1
、a
j
、r
j
和o
j
、o
j+1
、a
j
、r
j
,得到第j组全局轨迹经验信息[s
j
,a
j
,r
j
,s
j+1
]和第j组本地轨迹经验信息[o
j
,a
j
,r
j
,o
j+1
],将[s
j
,a
j
,r
j
,s
j+1
]和[o
j
,a
j
,r
j
,o
j+1
]存储到第一存储模块的经验轨迹回放池;5.13第k个机器人节点的第一计算模块的第一存储模块对经验回放池中的数据进行判断,如果已经存满了2h条轨迹经验信息,则从回放池中随机抽取对应的h条全局轨迹经验信息和h条本地轨迹经验信息,用于第一计算模块中六个神经网络的参数优化,然后执行步骤5.14;否则,令j=j+1,转至步骤5.8;5.14第k个机器人节点的全局评价网络和本地评价网络分别读取h条全局轨迹经验信息和h条本地轨迹经验信息,利用梯度下降法最小化公式(1)中的全局损失函数l
global
和公式(2)中的本地损失函数l
local
,分别实现对全局评价网络和本地评价网络参数更新;5.15第k个机器人节点的策略网络读取h条全局轨迹经验信息和h条本地轨迹经验信息,通过梯度下降法,根据公式(3)中的策略梯度更新公式更新策略网络的参数,实现对策略网络的优化;5.16第k个机器人节点的全局目标评价网络、本地目标评价网络和目标策略网络,按照公式(4)(5)(6)的更新公式,分别更新全局目标评价网络、本地目标评价网络、目标策略网络的参数;5.17令j=j+1,若j达到最大步数j,代表协同侦察策略在真实场景下优化完毕,接着执行第六步;否则,执行步骤5.8;执行完第五步之后,k个机器人节点的策略网络参数共同构成多机器人自主协同侦察真实场景的采样策略;第六步,将k个机器人节点部署到需要开展侦察任务的场景中;第七步,多机器人系统根据第五步获得的多机器人自主协同侦察真实场景的采样策略,在开放环境下自主协同完成多目标侦察任务;k个机器人节点并行完成多目标侦察任务,第k个机器人节点完成多目标侦察任务的方法是:7.1根据侦察任务要求,设置多机器人侦察系统需要侦察的多个目标点,并将所有目标点的坐标存储在列表l中,将l发送给第k个机器人节点的第一通信模块;第一通信模块将列表l转发给第k个机器人节点第一计算模块;机器人节点参考与目标点的位置从列表l中选择目标点;7.2初始化第k个机器人节点的执行步数j=0;7.3第k个机器人节点的探测模块获取第j步全局状态信息s
j
和第j步本地状态信息o
j
,将s
j
和o
j
发送给第k个机器人节点的第一计算模块;7.4第k个机器人节点的计算模块将s
j
,o
j
,以及从列表l中选择的目标点坐标整合成一个状态三元组;7.5第k个机器人节点的第一计算模块的策略网络根据状态三元组进行决策,输出动作指令a
j
,将a
j
发送给运动模块;
7.6第k个机器人节点的运动模块在接收到动作指令a
j
后,执行前往所选目标点的动作;7.7若第k个机器人节点到达目标点坐标附近a米内,表示机器人已经侦察到该目标,将目标点坐标从列表l中删除,然后执行步骤7.8;否则,令j=j+1,转步骤7.3;7.8第k个机器人节点判断l中是否还存有目标点坐标,若l不为空,则转步骤7.2;否则,转第八步;第八步,结束。2.如权利要求1所述的一种面向复杂场景的多机器人协同侦察方法,其特征在于所述机器人节点是无人机节点intel aero或地面机器人turtlebot3;所述ubuntu操作系统为16.04及以上版本,所述ubuntumate为16.04及以上版本。3.如权利要求1所述的一种面向复杂场景的多机器人协同侦察方法,其特征在于所述探测模块是红外摄像头或深度摄像头或扫描雷达。4.如权利要求1所述的一种面向复杂场景的多机器人协同侦察方法,其特征在于所述t的取值在0.3秒到1秒之间;所述第一存储模块的可用空间为1gb以上;所述n的取值范围是5000~10000;所述m不少于10。5.如权利要求1所述的一种面向复杂场景的多机器人协同侦察方法,其特征在于所述云端设备指工作站、服务器,所述第一通信模块和第二通信模块都是无线网卡,所述第二存储模块容量大于500gb。6.如权利要求1所述的一种面向复杂场景的多机器人协同侦察方法,其特征在于第二步所述gazebo仿真环境要求版本9.10.0及以上。7.如权利要求1所述的一种面向复杂场景的多机器人协同侦察方法,其特征在于3.4步所述最大训练轮数i设置为400~1000之间的正整数;3.5步所述j为30~50之间的正整数;3.12步所述h为100~200之间的正整数;3.15步所述α为0.2~0.3;3.18步所述τ1、τ2的取值范围为0.2~0.3。8.如权利要求1所述的一种面向复杂场景的多机器人协同侦察方法,其特征在于5.7步所述j的取值范围为1000~2000之间的正整数。9.如权利要求1所述的一种面向复杂场景的多机器人协同侦察方法,其特征在于所述h的取值为50~100。10.如权利要求1所述的一种面向复杂场景的多机器人协同侦察方法,其特征在于7.7步所述a的取值为0.5~0.8米。
技术总结
本发明公开了一种面向复杂场景的多机器人协同侦察方法,目的是使得侦察时间短且能完成多种场景下的侦察任务。技术方案是:构建由机器人节点和云端服务器节点组成的多机器人侦察系统;预训练机器人节点仿真模型,将机器人节点仿真模型个性化协同策略存储到服务器节点;利用仿真场景中训练好的策略训练真实场景下多机器人协同侦察任务中策略网络,获得多机器人自主协同侦察真实场景的采样策略;多机器人系统根据采样策略完成多目标侦察任务。本发明采用双层评判机制,基于全局和个体引入激励机制,使多机器人能对不同环境产生个性化灵活决策,可在动态变化的复杂环境中高效自主协同侦察,且可在更短时间高效完成侦察任务。且可在更短时间高效完成侦察任务。且可在更短时间高效完成侦察任务。
技术研发人员:刘惠 丁博 万天娇 冯大为 傅翔 许可乐 翟远钊 高梓健 贾宏达
受保护的技术使用者:中国人民解放军国防科技大学
技术研发日:2023.05.22
技术公布日:2023/8/28
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/