CN110587606B - 一种面向开放场景的多机器人自主协同搜救方法 - Google Patents
一种面向开放场景的多机器人自主协同搜救方法 Download PDFInfo
- Publication number
- CN110587606B CN110587606B CN201910883109.7A CN201910883109A CN110587606B CN 110587606 B CN110587606 B CN 110587606B CN 201910883109 A CN201910883109 A CN 201910883109A CN 110587606 B CN110587606 B CN 110587606B
- Authority
- CN
- China
- Prior art keywords
- robot
- search
- network
- rescue
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000004088 simulation Methods 0.000 claims abstract description 169
- 230000008569 process Effects 0.000 claims abstract description 29
- 238000012549 training Methods 0.000 claims abstract description 15
- 238000005457 optimization Methods 0.000 claims abstract description 11
- 238000011156 evaluation Methods 0.000 claims description 109
- 230000009471 action Effects 0.000 claims description 97
- 238000004364 calculation method Methods 0.000 claims description 88
- 238000004891 communication Methods 0.000 claims description 72
- 230000006870 function Effects 0.000 claims description 53
- 230000033001 locomotion Effects 0.000 claims description 44
- 238000001514 detection method Methods 0.000 claims description 42
- 238000013528 artificial neural network Methods 0.000 claims description 31
- 238000013135 deep learning Methods 0.000 claims description 25
- 230000006399 behavior Effects 0.000 claims description 17
- 239000000284 extract Substances 0.000 claims description 12
- 238000011478 gradient descent method Methods 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 10
- 230000000875 corresponding effect Effects 0.000 claims description 6
- 230000007613 environmental effect Effects 0.000 claims description 6
- 230000004888 barrier function Effects 0.000 claims description 4
- 210000002569 neuron Anatomy 0.000 claims description 4
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 claims description 3
- 238000005094 computer simulation Methods 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 230000001737 promoting effect Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 12
- 238000002474 experimental method Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 230000002787 reinforcement Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 6
- 239000007787 solid Substances 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 241000282693 Cercopithecidae Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 241000282414 Homo sapiens Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000011664 nicotinic acid Substances 0.000 description 1
- 210000002442 prefrontal cortex Anatomy 0.000 description 1
- 230000002360 prefrontal effect Effects 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
- Feedback Control In General (AREA)
Abstract
本发明公开了一种面向开放场景的多机器人自主协同搜救方法,目的是快速构建多机器人在新任务场景下的自主协同策略,实现在开放场景中的多机器人自主协同搜救。技术方案是在多机器人系统在仿真搜救环境中应对各种可能出现的状况,形成基本多机器人协同搜救策略,使得多机器人系统面对无法预知的实际搜救场景时,能够仅使用少量时间进行策略优化,便可在开放场景下有效完成多机器人自主协同完成搜救任务。采用本发明能够基于仿真搜救环境中形成的预训练策略,快速形成对真实搜救场景的协同搜救策略,有效应对面对新场景制定策略的时间消耗问题。且本发明构建的搜救策略具有泛化性,能够适用于不同的搜救场景。
Description
技术领域
本发明涉及在地震灾区等无法提前预知的开放场景中,如何让分布式多机器人自主协同完成目标搜救任务。尤其涉及多机器人在面对从未见过的、无法提前预知的灾后搜救任务场景时,实现自主形成协同策略以完成路径规划和目标追踪等任务的方法。
背景技术
目前常见的多机器人协同任务包括协同搜索、协同搬运、协同侦察等,相比于单机器人,多机器人能够处理合作型任务,具有更加灵活、高效、可靠的优点;并且能够实现群体智能涌现,达到“1+1>2”的效果。目前,多机器人自主协同已经被广泛用于灾后搜救等实际应用场景,极大地提升了搜救效率,同时降低了人力成本。但是目前的多机器人自主协同完成任务的策略(不论是人为设计协同策略还是基于机器学习方法),通常需要提前设计或训练,并且得到的策略只能针对单一任务进行测试并投入使用。
但是现实环境并非是静态封闭的,多机器人执行任务时常常面对的是开放场景,需要应对任务过程中某机器人因故退出、障碍物突然出现等突发情况,因此开放场景会给多机器人完成任务带来更多挑战。本发明中所考虑的一类典型的开放场景是,多机器人在之前从未见过并无法提前预知未来所要执行任务的具体场景。例如,地震之后的灾区地形会如何变化、各种障碍的出现数量和所在位置、届时能投入多少机器人参与救援等等,都只能等到地震发生之后才能获知。目前通常的做法是现场制定救援策略,但弊端在于:现场制定救援策略不可避免地要先消耗大量时间进行环境探索和商讨方案,导致不能快速投入救援,浪费灾后搜救的“黄金时间”。针对这一弊端,本发明实现了多机器人在从未见过的灾后搜救等任务场景中能够经过短暂“实习”快速投入救援中。
目前在机器人领域,基于深度学习的图像识别和深度强化学习的行为控制来实现的多机器人自主协同技术也已日渐成熟并开始在实际中实现应用。此类基于“数据驱动”的方法,能够让机器人实现对任务的自主学习,不依赖于人为设计任务策略。强化学习方法能够有效考虑机器人实际空间中的高维、连续状态空间、连续行为空间等实际特点,避免类似于在有监督学习中需要设置标签等难题,让机器人在不断探索和试错过程中,持续收集对任务在某个状态执行某个行为能获得怎样的收益而形成的经验,逐渐自主形成对环境的认知和掌握协同完成任务的策略;同时,深度学习方法的引入能够避免维持的状态空间指数爆炸的问题。因而通过融合深度学习方法和强化学习方法,深度强化学习方法在机器人自主协同应用中有着较好的表现。
然而相比于人为特征设计的方法,传统深度学习却具有数据依赖量大、训练时间长等长期存在的问题,除此之外,深度学习和融合深度学习的深度强化学习方法的另一个固有局限是训练的模型具有较高的任务相关性,也就是说,当任务场景发生变化的时候,之前训练的模型可能会出现不适合甚至失效的问题。这就导致了之前提到的多机器人掌握的某种策略只能用于单个任务的问题,比如多机器人在地震灾区有落石的障碍干扰的场景下学习到协同完成任务策略,但是当实际投入到地震场景时,却突然发现环境中有未预料到的陷阱等障碍,已有的多机器人行为策略便无法适应当前的环境。
除了外部环境中各类障碍的动态变化以外,机器人数目和角色也可能会发生变化。此外,在探索如何完成任务的过程中,其他机器人的行为也会对某机器人的观测和奖励获得产生影响,这种影响是相互作用持续存在的。以上问题意味着,多机器人系统的复杂度远远超过单机器人系统复杂度的和,并且真实环境中的复杂度会更高。
现有方法主要是解决上述三种问题(数据依赖量大、训练时间长和任务场景相关性)中的一种或两种,比如论文《Learning to reinforcement learn》(译为“学会如何强化学习”,发表在arXiv预印本论文网站,网址为https://arxiv.org/abs/1611.05763,出版时间2016年11月)和论文《RL2:Fast Reinforcement Learning via Slow ReinforcementLearning》(译为“通过慢速强化学习实现快速强化学习”,发表在arXiv预印本论文网站,网址为https://arxiv.org/abs/1611.02779,出版时间2016年11月)成功实现了单机器人在新任务中快速学习的实验。论文《Multi-Agent Actor-Critic for Mixed Cooperative-CompetitiveEnvironments》(译为“面向合作与竞争环境的多机器人A-C学习方法”,发表在arXiv预印本论文网站,网址为https://arxiv.org/abs/1706.02275,出版时间2017年6月)考虑了多机器人之间的相互干扰,将深度确定性策略梯度方法应用到多机器人场景中,提出了一种多机器人深度强化学习方法——MADDPG(Multi-Agent Deep DeterministicPolicy Gradient,译为“多机器人深度确定性策略梯度方法”)。但这种方法基于固定环境和场景的假设,因此机器人将有足够多的时间去探索和学习。但是当任务场景发生变化时,之前训练好的模型就可能毫无作用。
与机器学习相比,人类有一项独特的能力,就是能够仅仅从少量样本中快速有效地掌握一类事物的本质,这是目前深度学习方法所无法做到的。对这种快速学习能力的一般解释是,人类能够基于在之前各类场景中得到的先验知识来实现学会如何学习当前任务。元学习是实现此类效果的方法之一,这是一种关注掌握学习过程本质的思想,通过使用诸如梯度预测、初始值预测等先验知识,指导之后的学习任务,而不用每次面对新任务时需要重新学习。因此,元学习方法是一种实现少样本学习与快速学习的有效途径。元学习的一个特征是在预训练场景和实际任务场景中都具有泛化性,使得机器人能够较容易地快速适应多类任务。这种泛化性可以通过任务的差异程度进行体现,并且可以作为学习能力的衡量标准。目前,通过对传统的深度学习神经网络框架进行重构和优化,元学习方法已经被成功应用在了少样本图像识别中,并且在Omniglot数据集(http://github.com/brendenlake/omniglot)上取得了非常高的准确率。
在实际中,任务场景的变化常常是具有一定规律的,如果能够利用好任务之间的关联性,可以利用先验知识加速新任务学习。在论文《Prefrontal cortex as a meta-reinforcement learning system》(译为“作为元强化学习系统的前额叶皮质”,《自然》神经科学,2018年第21期860–868页)中提到,基于元强化学习的智能体的学习行为与猴子的学习行为非常相似。这意味着,将元学习与强化学习相结合,所得到的元强化学习方法应用到机器人领域具有一定的仿生意义和应用价值。
考虑到多机器人环境的探索学习过程中可能出现的相互干扰,论文《Multi-AgentActor-Critic for Mixed Cooperative-CompetitiveEnvironments》建立了一种多机器人深度确定性策略梯度方法,其将离线训练和在线执行过程进行划分。这是一种应对多机器人相互干扰的有效方法,但是其没有考虑环境和任务的动态变化。若同时考虑以上所有挑战,能够实现同时应对来自智能体和外部环境的动态变化,是本领域技术人员极为关注的技术问题。
基于以上分析,传统深度学习具有数据依赖量大、训练时间长和任务场景相关性等问题,比如在服务器中运行经典的基于深度学习方法的SLAM(simultaneouslocalization and mapping,译为“即时定位与地图构建”)算法,通常需要一天以上才能得到良好结果。将元学习方法与多机器人深度确定性策略梯度方法相结合,通过不断的调整与优化神经网络结构,使其向着训练场景中共性的规律去更新,从而使机器人能够在面临具有相同内在规律的不同场景任务中实现少样本快速学习。一种较为直观的解释是,机器人能够在大量不同的灾后搜救任务场景的预训练中找到共同特征和相似点,然后将这种共同特征与之后的未知场景搜救任务关联起来。也就是说,机器人能够掌握一类灾后搜救任务的内在特征,从而能够指导在面对从未见过的、无法提前预知的灾后搜救任务场景中有效形成协同策略,并且这种方法还具有不依赖于特定的协同方式的优点。从而实现多机器人在面临无法提前预知的搜救任务场景时,如在玉树地震灾区、长宁地震灾区等等,都能够基于已学习到的一般协作策略实现快速投入搜索和救援之中。因此基于以上分析,这种面向开放场景的多机器人自主协同搜救方法是具有实际前景和应用价值的。
发明内容
本发明所面向的应用场景是,多机器人在之前从未见过并无法提前预知未来所要执行的搜救任务。此应用场景也即开放场景,主要具有以下两个约束:第一,不知道具体任务场景的细节信息,包括任务完成效果的评价指标等。这意味着多机器人只知道将要面临一个灾后全覆盖搜救任务,但是不知道灾后环境的地形会发生什么样的改变、会出现什么类型的障碍以及每种障碍的数量。第二,搜救任务对搜救时间有着较高的要求,时间就是生命,总搜救时间包括但不限于策略制定时间和任务执行时间等,可能导致机器人没有非常充裕的时间来充分学习。
本发明要解决的技术问题是快速构建多机器人在新任务场景下的自主协同策略,实现在开放场景中的多机器人自主协同搜救。以往基于传统深度学习的多机器人自主协同方法虽然可以让多机器人自主学习,但是具有数据依赖量大、训练时间长和任务场景相关性等特点,不能直接用于本发明所需要面对的应用背景。为此,本发明提供一种融合元学习思想的面向开放场景的多机器人自主协同搜救方法,在多类任务场景中探索和归纳出一般性的行为策略,并将此类一般性行为策略作为群体智能先验知识加以复用,实现当任务场景关键属性发生变化时,多机器人能达到快速适应并自主形成协同搜救策略的效果。
本发明的核心技术是在仿真搜救环境中制定基本多机器人协同搜救策略,使得多机器人系统面对提前未知的实际搜救场景时,能够仅使用少量时间进行策略调整,有效实现开放场景下多机器人自主协同完成搜救任务。
本发明包括以下步骤:
第一步,构建多机器人系统,多机器人系统由M个机器人节点和一个云端服务器节点构成。云端服务器节点与M个机器人节点均相连。
机器人节点指能够运动、观测、通信、具有软件运行能力的机器人。可采用的机器人节点包括但不限于地面机器人节点Turtlebot3、空中无人机节点Intel aero等。每个机器人节点上均部署有探测模块、第一存储模块、计算模块、运动模块和第一通信模块。探测模块是能采集搜救场景环境数据的传感器,如扫描雷达、红外摄像头、深度摄像头等。探测模块与第一存储模块相连,从开始运行后每隔α秒周期性地对传感器可见范围内的搜救场景和除自己以外的另M-1台机器人节点进行拍摄或扫描,得到当前搜救场景状态,并将当前搜救场景状态发送给第一存储模块。α建议取值范围为0.3~1。
第一存储模块是可用空间1GB以上的存贮器,与探测模块和计算模块相连,第一存储模块中有一个元经验回放池,以数组的形式存放所属机器人节点(令为机器人节点m)的D条轨迹信息(D为正整数,D的建议取值范围为5000~10000)。第一存储模块从探测模块接收搜救场景状态,将搜救场景状态转化成轨迹信息,轨迹信息是一个四元组,第j条轨迹信息的格式可表示为(sj,aj,rj,sj+1),其中,sj表示探测模块第j次观察到的搜救场景状态,sj主要涵盖第j次观察到的除机器人节点m以外的另M-1台机器人节点、搜救场景中所有目标点、搜救场景中所有障碍物的位置坐标和另M-1台机器人节点的速度。aj表示探测模块在第j次观测到第j+1次观测两个时间点之间,机器人节点m所采取的行动,表现为机器人节点m往某个方向进行加速或施加作用力的动作。机器人节点m在执行行动时自动记录aj。rj是探测模块在第j+1次观察时,对于第j次观察到的搜救场景状态的任务完成度进行评价的得分。sj+1表示探测模块第j+1次观察到的搜救场景状态,sj+1主要涵盖第j+1次观察到的除机器人节点m以外的另M-1台机器人节点、搜救场景中所有目标点、搜救场景中所有障碍物的位置坐标和另M-1台机器人节点的速度。在逻辑关系上,sj+1可以解释为由sj经过行为aj后所得到的新搜救场景状态。
计算模块负责制定和优化搜救策略,并根据搜救策略向运动模块发送行动指令。计算模块与第一存储模块、运动模块、第一通信模块相连,计算模块中安装有Ubuntu 16.04及以上版本的操作系统(用于X86架构处理器)或Ubuntu Mate16.04及以上版本的操作系统(用于ARM架构处理器),并安装有与操作系统相匹配的ROS(Robot Operating System,译为“机器人操作系统”)和TensorFlow深度学习框架(要求9.10.0版本及以上)。计算模块使用TensorFlow深度学习框架创建有6个全连接神经网络,分属用于形成行动指令的Actor(演员)结构和用于优化搜救策略的Critic(评论家)结构(原理可参考文献《Actor-CriticAlgorithms》,译为“演员-评论家算法”,发表在ACM出版机构,出版时间2001年4月,可下载网址为https://www.researchgate.net/publication/2354219_Actor-Critic_Algorithms),Actor结构包括策略网络、目标网络、元策略网络;Critic结构包括评价网络、目标网络、元评价网络。这6个神经网络结构相同,每个神经网络有a层,每层均有b个神经元,其中a的建议取值范围为3~5,b的建议取值范围为64~128。Actor结构策略网络从第一存储模块中获取多条轨迹信息和当前状态,将自身的网络参数发送给Actor结构目标网络和Actor结构元策略网络,并发送行动指令给运动模块;Actor结构策略网络主要功能是根据当前状态制定下一步的行动指令。Actor结构目标网络从Actor结构的策略网络获取策略网络的参数,辅助Actor结构策略网络进行更新,并将损失函数度量值发送给Critic结构目标网络。Critic结构评价网络从第一存储模块接收多条轨迹信息,从Critic结构目标网络接收损失函数度量值,指导Actor结构策略网络制定更佳的行动指令,并将自身网络参数发送给Actor结构策略网络、Critic结构目标网络和Critic结构元评价网络。Critic结构目标网络从Critic结构评价网络接收Critic结构评价网络的网络参数,从Actor结构目标网络接收损失函数度量值,辅助Critic结构评价网络进行更新,并将损失函数度量值发送给Critic结构评价网络。Actor结构元策略网络从Actor结构策略网络接收Actor结构策略网络的网络参数,将不同搜救场景中得到的Actor结构策略网络参数进行提炼和保存;Critic结构元评价网络从Critic结构评价网络接收Critic结构评价网络参数,将不同搜救场景中得到的Critic结构评价网络参数进行提炼和保存;计算模块将Actor结构元策略网络和Critic结构元评价网络的两个网络参数保存成一个.data格式文件,发送到第一通信模块。机器人节点每隔α秒进行一次观测并执行一个动作指令,定义为机器人节点每隔α秒执行一步行动,α建议取值范围为0.3~1。每一步行动后,计算模块从第一存储模块接收到多条轨迹信息和当前状态,一方面计算模块从多条轨迹信息中找到当前状态,将此状态输入到Actor结构策略网络中,得到并输出下一步的行动指令;另一方面,计算模块根据这多条轨迹信息,对全部六个神经网络的参数进行更新,在行动完成后,将保存有Actor结构元策略网络的网络参数和Critic结构元评价网络的网络参数的文件发送给第一通信模块。
本发明中所提到的“策略”,具体表现形式为Actor结构策略网络的参数(即每层网络之间权重矩阵和偏置向量的参数值):第i步的状态si会输入到Actor结构策略网络,经过与Actor结构策略网络每层神经元之间权重矩阵相乘、与每层神经元之间偏置向量相加的逐层传递过程,最终在Actor结构策略网络最后一层计算得到行动指令ai;从宏观上,Actor结构策略网络实现了让机器人节点根据当前观察到的搜救场景状态,自主决定下一步的行动,因此,Actor结构策略网络的网络参数体现了根据当前状态输出应输出可种动作,也即体现了本发明的“策略”。每个机器人节点拥有独立的Actor结构策略网络参数,能自主决定自身行为,并可以在不进行机器人节点间通信的情况下,仅依靠互相观察实现自主协同搜救。除Actor结构策略网络外的其他五个神经网络主要用于指导和辅助Actor结构策略网络进行更新。
运动模块由数模转换器和马达、轮胎等驱动装置构成。运动模块与计算模块相连,从计算模块接收行动指令,通过内置的数模转换器将数字信号转换为模拟信号,并将模拟信号传输给驱动装置,使机器人根据行动指令做出相应动作,导致搜救场景发生改变。
第一通信模块(如无线网卡)与计算模块、云端服务器节点相连,第一通信模块从计算模块接收记录参数的.data格式文件,通过SSH(Secure Shell,一种网络服务安全协议)通信服务将.data格式文件发送给云端服务器节点。
云端服务器节点指网络服务器、工作站等,安装有第二通信模块(如无线网卡)和第二存储模块(如500GB以上大容量硬盘)。第二存储模块与第二通信模块相连,第二存储模块上安装有Ubuntu16.04及以上版本的操作系统,以及与机器人节点相同版本的TensorFlow深度学习框架;第二通信模块与第二存储模块、M个机器人节点的第一通信模块相连,通过SSH同时与M个机器人节点进行通信。
第二步,在Gazebo仿真环境(要求版本9.10.0以上,可从官网http://gazebosim.org下载并按照教程安装)中构建多种仿真搜救场景,为预训练做准备。具体步骤如下:
2.1在任意一台装有Ubuntu16.04及以上版本的电脑上运行Gazebo仿真环境,并在Gazebo仿真环境中,仿照第一步构建的多机器人系统中M个机器人节点的实际结构和尺寸,构建对应的M个机器人节点仿真模型。
2.2在Gazebo仿真环境中,对搜救场景可能出现的各个要素(如目标点、路障、遮蔽物等)以相同比例进行仿真建模,得到各种场景要素仿真模型。
2.3随机选取以上设计的机器人节点仿真模型和场景要素仿真模型的种类、数目和初始位置坐标,形成N个搜救任务场景,N为正整数(N应不少于20,且在计算资源充足的情况下N越大越好),用来模拟在N次灾难后搜救的现场条件。
2.4设计搜救任务完成度评价指标,用于对多机器人协同搜救策略在仿真环境下的效果给出定量评价,通常采用对多要素衡量进行打分并累计求和的方式。如机器人节点仿真模型距离目标点每间隔1米则扣1分;机器人节点仿真模型在运动过程中每碰撞一次其他机器人节点仿真模型则扣3分;机器人节点仿真模型在运动过程中每碰撞一次障碍物则扣5分等;比如在某时间点机器人节点仿真模型距离目标点10米,从开始运动到该时间点的过程中,该机器人共碰撞3次其他机器人节点仿真模型和1次障碍物,则该时间点获得分数为-(10*1+3*3+1*5)=-24分。搜救任务完成度评价指标由用户根据灾难搜救的现场条件制定,原则是对促进完成任务目标的行为进行加分,对干扰任务完成的行为进行扣分。
第三步,让M个机器人节点仿真模型在第二步构建好的N个仿真搜救场景中进行预训练,使机器人节点掌握具有泛化性(即在多种场景下均能适用)的基本协同搜救策略。M台机器人节点仿真模型并行执行以下步骤,机器人节点仿真模型m的执行过程如下,1≤m≤M:
3.1机器人节点仿真模型m的计算模块进行初始化,即计算模块中的六个神经网络对参数进行初始化,参数包括每个神经网络内部每层之间的权重矩阵和偏置向量,按照期望为0、方差为2的正态分布随机生成每个神经网络内部每层之间的权重矩阵和偏置向量中的每个数字。M个机器人节点仿真模型的初始化过程相互独立,机器人节点仿真模型m和机器人节点仿真模型mm选取的参数可以相同也可以不同,1≤mm≤M且mm≠m。
3.2初始化循环变量n=1。
3.3在Gazebo仿真环境中从N个搜救任务场景选取第n个搜救任务场景,命名为仿真搜救场景。
3.4初始化已经探索的轮数k=0,并设定在仿真搜救场景中最大探索轮数K(K为正整数,建议取值范围为300~500)。
3.5在仿真搜救场景中随机设置机器人节点仿真模型m和多个目标点的初始位置。
3.6初始化机器人节点仿真模型m在第k轮探索中已经完成的行动步数i=0,并设定第k轮探索中机器人节点仿真模型m可以执行的行动步数最大值I,I为正整数(I的设置应该参考机器人节点仿真模型m的初始位置Pm、距离其最近的目标点的初始位置PT、机器人节点仿真模型所能允许的最大速度vmax;I的建议取值为2×(||Pm-PT||2/vmax)/α~3×(||Pm-PT||2/vmax)/α,其中||x-y||2表示从位置x到位置y的欧氏距离)
3.7机器人节点仿真模型m的计算模块从第一存储模块获得搜救场景的当前状态si,输入到Actor(演员)结构策略网络μ中,将μ的输出,即行动指令ai发送给运动模块和第一存储模块;运动模块执行动作ai。
3.8按照步骤2.4中设计的评价指标,Gazebo仿真环境自动计算ai当前的搜救任完成度评价得分ri,并发送到机器人节点仿真模型m的第一存储模块。
3.9ai的执行导致搜救场景状态发生变化,机器人节点仿真模型m的探测模块观测到搜救场景状态si+1,将si+1并发送给第一存储模块。
3.10机器人节点仿真模型m的第一存储模块整合信息si、si+1、ai、ri,得到一组轨迹信息(si,ai,ri,si+1),存入到第一存储模块的元经验回放池。
3.11机器人节点仿真模型m的计算模块判定元经验回放池是否已有P条信息,若已有P条信息,则计算模块从元经验回放池随机抽取P条轨迹信息,并执行步骤3.14;否则,令i=i+1,转步骤3.7。P为正整数,P的建议取值为50~100。
3.12机器人节点仿真模型m的计算模块按照抽取的先后顺序对P条轨迹信息进行编号1~P。同时初始化序号值np=0。
3.13机器人节点仿真模型m的计算模块从序号np开始顺序选取前p条轨迹信息,并将np更新为选取轨迹信息中最后一条的序号。p为小于等于P的正整数,p的建议取值范围为5~10。
3.14机器人节点仿真模型m的计算模块采用梯度下降法(一种经典的无约束优化问题解法,原理可参考https://www.jianshu.com/p/c7e642877b0e的数学解释部分)最小化如公式(1)所示的损失函数L,得到新的评价网络参数,实现评价网络优化:
其中,Q′是Critic结构目标网络,Q是Critic结构评价网络,μ′是Actor结构目标网络。μ′(si+1)表示将si+1输入到μ′中得到的行动指令。Q′(si+1,μ′(si+1))表示将状态si+1和行动指令μ′(si+1)输入到Q′得到的得分。α是0~1的常数,作为权重。Q(si,ai)表示将状态si和行动ai输入到Q中得到的得分。(ri+αQ′(si+1,μ′(si+1))-Q(si,ai))是对三项得分进行加权计算。
3.15机器人节点仿真模型m的计算模块根据p条轨迹信息,通过梯度下降法,使得机器人节点仿真模型m表现评价函数Jθ(μ)值增大。在增大评价函数Jθ(μ)值的过程中,Actor结构策略网络参数同时也会得到更新,从而实现对Actor结构策略网络优化:
其中,ρi(si)表示在第i步时,计算模块根据探测模块观测到的搜救场景状态si,采取不同行动的概率分布,这个概率分布由Actor结构策略网络确定。
3.16判断np+p>P是否满足,若满足,执行步骤3.17;否则,转步骤3.13。
3.17机器人节点仿真模型m的计算模块按照公式(3)更新Critic结构元评价网络参数、按照公式(4)更新Actor结构元策略网络参数、按照公式(5)更新Critic结构目标网络参数、按照公式(6)更新Actor结构目标网络参数:
其中,是Critic结构元评价网络在第k轮第i步时的参数、是Critic结构评价网络在第k轮第i步时的参数、是Critic结构目标网络在第k轮第i步时的参数、是Actor结构元策略网络在第k轮第i步时的参数、是Actor结构策略网络在第k轮第i步时的参数、是Actor结构目标网络在第k轮第i步时的参数。τ1、τ2、τ3、τ4是取值在0~1的常数。
3.18令i=i+1。若i等于设定的每轮最大步数I,则执行步骤3.19;否则执行步骤3.7。
3.19令k=k+1。若k等于设定的最大执行轮数K,则执行步骤3.20;否则执行步骤3.5。
3.20令n=n+1,若n等于N,执行步骤3.22;否则,执行步骤3.21。
3.21机器人节点仿真模型m的计算模块保留Actor结构元策略网络、Critic结构元评价网络中的所有参数。同时机器人节点仿真模型m的计算模块清空Actor结构策略网络、Actor结构目标网络、Critic结构评价网络、Critic结构目标网络的所有参数并按照期望为0、方差为2的正态分布随机赋予初始值。清空第一存储模块的元经验回放池,转步骤3.4。
3.22计算模块将Actor结构元策略网络、Critic结构元评价网络的网络参数共同保存在一个.data格式文件(.data格式的文件可由TensorFlow深度学习框架直接生成)。执行第四步。
M个机器人节点仿真模型并行执行完第三步,得到了M个.data格式文件,其中记录的M个Actor结构元策略网络参数,即为M个机器人节点的基本行动策略,这些基本行动策略共同组成了基本多机器人协同搜救策略。.data格式文件中记录的Critic结构元评价网络的网络参数,用于之后对机器人节点行为策略的进一步调整。
第四步,M个机器人节点仿真模型将记录基本多机器人协同搜救策略的.data格式文件上传到云端服务器节点,即将第三步得到M个基本多机器人协同搜救策略保存在云端服务器节点,便于M个机器人节点仿真模型共享基本多机器人协同搜救策略。M台机器人节点仿真模型并行执行以下步骤,以机器人节点仿真模型m为例来说明,具体步骤如下:
4.1机器人节点仿真模型m的计算模块将.data格式的文件发送到第一通信模块。
4.2机器人节点仿真模型m的第一通信模块通过SSH通信服务,将.data格式文件发送到云端服务器节点的第二通信模块。
4.3第二通信模块将收到.data文件保存在第二存储模块。
第五步,将第一步构建的多机器人系统设置在需要开展搜救任务的地点(即将要派遣多机器人进行搜救的灾区等开放场景),对基本多机器人协同搜救策略进行优化,提升在仿真搜救场景中形成的搜救策略在真实搜救场景中的使用效果。M台机器人节点并行执行以下步骤,以机器人节点m为例来说明,具体步骤如下:
5.1机器人节点m的第一通信模块向云端服务器节点的第二通信模块发送基本多机器人协同搜救策略下载请求。
5.2第二通信模块从第二存储模块读取.data格式文件,并发送给第一通信模块。
5.3机器人节点m的第一通信模块将.data格式文件发送给机器人节点m的计算模块。
5.4机器人节点m的计算模块加载.data格式文件中的信息(由TensorFlow深度学习框架直接加载),将.data格式文件中保存的Actor结构元策略网络参数赋值给机器人节点m的Actor结构策略网络,将.data格式文件中保存的Critic结构元评价网络参数赋值给机器人节点m的Critic结构评价网络。
5.5对机器人节点m的Actor结构目标网络和Critic结构目标网络的参数进行初始化,参数包括神经网络每个神经网络内部每层之间的权重矩阵和偏置向量,其中的每一维数字按照期望为0、方差为2的正态分布随机选取。M个机器人节点的初始化过程相互独立,机器人节点m和机器人节点mm选取的参数可以相同也可以不同,1≤mm≤M且mm≠m。
5.6初始化机器人节点m的第一存储模块中的经验回放池为空。
5.7初始化机器人节点m已经完成的行动步数i=0,并设定机器人节点m可以执行的行动步数最大值I′(I′的设置应该参考机器人节点m的初始位置P′m、距离其最近的目标点的初始位置P′T、机器人节点所能允许的最大速度v′max;I′的建议取值为2×(||P′m-P′T||2/vmax)/α~3×(|P′m-P′T||2/v′max)/α))。
5.8机器人节点m的计算模块从第一存储模块获得搜救场景的当前状态si,输入到机器人节点m的Actor结构策略网络μ中,将μ的输出,即行动指令ai发送给运动模块和第一存储模块;运动模块执行动作ai。
5.9在机器人节点m的运动模块执行行为ai后,机器人节点m根据步骤2.4设计的评价指标,得到当前搜救任务完成度评分ri,并将ri发送到机器人节点的第一存储模块。
5.10ai的执行导致搜救场景状态发生变化,机器人节点m的探测模块观测到新的搜救场景环境状态si+1,并将si+1其发送到第一存储模块。
5.11机器人节点m的第一存储模块将接收的si,ai,ri,si+1整合成一组轨迹信息(si,ai,ri,si+1),存入经验回放池。
5.12若机器人节点m的第一存储模块的经验回放池已经有R条信息,则计算模块从经验回放池中随机抽取R条轨迹信息,转步骤5.13;否则,令i=i+1,转步骤5.8。R为正整数,R的建议取值为30~50。
5.13机器人节点m的计算模块读取R条轨迹信息,采用梯度下降法最小化如公式(1)所示的损失函数L,在此过程中Critic结构评价网络参数得到了更新,实现了对评价网络优化。
5.14计算模块根据当前读取的R条轨迹信息,通过梯度下降法,使得如公式(2)所示的机器人节点m表现评价函数Jθ(μ)值增大。在此过程中更新了Actor结构策略网络参数,实现对策略网络的优化。
5.15计算模块根据当前读取的R条轨迹信息,按照公式(5)更新Critic结构目标网络参数、按照公式(6)更新Actor结构目标网络参数。
5.16令i=i+1。若i达到最大步骤数I′,表示搜救策略优化完毕,转第六步;否则,转步骤5.8。
执行完第五步后,当前每个机器人节点的Actor结构策略网络参数,就是优化后的搜救策略,能够实现根据机器人节点观测到的搜救场景状态自主决定下一步采取的动作。M个机器人节点的Actor结构策略网络参数,共同构成了多机器人自主协同搜救策略。
第六步,将M个机器人节点放置在第五步的搜救场景中。
第七步,多机器人系统根据优化后的搜救策略,在开放场景下协同完成搜救任务。M台机器人节点并行执行以下步骤,以机器人节点m为例来说明,具体步骤如下:
7.1根据搜救任务要求,设置多机器人系统需要搜救多个目标点,将所有目标点的坐标存放在列表L中,并发送到机器人节点的第一通信模块中,第一通信模块将L转发到计算模块中。机器人节点m从L中自主选择前往的目标点。
7.2初始化i=0。
7.3机器人节点m的探测模块探测搜救场景状态si(此时是真实搜救场景状态,包括周围机器人节点、障碍物位置信息等),发送到第一存储模块,第一存储模块将si发送到计算模块。
7.4机器人节点m的计算模块的Actor结构策略网络将二元组(si,L中的目标点位置)作为策略网络的输入,得到策略网络的输出ai。
7.5机器人节点m的计算模块将ai发送到运动模块。
7.6机器人节点m的运动模块执行动作ai。
7.7若机器人节点m达到目标点附近d米以内,d为正整数(d的建议取值范围在0.5~1米),则从列表L中删除d米内的目标点,执行步骤7.8;否则,令i=i+1,执行步骤7.3。
7.8机器人节点m判断L中是否还存有目标点信息,若有,执行步骤7.2;否则,执行第八步。
第八步,结束。
本发明的有益技术效果是:
(1)采用本发明进行多机器人在开放环境中进行协同搜救时,能够基于仿真搜救环境中形成的预训练策略,快速形成对真实搜救场景的协同搜救策略(在第五步中体现,表现为M个机器人的Actor结构的策略网络),有效应对面对新场景时要花费大量时间制定策略的问题。
(2)实现了多机器人根据当前面对的搜救任务场景,不依赖于人为根据不同搜救场景专门设计行进路线和避障策略,达到了自主形成协同完成任务的策略(在第六步中体现)的效果,从而非专业救援人员也能按照步骤轻松上手。
(3)构建了一种具有泛化性的搜救策略,能够适用于多种不同的搜救场景,而非只能面向某个特定的搜救场景,能够通过预先在多机器人上部署一种基础搜救策略(在第三步体现),实现面对灾后可能出现的多种灾区场景下的搜救任务。
(4)在基于仿真环境的测试中,通过与背景技术中提到的MADDPG方法进行对比,本发明在改变环境条件和机器人节点数目两种设置下,均取得了在更短的时间内达到较低损失函数度量值的效果。实验设置和结果详见图4和图5。
附图说明
图1是本发明第一步构建的多机器人自主协同搜救系统逻辑结构图。
图2是本发明总体流程图。
图3是本发明软件模块部署示意图。
图4是在仿真环境对本发明效果进行测试的实验示意图:图4(a)表示在环境条件改变的开放场景下的仿真测试,左侧是多机器人系统在第三步中面临的搜救场景(即可知的搜救场景),右侧是多机器人系统在第五步和第六步中面临的搜救场景(即本发明中所指的开放场景)的仿真示意图,均设置为三个机器人节点(图中的空心圆点)在有摩擦力地面上追逐三个目标点(图中的实心圆点)。图4(b)表示在机器人节点数目变化(从单个机器人节点到三个机器人节点)的开放场景下的仿真测试:左侧是多机器人系统在第三步中面临的搜救场景,设置为单个机器人(图中的空心圆点)节点追逐单个目标点;右侧是模拟多机器人系统在第五步和第六步中面临的搜救场景(即本发明中所指的开放场景),设置为三个机器人节点(图中的空心圆点)追逐三个目标点图中的实心圆点),均无摩擦力。
图5(a)是重复执行图4(a)中的实验设置300次以上后得到的损失函数度量值平均结果,图5(b)是重复执行图4(b)中的实验设置300次以上后得到的损失函数度量值平均结果。
具体实施方式
图2是本发明总体流程图。如图2所示,本发明包括以下步骤:
第一步,构建如图1所示的多机器人系统,多机器人系统由M个机器人节点和一个云端服务器节点构成。云端服务器节点与M个机器人节点均相连。
机器人节点指能够运动、观测、通信、具有软件运行能力的机器人。每个机器人节点上均部署有探测模块、第一存储模块、计算模块、运动模块和第一通信模块。探测模块是能采集搜救场景环境数据的传感器,如扫描雷达、红外摄像头、深度摄像头等。探测模块与第一存储模块相连,从开始运行后每隔α秒周期性地对传感器可见范围内的搜救场景和除自己以外的另M-1台机器人节点进行拍摄或扫描,得到当前搜救场景状态,并将当前搜救场景状态发送给第一存储模块。α取值范围为0.3~1。
如图3所示,第一存储模块是可用空间1GB以上的存贮器,与探测模块和计算模块相连,第一存储模块中有一个元经验回放池,以数组的形式存放所属机器人节点(令为机器人节点m)的D条轨迹信息(D为正整数,D的取值范围为5000~10000)。第一存储模块从探测模块接收搜救场景状态,将搜救场景状态转化成轨迹信息,轨迹信息是一个四元组,第j条轨迹信息的格式可表示为(sj,aj,rj,sj+1),其中,sj表示探测模块第j次观察到的搜救场景状态,sj主要涵盖第j次观察到的除机器人节点m以外的另M-1台机器人节点、搜救场景中所有目标点、搜救场景中所有障碍物的位置坐标和另M-1台机器人节点的速度。aj表示探测模块在第j次观测到第j+1次观测两个时间点之间,机器人节点m所采取的行动,表现为机器人节点m往某个方向进行加速或施加作用力的动作。机器人节点m在执行行动时自动记录aj。rj是探测模块在第j+1次观察时,对于第j次观察到的搜救场景状态的任务完成度进行评价的得分。sj+1表示探测模块第j+1次观察到的搜救场景状态,sj+1主要涵盖第j+1次观察到的除机器人节点m以外的另M-1台机器人节点、搜救场景中所有目标点、搜救场景中所有障碍物的位置坐标和另M-1台机器人节点的速度。
计算模块负责制定和优化搜救策略,并根据搜救策略向运动模块发送行动指令。计算模块与第一存储模块、运动模块、第一通信模块相连,计算模块中安装有Ubuntu 16.04及以上版本的操作系统(用于X86架构处理器)或Ubuntu Mate操作系统16.04及以上版本(用于ARM架构处理器),并安装有与操作系统相匹配的ROS和TensorFlow深度学习框架(要求9.10.0版本及以上)。计算模块使用TensorFlow深度学习框架创建有6个全连接神经网络,分属用于形成行动指令的Actor(演员)结构和用于优化搜救策略的Critic(评论家)结构,Actor结构包括策略网络、目标网络、元策略网络;Critic结构包括评价网络、目标网络、元评价网络。这6个神经网络结构相同,每个神经网络有a层,每层均有b个神经元,其中a的取值范围为3~5,b的取值范围为64~128。Actor结构策略网络从第一存储模块中获取多条轨迹信息和当前状态,将自身的网络参数发送给Actor结构目标网络和Actor结构元策略网络,并发送行动指令给运动模块;Actor结构策略网络主要功能是根据当前状态制定下一步的行动指令。Actor结构目标网络从Actor结构的策略网络获取策略网络的参数,辅助Actor结构策略网络进行更新,并将损失函数度量值发送给Critic结构目标网络。Critic结构评价网络从第一存储模块接收多条轨迹信息,从Critic结构目标网络接收损失函数度量值,指导Actor结构策略网络制定更佳的行动指令,并将自身网络参数发送给Actor结构策略网络、Critic结构目标网络和Critic结构元评价网络。Critic结构目标网络从Critic结构评价网络接收Critic结构评价网络的网络参数,从Actor结构目标网络接收损失函数度量值,辅助Critic结构评价网络进行更新,并将损失函数度量值发送给Critic结构评价网络。Actor结构元策略网络从Actor结构策略网络接收Actor结构策略网络的网络参数,将不同搜救场景中得到的Actor结构策略网络参数进行提炼和保存;Critic结构元评价网络从Critic结构评价网络接收Critic结构评价网络参数,将不同搜救场景中得到的Critic结构评价网络参数进行提炼和保存;计算模块将Actor结构元策略网络和Critic结构元评价网络的两个网络参数保存成一个.data格式文件,发送到第一通信模块。机器人节点每隔α秒进行一次观测并执行一个动作指令,定义为机器人节点每隔α秒执行一步行动。每一步行动后,计算模块从第一存储模块接收到多条轨迹信息和当前状态,一方面计算模块从多条轨迹信息中找到当前状态,将此状态输入到Actor结构策略网络中,得到并输出下一步的行动指令;另一方面,计算模块根据这多条轨迹信息,对全部六个神经网络的参数进行更新,在行动完成后,将保存有Actor结构元策略网络的网络参数和Critic结构元评价网络的网络参数的文件发送给第一通信模块。
运动模块由数模转换器和马达、轮胎等驱动装置构成。运动模块与计算模块相连,从计算模块接收行动指令,通过内置的数模转换器将数字信号转换为模拟信号,并将模拟信号传输给驱动装置,使机器人根据行动指令做出相应动作,导致搜救场景发生改变。
第一通信模块(如无线网卡)与计算模块、云端服务器节点相连,第一通信模块从计算模块接收记录参数的.data格式文件,通过SSH通信服务将.data格式文件发送给云端服务器节点。
云端服务器节点指网络服务器、工作站等,安装有第二通信模块(如无线网卡)和第二存储模块(如500GB以上大容量硬盘)。第二存储模块与第二通信模块相连,第二存储模块上安装有Ubuntu16.04以上版本的操作系统,以及与机器人节点相同版本的TensorFlow深度学习框架;第二通信模块与第二存储模块、M个机器人节点的第一通信模块相连,通过SSH同时与M个机器人节点进行通信。
第二步,在Gazebo仿真环境(要求版本9.10.0以上,从官网http://gazebosim.org下载并按照教程安装)中构建多种仿真搜救场景,为预训练做准备。具体步骤如下:
2.1在任意一台装有Ubuntu16.04及以上版本的电脑上运行Gazebo仿真环境,并在Gazebo仿真环境中,仿照第一步构建的多机器人系统中M个机器人节点的实际结构和尺寸,构建对应的M个机器人节点仿真模型。
2.2在Gazebo仿真环境中,对搜救场景可能出现的各个要素(如目标点、路障、遮蔽物等)以相同比例进行仿真建模,得到各种场景要素仿真模型。
2.3随机选取以上设计的机器人节点仿真模型和场景要素仿真模型的种类、数目和初始位置坐标,形成N个搜救任务场景,N为正整数(N应不少于20,且在计算资源充足的情况下N越大越好),用来模拟在N次灾难后搜救的现场条件。
2.4设计搜救任务完成度评价指标,用于对多机器人协同搜救策略在仿真环境下的效果给出定量评价,通常采用对多要素衡量进行打分并累计求和的方式。搜救任务完成度评价指标由用户根据灾难搜救的现场条件制定,原则是对促进完成任务目标的行为进行加分,对干扰任务完成的行为进行扣分。
第三步,让M个机器人节点仿真模型在第二步构建好的N个仿真搜救场景中进行预训练,使机器人节点掌握具有泛化性的基本协同搜救策略。M台机器人节点仿真模型并行执行以下步骤,机器人节点仿真模型m的执行过程如下,1≤m≤M:
3.1机器人节点仿真模型m的计算模块进行初始化,即计算模块中的六个神经网络对参数进行初始化,参数包括每个神经网络内部每层之间的权重矩阵和偏置向量,按照期望为0、方差为2的正态分布随机生成每个神经网络内部每层之间的权重矩阵和偏置向量中的每个数字。M个机器人节点仿真模型的初始化过程相互独立,机器人节点仿真模型m和机器人节点仿真模型mm选取的参数可以相同也可以不同,1≤mm≤M且mm≠m。
3.2初始化循环变量n=1。
3.3在Gazebo仿真环境中从N个搜救任务场景选取第n个搜救任务场景,命名为仿真搜救场景。
3.4初始化已经探索的轮数k=0,并设定在仿真搜救场景中最大探索轮数K(K为正整数,取值范围为300~500)。
3.5在仿真搜救场景中随机设置机器人节点仿真模型m和多个目标点的初始位置。
3.6初始化机器人节点仿真模型m在第k轮探索中已经完成的行动步数i=0,并设定第k轮探索中机器人节点仿真模型m可以执行的行动步数最大值I,I为正整数(I的取值为2×(||Pm-PT||2/vmax)/α~3×(||Pm-PT||2/vmax)/α,其中||x-y||2表示从位置x到位置y的欧氏距离)。
3.7机器人节点仿真模型m的计算模块从第一存储模块获得搜救场景的当前状态si,输入到Actor(演员)结构策略网络μ中,将μ的输出,即行动指令ai发送给运动模块和第一存储模块;运动模块执行动作ai。
3.8按照步骤2.4中设计的评价指标,Gazebo仿真环境自动计算ai当前的搜救任完成度评价得分ri,并发送到机器人节点仿真模型m的第一存储模块。
3.9ai的执行导致搜救场景状态发生变化,机器人节点仿真模型m的探测模块观测到搜救场景状态si+1,将si+1并发送给第一存储模块。
3.10机器人节点仿真模型m的第一存储模块整合信息si、si+1、ai、ri,得到一组轨迹信息(si,ai,ri,si+1),存入到第一存储模块的元经验回放池。
3.11机器人节点仿真模型m的计算模块判定元经验回放池是否已有P条信息,若已有P条信息,则计算模块从元经验回放池随机抽取P条轨迹信息,并执行步骤3.14;否则,令i=i+1,转步骤3.7。P为正整数,P的取值为50~100。
3.12机器人节点仿真模型m的计算模块按照抽取的先后顺序对P条轨迹信息进行编号1~P。同时初始化序号值np=0。
3.13机器人节点仿真模型m的计算模块从序号np开始顺序选取前p条轨迹信息,并将np更新为选取轨迹信息中最后一条的序号。p为小于等于P的正整数,p的取值范围为5~10。
3.14机器人节点仿真模型m的计算模块采用梯度下降法最小化如公式(1)所示的损失函数L,得到新的评价网络参数,实现评价网络优化:
其中,Q′是Critic结构目标网络,Q是Critic结构评价网络,μ′是Actor结构目标网络。μ′(si+1)表示将si+1输入到μ′中得到的行动指令。Q′(si+1,μ′(si+1))表示将状态si+1和行动指令μ′(si+1)输入到Q′得到的得分。α是0~1的常数,作为权重。Q(si,ai)表示将状态si和行动ai输入到Q中得到的得分。(ri+αQ′(si+1,μ′(si+1))-Q(si,ai))是对三项得分进行加权计算。
3.15机器人节点仿真模型m的计算模块根据p条轨迹信息,通过梯度下降法,使得机器人节点仿真模型m表现评价函数Jθ(μ)值增大。在增大评价函数Jθ(μ)值的过程中,Actor结构策略网络参数同时也会得到更新,从而实现对Actor结构策略网络优化:
其中,ρi(si)表示在第i步时,计算模块根据探测模块观测到的搜救场景状态si,采取不同行动的概率分布,这个概率分布由Actor结构策略网络确定。
3.16判断np+p>P是否满足,若满足,执行步骤3.17;否则,转步骤3.13。
3.17机器人节点仿真模型m的计算模块按照公式(3)更新Critic结构元评价网络参数、按照公式(4)更新Actor结构元策略网络参数、按照公式(5)更新Critic结构目标网络参数、按照公式(6)更新Actor结构目标网络参数:
其中,是Critic结构元评价网络在第k轮第i步时的参数、是Critic结构评价网络在第k轮第i步时的参数、是Critic结构目标网络在第k轮第i步时的参数、是Actor结构元策略网络在第k轮第i步时的参数、是Actor结构策略网络在第k轮第i步时的参数、是Actor结构目标网络在第k轮第i步时的参数。τ1、τ2、τ3、τ4是取值在0~1的常数。
3.18令i=i+1。若i等于设定的每轮最大步数I,则执行步骤3.19;否则执行步骤3.7。
3.19令k=k+1。若k等于设定的最大执行轮数K,则执行步骤3.20;否则执行步骤3.5。
3.20令n=n+1,若n等于N,执行步骤3.22;否则,执行步骤3.21。
3.21机器人节点仿真模型m的计算模块保留Actor结构元策略网络、Critic结构元评价网络中的所有参数。同时机器人节点仿真模型m的计算模块清空Actor结构策略网络、Actor结构目标网络、Critic结构评价网络、Critic结构目标网络的所有参数并按照期望为0、方差为2的正态分布随机赋予初始值。清空第一存储模块的元经验回放池,转步骤3.4。
3.22计算模块将Actor结构元策略网络、Critic结构元评价网络的网络参数共同保存在一个.data格式文件。执行第四步。
M个机器人节点仿真模型并行执行完第三步,得到了M个.data格式文件,其中记录的M个Actor结构元策略网络参数,即为M个机器人节点的基本行动策略,这些基本行动策略共同组成了基本多机器人协同搜救策略。.data格式文件中记录的Critic结构元评价网络的网络参数,用于之后对机器人节点行为策略的进一步调整。
第四步,M个机器人节点仿真模型将记录基本多机器人协同搜救策略的.data格式文件上传到云端服务器节点,即将第三步得到M个基本多机器人协同搜救策略保存在云端服务器节点,便于M个机器人节点仿真模型共享基本多机器人协同搜救策略。M台机器人节点仿真模型并行执行以下步骤,以机器人节点仿真模型m为例来说明,具体步骤如下:
4.1机器人节点仿真模型m的计算模块将.data格式的文件发送到第一通信模块。
4.2机器人节点仿真模型m的第一通信模块通过SSH通信服务,将.data格式文件发送到云端服务器节点的第二通信模块。
4.3第二通信模块将收到.data文件保存在第二存储模块。
第五步,将第一步构建的多机器人系统设置在需要开展搜救任务的地点(即将要派遣多机器人进行搜救的灾区等开放场景),对基本多机器人协同搜救策略进行优化,提升在仿真搜救场景中形成的搜救策略在真实搜救场景中的使用效果。M台机器人节点并行执行以下步骤,以机器人节点m为例来说明,具体步骤如下:
5.1机器人节点m的第一通信模块向云端服务器节点的第二通信模块发送基本多机器人协同搜救策略下载请求。
5.2第二通信模块从第二存储模块读取.data格式文件,并发送给第一通信模块。
5.3机器人节点m的第一通信模块将.data格式文件发送给机器人节点m的计算模块。
5.4机器人节点m的计算模块加载.data格式文件中的信息(由TensorFlow深度学习框架直接加载),将.data格式文件中保存的Actor结构元策略网络参数赋值给机器人节点m的Actor结构策略网络,将.data格式文件中保存的Critic结构元评价网络参数赋值给机器人节点m的Critic结构评价网络。
5.5对机器人节点m的Actor结构目标网络和Critic结构目标网络的参数进行初始化,参数包括神经网络每个神经网络内部每层之间的权重矩阵和偏置向量,其中的每一维数字按照期望为0、方差为2的正态分布随机选取。M个机器人节点的初始化过程相互独立,机器人节点m和机器人节点mm选取的参数可以相同也可以不同,1≤mm≤M且mm≠m。
5.6初始化机器人节点m的第一存储模块中的经验回放池为空。
5.7初始化机器人节点m已经完成的行动步数i=0,并设定机器人节点m可以执行的行动步数最大值I′(I′的设置应该参考机器人节点m的初始位置P′m、距离其最近的目标点的初始位置P′T、机器人节点所能允许的最大速度v′max;I′的建议取值为2×(||P′m-P′T||2/vmax)/α~3×(|P′m-P′T||2/v′max)/α))。
5.8机器人节点m的计算模块从第一存储模块获得搜救场景的当前状态si,输入到机器人节点m的Actor结构策略网络μ中,将μ的输出,即行动指令ai发送给运动模块和第一存储模块;运动模块执行动作ai。
5.9在机器人节点m的运动模块执行行为ai后,机器人节点m根据步骤2.4设计的评价指标,得到当前搜救任务完成度评分ri,并将ri发送到机器人节点的第一存储模块。
5.10ai的执行导致搜救场景状态发生变化,机器人节点m的探测模块观测到新的搜救场景环境状态si+1,并将si+1其发送到第一存储模块。
5.11机器人节点m的第一存储模块将接收的si,ai,ri,si+1整合成一组轨迹信息(si,ai,ri,si+1),存入经验回放池。
5.12若机器人节点m的第一存储模块的经验回放池已经有R条信息,则计算模块从经验回放池中随机抽取R条轨迹信息,转步骤5.13;否则,令i=i+1,转步骤5.8。R为正整数,R的建议取值为30~50。
5.13机器人节点m的计算模块读取R条轨迹信息,采用梯度下降法最小化如公式(1)所示的损失函数L,在此过程中Critic结构评价网络参数得到了更新,实现了对评价网络优化。
5.14计算模块根据当前读取的R条轨迹信息,通过梯度下降法,使得如公式(2)所示的机器人节点m表现评价函数Jθ(μ)值增大。在此过程中更新了Actor结构策略网络参数,实现对策略网络的优化。
5.15计算模块根据当前读取的R条轨迹信息,按照公式(5)更新Critic结构目标网络参数、按照公式(6)更新Actor结构目标网络参数。
5.16令i=i+1。若i达到最大步骤数I′,表示搜救策略优化完毕,转第六步;否则,转步骤5.8。
执行完第五步后,当前每个机器人节点的Actor结构策略网络参数,就是优化后的搜救策略,能够实现根据机器人节点观测到的搜救场景状态自主决定下一步采取的动作。M个机器人节点的Actor结构策略网络参数,共同构成了多机器人自主协同搜救策略。
第六步,将M个机器人节点放置在第五步的搜救场景中。
第七步,多机器人系统根据优化后的搜救策略,在开放场景下协同完成搜救任务。M台机器人节点并行执行以下步骤,以机器人节点m为例来说明,具体步骤如下:
7.1根据搜救任务要求,设置多机器人系统需要搜救多个目标点,将所有目标点的坐标存放在列表L中,并发送到机器人节点的第一通信模块中,第一通信模块将L转发到计算模块中。机器人节点m从L中自主选择前往的目标点。
7.2初始化i=0。
7.3机器人节点m的探测模块探测搜救场景状态si(此时是真实搜救场景状态,包括周围机器人节点、障碍物位置信息等),发送到第一存储模块,第一存储模块将si发送到计算模块。
7.4机器人节点m的计算模块的Actor结构策略网络将二元组(si,L中的目标点位置)作为策略网络的输入,得到策略网络的输出ai。
7.5机器人节点m的计算模块将ai发送到运动模块。
7.6机器人节点m的运动模块执行动作ai。
7.7若机器人节点m达到目标点附近d米以内,d为正整数(d的建议取值范围在0.5~1米),则从列表L中删除d米内的目标点,执行步骤7.8;否则,令i=i+1,执行步骤7.3。
7.8机器人节点m判断L中是否还存有目标点信息,若有,执行步骤7.2;否则,执行第八步。
第八步,结束。
本发明的效果可以通过以下仿真实验进一步说明:
本发明效果的仿真测试实验基于多机器人粒子环境(Multi-Agent ParticleEnvironment,网址https://github.com/openai/multiagent-particle-envs)中展开,任务目标是多个机器人节点仅通过探测模块的观察信息,实现自主分工追逐持续移动的多个目标点。实验所用电脑安装Ubuntu18.0464位操作系统;搭载英特尔酷睿(Intel Core)i7-4790八核中央处理器,处理频率为3.6GHz;搭载AMD Cape verde图形处理器;内存容量为16GB。
图4(a)是本发明效果仿真测试实验一的示意图。图4(a)左侧是多机器人系统在地震等灾害发生之前,所假设的未来可能出现的搜救场景。此场景中有随机设置的摩擦系数,三个机器人节点(图4(a)中的空心圆点)持续追逐三个可移动的目标点(图4(a)中的实心圆点);运动过程中机器人节点越接近目标点、碰撞次数越少则损失函数度量值越小,搜救策略效果越好。图4(a)右侧是多机器人系统不可提前预知的灾后搜救场景(即本发明中所指的开放场景),导致无法提前制定策略。此场景中有与左侧场景中不相同的摩擦系数,三个机器人节点(图4(a)中的空心圆点)仍需持续追逐三个可移动的目标点(图4(a)中的实心圆点),且损失函数度量值的计算方式不变。
图5(a)是本发明效果仿真测试实验一中,损失函数度量值与执行轮数的关系图。图中横坐标是场景中探索进行的轮数,每个数值代表10轮;纵坐标是损失函数度量值,表示当前的搜救策略效果距离完美搜救策略效果之间的差距,数值越小则说明当前搜救策略效果越好。图中共有三组数据,分别代表在开放场景中直接使用“背景技术”中的MADDPG方法形成策略、在可知的搜救场景和开放场景中使用MADDPG方法持续形成策略(记作Pre-MADDPG)、以及本发明提出的面向开放场景的多机器人自主协同搜救方法。每组数据由机器人节点分别执行以上方法300次,计算每个执行轮数时损失函数度量值的平均值,形成图中折线。
从图5(a)中可以看出,随着执行轮数的增加,不同方法的损失函数度量值出现波动,但都整体呈现出下降的趋势。在多机器人系统执行150轮之前,本发明方法相比较于背景技术MADDPG和Pre-MADDPG有着更小的损失函数度量值,体现出本发明方法在面对开放环境时能够快速形成表现良好的策略。在多机器人系统执行150轮之后,各方法的损失函数度量值差异减小,表示各方法形成的搜救策略效果趋近一致。
图4(b)是本发明效果仿真测试实验二的示意图。图4(b)左侧是在地震等灾害发生之前,所假设的未来可能出现的搜救场景,图4(b)左侧列举出了三种独立的此类场景。此场景中无摩擦,一个机器人节点(图4(b)左图中的空心圆点)持续追逐一个可移动的目标点(图4(b)左图中的实心圆点);运动过程中机器人节点越接近目标点,搜救策略效果越好。图4(b)右侧是不可提前预知的灾后搜救场景(即本发明中所指的开放场景),导致无法提前制定策略。此场景中也无摩擦,三个机器人节点(图4(b)右图中的空心圆点)仍需持续追逐三个可移动的目标点(图4(b)右图中的实心圆点),且损失函数度量值的计算方式不变。
图5(b)是本发明效果仿真测试实验二,损失函数度量值与执行轮数的关系图。图中横坐标是场景中探索进行的轮数,每个数值代表10轮;纵坐标是损失函数度量值,表示当前的搜救策略效果距离完美搜救策略效果之间的差距,数值越小则说明当前搜救策略效果越好。图中共有三组数据,分别代表在开放场景中直接使用“背景技术”中的MADDPG方法形成策略、在可知的搜救场景和开放场景中使用MADDPG方法持续形成策略(记作Pre-MADDPG)、以及本发明提出的面向开放场景的多机器人自主协同搜救方法。每组数据由机器人节点分别执行以上方法300次,计算每个执行轮数时损失函数度量值的平均值,形成图中折线。
从图5(b)中可以看出,随着执行轮数的增加,不同方法的损失函数度量值出现波动,但都整体呈现出下降的趋势。在多机器人系统执行80轮之前,本发明方法与背景技术Pre-MADDPG表现效果相近,均好于背景技术MADDPG;在80轮至250轮,本发明方法相比较于背景技术MADDPG和Pre-MADDPG有着更小的损失函数度量值,体现出本发明方法在面对开放环境时能够快速形成表现良好的策略。在多机器人系统执行250轮之后,各方法的损失函数度量值差异减小,表示各方法形成的搜救策略效果趋近一致。
表1对图4(b)中仿真测试实验二进行定量化的分析,本发明方法和背景技术MADDPG、Pre-MADDPG分别在每次实验中都进行400轮的探索,重复实验300次以上,计算其在第100轮、第200轮、第300轮、第400轮四个时间点能达到650、680、700以下损失函数度量值达到阈值的比例,结果分别放在表1.1、1.2、1.3中。通过分析表1,发现在650、680、700三个损失函数度量值阈值下,本发明方法达到阈值的比例均高于其他两种背景技术,表明本发明方法形成的搜救策略能取得更好的效果。
表1.1各组在100、200、300、400轮时损失函数度量值小于650的比例
表1.2各组在100、200、300、400轮时损失函数度量值小于680的比例
表1.3各组在100、200、300、400轮时损失函数度量值小于700的比例
表1
以上对本发明所提供的一种面向开放场景的多机器人自主协同搜救方法进行了详细介绍。本文对本发明的原理及实施方式进行了阐述,以上说明用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通研究人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (9)
1.一种面向开放场景的多机器人自主协同搜救方法,其特征在于包括以下步骤:
第一步,构建多机器人系统,多机器人系统由M个机器人节点和一个云端服务器节点构成,云端服务器节点与M个机器人节点均相连;
机器人节点指能够运动、观测、通信、具有软件运行能力的机器人;每个机器人节点上均部署有探测模块、第一存储模块、计算模块、运动模块和第一通信模块;探测模块是能采集搜救场景环境数据的传感器,探测模块与第一存储模块相连,从开始运行后每隔α秒周期性地对传感器可见范围内的搜救场景和除自己以外的另M-1台机器人节点进行拍摄或扫描,得到当前搜救场景状态,并将当前搜救场景状态发送给第一存储模块;
第一存储模块是存贮器,与探测模块和计算模块相连,第一存储模块中有一个元经验回放池,以数组的形式存放所属机器人节点m的D条轨迹信息,D为正整数;第一存储模块从探测模块接收搜救场景状态,将搜救场景状态转化成轨迹信息,轨迹信息是一个四元组,第j条轨迹信息的格式为(sj,aj,rj,sj+1),其中,sj表示探测模块第j次观察到的搜救场景状态,sj涵盖第j次观察到的除机器人节点m以外的另M-1台机器人节点、搜救场景中所有目标点、搜救场景中所有障碍物的位置坐标和另M-1台机器人节点的速度;aj表示探测模块在第j次观测到第j+1次观测两个时间点之间,机器人节点m所采取的行动,表现为机器人节点m往某个方向进行加速或施加作用力的动作,机器人节点m在执行行动时自动记录aj;rj是探测模块在第j+1次观察时,对于第j次观察到的搜救场景状态的任务完成度进行评价的得分;sj+1表示探测模块第j+1次观察到的搜救场景状态,sj+1涵盖第j+1次观察到的除机器人节点m以外的另M-1台机器人节点、搜救场景中所有目标点、搜救场景中所有障碍物的位置坐标和另M-1台机器人节点的速度;
计算模块负责制定和优化搜救策略,并根据搜救策略向运动模块发送行动指令;计算模块与第一存储模块、运动模块、第一通信模块相连,计算模块中安装有操作系统,并安装有与操作系统相匹配的ROS即“机器人操作系统”和TensorFlow深度学习框架;计算模块使用TensorFlow深度学习框架创建6个全连接神经网络,分属用于形成行动指令的Actor结构和用于优化搜救策略的Critic结构,Actor结构包括策略网络、目标网络、元策略网络;Critic结构包括评价网络、目标网络、元评价网络,这6个网络是结构相同的神经网络;Actor结构策略网络从第一存储模块中获取多条轨迹信息和当前状态,将自身的网络参数发送给Actor结构目标网络和Actor结构元策略网络,并发送行动指令给运动模块,Actor结构策略网络主要功能是根据当前状态制定下一步的行动指令;Actor结构目标网络从Actor结构策略网络获取Actor结构策略网络的参数,辅助Actor结构策略网络进行更新,并将损失函数度量值发送给Critic结构目标网络;Critic结构评价网络从第一存储模块接收多条轨迹信息,从Critic结构目标网络接收损失函数度量值,指导Actor结构策略网络制定更佳的行动指令,并将自身网络参数发送给Actor结构策略网络、Critic结构目标网络和Critic结构元评价网络;Critic结构目标网络从Critic结构评价网络接收Critic结构评价网络的网络参数,从Actor结构目标网络接收损失函数度量值,辅助Critic结构评价网络进行更新,并将损失函数度量值发送给Critic结构评价网络;Actor结构元策略网络从Actor结构策略网络接收Actor结构策略网络的网络参数,将不同搜救场景中得到的Actor结构策略网络参数进行提炼和保存;Critic结构元评价网络从Critic结构评价网络接收Critic结构评价网络参数,将不同搜救场景中得到的Critic结构评价网络参数进行提炼和保存;计算模块将Actor结构元策略网络和Critic结构元评价网络的两个网络参数保存成一个.data格式文件,发送到第一通信模块;机器人节点每隔α秒进行一次观测并执行一个动作指令,定义为机器人节点每隔α秒执行一步行动;每一步行动后,计算模块从第一存储模块接收到多条轨迹信息和当前状态,一方面计算模块从多条轨迹信息中找到当前状态,将此状态输入到Actor结构策略网络中,得到并输出下一步的行动指令;另一方面,计算模块根据这多条轨迹信息,对六个神经网络的参数进行更新,在行动完成后,将保存有Actor结构元策略网络的网络参数和Critic结构元评价网络的网络参数的文件发送给第一通信模块;
运动模块由数模转换器和驱动装置构成;运动模块与计算模块相连,从计算模块接收行动指令,通过内置的数模转换器将数字信号转换为模拟信号,并将模拟信号传输给驱动装置,使机器人根据行动指令做出相应动作,导致搜救场景发生改变;
第一通信模块与计算模块、云端服务器节点相连,第一通信模块从计算模块接收记录参数的.data格式文件,将.data格式文件发送给云端服务器节点中的第二通信模块;
云端服务器节点指网络服务器、工作站,安装有第二通信模块和第二存储模块;第二存储模块与第二通信模块相连,第二存储模块上安装有Ubuntul6.04/18.04操作系统,以及与机器人节点相同版本的TensorFlow深度学习框架;第二通信模块与第二存储模块、M个机器人节点的第一通信模块相连,同时与M个机器人节点进行通信;
第二步,在Gazebo仿真环境中构建多种仿真搜救场景:
2.1在任意一台电脑上运行Gazebo仿真环境,并在Gazebo仿真环境中,仿照第一步构建的多机器人系统中M个机器人节点的实际结构和尺寸,构建对应的M个机器人节点仿真模型;
2.2在Gazebo仿真环境中,对搜救场景可能出现的各个要素以相同比例进行仿真建模,得到各种场景要素仿真模型;
2.3随机选取以上设计的机器人节点仿真模型和场景要素仿真模型的种类、数目和初始位置坐标,形成N个搜救任务场景,N为正整数,用来模拟在N次灾难后搜救的现场条件;
2.4设计搜救任务完成度评价指标,搜救任务完成度评价指标的设定原则是对促进完成任务目标的行为进行加分,对干扰任务完成的行为进行扣分;
第三步,让M个机器人节点仿真模型在N个仿真搜救场景中进行预训练,使机器人节点掌握具有泛化性的基本协同搜救策略;M台机器人节点仿真模型并行执行以下步骤,机器人节点仿真模型m的执行过程如下,1≤m≤M:
3.1机器人节点仿真模型m的计算模块进行初始化,即计算模块中的六个神经网络对参数进行初始化,参数包括每个神经网络内部每层之间的权重矩阵和偏置向量,按照期望为0、方差为2的正态分布随机生成每个神经网络内部每层之间的权重矩阵和偏置向量中的每个数字;M个机器人节点仿真模型的初始化过程相互独立,机器人节点仿真模型m和机器人节点仿真模型mm选取的参数可以相同也可以不同,1≤mm≤M且mm≠m;
3.2初始化循环变量n=1;
3.3在Gazebo仿真环境中从N个搜救任务场景选取第n个搜救任务场景,命名为仿真搜救场景;
3.4初始化已经探索的轮数k=0,并设定在仿真搜救场景中最大探索轮数KK为正整数;
3.5在仿真搜救场景中随机设置机器人节点仿真模型m和多个目标点的初始位置;
3.6初始化机器人节点仿真模型m在第k轮探索中已经完成的行动步数i=0,并设定第k轮探索中机器人节点仿真模型m可以执行的行动步数最大值I,I为正整数;
3.7机器人节点仿真模型m的计算模块从第一存储模块获得搜救场景的当前状态si,输入到Actor结构策略网络μ中,将μ的输出,即行动指令ai发送给运动模块和第一存储模块;运动模块执行动作ai;
3.8 Gazebo仿真环境按照搜救任务完成度评价指标,自动计算ai当前的搜救任完成度评价得分ri,并发送到机器人节点仿真模型m的第一存储模块;
3.9 ai的执行导致搜救场景状态发生变化,机器人节点仿真模型m的探测模块观测到搜救场景状态si+1,将si+1发送给第一存储模块;
3.10机器人节点仿真模型m的第一存储模块整合信息si、si+1、ai、ri,得到一组轨迹信息(si,ai,ri,si+1),存入到第一存储模块的元经验回放池;
3.11机器人节点仿真模型m的计算模块判定元经验回放池是否已有P条信息,若已有P条信息,则计算模块从元经验回放池随机抽取P条轨迹信息,并执行步骤3.14,P为正整数;否则,令i=i+1,转步骤3.7;
3.12机器人节点仿真模型m的计算模块按照抽取的先后顺序对P条轨迹信息进行编号1~P,同时初始化序号值np=0;
3.13机器人节点仿真模型m的计算模块从序号np开始顺序选取前p条轨迹信息,并将np更新为选取轨迹信息中最后一条的序号,p为小于等于P的正整数;
3.14机器人节点仿真模型m的计算模块采用梯度下降法最小化如公式(1)所示的损失函数L,得到新的评价网络参数,实现评价网络优化:
其中,Q′是Critic结构目标网络,Q是Critic结构评价网络,μ′是Actor结构目标网络,μ′(si+1)表示将si+1输入到μ′中得到的行动指令,Q′(si+1,μ′(si+1))表示将状态si+1和行动指令μ′(si+1)输入到Q′得到的得分,α是0~1的常数,作为权重,Q(si,ai)表示将状态si和行动ai输入到Q中得到的得分,(ri+αQ′(si+1,μ′(si+1))-Q(si,ai))是对三项得分进行加权计算;
3.15机器人节点仿真模型m的计算模块根据p条轨迹信息,通过梯度下降法,使得机器人节点仿真模型m表现评价函数Jθ(μ)值增大;在增大评价函数Jθ(μ)值的过程中,Actor结构策略网络参数得到更新,从而实现对Actor结构策略网络优化:
其中,ρi(si)表示在第i步时,计算模块根据探测模块观测到的搜救场景状态si,采取不同行动的概率分布,这个概率分布由Actor结构策略网络确定;
3.16判断np+p>P是否满足,若满足,执行步骤3.17;否则,转步骤3.13;
3.17机器人节点仿真模型m的计算模块按照公式(3)更新Critic结构元评价网络参数、按照公式(4)更新Actor结构元策略网络参数、按照公式(5)更新Critic结构目标网络参数、按照公式(6)更新Actor结构目标网络参数:
其中,是Critic结构元评价网络在第k轮第i步时的参数、是Critic结构评价网络在第k轮第i步时的参数、是Critic结构目标网络在第k轮第i步时的参数、是Actor结构元策略网络在第k轮第i步时的参数、是Actor结构策略网络在第k轮第i步时的参数、是Actor结构目标网络在第k轮第i步时的参数,τ1、τ2、τ3、τ4是取值在0~1的常数;
3.18令i=i+1,若i等于设定的每轮最大步数I,则执行步骤3.19;否则执行步骤3.7;
3.19令k=k+1,若k等于设定的最大执行轮数K,则执行步骤3.20;否则执行步骤3.5;
3.20令n=n+1,若n等于N,执行步骤3.22;否则,执行步骤3.21;
3.21机器人节点仿真模型m的计算模块保留Actor结构元策略网络、Critic结构元评价网络中的所有参数;同时机器人节点仿真模型m的计算模块清空Actor结构策略网络、Actor结构目标网络、Critic结构评价网络、Critic结构目标网络的所有参数并按照期望为0、方差为2的正态分布随机赋予初始值;清空第一存储模块的元经验回放池,转步骤3.4;
3.22计算模块将Actor结构元策略网络、Critic结构元评价网络的网络参数共同保存在一个.data格式文件;M个机器人节点仿真模型并行执行完第三步,得到M个.data格式文件,其中记录的M个Actor结构元策略网络参数,即为M个机器人节点的基本行动策略,这些基本行动策略共同组成了基本多机器人协同搜救策略;
第四步,M个机器人节点仿真模型将记录基本多机器人协同搜救策略的.data格式文件上传到云端服务器节点,即将第三步得到M个基本多机器人协同搜救策略保存在云端服务器节点,M台机器人节点仿真模型并行执行以下步骤,机器人节点仿真模型m的具体步骤如下:
4.1机器人节点仿真模型m的计算模块将.data格式的文件发送到第一通信模块;
4.2机器人节点仿真模型m的第一通信模块将.data格式文件发送到云端服务器节点的第二通信模块;
4.3第二通信模块将收到.data文件保存在第二存储模块;
第五步,将第一步构建的多机器人系统设置在需要开展搜救任务的地点,对基本多机器人协同搜救策略进行优化,得到M个机器人节点的Actor结构策略网络参数,共同构成多机器人自主协同搜救策略;M台机器人节点并行执行以下步骤,机器人节点m的具体步骤如下:
5.1机器人节点m的第一通信模块向云端服务器节点的第二通信模块发送基本多机器人协同搜救策略下载请求;
5.2第二通信模块从第二存储模块读取.data格式文件,并发送给第一通信模块;
5.3机器人节点m的第一通信模块将.data格式文件发送给机器人节点m的计算模块;
5.4机器人节点m的计算模块通过TensorFlow深度学习框架加载.data格式文件中的信息,将.data格式文件中保存的Actor结构元策略网络参数赋值给机器人节点m的Actor结构策略网络,将.data格式文件中保存的Critic结构元评价网络参数赋值给机器人节点m的Critic结构评价网络;
5.5对机器人节点m的Actor结构目标网络和Critic结构目标网络的参数进行初始化,参数包括神经网络每个神经网络内部每层之间的权重矩阵和偏置向量,其中的每一维数字按照期望为0、方差为2的正态分布随机选取;M个机器人节点的初始化过程相互独立,机器人节点m和机器人节点mm选取的参数可以相同也可以不同,1≤mm≤M且mm≠m;
5.6初始化机器人节点m的第一存储模块中的经验回放池为空;
5.7初始化机器人节点m已经完成的行动步数i=0,并设定机器人节点m可以执行的行动步数最大值I′,I′为正整数;
5.8机器人节点m的计算模块从第一存储模块获得搜救场景的当前状态si,输入到机器人节点m的Actor结构策略网络μ中,将μ的输出,即行动指令ai发送给运动模块和第一存储模块;运动模块执行动作ai;
5.9在机器人节点m的运动模块执行行为ai后,机器人节点m根据步骤2.4设计的评价指标,得到当前搜救任务完成度评分ri,并将ri发送到机器人节点的第一存储模块;
5.10 ai的执行导致搜救场景状态发生变化,机器人节点m的探测模块观测到新的搜救场景环境状态si+1,并将si+1发送到第一存储模块;
5.11机器人节点m的第一存储模块将接收的si,ai,ri,si+1整合成一组轨迹信息(si,ai,ri,si+1),存入经验回放池;
5.12若机器人节点m的第一存储模块的经验回放池已经有R条信息,则计算模块从经验回放池中随机抽取R条轨迹信息,转步骤5.13;否则,令i=i+1,转步骤5.8;R为正整数;
5.13机器人节点m的计算模块读取R条轨迹信息,采用梯度下降法最小化如公式(1)所示的损失函数L,以更新Critic结构评价网络参数,实现对评价网络优化;
5.14计算模块根据当前读取的R条轨迹信息,通过梯度下降法,使得如公式(2)所示的机器人节点m表现评价函数Jθ(μ)值增大,以更新Actor结构策略网络参数,实现对策略网络的优化;
5.15计算模块根据当前读取的R条轨迹信息,按照公式(5)更新Critic结构目标网络参数、按照公式(6)更新Actor结构目标网络参数;
5.16令i=i+1,若i达到最大步骤数I′,表示搜救策略优化完毕,转第六步;否则,转步骤5.8;
第六步,将M个机器人节点放置在第五步的搜救场景中;
第七步,多机器人系统根据优化后的搜救策略,在开放场景下协同完成搜救任务,M台机器人节点并行执行以下步骤,机器人节点m的具体步骤如下:
7.1根据搜救任务要求,设置多机器人系统需要搜救多个目标点,将所有目标点的坐标存放在列表L中,并发送到机器人节点的第一通信模块中,第一通信模块将L转发到计算模块中,机器人节点m从L中选择前往的目标点;
7.2初始化i=0;
7.3机器人节点m的探测模块探测搜救场景状态si,发送到第一存储模块,第一存储模块将si发送到计算模块;
7.4机器人节点m的计算模块的Actor结构策略网络将二元组(si,L中的目标点位置)作为策略网络的输入,得到策略网络的输出ai;
7.5机器人节点m的计算模块将ai发送到运动模块;
7.6机器人节点m的运动模块执行动作ai;
7.7若机器人节点m达到目标点附近d米以内,d为正整数,则从列表L中删除d米内的目标点,执行步骤7.8;否则,令i=i+1,执行步骤7.3;
7.8机器人节点m判断L中是否还存有目标点信息,若有,执行步骤7.2;否则,执行第八步;
第八步,结束。
2.如权利要求1所述的一种面向开放场景的多机器人自主协同搜救方法,其特征在于所述第一存储模块要求可用空间至少1GB,第二存储模块要求可用空间至少500GB。
3.如权利要求1所述的一种面向开放场景的多机器人自主协同搜救方法,其特征在于所述探测模块采用的传感器指扫描雷达、红外摄像头、深度摄像头。
4.如权利要求1所述的一种面向开放场景的多机器人自主协同搜救方法,其特征在于所述D取值范围为5000~10000;所述α取值范围为0.3~1;所述N不少于20;所述KK取值范围为300~500;所述P的取值为50~100;所述p的取值范围为5~10;所述R的取值为30~50;所述d的取值范围在0.5~1。
5.如权利要求1所述的一种面向开放场景的多机器人自主协同搜救方法,其特征在于所述I的取值为2×(||Pm-PT||2/vmax)/α~3×(||Pm-PT||2/vmax)/α,其中||x-y||2表示从位置x到位置y的欧氏距离,Pm为机器人节点仿真模型m的初始位置,PT为距离机器人节点仿真模型m最近的目标点的初始位置,vmax为机器人节点仿真模型所能允许的最大速度;所述I′取值为2×(||P′m-P′T||2/vmax)/α~3×(|P′m-P′T||2/v′max)/α),P′m为机器人节点m的初始位置,P′T为距离机器人节点m最近的目标点的初始位置,v′max为机器人节点所能允许的最大速度。
6.如权利要求1所述的一种面向开放场景的多机器人自主协同搜救方法,其特征在于所述计算模块中安装的操作系统为Ubuntu 16.04及以上版本或Ubuntu Mate16.04版本及以上,所述TensorFlow深度学习框架为9.10.0版本及以上,第二存储模块上安装的操作系统为Ubuntu16.04及以上版本;所述Gazebo仿真环境要求版本9.10.0以上;2.1步所述运行Gazebo仿真环境的电脑上装的操作系统为Ubuntu16.04及以上版本。
7.如权利要求1所述的一种面向开放场景的多机器人自主协同搜救方法,其特征在于所述Actor结构策略网络、Actor结构目标网络、Actor结构元策略网络;Critic结构评价网络、Critic结构目标网络、Critic结构元评价网络均有a层,每层均有b个神经元,a的范围为3~5,b的范围为64~128。
8.如权利要求1所述的一种面向开放场景的多机器人自主协同搜救方法,其特征在于所述第一通信模块和第二通信模块均采用无线网卡,第一通信模块通过网络服务安全协议SSH通信服务将.data格式文件发送给云端服务器节点中的第二通信模块;第二通信模块通过SSH同时与M个机器人节点进行通信。
9.如权利要求1所述的一种面向开放场景的多机器人自主协同搜救方法,其特征在于2.4步所述设计搜救任务完成度评价指标的方法是根据灾难搜救的现场条件对多要素衡量进行打分并累计求和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910883109.7A CN110587606B (zh) | 2019-09-18 | 2019-09-18 | 一种面向开放场景的多机器人自主协同搜救方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910883109.7A CN110587606B (zh) | 2019-09-18 | 2019-09-18 | 一种面向开放场景的多机器人自主协同搜救方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110587606A CN110587606A (zh) | 2019-12-20 |
CN110587606B true CN110587606B (zh) | 2020-11-20 |
Family
ID=68860843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910883109.7A Active CN110587606B (zh) | 2019-09-18 | 2019-09-18 | 一种面向开放场景的多机器人自主协同搜救方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110587606B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614741A (zh) * | 2020-05-11 | 2020-09-01 | 西北工业大学 | 一种基于ros系统的多机器人通讯方法及装置 |
CN111880563B (zh) * | 2020-07-17 | 2022-07-15 | 西北工业大学 | 一种基于maddpg的多无人机任务决策方法 |
CN112348113B (zh) * | 2020-11-27 | 2022-11-18 | 腾讯科技(深圳)有限公司 | 离线元强化学习模型的训练方法、装置、设备及存储介质 |
CN112633591B (zh) * | 2020-12-30 | 2024-06-28 | 成都艾特能电气科技有限责任公司 | 一种基于深度强化学习的空间搜索方法及设备 |
CN113158608A (zh) * | 2021-02-26 | 2021-07-23 | 北京大学 | 确定模拟电路参数的处理方法、装置、设备及存储介质 |
CN113189983B (zh) * | 2021-04-13 | 2022-05-31 | 中国人民解放军国防科技大学 | 一种面向开放场景的多机器人协同多目标采样方法 |
CN113688496B (zh) * | 2021-07-05 | 2024-04-12 | 上海机器人产业技术研究院有限公司 | 机器人建图算法精度仿真测评方法 |
CN113741461B (zh) * | 2021-09-06 | 2023-10-03 | 中国人民解放军国防科技大学 | 一种面向受限通信的复杂场景下多机器人避障方法 |
CN117957500A (zh) * | 2021-09-23 | 2024-04-30 | 西门子(中国)有限公司 | 一种多个机器人协同工作的控制方法、系统及机器人 |
CN116587265B (zh) * | 2023-03-29 | 2024-09-20 | 中国人民解放军国防科技大学 | 一种基于伴随观察模式的多智能体自主机器人系统 |
CN116540568B (zh) * | 2023-07-05 | 2023-09-22 | 中南大学 | 一种大规模分布式无人机集群仿真系统 |
CN117970893A (zh) * | 2024-03-29 | 2024-05-03 | 中科先进(深圳)集成技术有限公司 | 一种多机器人的协同制造方法、装置、系统和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN207008709U (zh) * | 2017-03-17 | 2018-02-13 | 南京聚特机器人技术有限公司 | 基于多机器人协作的公共安全应急指挥控制系统 |
CN108453746A (zh) * | 2018-03-09 | 2018-08-28 | 齐齐哈尔大学 | 自主与协商相结合的多机器人协同探索技术 |
CN108594169A (zh) * | 2018-03-15 | 2018-09-28 | 中国人民解放军63892部队 | 一种适应于时变通信拓扑的多机器人分布式协作定位方法 |
WO2018191555A1 (en) * | 2017-04-14 | 2018-10-18 | Drishti Technologies. Inc | Deep learning system for real time analysis of manufacturing operations |
CN109579843A (zh) * | 2018-11-29 | 2019-04-05 | 浙江工业大学 | 一种空地多视角下的多机器人协同定位及融合建图方法 |
-
2019
- 2019-09-18 CN CN201910883109.7A patent/CN110587606B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN207008709U (zh) * | 2017-03-17 | 2018-02-13 | 南京聚特机器人技术有限公司 | 基于多机器人协作的公共安全应急指挥控制系统 |
WO2018191555A1 (en) * | 2017-04-14 | 2018-10-18 | Drishti Technologies. Inc | Deep learning system for real time analysis of manufacturing operations |
CN108453746A (zh) * | 2018-03-09 | 2018-08-28 | 齐齐哈尔大学 | 自主与协商相结合的多机器人协同探索技术 |
CN108594169A (zh) * | 2018-03-15 | 2018-09-28 | 中国人民解放军63892部队 | 一种适应于时变通信拓扑的多机器人分布式协作定位方法 |
CN109579843A (zh) * | 2018-11-29 | 2019-04-05 | 浙江工业大学 | 一种空地多视角下的多机器人协同定位及融合建图方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110587606A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110587606B (zh) | 一种面向开放场景的多机器人自主协同搜救方法 | |
Carrio et al. | A review of deep learning methods and applications for unmanned aerial vehicles | |
CN112232478B (zh) | 一种基于分层注意力机制的多智能体强化学习方法及系统 | |
CN113189983B (zh) | 一种面向开放场景的多机器人协同多目标采样方法 | |
Yue et al. | Deep reinforcement learning and its application in autonomous fitting optimization for attack areas of UCAVs | |
CN114510012A (zh) | 一种基于元动作序列强化学习的无人集群演进系统及方法 | |
Behjat et al. | Learning robot swarm tactics over complex adversarial environments | |
Hamami et al. | A systematic review on particle swarm optimization towards target search in the swarm robotics domain | |
Anochi et al. | Self-configuring two types of neural networks by mpca | |
Dhatterwal et al. | Machine learning and deep learning algorithms for IoD | |
Wang et al. | Consciousness‐driven reinforcement learning: An online learning control framework | |
CN116643586A (zh) | 一种面向复杂场景的多机器人协同侦察方法 | |
Wang et al. | Cooperatively pursuing a target unmanned aerial vehicle by multiple unmanned aerial vehicles based on multiagent reinforcement learning | |
Karatzas et al. | On autonomous drone navigation using deep learning and an intelligent rainbow DQN agent | |
Feng et al. | Mobile robot obstacle avoidance based on deep reinforcement learning | |
Conforth et al. | Reinforcement learning using swarm intelligence-trained neural networks | |
CN113741461A (zh) | 一种面向受限通信的复杂场景下多机器人避障方法 | |
King et al. | Design and simulation of a wide area search mission: an implementation of an autonomous systems reference architecture | |
Costa et al. | Comparative study of neural networks techniques in the context of cooperative observations | |
Katyal et al. | Prediction-based uncertainty estimation for adaptive crowd navigation | |
Togootogtokh et al. | An efficient uav-based artificial intelligence framework for real-time visual tasks | |
De Souza et al. | Simulating robotic cars using time-delay neural networks | |
Araújo et al. | Cooperative observation of smart target agents | |
Hu et al. | Autonomous Decision Making of UAV in Short-Range Air Combat Based on DQN Aided by Expert Knowledge | |
Zhao et al. | 3D Path planning for UAV with improved double deep Q-network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |