CN113189983B - 一种面向开放场景的多机器人协同多目标采样方法 - Google Patents
一种面向开放场景的多机器人协同多目标采样方法 Download PDFInfo
- Publication number
- CN113189983B CN113189983B CN202110396041.7A CN202110396041A CN113189983B CN 113189983 B CN113189983 B CN 113189983B CN 202110396041 A CN202110396041 A CN 202110396041A CN 113189983 B CN113189983 B CN 113189983B
- Authority
- CN
- China
- Prior art keywords
- robot
- network
- module
- node
- target
- 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
- 238000005070 sampling Methods 0.000 title claims abstract description 175
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000004088 simulation Methods 0.000 claims abstract description 161
- 238000012549 training Methods 0.000 claims abstract description 109
- 238000003860 storage Methods 0.000 claims abstract description 101
- 238000004364 calculation method Methods 0.000 claims abstract description 98
- 238000004891 communication Methods 0.000 claims abstract description 80
- 238000001514 detection method Methods 0.000 claims abstract description 54
- 230000033001 locomotion Effects 0.000 claims abstract description 46
- 230000009471 action Effects 0.000 claims description 165
- 238000011156 evaluation Methods 0.000 claims description 114
- 238000013528 artificial neural network Methods 0.000 claims description 39
- 230000006870 function Effects 0.000 claims description 37
- 239000003795 chemical substances by application Substances 0.000 claims description 22
- 230000002787 reinforcement Effects 0.000 claims description 20
- 238000004422 calculation algorithm Methods 0.000 claims description 19
- 238000009826 distribution Methods 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 17
- 230000007613 environmental effect Effects 0.000 claims description 16
- 238000013135 deep learning Methods 0.000 claims description 15
- 230000006399 behavior Effects 0.000 claims description 14
- 230000000875 corresponding effect Effects 0.000 claims description 13
- 238000011478 gradient descent method Methods 0.000 claims description 12
- 210000002569 neuron Anatomy 0.000 claims description 10
- 238000005457 optimization Methods 0.000 claims description 8
- 230000010354 integration Effects 0.000 claims description 6
- 238000003062 neural network model Methods 0.000 claims description 6
- 241001465754 Metazoa Species 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 25
- 238000002474 experimental method Methods 0.000 description 14
- 238000013140 knowledge distillation Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 241000282414 Homo sapiens Species 0.000 description 4
- 238000004821 distillation Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 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
- 238000012545 processing Methods 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000010791 domestic waste Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0242—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0223—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
- G05D1/0253—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0257—Control of position or course in two dimensions specially adapted to land vehicles using a radar
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Electromagnetism (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Feedback Control In General (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种面向开放场景的多机器人协同多目标采样方法。技术方案是构建由N个机器人节点和云端服务器节点构成的多机器人系统,机器人节点上安装通信模块、探测模块、计算模块、存储模块、运动模块;云端服务器节点上安装通信模块、存储模块;构建多目标采样场景,将N个机器人节点仿真模型预训练,得到N个记录了机器人在对应仿真场景下协同多目标采样策略的.data参数格式文件;将多机器人系统部署在真实的开放场景,利用.data参数格式文件训练,得到多机器人自主协同多目标采样策略;多机器人系统根据采样策略协同完成多目标采样任务。本发明能解决目前多目标采样方法时效性不高、训练数据量大、训练时间长、强任务相关性等问题。
Description
技术领域
本发明涉及利用智能机器人系统领域知识和多智能体强化学习技术,在开放的未知环境中如何让分布式多机器人快速协同完成多目标采样任务。尤其涉及一些多机器人对未曾训练过的无法预知的采样任务场景时(例如月球车对月球土壤进行采样,对疫情区域进行采样等),实现自主地形成协作策略以完成搜索采样目标、追踪采样目标以及规划路线并按规划路线进行采样等任务的方法。
背景技术
移动机器人因其可移动性及可复制性,可以代替人在一些复杂的、危险的、受到环境制约的环境中执行侦查、搜救和操作等任务,能够极大程度上忽视地形的限制并且降低人力成本,并且经过多年的发展,移动机器人已经逐步在物流、制造、服务等领域崭露头角。同时,在国防和军队的重大项目中也起到至关重要的作用,例如战场侦查、太空探索、战场救助等任务中移动机器人都发挥出了显著的效果,也展现出了移动机器人广泛地应用前景。
而相较于单机器人,多机器人系统更加具有高效、可靠的特点,并且能够通过对任务的学习展现出一定程度上的群体智能,超过“1+1=2”的效果,从而能够更加理想地完成任务同时提高任务的完成效率,例如在灾后救援等实际场景中多机器人的自主协同已经体现出了成熟的智能,在提高搜救效率的同时也极大提升了人员存活率,并且节约了人力与物力。目前常见的多机器人协作任务还包括协作导航、协作运输、协作追踪等。然而现今已有的一些多机器人协作策略往往需要提前设计或训练,并且策略与任务之间的关系是紧耦合的,设计或训练得到的策略仅能用于单一任务。
然而现实中的任务环境存在很大程度的不确定性,多机器人每次执行的任务往往也有很大的差异性,通常需要应对任务中避障、避免相互干扰等问题,因此在这样的非确定性环境中完成复杂任务的高要求为多机器人带来了严厉的挑战。因此,本发明考虑的开放式应用场景是,多机器人在非确定性的无法预知未来任务的具体场景。例如,在新冠疫情爆发之时,往往需要对病人的生活区域进行采样,但是病人的生活环境是无法预知的,包括社区中的生产生活废料、树木等各种障碍的位置、采样的目标位置等等信息都需要在灾害发生过后才可获取。目前已有的常用方案是根据现场情况人工设计环境探索方案和采样方案等,然而人民的生命财产安全重于泰山,人工设计方案的方法会不可避免地浪费掉部分宝贵的采样时间,从而导致疫情控制不及时等问题的发生。如何在对时间和效率有高要求的未知环境中,实现多机器人快速地应对场景中环境的动态变化,从而在疫情发生后可以快速地通过协作来实现多目标的采样,是本领域技术人员目前急于要解决的难点和热点问题。针对这样的问题,本发明实现了多机器人在从未见过的多目标采样等任务场景中能够经过短暂的训练就取得较好的效果并快速投入到任务中。
多机器人多目标采样任务面临的主要问题包括:1)如何有效地协调多机器人的行为。如果缺少协调,可能导致多个机器人环境探索区域的重合、重复对相同的目标采样,导致环境探索不充分及任务完成不充分,因此需要协调多机器人之间的关系,实现充分地探索和对目标进行采样。2)在执行任务时,环境中往往会存在很多干扰因素包括障碍物等,例如环境中的瓦砾、生活废料等。因此在这样动态变化的环境中,如何让多机器人快速地克服动态环境中的各类干扰因素并实现多目标的采样是一个丞待解决的问题。
以往的一些人工设计策略的方法往往基于对目标位置、环境等的可预估和不变的性质,需要事先对场景有一定的强假设性,需要事先获取有关任务和环境的具体信息并且为机器人制定好固定的采样策略。在真实场景中,环境在不断演化,同时任务目标也需要不断调整,而这一类人工设计策略的方法很难应对这样的动态变化问题,无法适应不同于程序预设的场景,因而无法解决多机器人多目标采样任务面临的主要问题。
在现阶段的机器人领域,大多由图像识别来负责模拟机器人的视觉,而机器人的行为往往依靠深度强化学习,两者结合的多机器人自主协同技术逐渐在生活实践中得到广泛应用。深度强化学习方法是一类“数据驱动”方法,机器人可通过对数据的不断学习从而实现对任务的自主适应,而并不依赖于人为设计策略或方法,其基本思想在于对那些导致不理想结果的动作进行惩罚,而对那些得到理想结果的动作给予奖励,从而训练得到一种根据环境来得到理想动作的策略。机器人在执行任务时,在当前的状态S下采取了动作A,得到新的状态S’,同时获得了环境的立即奖励R,通过这样一个动作得到了一个经验元组<S,A,R,S’>并保存为经验样本,通过与环境不断地交流,机器人可获取大量的经验样本,并通过对奖励R的判断来区分样本的正负,从而实现在不断地探索和试错中,自主地形成策略,从而得到任务中的最优动作。强化学习算法因为其适应性、灵活性等特性,从而能够解决多机器人多目标采样任务面临的主要问题。通过强化学习方法,机器人能够在训练中学会如何与环境动态交互,从而在开放式的应用场景中取得优异、高效的整体表现。
然而,深度强化学习方法也存在局限性。由于其“数据驱动”的特征,深度强化学习不可避免地存在需要较大的数据量和训练时间长等问题。同时,在某个任务场景中训练得到模型往往与当前任务场景具有较强的相关性,这种性质也被称作强任务相关性,意味着当任务场景发生较大变化时,已经训练好的旧模型往往不适合新的环境乃至于在新环境中失效。例如机器人在预演的灾害场景下学习到的协同策略被用于真实场景中时,由于真实场景与预演场景之间存在障碍物、地形等多种差异,导致已有的策略失效。除了环境因素以外,多机器人本身的角色划分和数目变化也是一个重要的因素。机器人在某个时刻的动作组成了一个元组,并在环境中执行这样的动作,从而从环境中得到一个奖励,因此当机器人数目或角色发生变化时,多机器人的最佳策略可能存在着差异,对应地,任务的复杂度也会随之变化。多机器人系统中机器人相互影响和关联的特性,为实现快速训练多机器人多目标采样任务策略的目标带来了不确定性和极大的复杂度。
为了解决上述提到的一些局限性(需要大量数据、训练时间长、任务变化快、强任务相关性)中的部分,比如论文《Dual Policy Distillation》(译为“对偶知识蒸馏”,发表在arXiv预印本论文网站,网址为https://arxiv.org/abs/2006.04061,出版时间2020年4月)成功实现了单机器人在任务中快速训练的实验。类似的,论文《TransferHeterogeneous Knowledge Among Peer-to-Peer Teammates:A Model DistillationApproach》(译为“在点对点队友之间转移异构知识:一种模型蒸馏方法”,发表在arXiv预印本论文网站,网址为https://arxiv.org/abs/2002.02202,出版时间2020年2月)成功实现了多机器人系统在任务中快速训练的实验。而在训练的基础算法上,论文《Multi-AgentActor-Critic for Mixed Cooperative-CompetitiveEnvironments》(译为“面向合作和竞争混合环境的多机器人演员评论家方法”,发表在arXiv预印本论文网站,网址为https://arxiv.org/abs/1706.02275,出版时间2017年6月)考虑由于多机器人之间的相互干扰从而带来的环境不稳定性,从而将其他机器人的策略也加入当前机器人的考虑中,提出了多机器人深度确定性策略的强化学习方法MADDPG(Multi-agent deep deterministic policygradient,译为“多智能体深度确定性策略梯度”,算法源码网址:https://github.com/openai/maddpg)。同样,论文《Actor-Attention-Critic for Multi-Agent ReinforcementLearning》(译为“基于演员-注意力-评论家框架的多智能体强化学习方法”,发表在Proceedings of Machine Learning Research(PMLR)会议论文网站,网址为http://proceedings.mlr.press/v97/iqbal19a.html,出版时间2019年)考虑在机器人在不同时间的学习重点不同,将注意力机制应用到多机器人场景中,从而实现了多机器人在任务中更好地训练的目的,提出了引入注意力机制的多机器人深度确定性策略的强化学习方法MAAC(Multi-Actor-Attention-Critic,译为“多演员注意力评论家”,算法源码网址:https://github.com/shariqiqbal2810/MAAC)。但以上两种基础的训练方法(面向合作和竞争混合环境的多机器人演员评论家方法及基于演员-注意力-评论家框架的多智能体强化学习方法)均基于固定的任务场景,并且机器人拥有足够的训练时间和训练资源。然而因为任务相关的局限性,当任务场景发生变化时,原有训练好的模型可能在新任务中并不能取得理想的效果,乃至于毫无作用。
人类可以在过去的任务中获取一些先验知识或者借鉴过去的一些行为,从而在当前任务中采取一些较为明智的行为,因此可以快速地学习当前的任务。然而,在深度强化学习训练中,过去任务中学习到的先验知识往往隐藏在模型之中并无法直接地提取并用于新任务的训练。但是,人类社会中传递知识的方式是多种多样的,最为直接的一种传递知识方式即是模仿。知识蒸馏(上文提到的“对偶知识蒸馏”仅是知识蒸馏的在其论文中的一种应用方式)便是实现传递知识和知识复用的一种方法,是一种关注如何转移模型中知识的方法,其主要思想便是模仿,让学生网络在训练的同时也向教师网络看齐,模拟教师网络的输出。因此,知识蒸馏是一种能够通过模仿教师来转移知识,从而实现在新任务场景中实现少样本快速学习的有效方法。通过这样的方法,机器人可以从过往的相似任务场景中转移知识,并且用于当前目前,知识蒸馏已经被成功应用在图像识别领域,并且在谷歌Jft-300M数据集上成功地帮助小规模的学生网络取得了非常高的准确率。但是还没有公开文献涉及将知识蒸馏用于多机器人协同多目标采样领域。
在实际的人类生活中,许多场景都具有一定的相似性,并且人类可以借鉴以往场景中的决策来进行学习。类似的,多智能体多种任务场景之间也具备一定的规律和相似之处,如果能利用好任务之间的共性知识,便可以利用以往训练中学习到的先验知识来加速新任务的学习,知识蒸馏正是符合多智能体多种任务场景要求的知识转移方法,可以用于转移以往任务中的知识。论文《Policy Distillation and Value Matching inMultiagent Reinforcement Learning》(译为“多智能体强化学习中的策略蒸馏与价值匹配”,发表在arXiv预印本论文网站,网址为https://arxiv.org/abs/1903.06592,出版时间2019年3月)在多智能体系统中成功实现了单机器人之间的知识转移,并且在实验中取得了理想的效果,证明了知识蒸馏思想在多智能体系统中具有一定的可行性和应用价值。
前文提到,论文《Multi-Agent Actor-Critic for Mixed Cooperative-CompetitiveEnvironments》与论文《Actor-Attention-Critic for Multi-AgentReinforcement Learning》均是强化学习领域比较杰出的基础算法,且都采用了分布式执行、集中式训练的方法,但是均未考虑环境和任务的动态变化问题。如何应对这样的问题以及其他的局限性(需要大量数据、训练时间长、模型与任务相关性强、任务变化快),达到快速地适应智能体、任务和环境的动态变化的效果,是本领域技术人员重点关注的技术问题之一。
针对深度强化学习中的局限性并基于以上的分析,如果将知识蒸馏方法与多机器人强化学习领域中的基础算法相结合,通过模仿教师网络来传递知识的同时也从当前环境中学习知识,能够有效的帮助机器人在面临新的相似场景的任务时实现基于少样本的快速学习。一种直观的解释是,机器人从过去的训练经验中学习一些对当前训练任务有启示的行为,从而帮助机器人在当前任务中一开始便采取有效的策略,减少探索和试错的时间从而快速地学会掌握当前任务中的知识。也就是说,机器人能够通过一类多目标采样任务的内在关联,利用这样的内在关联来指导在从未训练过的、无法提前预知的多目标采样任务场景中有效地快速地形成协同策略并应对场景中的环境变化带来的挑战,并且不依赖于特定的协同方式。从而实现多机器人在面临无法提前预知的采样任务场景时,都能够基于以往学习的可行策略实现快速投入探索环境并对环境样本进行采样的行动之中。因此,基于以上分析,这种面向开放的未知环境的多机器人协同多目标采样任务方法具有广泛的应用前景及实用意义。
但是目前还没有公开文献涉及将知识蒸馏应用于面向开放场景的多机器人协同多目标采样的公开报导。
发明内容
本发明所面向的应用场景是,多机器人在面向开放的未知环境的多机器人协同多目标采样任务。此应用场景主要有以下两个挑战:第一、在任务开始之前多机器人并不了解任务场景中的具体信息,包括任务的奖励机制和评价指标等等。多机器人仅仅知道即将面对的任务类型,而不清楚多目标采样任务的目标数量、任务环境的地形、障碍的数量等。第二、在多目标采样任务场景中,对训练时间、训练效果等都有着较高要求,时间和训练效果决定了疫情防控的效果,因此对多机器人系统的训练时间有非常严苛的要求,可能并没有充裕的时间进行充分的学习。
本发明要解决的技术问题是目前多机器人协同多目标采样方法时效性不高、训练数据量较大、训练时间较长、强任务相关性等问题,提供一种面向开放场景的多机器人协同多目标采样方法,使得分布式多机器人系统能在新任务场景中快速构建协同策略并快速学会控制,完成在开放未知环境中的多目标采样任务。
为此,本发明设计了一种融合知识蒸馏思想的多机器人协同多目标采样方法,通过转移以往训练任务中的知识,并将以往的知识作为先验知识来帮助多机器人快速适应新任务中的环境变化,使得多机器人能够快速训练并在一开始就得到较好的协同策略,并最终达到理想的自主协同多目标采样的效果。
本发明的核心技术是利用knowledgedistillation(知识蒸馏)的思想和方法来改进传统的多机器人强化学习算法MADDPG(Multi-agent deep deterministic policygradient,译为“多智能体深度确定性策略梯度”)以及MAAC(Multi-Actor-Attention-Critic,译为“多演员注意力评论家”),形成能够在不同的多目标采样任务中持续优化的多智能体策略,并将该策略部署在多机器人系统之上,实现在开放的未知场景下多机器人快速地自主协同完成多目标采样任务。
本发明包括以下步骤:
第一步,构建多机器人系统,多机器人系统由N个机器人节点和云端服务器节点构成,N为正整数。每个机器人节点工作方式相同,都是可运行软件程序的且具有运动、观测、通信等能力的机器人硬件设备,如地面机器人Turtlebot3、无人机Intel aero等,每个机器人节点都包括多个模块(第一通信模块、探测模块、第一计算模块、第一存储模块、运动模块)。
探测模块是采集任务环境数据的传感器,包括扫描雷达、红外摄像头、深度摄像头等。探测模块与第一存储模块相连,探测模块每隔t秒周期性地对可见范围内的环境和除所属机器人节点以外的另N-1台机器人节点进行拍摄或扫描,得到当前任务场景状态,将当前场景状态发送给第一存储模块。t建议取值范围为0.3~1秒。
第一存储模块是可用空间1GB以上的存贮器,与探测模块和第一计算模块相连,第一存储模块中有一个经验回放池,经验回放池用于存储第一存储模块所属机器人(令为机器人节点n,1≤n≤N)的最近的H条轨迹经验信息(H的取值范围建议为5000~10000)(此处的H是指经验回放池的大小,最多能存放最近的H条轨迹经验信息),其中第h(1≤h≤H)条轨迹经验信息的格式表示为[sh,ah,rh,sh+1],其中,sh代表探测模块第h次观察到的场景状态,sh主要包括第h次观察到的除机器人节点n以外的另N-1台机器人节点、所有采样目标、所有环境障碍物的位置坐标和另外N-1台机器人节点的速度。ah代表在探测模块第h次观测和第h+1次观测两个时间点之间,机器人节点n所采取的行动,表现为机器人节点n向某个方向加速或施加作用力的动作。机器人节点n在执行时,自动记录下ah。rh是探测模块在第h+1次观察时,根据第h次观察到的场景状态计算出的任务完成度评价得分。sh+1是探测模块第h+1次观测到的场景状态,sh+1主要包括第h+1次观察到的除本机器人节点n以外的另N-1台机器人节点、所有采样目标、所有环境障碍物的位置坐标和另外N-1台机器人节点的速度。从逻辑关系出发,sh+1可以为由sh经过机器人行为ah后所得到的新的场景状态。
第一计算模块负责制定和优化搜救策略,并根据搜救策略向运动模块发送行动指令。第一计算模块与第一存储模块、运动模块、第一通信模块相连,安装有Ubuntu16.04操作系统(用于X86架构处理器)以及基于Ubuntu16.04操作系统的ROS(机器人操作系统)以及深度学习框架(Pytorch0.3.0.post4)。第一计算模块包含4个全连接神经网络以及公共计算子模块,4个全连接神经网络均使用pytorch深度学习框架创建,分属用于形成行动指令的Actor(演员)结构和用于优化策略的Critic(评论家)结构(原理可参考文献《Actor-CriticAlgorithms》,译为“演员-评论家算法”,发表在ACM出版机构,出版时间2001年4月,可下载网址为https://www.researchgate.net/publication/2354219_Actor-Critic_Algorithms),Actor结构包括Actor结构策略网络、Actor结构目标网络;Critic结构包括Critic结构评价网络、Critic结构目标网络。这四个神经网络结构相同,为四个神经网络随机赋予初始参数,包括每个神经元的权重,每个神经网络的层数a、每层的神经元个数b,a、b为正整数,a的取值范围建议为4~8,b的取值范围建议为64~256。Actor结构策略网络从第一存储模块的经验回放池中读取W条(W<H,建议取值为100)轨迹经验信息和当前状态,根据当前状态制定下一步的行动指令,将自身的网络参数(即每层网络之间权重矩阵和偏置向量的参数值,这些参数值即为“策略”,因此自身的网络参数即称为策略网络参数)发送给Actor结构目标网络,将下一步的行动指令发送给运动模块;Actor结构目标网络从Actor结构策略网络获取策略网络参数,完成Actor结构策略网络的更新。Critic结构评价网络同样从第一存储模块接收W条轨迹经验信息,从Critic结构目标网络接收损失函数度量值,该度量值代表Critic结构评价网络对该状态下机器人节点动作价值判断的准确程度,从而帮助自己更准确的对动作价值作出评价,并将自身网络参数发送给Critic结构目标网络,完成Critic结构目标网络的更新。Critic结构评价网络向Actor结构策略网络发送当前Actor结构策略网络所采取的动作的评价值,Actor结构策略网络通过学习如何获取更高的动作评价值来制定更理想的动作指令。Critic结构目标网络从Critic结构评价网络接收Critic结构评价网络的网络参数,并将损失函数度量值发送给Critic结构评价网络。第一计算模块将Actor结构策略网络参数保存为一个.data参数格式文件并发送到第一通信模块。机器人节点每隔t秒进行一次观测并执行一个动作指令,定义为机器人节点每隔t秒执行一步行动,t建议取值范围为0.3~1秒。每一步行动后,第一计算模块从第一存储模块接收到W条轨迹经验信息和当前状态,一方面第一计算模块从W条轨迹经验信息中找到当前状态,将当前状态输入到Actor结构策略网络中,得到并输出下一步的行动指令;另一方面,第一计算模块根据这W条轨迹信息,对全部四个神经网络的参数进行更新,在行动完成后,将保存有Actor结构策略网络的参数文件发送给第一通信模块;公共计算子模块与Actor结构策略网络、Critic结构目标网络、第一存储模块、探测模块相连,主要负责完成各类计算任务,其可根据损失函数公式计算损失函数度量值并将损失函数度量值发送给对应的Actor结构策略网络、Critic结构目标网络,同时亦负责根据多目标任务完成度评价指标来计算任务完成度评分并发送给第一存储模块以及将从探测模块收到的状态信息与目标点位置信息进行组合,并完成第一计算模块中的各类判断任务;
在面向真实的开放场景时,第一计算模块创建一个与预训练阶段中多机器人系统中Actor结构策略网络结构相同的教师网络,并加载由第一通信模块发来的预训练阶段训练好的Actor结构策略网络的.data参数格式文件中的信息,将.data参数格式文件中保存的Actor结构策略网络参数赋值给教师网络,教师网络根据机器人节点状态作为输入可得到教师动作(教师动作是指教师网络根据预训练中获得的策略和当前机器人节点的状态作出的最佳动作)。
Actor结构策略网络从第一存储模块读取第k步的状态sk,经过与Actor结构策略网络每层神经元之间权重矩阵相乘、与每层神经元之间偏置向量相加的逐层传递过程,最终在Actor结构策略网络最后一层计算得到行动指令ak;从宏观上,Actor结构策略网络实现了让机器人节点根据当前观察到的场景状态,自主决定下一步的行动,因此,Actor结构策略网络的网络参数体现了根据当前状态应采取哪种动作指令,也即体现了本发明的“策略”。每个机器人节点拥有独立的Actor结构策略网络参数,能自主决定自身行为,并可以在不进行机器人节点间通信的情况下,仅依靠互相观察实现自主协同。除Actor结构策略网络外的其他三个神经网络主要用于指导和辅助Actor结构策略网络进行更新。
运动模块由数模转换器和马达、轮胎等驱动装置构成。运动模块与第一计算模块相连,从第一计算模块接收行动指令,通过内置的数模转换器将数字信号转换为模拟信号,并将模拟信号传输给驱动装置,使机器人根据行动指令做出相应动作,导致场景发生改变。
第一通信模块(如无线网卡)与第一计算模块、云端服务器节点相连,第一通信模块从第一计算模块接收记录参数的.data参数格式文件,通过SSH(Secure Shell,一种网络服务安全协议)通信服务将.data参数格式文件发送给云端服务器节点。
云端服务器节点是指工作站、服务器等云端设备,安装有第二通信模块(如无线网卡)、第二存储模块(要求采用容量大于100GB的硬盘)。
云端服务器节点的第二存储模块与第二通信模块相连,第二存储模块安装有Ubuntu16.04操作系统(用于X86架构处理器)以及与机器人节点相同版本的深度学习框架(Pytorch0.3.0.post4),用于存储预训练好的.data参数格式文件。第二通信模块与第二存储模块、N个机器人节点的第一通信模块相连,通过SSH同时与N个机器人节点进行通信。
第二步,安装Gazebo仿真环境,并构建M个多目标采样方针场景,为预训练做准备,M为正整数(M应不少于20,且在计算资源充足的情况下M越大越好)。具体步骤如下:
2.1在任意一台装有Ubuntu16.04以及以上版本的电脑上安装并运行Gazebo仿真环境(从http://gazebosim.org下载,要求版本9.10.0以上),并仿照第一步构建的多机器人系统中N个机器人节点的实际结构、尺寸,构建对应N个机器人节点仿真模型。
2.2在仿真环境中,对多目标采样环境中可能出现的多种环境要素(如障碍物、建筑物、动物、目标点等)进行等比例建模,得到各种场景要素的仿真模型。
2.3随机选择N个机器人节点模型和数量随机的多种环境要素,并随机模拟机器人和各种要素的初始位置,从而形成多个多目标采样任务场景,用于模拟真实场景中的各种现实条件。随机选取以上设计的机器人节点仿真模型和场景要素仿真模型的种类、数目和初始位置坐标,形成M个多目标采样任务场景,,用来模拟M次多目标采样的现场条件。
2.4设计多目标采样任务完成度评价指标,用于对当前多机器人多目标采样任务策略在仿真环境下的效果做出评价,通常采用对多种环境要素衡量进行打分并累计求和的方式。如机器人节点仿真模型距离目标点每间隔1米则扣1分;机器人节点仿真模型在运动过程中每碰撞一次其他机器人节点仿真模型则扣2分;机器人节点仿真模型在运动过程中每碰撞一次障碍物则扣3分等;比如在某时间点机器人节点仿真模型距离目标点5米,从开始运动到该时间点的过程中,该机器人共碰撞4次其他机器人节点仿真模型和2次障碍物,则该时间点获得分数为-(5*1+4*2+2*3)=-19分。任务完成度评价指标由用户根据任务的现场条件制定,原则是对促进完成任务目标的行为进行加分,对干扰任务完成的行为进行扣分。
第三步,将N个机器人节点仿真模型在第二步构建好的M个多目标采样任务仿真场景中进行预训练,得到记录了机器人在对应的仿真场景下的协同多目标采样策略的N个.data参数格式文件;以多机器人强化学习算法MADDPG(Multi-agent deep deterministicpolicy gradient,译为“多智能体深度确定性策略梯度”)为例来阐述预训练过程,但预训练并不仅限于此算法,其他强化学习算法例如MAAC(Multi-Actor-Attention-Critic,译为“多演员注意力评论家”)亦可参考以下步骤实现预训练。N台机器人节点仿真模型并行执行以下步骤,机器人节点仿真模型n的执行过程如下,1≤n≤N:
3.1机器人节点仿真模型n的第一计算模块进行初始化,即第一计算模块中的四个神经网络对参数进行初始化,参数包括每个神经网络内部每层之间的权重矩阵和偏置向量,按照期望为0、方差为2的正态分布随机生成每个神经网络内部每层之间的权重矩阵和偏置向量中的每个数字,N个机器人节点仿真模型的初始化过程相互独立。
3.2初始化循环变量m=1。
3.3在仿真环境中从M个多目标采样任务场景选取第m个任务场景,并命名为仿真多目标采样场景m。初始化训练周期序号i=0,并设定最大训练周期序号I(I为正整数,建议取值范围为4000~10000)。
3.4在仿真环境中随机初始化每个机器人节点以及目标点、环境中各类元素的初始位置。
3.5初始化在第i个训练周期中机器人行动的步数q=0,并设定第i个训练周期中机器人可执行的第一最大步数Q,Q的取值应保证在每个周期中,机器人可在Q步之内取得最佳策略,Q的取值范围建议为25~50;
3.6机器人节点仿真模型n的第一计算模块从第一存储模块获取当前多目标采样仿真场景的状态sq,并将sq输入到Actor结构策略网络,得到网络的输出即动作指令aq,将aq其发送给运动模块及第一存储模块;
3.7运动模块执行动作aq。
3.8按照步骤2.4中设计的评价指标,Gazebo仿真环境自动计算aq当前的任务完成度评分rq,将rq发送到机器人节点仿真模型n中的第一存储模块。
3.9机器人节点执行动作导致多目标采样环境的状态发生改变,机器人节点仿真模型的探测模块观察到新的场景状态sq+1,将sq+1发给第一存储模块。
3.10机器人节点仿真模型n的第一存储模块整合信息sq、sq+1、aq、rq,得到第q组轨迹经验信息[sq,aq,rq,sq+1],并将[sq,aq,rq,sq+1]存入第一存储模块的经验回放池。
3.11机器人节点仿真模型n的第一计算模块判断:若经验回放池中已经存满W条轨迹经验,则从经验回放池中随机抽取W条用于神经网络模型的训练(W的取值建议为100),并执行步骤3.12;否则,令i=i+1,转步骤3.6。
3.12机器人节点仿真模型n的第一计算模块按照抽取的先后顺序对W条轨迹经验进行编号1~W。同时初始化序号值p=0。
3.13机器人节点仿真模型n的第一计算模块从序号p开始按照抽取的先后顺序选取前w条轨迹经验,并将p更新为选取轨迹经验中最后一条的序号。w为小于等于W的正整数,w的取值范围为5~10。
3.14机器人节点仿真模型n的第一计算模块训练选取的w轨迹经验,并利用梯度下降法(一种经典的无约束优化问题解法,原理可参考https://www.jianshu.com/p/c7e642877b0e的数学解释部分)最小化损失函数L,从而优化Critic结构评价网络:
其中,Q代表Critic结构评价网络,Q′代表Critic结构目标网络,μ′代表Actor结构目标网络,而这三个字母紧跟的括号中的符号代表该网络的输入信息。μ′(sq+1)代表将sq+1输入到Actor结构目标网络中得到的行动指令,Q′(sq+1,μ′(sq+1))代表将状态sq+1和动作指令μ′(sq+1)输入到Critic结构目标网络得到的得分,Q(sq,aq)代表将状态sq和行动aq输入到Critic结构评价网络得到的得分。(rq+αQ′(sq+1,μ′(sq+1))-Q(sq,aq))代表对任务完成度评分以及两个神经网络得到的得分进行加权计算。
折扣因子α是0~1的常数,α的优选范围为0.2~0.3。
公式(1)部分来自于MDP(Markov decision process,译为“马尔科夫决策过程”),用于评估当前动作的奖励值,其中折扣因子α是0~1的常数(α的取值范围建议为0.2~0.3)。Actor结构目标网络根据下一个状态sq+1得到动作,Critic结构目标网络对sq+1和动作μ′(sq+1)做出评估,得到未来奖励的预估值,将此预估值乘以α和当前从环境中获取的奖励rq相加得到对当前动作的估计得分。同时,Critic结构评价网络也对当前的状态下的动作做出估计得到得分。将得到的两个估计得分相减得到差值,差值代表着Critic结构评价网络在优化参数前后的评价差异,将差值作为Critic结构评价网络的梯度优化目标,从而避免因方差过大导致的估计偏差。因此,通过最小化损失函数L可以有效的帮助Critic结构评价网络更好的对当前状态和动作做出合理的判断。
3.15机器人节点仿真模型n的第一计算模块训练选取的w轨迹经验,并利用梯度下降法最小化损失函数L‘,从而优化Actor结构策略网络:
其中,ρq(sq)表示在第q步时,Actor结构策略网络根据探测模块观测到的状态sq得到采取不同行动的概率分布,Q(sq,aq)表示Critic结构评价网络对当前的状态sq和机器人采取的动作aq做出的评价。策略网络更新的基本思想即是要尽可能获得Critic结构评价网络给予的尽可能高的评价,因此需要在L‘中加上负号才能使评价值最大化。
3.16若p+w>W,执行步骤3.17;否则,执行步骤3.13。
3.17机器人节点仿真模型n的第一计算模块按照公式(3)和公式(4)对Actor结构目标网络和Critic结构目标网络进行更新:
其中,分别表示在第q步时Critic结构评价网络、Critic结构目标网络、Actor结构策略网络、Actor结构目标网络的参数。其中参数中的下标q均表示在第i轮第q步时。τ1、τ2是0~1之间的常数,且取值范围建议为0.2~0.3之间。通过公式(3)、公式(4)实现了Soft-update(译为“软更新”)的思想,通过不完全更新来减缓训练的步伐,避免过度估计和训练。
3.18令q=q+1,若q等于设定的每轮第一最大步数Q,则执行步骤3.19;否则执行步骤3.6。
3.19令i=i+1,若i等于设定的最大训练轮数I,执行步骤3.20;否则执行步骤3.4。
3.20令m=m+1,若m等于M,执行步骤3.22;否则,执行步骤3.21。
3.21机器人节点仿真模型n的第一计算模块保留训练好的Actor结构策略网络中的所有参数,并以仿真多目标采样场景m加网络名字对其命名。同时计算模块清空Actor结构策略网络、Actor结构目标网络与Critic结构评价网络、critic结构目标网络中的所有参数并重新随机赋予初始值,清空第一存储模块的经验池,为新场景的训练做好准备。转步骤3.3。
3.22第一计算模块将Actor结构策略网络的参数保存为.data参数格式文件(.data参数格式的文件可由pytorch深度学习框架直接生成)。执行第四步。
N个机器人节点仿真模型并行执行第三步,得到了每个仿真场景下的N个.data参数格式文件,其记录了机器人在对应的仿真场景下的协同多目标采样策略,用于之后对机器人节点策略的进一步调整。
第四步,N个机器人节点仿真模型将记录多目标采样策略的.data参数格式文件上传到云端服务器节点,即将第三步训练得到的多目标采样策略保存到云端服务器节点,从而实现预训练阶段得到的多机器人多目标采样策略的保存与共享。N台机器人节点仿真模型并行执行以下步骤,以机器人节点仿真模型n为例来说明,具体步骤如下:
4.1机器人节点仿真模型n的第一计算模块将.data参数格式文件发送到第一通信模块。
4.2机器人节点仿真模型n的第一通信模块通过SSH通信服务,将.data参数格式文件发送至云端服务器节点的第二通信模块。
4.3云端服务器节点的第二通信模块将收到的.data参数格式文件保存在第二存储模块,作为未来进行知识转移的源模型的网络结构参数。
第五步,将第一步构建的多机器人系统部署在需要开展多目标采样任务的地点(即真实的未知的需要部署多机器人进行多目标采样的灾区等开放场景),利用仿真场景中训练好的策略即.data参数格式文件来帮助开放场景下的多机器人协同多目标采样任务策略进行训练,得到N个机器人节点的Actor结构策略网络,N个机器人节点的Actor结构策略网络共同构成多机器人自主协同多目标采样策略;方法是N台机器人节点并行执行以下步骤,以机器人节点n为例来说明,具体步骤如下:
5.1机器人节点n的第一通信模块向云端服务器节点的第二通信模块发送策略下载请求。
5.2第二通信模块从第二存储模块中读取与未知场景最为相似(如障碍物等环境要素相近)的仿真场景下训练好的.data参数格式文件,并将.data参数格式文件发送给第一通信模块。
5.3机器人节点n的第一通信模块将.data参数格式文件发送给机器人节点n的第一计算模块。
5.4机器人节点n的第一计算模块创建一个与多机器人系统中Actor结构策略网络结构相同的教师网络并加载.data参数格式文件中的信息(由Pytorch深度学习框架直接加载),将.data参数格式文件中保存的Actor结构策略网络参数赋值给机器人节点n的教师网络。
5.5对机器人节点n的Actor结构策略网络、Actor结构目标网络、Critic结构评价网络、Critic结构目标网络的网络结构参数进行初始化。参数包括每个神经网络内部每层之间的权重矩阵和偏置向量,按照期望为0、方差为2的正态分布随机生成每个神经网络内部每层之间的权重矩阵和偏置向量中的每个数字,N个机器人节点仿真模型的初始化过程相互独立。
5.6初始化机器人节点n的第一存储模块中的经验回放池为空。
5.7初始化机器人节点n已完成的行动步数k=0,并设定机器人节点n可执行的第二最大步数K(K的取值应保证机器人可在K步之内取得最佳策略,K的取值范围建议为20000~30000)。
5.8机器人节点n的第一计算模块的Actor结构策略网络从第一存储模块中获取当前多目标采样场景的状态sk并将其作为输入,得到网络的输出即动作指令ak,将ak发送给运动模块及第一存储模块;
5.9运动模块执行动作ak。
5.10在机器人节点n的运动模块执行动作ak后,机器人节点n的第一计算模块的公共计算子模块按照步骤2.4中设计的多目标采样任务完成度评价指标得到对当前多机器人系统的任务完成度的评分rk,将rk发送到机器人节点的第一存储模块。
5.11动作ak的执行导致多目标采样环境的状态发生改变,机器人节点n的探测模块观察到新的场景状态sk+1,将sk+1发给第一存储模块。
5.12机器人节点n的第一存储模块整合信息sk、sk+1、ak、rk,得到第k组轨迹经验信息[sk,ak,rk,sk+1],将[sk,ak,rk,sk+1]并存入第一存储模块的经验回放池。
5.13机器人节点n的第一计算模块中的公共计算子模块判断:若经验回放池中已经存满R条轨迹经验,则从经验回放池中随机抽取R条用于神经网络模型的训练(R的取值建议为100),并执行步骤5.14;否则,转步骤5.8。
5.14机器人节点n的第一计算模块的公共计算子模块读取R条轨迹经验,并利用梯度下降法最小化如公式(1)所示的损失函数L,从而更新Critic结构评价网络的参数,实现了Critic结构评价的优化。
5.15机器人节点n的第一计算模块的公共计算子模块根据当前读取的R条轨迹经验,计算损失函数L1:
其中,T代表步骤5.1中创建的教师网络,括号中的符号代表教师网络输入的状态,θT代表教师网络的网络参数,将状态sk作为教师网络的输入,得到教师网络根据状态sk判断的教师动作(教师动作是指教师网络根据预训练中获得的策略和当前机器人节点的状态作出的最佳动作)。该公式改自KL-散度(Kullback-Leibler),KL-散度可以用来衡量两个分布之间的差异,ak与两个动作概率分布之间的差异越大,L1的数也越大。
本步骤的主要思想是:当前机器人节点观察以往任务中训练好的Actor结构策略网络(即教师网络)在此时的状态下会作出哪种动作,并通过衡量自己的动作与教师网络的动作之间的差异来指导自己向教师网络看齐,从而模仿教师网络的动作并实现转移以往任务中学习到的策略知识的目的。
5.16机器人节点n的第一计算模块的公共计算子模块计算损失函数L2:
其中,ρk(sk)表示在第k步时,Actor结构策略网络根据探测模块观测到的状态sk得到采取不同行动的概率分布,而Q(sk,ak)表示Critic结构评价网络对当前的状态和机器人采取的动作做出的评价。策略网络更新的基本思想即是要尽可能获得Critic结构评价网络给予的尽可能高的评价,因此需要在L‘中加上负号才能使评价值最大化。
5.17机器人节点n的第一计算模块的公共计算子模块计算损失函数L‘并利用梯度下降法最小化L‘,从而优化Actor结构策略网络:
L‘=L1+L2公式(8)
以上三个步骤的主要思想即是,在机器人节点n中让Actor结构策略网络得到Critic评价网络尽可能高的评价(即在当前任务环境中优化自身决策动作表现)的同时,通过模仿教师网络根据机器人节点n的状态做出的动作,从而转移仿真环境中预训练好的策略知识,实现快速的、更好的训练。
5.18机器人节点仿真模型n的第一计算模块的公共计算子模块根据读取的R条轨迹经验,按照公式(3)对Actor结构目标网络、按照公式(4)对Critic结构目标网络进行更新。
5.19令k=k+1,若k达到第二最大步数K,代表多目标采样策略训练完毕,执行第六步;否则,执行步骤5.11。
执行完第五步后,每个机器人节点的Actor结构策略网络就是根据当前开放场景训练得到的多目标采样策略网络,能够实现根据机器人节点观测到的场景状态自主的决定机器人节点下一步采取的动作。N个机器人节点的Actor结构策略网络共同构成了多机器人自主协同多目标采样策略。
第六步,将N个机器人节点部署在第五步的开放场景(即需要开展多目标采样任务的地点)中。
第七步,多机器人系统根据第五步中获得的多机器人自主协同多目标采样策略,在开放场景下协同完成多目标采样任务。N台机器人节点并行执行以下步骤,以机器人节点n为例来说明,具体步骤如下:
7.1根据多目标采样任务要求,设置多机器人系统需要采样的多个目标点,并将所有目标点的坐标存放在列表L中,将L发送至机器人节点n的第一通信模块中,第一通信模块将列表L转发到第一计算模块中。机器人节点n的Actor结构策略网络从列表L中自主选择前往的目标点。
7.2初始化k=0。
7.3机器人节点n的探测模块探测任务场景状态sk(真实的多目标采样场景状态,状态包括周围机器人节点位置、障碍物位置等信息),将sk发送到机器人节点n的第一计算模块。
7.4机器人节点n的第一计算模块的公共计算子模块将从探测模块收到的状态sk以及列表L中选择的目标点位置组成一个二元组(sk,L中的目标点位置)。
7.5第一计算模块的Actor结构策略网络根据二元组进行动作决策,得到策略网络的输出ak,将ak发送给运动模块。
7.6机器人节点n的运动模块执行动作ak,即前往目标点移动。
7.7若机器人节点达到目标点位置附近d米内,d为正数(d的建议取值为0.2~0.5米),进行目标采样,并从列表L中删除d米内的目标点,执行步骤7.8;否则,令k=k+1,转步骤7.3。
7.8机器人节点n判断L中是否还有目标点,若仍有目标点尚未采样,则转步骤7.2;否则,执行第八步。
第八步,结束。
采用本发明可以达到如下的有益技术:
1.本发明第五步实现了多机器人在未知的开放环境中进行多目标采样时,基于仿真多目标采样场景中预训练好的策略,从策略中转移知识,从而快速形成对当前真实的开放场景下的多机器人协同多目标采样策略(即N个机器人的Actor结构策略网络),有效应对多机器人在开放场景下需要大量数据、大量时间制定策略的问题,有效节约了时间成本,从而达到更好的任务完成效果。
2.本发明第六步实现了多机器人根据当前多目标采样任务场景,自主形成协同完成任务的策略的效果,而不依赖于人为地针对不同的多目标采样任务场景专门设计行进路线和避障策略,从而不需要专业人士亦可按照步骤轻松完成任务。
3.本发明第三步第四步构建了一系列含有此类任务专业知识的策略网络,可用于多目标采样任务的多种场景,而并非面向某个特定场景。从而能够为真实场景下多机器人的策略提供帮助,使得第五步能面对不同场景下快速转移相似知识、帮助新的策略进行训练。
4.在基于Gazebo仿真环境的测试中,设立两个对照组。其中,对照组1是第二步多机器人系统在没有预训练好的策略网络的帮助下,一边探索任务环境一边形成协同多目标采样策略,对照组2是第七步多机器人系统在仿真环境下预训练好的策略网络的帮助下,一边从策略网络中转移知识,一边在真实任务场景下探索环境,最终形成协同多目标采样策略(在第三、四、五步中,采用多智能体深度确定性策略梯度MADDPG对方法进行了说明)。本发明在改变了环境条件、目标任务、智能体数目设置的情况下,均取得了在更短时间内达到良好协同策略的效果。
附图说明
图1是本发明第一步构建的多机器人自主协同多目标采样系统逻辑结构图。
图2是本发明的总体流程图。
图3是本发明第一步构建的多机器人自主协同多目标采样系统中软件模块部署示意图。在第三步预训练阶段中,机器人节点的第一计算模块中无教师网络,在第五步真实的多机器人协同多目标采样任务训练中,机器人节点的第一计算模块有教师网络。
图4是在仿真环境中本发明的效果测试实验示意图。
图5是针对图四中效果测试实验的实验结果图。图5(a)为通过利用任务一中预训练得到的策略网络来转移知识,机器人节点在任务二中的训练结果;图5(b)为通过利用任务一中预训练得到的策略网络来转移知识,机器人节点在任务三中的训练结果。
具体实施方式
图2是本发明总体流程图。如图2所示,本发明包括以下步骤:
第一步,构建如图1所示的多机器人系统,多机器人系统由N个机器人节点和云端服务器节点构成,N为正整数。每个机器人节点工作方式相同,都是可运行软件程序的且具有运动、观测、通信等能力的机器人硬件设备,如地面机器人Turtlebot3、无人机Intelaero等,每个机器人节点都包括多个模块(第一通信模块、探测模块、第一计算模块、第一存储模块、运动模块)。
如图3所示:
探测模块是采集任务环境数据的传感器,包括扫描雷达、红外摄像头、深度摄像头等。探测模块与第一存储模块相连,探测模块每隔t秒周期性地对可见范围内的环境和除所属机器人节点以外的另N-1台机器人节点进行拍摄或扫描,得到当前任务场景状态,将当前场景状态发送给第一存储模块。t建议取值范围为0.3~1秒。
第一存储模块是可用空间1GB以上的存贮器,与探测模块和第一计算模块相连,第一存储模块中有一个经验回放池,经验回放池用于存储第一存储模块所属机器人(令为机器人节点n,1≤n≤N)的最近的H条轨迹经验信息(H的取值范围建议为5000~10000)(此处的H是指经验回放池的大小,最多能存放最近的H条轨迹经验信息),其中第h(1≤h≤H)条轨迹经验信息的格式表示为[sh,ah,rh,sh+1],其中,sh代表探测模块第h次观察到的场景状态,sh主要包括第h次观察到的除机器人节点n以外的另N-1台机器人节点、所有采样目标、所有环境障碍物的位置坐标和另外N-1台机器人节点的速度。ah代表在探测模块第h次观测和第h+1次观测两个时间点之间,机器人节点n所采取的行动,表现为机器人节点n向某个方向加速或施加作用力的动作。机器人节点n在执行时,自动记录下ah。rh是探测模块在第h+1次观察时,根据第h次观察到的场景状态计算出的任务完成度评价得分。sh+1是探测模块第h+1次观测到的场景状态,sh+1主要包括第h+1次观察到的除本机器人节点n以外的另N-1台机器人节点、所有采样目标、所有环境障碍物的位置坐标和另外N-1台机器人节点的速度。从逻辑关系出发,sh+1可以为由sh经过机器人行为ah后所得到的新的场景状态。
第一计算模块负责制定和优化搜救策略,并根据搜救策略向运动模块发送行动指令。第一计算模块与第一存储模块、运动模块、第一通信模块相连,安装有Ubuntu16.04操作系统(用于X86架构处理器)以及基于Ubuntu16.04操作系统的ROS(机器人操作系统)以及深度学习框架(Pytorch0.3.0.post4)。第一计算模块包含4个全连接神经网络以及公共计算子模块,4个全连接神经网络均使用pytorch深度学习框架创建,分属用于形成行动指令的Actor(演员)结构和用于优化策略的Critic(评论家)结构,Actor结构包括Actor结构策略网络、Actor结构目标网络;Critic结构包括Critic结构评价网络、Critic结构目标网络。这四个神经网络结构相同,为四个神经网络随机赋予初始参数,包括每个神经元的权重,每个神经网络的层数a、每层的神经元个数b,a、b为正整数,a的取值范围建议为4~8,b的取值范围建议为64~256。Actor结构策略网络从第一存储模块的经验回放池中读取W条(W<H,建议取值为100)轨迹经验信息和当前状态,根据当前状态制定下一步的行动指令,将自身的网络参数(即每层网络之间权重矩阵和偏置向量的参数值,这些参数值即为“策略”,因此自身的网络参数即称为策略网络参数)发送给Actor结构目标网络,将下一步的行动指令发送给运动模块;Actor结构目标网络从Actor结构策略网络获取策略网络参数,完成Actor结构策略网络的更新。Critic结构评价网络同样从第一存储模块接收W条轨迹经验信息,从Critic结构目标网络接收损失函数度量值,该度量值代表Critic结构评价网络对该状态下机器人节点动作价值判断的准确程度,从而帮助自己更准确的对动作价值作出评价,并将自身网络参数发送给Critic结构目标网络,完成Critic结构目标网络的更新。Critic结构评价网络向Actor结构策略网络发送当前Actor结构策略网络所采取的动作的评价值,Actor结构策略网络通过学习如何获取更高的动作评价值来制定更理想的动作指令。Critic结构目标网络从Critic结构评价网络接收Critic结构评价网络的网络参数,并将损失函数度量值发送给Critic结构评价网络。第一计算模块将Actor结构策略网络参数保存为一个.data参数格式文件并发送到第一通信模块。机器人节点每隔t秒进行一次观测并执行一个动作指令,定义为机器人节点每隔t秒执行一步行动,t建议取值范围为0.3~1秒。每一步行动后,第一计算模块从第一存储模块接收到W条轨迹经验信息和当前状态,一方面第一计算模块从W条轨迹经验信息中找到当前状态,将当前状态输入到Actor结构策略网络中,得到并输出下一步的行动指令;另一方面,第一计算模块根据这W条轨迹信息,对全部四个神经网络的参数进行更新,在行动完成后,将保存有Actor结构策略网络的参数文件发送给第一通信模块;公共计算子模块与Actor结构策略网络、Critic结构目标网络、第一存储模块、探测模块相连,主要负责完成各类计算任务,其可根据损失函数公式计算损失函数度量值并将损失函数度量值发送给对应的Actor结构策略网络、Critic结构目标网络,同时亦负责根据多目标任务完成度评价指标来计算任务完成度评分并发送给第一存储模块以及将从探测模块收到的状态信息与目标点位置信息进行组合,并完成第一计算模块中的各类判断任务;
在面向真实的开放场景时,第一计算模块创建一个与预训练阶段中多机器人系统中Actor结构策略网络结构相同的教师网络,并加载由第一通信模块发来的预训练阶段训练好的Actor结构策略网络的.data参数格式文件中的信息,将.data参数格式文件中保存的Actor结构策略网络参数赋值给教师网络,教师网络将机器人节点状态作为输入可得到教师动作(教师动作是指教师网络根据预训练中获得的策略和当前机器人节点的状态作出的最佳动作)。
Actor结构策略网络从第一存储模块读取第k步的状态sk,经过与Actor结构策略网络每层神经元之间权重矩阵相乘、与每层神经元之间偏置向量相加的逐层传递过程,最终在Actor结构策略网络最后一层计算得到行动指令ak;从宏观上,Actor结构策略网络实现了让机器人节点根据当前观察到的场景状态,自主决定下一步的行动,因此,Actor结构策略网络的网络参数体现了根据当前状态应采取哪种动作指令,也即体现了本发明的“策略”。每个机器人节点拥有独立的Actor结构策略网络参数,能自主决定自身行为,并可以在不进行机器人节点间通信的情况下,仅依靠互相观察实现自主协同。除Actor结构策略网络外的其他三个神经网络主要用于指导和辅助Actor结构策略网络进行更新。
运动模块由数模转换器和马达、轮胎等驱动装置构成。运动模块与第一计算模块相连,从第一计算模块接收行动指令,通过内置的数模转换器将数字信号转换为模拟信号,并将模拟信号传输给驱动装置,使机器人根据行动指令做出相应动作,导致场景发生改变。
第一通信模块(如无线网卡)与第一计算模块、云端服务器节点相连,第一通信模块从第一计算模块接收记录参数的.data参数格式文件,通过SSH(Secure Shell,一种网络服务安全协议)通信服务将.data参数格式文件发送给云端服务器节点。
云端服务器节点是指工作站、服务器等云端设备,安装有第二通信模块(如无线网卡)、第二存储模块(要求采用容量大于100GB的硬盘)。
云端服务器节点的第二存储模块与第二通信模块相连,第二存储模块安装有Ubuntu16.04操作系统(用于X86架构处理器)以及与机器人节点相同版本的深度学习框架(Pytorch0.3.0.post4),用于存储预训练好的.data参数格式文件。第二通信模块与第二存储模块、N个机器人节点的第一通信模块相连,通过SSH同时与N个机器人节点进行通信。
第二步,安装Gazebo仿真环境,并构建M个多目标采样仿真场景,为预训练做准备,M为正整数(M应不少于20,且在计算资源充足的情况下M越大越好)。具体步骤如下:
2.1在任意一台装有Ubuntu16.04以及以上版本的电脑上安装并运行Gazebo仿真环境(从http://gazebosim.org下载,要求版本9.10.0以上),并仿照第一步构建的多机器人系统中N个机器人节点的实际结构、尺寸,构建对应N个机器人节点仿真模型。
2.2在仿真环境中,对多目标采样环境中可能出现的多种环境要素(如障碍物、建筑物、动物、目标点等)进行等比例建模,得到各种场景要素的仿真模型。
2.3随机选择N个机器人节点模型和数量随机的多种环境要素,并随机模拟机器人和各种要素的初始位置,从而形成多个多目标采样任务场景,用于模拟真实场景中的各种现实条件。随机选取以上设计的机器人节点仿真模型和场景要素仿真模型的种类、数目和初始位置坐标,形成M个多目标采样任务场景,,用来模拟M次多目标采样的现场条件。
2.4设计多目标采样任务完成度评价指标,用于对当前多机器人多目标采样任务策略在仿真环境下的效果做出评价,通常采用对多种环境要素衡量进行打分并累计求和的方式。如机器人节点仿真模型距离目标点每间隔1米则扣1分;机器人节点仿真模型在运动过程中每碰撞一次其他机器人节点仿真模型则扣2分;机器人节点仿真模型在运动过程中每碰撞一次障碍物则扣3分等;比如在某时间点机器人节点仿真模型距离目标点5米,从开始运动到该时间点的过程中,该机器人共碰撞4次其他机器人节点仿真模型和2次障碍物,则该时间点获得分数为-(5*1+4*2+2*3)=-19分。任务完成度评价指标由用户根据任务的现场条件制定,原则是对促进完成任务目标的行为进行加分,对干扰任务完成的行为进行扣分。
第三步,将N个机器人节点仿真模型在第二步构建好的M个多目标采样任务仿真场景中进行预训练,得到记录了机器人在对应的仿真场景下的协同多目标采样策略的N个.data参数格式文件;以多机器人强化学习算法MADDPG为例来阐述预训练过程,但预训练并不仅限于此算法,其他强化学习算法例如MAAC亦可参考以下步骤实现预训练。N台机器人节点仿真模型并行执行以下步骤,机器人节点仿真模型n的执行过程如下,1≤n≤N:
3.1机器人节点仿真模型n的第一计算模块进行初始化,即第一计算模块中的四个神经网络对参数进行初始化,参数包括每个神经网络内部每层之间的权重矩阵和偏置向量,按照期望为0、方差为2的正态分布随机生成每个神经网络内部每层之间的权重矩阵和偏置向量中的每个数字,N个机器人节点仿真模型的初始化过程相互独立。
3.2初始化循环变量m=1。
3.3在仿真环境中从M个多目标采样任务场景选取第m个任务场景,并命名为仿真多目标采样场景m。初始化训练周期序号i=0,并设定最大训练周期序号I(I为正整数,建议取值范围为4000~10000)。
3.4在仿真环境中随机初始化每个机器人节点以及目标点、环境中各类元素的初始位置。
3.5初始化在第i个训练周期中机器人行动的步数q=0,并设定第i个训练周期中机器人可执行的第一最大步数Q,Q的取值应保证在每个周期中,机器人可在Q步之内取得最佳策略,Q的取值范围建议为25~50;
3.6机器人节点仿真模型n的第一计算模块从第一存储模块获取当前多目标采样仿真场景的状态sq,并将sq输入到Actor结构策略网络,得到网络的输出即动作指令aq,将aq其发送给运动模块及第一存储模块;
3.7运动模块执行动作aq。
3.8按照步骤2.4中设计的评价指标,Gazebo仿真环境自动计算aq当前的任务完成度评分rq,将rq发送到机器人节点仿真模型n中的第一存储模块。
3.9机器人节点执行动作导致多目标采样环境的状态发生改变,机器人节点仿真模型的探测模块观察到新的场景状态sq+1,将sq+1发给第一存储模块。
3.10机器人节点仿真模型n的第一存储模块整合信息sq、sq+1、aq、rq,得到第q组轨迹经验信息[sq,aq,rq,sq+1],并将[sq,aq,rq,sq+1]存入第一存储模块的经验回放池。
3.11机器人节点仿真模型n的第一计算模块判断:若经验回放池中已经存满W条轨迹经验,则从经验回放池中随机抽取W条用于神经网络模型的训练(W的取值建议为100),并执行步骤3.12;否则,令i=i+1,转步骤3.6。
3.12机器人节点仿真模型n的第一计算模块按照抽取的先后顺序对W条轨迹经验进行编号1~W。同时初始化序号值p=0。
3.13机器人节点仿真模型n的第一计算模块从序号p开始按照抽取的先后顺序选取前w条轨迹经验,并将p更新为选取轨迹经验中最后一条的序号。w为小于等于W的正整数,w的取值范围为5~10。
3.14机器人节点仿真模型n的第一计算模块训练选取的w轨迹经验,并利用梯度下降法最小化损失函数L,从而优化Critic结构评价网络:
其中,Q代表Critic结构评价网络,Q′代表Critic结构目标网络,μ′代表Actor结构目标网络,而这三个字母紧跟的括号中的符号代表该网络的输入信息。μ′(sq+1)代表将sq+1输入到Actor结构目标网络中得到的行动指令,Q′(sq+1,μ′(sq+1))代表将状态sq+1和动作指令μ′(sq+1)输入到Critic结构目标网络得到的得分,Q(sq,aq)代表将状态sq和行动aq输入到Critic结构评价网络得到的得分。(rq+αQ′(sq+1,μ′(sq+1))-Q(sq,aq))代表对任务完成度评分以及两个神经网络得到的得分进行加权计算。
折扣因子α是0~1的常数,α的优选范围为0.2~0.3。
公式(1)部分来自于MDP(Markov decision process,译为“马尔科夫决策过程”),用于评估当前动作的奖励值,其中折扣因子α是0~1的常数(α的取值范围建议为0.2~0.3)。Actor结构目标网络根据下一个状态sq+1得到动作,Critic结构目标网络对sq+1和动作μ′(sq+1)做出评估,得到未来奖励的预估值,将此预估值乘以α和当前从环境中获取的奖励rq相加得到对当前动作的估计得分。同时,Critic结构评价网络也对当前的状态下的动作做出估计得到得分。将得到的两个估计得分相减得到差值,差值代表着Critic结构评价网络在优化参数前后的评价差异,将差值作为Critic结构评价网络的梯度优化目标,从而避免因方差过大导致的估计偏差。因此,通过最小化损失函数L可以有效的帮助Critic结构评价网络更好的对当前状态和动作做出合理的判断。
3.15机器人节点仿真模型n的第一计算模块训练选取的w轨迹经验,并利用梯度下降法最小化损失函数L‘,从而优化Actor结构策略网络:
其中,ρq(sq)表示在第q步时,Actor结构策略网络根据探测模块观测到的状态sq得到采取不同行动的概率分布,Q(sq,aq)表示Critic结构评价网络对当前的状态sq和机器人采取的动作aq做出的评价。策略网络更新的基本思想即是要尽可能获得Critic结构评价网络给予的尽可能高的评价,因此需要在L‘中加上负号才能使评价值最大化。
3.16若p+w>W,执行步骤3.17;否则,执行步骤3.13。
3.17机器人节点仿真模型n的第一计算模块按照公式(3)和公式(4)对Actor结构目标网络和Critic结构目标网络进行更新:
其中,分别表示在第q步时Critic结构评价网络、Critic结构目标网络、Actor结构策略网络、Actor结构目标网络的参数。其中参数中的下标q均表示在第i轮第q步时。τ1、τ2是0~1之间的常数,且取值范围建议为0.2~0.3之间。通过公式(3)、公式(4)实现了Soft-update(译为“软更新”)的思想,通过不完全更新来减缓训练的步伐,避免过度估计和训练。
3.18令q=q+1,若q等于设定的每轮第一最大步数Q,则执行步骤3.19;否则执行步骤3.6。
3.19令i=i+1,若i等于设定的最大训练轮数I,执行步骤3.20;否则执行步骤3.4。
3.20令m=m+1,若m等于M,执行步骤3.22;否则,执行步骤3.21。
3.21机器人节点仿真模型n的第一计算模块保留训练好的Actor结构策略网络中的所有参数,并以仿真多目标采样场景m加网络名字对其命名。同时计算模块清空Actor结构策略网络、Actor结构目标网络与Critic结构评价网络、critic结构目标网络中的所有参数并重新随机赋予初始值,清空第一存储模块的经验池,为新场景的训练做好准备。转步骤3.3。
3.22第一计算模块将Actor结构策略网络的参数保存为.data参数格式文件(.data参数格式的文件可由pytorch深度学习框架直接生成)。执行第四步。
N个机器人节点仿真模型并行执行第三步,得到了每个仿真场景下的N个.data参数格式文件,其记录了机器人在对应的仿真场景下的协同多目标采样策略,用于之后对机器人节点策略的进一步调整。
第四步,N个机器人节点仿真模型将记录多目标采样策略的.data参数格式文件上传到云端服务器节点,即将第三步训练得到的多目标采样策略保存到云端服务器节点,从而实现预训练阶段得到的多机器人多目标采样策略的保存与共享。N台机器人节点仿真模型并行执行以下步骤,以机器人节点仿真模型n为例来说明,具体步骤如下:
4.1机器人节点仿真模型n的第一计算模块将.data参数格式文件发送到第一通信模块。
4.2机器人节点仿真模型n的第一通信模块通过SSH通信服务,将.data参数格式文件发送至云端服务器节点的第二通信模块。
4.3云端服务器节点的第二通信模块将收到的.data参数格式文件保存在第二存储模块,作为未来进行知识转移的源模型的网络结构参数。
第五步,将第一步构建的多机器人系统部署在需要开展多目标采样任务的地点(即真实的未知的需要部署多机器人进行多目标采样的灾区等开放场景),利用仿真场景中训练好的策略即.data参数格式文件来帮助开放场景下的多机器人协同多目标采样任务策略进行训练,得到N个机器人节点的Actor结构策略网络,N个机器人节点的Actor结构策略网络共同构成多机器人自主协同多目标采样策略;方法是N台机器人节点并行执行以下步骤,以机器人节点n为例来说明,具体步骤如下:
5.1机器人节点n的第一通信模块向云端服务器节点的第二通信模块发送策略下载请求。
5.2第二通信模块从第二存储模块中读取与未知场景最为相似(如障碍物等环境要素相近)的仿真场景下训练好的.data参数格式文件,并将.data参数格式文件发送给第一通信模块。
5.3机器人节点n的第一通信模块将.data参数格式文件发送给机器人节点n的第一计算模块。
5.4机器人节点n的第一计算模块创建一个与多机器人系统中Actor结构策略网络结构相同的教师网络并加载.data参数格式文件中的信息(由Pytorch深度学习框架直接加载),将.data参数格式文件中保存的Actor结构策略网络参数赋值给机器人节点n的教师网络。
5.5对机器人节点n的Actor结构策略网络、Actor结构目标网络、Critic结构评价网络、Critic结构目标网络的网络结构参数进行初始化。参数包括每个神经网络内部每层之间的权重矩阵和偏置向量,按照期望为0、方差为2的正态分布随机生成每个神经网络内部每层之间的权重矩阵和偏置向量中的每个数字,N个机器人节点仿真模型的初始化过程相互独立。
5.6初始化机器人节点n的第一存储模块中的经验回放池为空。
5.7初始化机器人节点n已完成的行动步数k=0,并设定机器人节点n可执行的第二最大步数K(K的取值应保证机器人可在K步之内取得最佳策略,K的取值范围建议为20000~30000)。
5.8机器人节点n的第一计算模块的Actor结构策略网络从第一存储模块中获取当前多目标采样场景的状态sk并将其作为输入,得到网络的输出即动作指令ak,将ak发送给运动模块及第一存储模块;
5.9运动模块执行动作ak。
5.10在机器人节点n的运动模块执行动作ak后,机器人节点n的第一计算模块的公共计算子模块按照步骤2.4中设计的多目标采样任务完成度评价指标得到对当前多机器人系统的任务完成度的评分rk,将rk发送到机器人节点的第一存储模块。
5.11动作ak的执行导致多目标采样环境的状态发生改变,机器人节点n的探测模块观察到新的场景状态sk+1,将sk+1发给第一存储模块。
5.12机器人节点n的第一存储模块整合信息sk、sk+1、ak、rk,得到第k组轨迹经验信息[sk,ak,rk,sk+1],将[sk,ak,rk,sk+1]并存入第一存储模块的经验回放池。
5.13机器人节点n的第一计算模块中的公共计算子模块判断:若经验回放池中已经存满R条轨迹经验,则从经验回放池中随机抽取R条用于神经网络模型的训练(R的取值建议为100),并执行步骤5.14;否则,转步骤5.8。
5.14机器人节点n的第一计算模块的公共计算子模块读取R条轨迹经验,并利用梯度下降法最小化如公式(1)所示的损失函数L,从而更新Critic结构评价网络的参数,实现了Critic结构评价的优化。
5.15机器人节点n的第一计算模块的公共计算子模块根据当前读取的R条轨迹经验,计算损失函数L1:
其中,T代表步骤5.1中创建的教师网络,括号中的符号代表教师网络输入的状态,θT代表教师网络的网络参数,将状态sk作为教师网络的输入,得到教师网络根据状态sk判断的教师动作(教师动作是指教师网络根据预训练中获得的策略和当前机器人节点的状态作出的最佳动作)。该公式改自KL-散度(Kullback-Leibler),KL-散度可以用来衡量两个分布之间的差异,ak与两个动作概率分布之间的差异越大,L1的数也越大。
5.16机器人节点n的第一计算模块的公共计算子模块计算损失函数L2:
其中,ρk(sk)表示在第k步时,Actor结构策略网络根据探测模块观测到的状态sk得到采取不同行动的概率分布,而Q(sk,ak)表示Critic结构评价网络对当前的状态和机器人采取的动作做出的评价。策略网络更新的基本思想即是要尽可能获得Critic结构评价网络给予的尽可能高的评价,因此需要在L‘中加上负号才能使评价值最大化。
5.17机器人节点n的第一计算模块的公共计算子模块计算损失函数L‘并利用梯度下降法最小化L‘,从而优化Actor结构策略网络:
L‘=L1+L2公式(8)
以上三个步骤的主要思想即是,在机器人节点n中让Actor结构策略网络得到Critic评价网络尽可能高的评价(即在当前任务环境中优化自身决策动作表现)的同时,通过模仿教师网络根据机器人节点n的状态做出的动作,从而转移仿真环境中预训练好的策略知识,实现快速的、更好的训练。
5.18机器人节点仿真模型n的第一计算模块的公共计算子模块根据读取的R条轨迹经验,按照公式(3)对Actor结构目标网络、按照公式(4)对Critic结构目标网络进行更新。
5.19令k=k+1,若k达到第二最大步数K,代表多目标采样策略训练完毕,执行第六步;否则,执行步骤5.11。
执行完第五步后,每个机器人节点的Actor结构策略网络就是根据当前开放场景训练得到的多目标采样策略网络,能够实现根据机器人节点观测到的场景状态自主的决定机器人节点下一步采取的动作。N个机器人节点的Actor结构策略网络共同构成了多机器人自主协同多目标采样策略。
第六步,将N个机器人节点部署在第五步的开放场景(即需要开展多目标采样任务的地点)中。
第七步,多机器人系统根据第五步中获得的多机器人自主协同多目标采样策略,在开放场景下协同完成多目标采样任务。N台机器人节点并行执行以下步骤,以机器人节点n为例来说明,具体步骤如下:
7.1根据多目标采样任务要求,设置多机器人系统需要采样的多个目标点,并将所有目标点的坐标存放在列表L中,将L发送至机器人节点n的第一通信模块中,第一通信模块将列表L转发到第一计算模块中。机器人节点n的Actor结构策略网络从列表L中自主选择前往的目标点。
7.2初始化k=0。
7.3机器人节点n的探测模块探测任务场景状态sk(真实的多目标采样场景状态,状态包括周围机器人节点位置、障碍物位置等信息),将sk发送到机器人节点n的第一计算模块。
7.4机器人节点n的第一计算模块的公共计算子模块将从探测模块收到的状态sk以及列表L中选择的目标点位置组成一个二元组(sk,L中的目标点位置)。
7.5第一计算模块的Actor结构策略网络根据二元组进行动作决策,得到策略网络的输出ak,将ak发送给运动模块。
7.6机器人节点n的运动模块执行动作ak,即前往目标点移动。
7.7若机器人节点达到目标点位置附近d米内,d为正数(d的建议取值为0.2~0.5米),进行目标采样,并从列表L中删除d米内的目标点,执行步骤7.8;否则,令k=k+1,转步骤7.3。
7.8机器人节点n判断L中是否还有目标点,若仍有目标点尚未采样,则转步骤7.2;否则,执行第八步。
第八步,结束。
本发明的效果通过以下仿真环境中的实验进行说明:
本发明效果测试在多机器人粒子环境(Multi-Agent Particle Environment,网址https://github.com/openai/multiagent-particle-envs)中展开,该环境基于真实物理引擎,存在惯性因素、摩擦力因素等客观物理因素。任务目标是多机器人系统仅能通过探测模块的观察信息,自主分工实现追逐多个目标点。实验所用电脑安装Ubuntu18.04 64位操作系统;搭载英特尔酷睿(Intel Core)i7-4790八核中央处理器,处理频率为3.6GHz;搭载AMD Cape verde图形处理器;内存容量为16GB。
图4是在仿真环境中本发明的效果测试实验,其中较大的灰色点代表机器人,较小的黑色点代表目标点:任务一代表在第三、四步中的预训练仿真任务场景(即可知的多目标采样任务仿真场景),任务环境设置为四个机器人追逐四个目标点,机器人与目标点距离越近、任务完成度评分越高,并且机器人之间的碰撞等不理智行为会被扣除任务完成度评分,被给予惩罚,该环境基于真实物理引擎,存在惯性因素、摩擦力因素等。而任务二、任务三代表在第五步、第六步中面临的多目标采样真实场景(即本发明中所指的开放场景)的仿真示意图,任务二的环境设置为六个机器人追逐六个目标点,任务三的环境设置为八个机器人追逐八个目标点,奖励的设置与任务一中相同,在达到每个周期的最大步数时,机器人距离目标点越近,评分越高,且机器人之间碰撞越少受到的惩罚越少。
图5是针对图四中效果测试实验的实验结果图。实验均重复100次以上。所有任务的效果均通过当前周期结束后每一步行动得到的平均多目标采样任务完成度评价指标度量值(即任务完成度评分)来衡量,数值越小代表当前周期内机器人的行动越明智、学习效果越好,机器人与目标点距离越近、任务完成度评分越高,并且机器人之间的碰撞等不理智行为会被扣除任务完成度评分,被给予惩罚。实验设置中,Actor结构策略网络、Actor结构目标网络、Critic结构评价网络、Critic结构目标网络、教师网络均为4层64个神经元(即a=4,b=64)的全连接网络,一个周期内机器人可行动25步(即K=25),训练周期为5000(即I=5000),机器人节点仿真模型每次从第一存储模块的经验回放池中读取100条轨迹经验信息(即W=100)。图5中,横坐标代表场景训练的周期(即I);纵坐标代表当前周期结束后每一步行动得到的平均多目标采样任务完成度评价指标度量值(即任务完成度评分r),数值越小代表当前周期内机器人的行动越明智、学习效果越好。实验中,转移的云端服务器节点模型即为任务一中训练好的策略网络,多机器人节点均是通过转移该模型的知识,来完成任务二、任务三。本测试实验设置了包括两个对照组在内的三个组:其中组一设置为多机器人系统直接基于背景技术(MADDPG)在真实场景中一边训练一边形成多目标采样策略,组二设置为使用任务一的教师网络且直接基于背景技术(MADDPG)在真实场景中训练、形成多目标采样策略,目的在于验证背景技术中所提到的模型与任务之间的相关性,并证明直接基于过去训练好的模型再进行训练的思路是不可行的。组三使用本发明中设计的面向开放未知场景的多机器人协同多目标采样任务方法。图5(a)为通过利用任务一中预训练得到的策略网络来转移知识,机器人节点在任务二中的训练结果,图5(b)为通过利用任务一中预训练得到的策略网络来转移知识,机器人节点在任务三中的训练结果,本实验意在转移预训练的策略网络中的知识,帮助新任务下的多机器人追逐多目标点,并且在新任务下改变机器人数目和目标数目来测试本发明方法的有效性。
通过观察图5(a)、图5(b)中的结果,可以看出随着执行轮数的增加,不同方法的任务完成度评分都出现波动,但都整体呈现增大的趋势。但可以明显看出本发明方法在执行开始时的任务完成度评分就已经远远大于其他方法的任务完成度评分,表现出良好的优越性,并且无论是在任务完成度评分增大速度(训练速度)或是达到指定任务完成度评分所需的时间(训练效果)上,都明显好于其他两种方法。本发明方法无论是在训练开始阶段的表现还是在训练速度和训练效果上都明显优于其他两种方法,体现出本发明方法在面对开放环境时能够快速形成表现良好的策略,从而通过本仿真测试实验进一步佐证了本发明的可行性以及其应用价值。
以上对本发明所提供的一种面向开放场景的多机器人协同多目标采样方法进行了详细介绍。本文对本发明的原理及实施方式进行了阐述,以上说明用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通研究人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (11)
1.一种面向开放场景的多机器人协同多目标采样方法,其特征在于包括以下步骤:
第一步,构建多机器人系统,多机器人系统由N个机器人节点和云端服务器节点构成,N为正整数;每个机器人节点工作方式相同,都是可运行软件程序的且具有运动、观测、通信等能力的机器人硬件设备,每个机器人节点都包括第一通信模块、探测模块、第一计算模块、第一存储模块、运动模块;
探测模块是采集任务环境数据的传感器;探测模块与第一存储模块相连,探测模块每隔t秒周期性地对可见范围内的环境和除所属机器人节点以外的另N-1台机器人节点进行拍摄或扫描,得到当前任务场景状态,将当前场景状态发送给第一存储模块;
第一存储模块是可用空间1GB以上的存贮器,与探测模块和第一计算模块相连,第一存储模块中有一个经验回放池,经验回放池用于存储第一存储模块所属机器人即机器人节点n的最近的H条轨迹经验信息,1≤n≤N,其中第h条轨迹经验信息的格式为[sh,ah,rh,sh+1],1≤h≤H,sh代表探测模块第h次观察到的场景状态,sh包括第h次观察到的除机器人节点n以外的另N-1台机器人节点、所有采样目标、所有环境障碍物的位置坐标和另外N-1台机器人节点的速度;ah代表在探测模块第h次观测和第h+1次观测两个时间点之间,机器人节点n所采取的行动,表现为机器人节点n向某个方向加速或施加作用力的动作;机器人节点n在执行时,自动记录下ah;rh是探测模块在第h+1次观察时,根据第h次观察到的场景状态计算出的任务完成度评价得分;sh+1是探测模块第h+1次观测到的场景状态,sh+1包括第h+1次观察到的除本机器人节点n以外的另N-1台机器人节点、所有采样目标、所有环境障碍物的位置坐标和另外N-1台机器人节点的速度;sh+1为由sh经过机器人行为ah后所得到的新的场景状态;
第一计算模块负责制定和优化搜救策略,并根据搜救策略向运动模块发送行动指令;第一计算模块与第一存储模块、运动模块、第一通信模块相连,安装有Ubuntu16.04操作系统以及基于Ubuntu16.04操作系统的ROS以及深度学习框架;第一计算模块包含4个全连接神经网络以及公共计算子模块,4个全连接神经网络均使用深度学习框架创建,分属用于形成行动指令的Actor结构和用于优化策略的Critic结构,Actor结构包括Actor结构策略网络、Actor结构目标网络;Critic结构包括Critic结构评价网络、Critic结构目标网络;这四个神经网络结构相同,为四个神经网络随机赋予初始参数,包括每个神经元的权重,每个神经网络的层数a、每层的神经元个数b,a、b为正整数;Actor结构策略网络从第一存储模块的经验回放池中读取W条轨迹经验信息和当前状态,W<H;根据当前状态制定下一步的行动指令,将自身的网络参数即策略网络参数发送给Actor结构目标网络,将下一步的行动指令发送给运动模块;Actor结构目标网络从Actor结构策略网络获取策略网络参数,完成Actor结构策略网络的更新;Critic结构评价网络同样从第一存储模块接收W条轨迹经验信息,从Critic结构目标网络接收损失函数度量值,该度量值代表Critic结构评价网络对该状态下机器人节点动作价值判断的准确程度,从而帮助自己更准确的对动作价值作出评价,并将自身网络参数发送给Critic结构目标网络,完成Critic结构目标网络的更新;Critic结构评价网络向Actor结构策略网络发送当前Actor结构策略网络所采取的动作的评价值,Actor结构策略网络通过学习如何获取更高的动作评价值来制定更理想的动作指令;Critic结构目标网络从Critic结构评价网络接收Critic结构评价网络的网络参数,并将损失函数度量值发送给Critic结构评价网络;第一计算模块将Actor结构策略网络参数保存为一个.data参数格式文件并发送到第一通信模块;机器人节点每隔t秒进行一次观测并执行一个动作指令,定义为机器人节点每隔t秒执行一步行动;每一步行动后,第一计算模块从第一存储模块接收到W条轨迹经验信息和当前状态,一方面第一计算模块从W条轨迹经验信息中找到当前状态,将当前状态输入到Actor结构策略网络中,得到并输出下一步的行动指令;另一方面,第一计算模块根据这W条轨迹信息,对全部四个神经网络的参数进行更新,在行动完成后,将保存有Actor结构策略网络的参数文件发送给第一通信模块;公共计算子模块与Actor结构策略网络、Critic结构目标网络、第一存储模块、探测模块相连,负责完成各类计算任务,根据损失函数公式计算损失函数度量值并将损失函数度量值发送给对应的Actor结构策略网络、Critic结构目标网络,同时根据多目标任务完成度评价指标计算任务完成度评分并发送给第一存储模块以及将从探测模块收到的状态信息与目标点位置信息进行组合,完成第一计算模块中的各类判断任务;
在面向真实的开放场景时,第一计算模块创建一个与预训练阶段中多机器人系统中Actor结构策略网络结构相同的教师网络,并加载由第一通信模块发来的预训练阶段训练好的Actor结构策略网络的.data参数格式文件中的信息,将.data参数格式文件中保存的Actor结构策略网络参数赋值给教师网络,教师网络根据机器人节点状态得到教师动作即教师网络根据预训练中获得的策略和当前机器人节点的状态作出的最佳动作;
Actor结构策略网络从第一存储模块读取第k步的状态sk,经过与Actor结构策略网络每层神经元之间权重矩阵相乘、与每层神经元之间偏置向量相加的逐层传递过程,最终在Actor结构策略网络最后一层计算得到行动指令ak;每个机器人节点拥有独立的Actor结构策略网络参数,能自主决定自身行为,并依靠互相观察实现自主协同;除Actor结构策略网络外的其他三个神经网络用于指导和辅助Actor结构策略网络进行更新;
运动模块由数模转换器和马达、轮胎等驱动装置构成;运动模块与第一计算模块相连,从第一计算模块接收行动指令,通过内置的数模转换器将数字信号转换为模拟信号,并将模拟信号传输给驱动装置,使机器人根据行动指令做出相应动作,导致场景发生改变;
第一通信模块与第一计算模块、云端服务器节点相连,第一通信模块从第一计算模块接收记录参数的.data参数格式文件,将.data参数格式文件发送给云端服务器节点;
云端服务器节点是指工作站或服务器,安装有第二通信模块、第二存储模块;
云端服务器节点的第二存储模块与第二通信模块相连,第二存储模块安装有Ubuntu16.04操作系统以及与机器人节点相同版本的深度学习框架,用于存储预训练好的.data参数格式文件;第二通信模块与第二存储模块、N个机器人节点的第一通信模块相连,同时与N个机器人节点进行通信;
第二步,安装Gazebo仿真环境,并构建M个多目标采样仿真场景,为预训练做准备,M为正整数;具体步骤如下:
2.1在任意一台装有Ubuntu16.04以及以上版本的电脑上安装并运行Gazebo仿真环境,并仿照第一步构建的多机器人系统中N个机器人节点的实际结构、尺寸,构建对应N个机器人节点仿真模型;
2.2在仿真环境中,对多目标采样环境中可能出现的多种环境要素进行等比例建模,得到各种场景要素的仿真模型;
2.3随机选择N个机器人节点模型和数量随机的多种环境要素,并随机模拟机器人和各种要素的初始位置,从而形成多个多目标采样任务场景,用于模拟真实场景中的各种现实条件;随机选取以上设计的机器人节点仿真模型和场景要素仿真模型的种类、数目和初始位置坐标,形成M个多目标采样任务场景,用来模拟M次多目标采样的现场条件;
2.4设计多目标采样任务完成度评价指标;
第三步,将N个机器人节点仿真模型在第二步构建好的M个多目标采样任务仿真场景中进行预训练,得到记录了机器人在对应的仿真场景下的协同多目标采样策略的N个.data参数格式文件;N台机器人节点仿真模型并行执行以下步骤,机器人节点仿真模型n的执行过程如下:
3.1机器人节点仿真模型n的第一计算模块进行初始化,即第一计算模块中的四个神经网络对参数进行初始化,参数包括每个神经网络内部每层之间的权重矩阵和偏置向量,按照期望为0、方差为2的正态分布随机生成每个神经网络内部每层之间的权重矩阵和偏置向量中的每个数字,N个机器人节点仿真模型的初始化过程相互独立;
3.2初始化循环变量m=1;
3.3从M个多目标采样任务仿真场景选取第m个任务场景,并命名为仿真多目标采样场景m;初始化训练周期序号i=0,并设定最大训练周期序号I,I为正整数;
3.4在仿真环境中随机初始化每个机器人节点以及目标点、环境中各类元素的初始位置;
3.5初始化在第i个训练周期中机器人行动的步数q=0,并设定第i个训练周期中机器人可执行的第一最大步数Q,Q的取值应保证在每个周期中,机器人可在Q步之内取得最佳策略;
3.6机器人节点仿真模型n的第一计算模块从第一存储模块获取当前多目标采样仿真场景的状态sq,并将sq输入到Actor结构策略网络,得到网络的输出即动作指令ag,将ag其发送给运动模块及第一存储模块;
3.7运动模块执行动作ag;
3.8按照步骤2.4中设计的评价指标,Gazebo仿真环境自动计算ag当前的任务完成度评分rq,将rq发送到机器人节点仿真模型n中的第一存储模块;
3.9机器人节点执行动作导致多目标采样环境的状态发生改变,机器人节点仿真模型的探测模块观察到新的场景状态sq+1,将sq+1发给第一存储模块;
3.10机器人节点仿真模型n的第一存储模块整合信息sq、sq+1、aq、rq,得到第q组轨迹经验信息[sq,aq,rq,sq+1],并将[sq,aq,rq,sq+1]存入第一存储模块的经验回放池;
3.11机器人节点仿真模型n的第一计算模块判断:若经验回放池中已经存满W条轨迹经验,则从经验回放池中随机抽取W条用于神经网络模型的训练,并执行步骤3.12;否则,令i=i+1,转步骤3.6;
3.12机器人节点仿真模型n的第一计算模块按照抽取的先后顺序对W条轨迹经验进行编号1~W,同时初始化序号值p=0;
3.13机器人节点仿真模型n的第一计算模块从序号p开始按照抽取的先后顺序选取前w条轨迹经验,并将p更新为选取轨迹经验中最后一条的序号;w为小于等于W的正整数;
3.14机器人节点仿真模型n的第一计算模块训练选取的w轨迹经验,并利用梯度下降法最小化损失函数L,从而优化Critic结构评价网络:
其中,Q代表Critic结构评价网络,Q′代表Critic结构目标网络,μ′代表Actor结构目标网络,这三个字母紧跟的括号中的符号代表相应网络的输入信息;μ′(sq+1)代表将sq+1输入到Actor结构目标网络中得到的行动指令,Q′(sq+1,μ′(sq+1))代表将状态sq+1和动作指令μ′(sq+1)输入到Critic结构目标网络得到的得分,Q(sq,aq)代表将状态sq和行动aq输入到Critic结构评价网络得到的得分,(rq+αQ′(sq+1,μ′(sq+1))-Q(sq,aq))代表对任务完成度评分以及两个神经网络得到的得分进行加权计算;
折扣因子α是0~1的常数;
3.15机器人节点仿真模型n的第一计算模块训练选取的w轨迹经验,并利用梯度下降法最小化损失函数L‘,从而优化Actor结构策略网络:
其中,ρq(sq)表示在第q步时,Actor结构策略网络根据探测模块观测到的状态sq得到采取不同行动的概率分布,Q(sq,aq)表示Critic结构评价网络对当前的状态sq和机器人采取的动作aq做出的评价;
3.16若p+w>W,执行步骤3.17;否则,执行步骤3.13;
3.17机器人节点仿真模型n的第一计算模块按照公式(3)和公式(4)对Actor结构目标网络和Critic结构目标网络进行更新:
其中,分别表示在第q步时Critic结构评价网络、Critic结构目标网络、Actor结构策略网络、Actor结构目标网络的参数;其中参数中的下标q均表示在第i轮第q步时;τ1、τ2是0~1之间的常数;
3.18令q=q+1,若q等于设定的每轮第一最大步数Q,则执行步骤3.19;否则执行步骤3.6;
3.19令i=i+1,若i等于设定的最大训练轮数I,执行步骤3.20;否则执行步骤3.4;
3.20令m=m+1,若m等于M,执行步骤3.22;否则,执行步骤3.21;
3.21机器人节点仿真模型n的第一计算模块保留训练好的Actor结构策略网络中的所有参数,并以仿真多目标采样场景m加网络名字对其命名;同时计算模块清空Actor结构策略网络、Actor结构目标网络与Critic结构评价网络、critic结构目标网络中的所有参数并重新随机赋予初始值,清空第一存储模块的经验池;转步骤3.3;
3.22第一计算模块将Actor结构策略网络的参数保存为.data参数格式文件;执行第四步;
第四步,N个机器人节点仿真模型将.data参数格式文件上传到云端服务器节点,云端服务器节点的第二通信模块将收到的.data参数格式文件保存在第二存储模块;
第五步,将第一步构建的多机器人系统部署在真实的未知的需要部署多机器人进行多目标采样的开放场景,利用仿真场景中训练好的策略即.data参数格式文件帮助开放场景下的多机器人协同多目标采样任务策略进行训练,得到N个机器人节点的Actor结构策略网络,N个机器人节点的Actor结构策略网络共同构成多机器人自主协同多目标采样策略;方法是N台机器人节点并行执行以下步骤,机器人节点n的执行步骤如下:
5.1机器人节点n的第一通信模块向云端服务器节点的第二通信模块发送策略下载请求;
5.2第二通信模块从第二存储模块中读取与未知场景最为相似的仿真场景下训练好的.data参数格式文件,并将.data参数格式文件发送给第一通信模块;
5.3机器人节点n的第一通信模块将.data参数格式文件发送给机器人节点n的第一计算模块;
5.4机器人节点n的第一计算模块创建一个与多机器人系统中Actor结构策略网络结构相同的教师网络并加载.data参数格式文件中的信息,将.data参数格式文件中保存的Actor结构策略网络参数赋值给机器人节点n的教师网络;
5.5对机器人节点n的Actor结构策略网络、Actor结构目标网络、Critic结构评价网络、Critic结构目标网络的网络结构参数进行初始化;参数包括每个神经网络内部每层之间的权重矩阵和偏置向量,按照期望为0、方差为2的正态分布随机生成每个神经网络内部每层之间的权重矩阵和偏置向量中的每个数字,N个机器人节点仿真模型的初始化过程相互独立;
5.6初始化机器人节点n的第一存储模块中的经验回放池为空;
5.7初始化机器人节点n已完成的行动步数k=0,并设定机器人节点n可执行的第二最大步数K,K的取值要求保证机器人可在K步之内取得最佳策略;
5.8机器人节点n的第一计算模块的Actor结构策略网络从第一存储模块中获取当前多目标采样场景的状态sk并将其作为输入,得到网络的输出即动作指令ak,将ak发送给运动模块及第一存储模块;
5.9运动模块执行动作ak;
5.10在机器人节点n的运动模块执行动作ak后,机器人节点n的第一计算模块的公共计算子模块按照步骤2.4中设计的多目标采样任务完成度评价指标得到对当前多机器人系统的任务完成度的评分rk,将rk发送到机器人节点的第一存储模块;
5.11动作ak的执行导致多目标采样环境的状态发生改变,机器人节点n的探测模块观察到新的场景状态sk+1,将sk+1发给第一存储模块;
5.12机器人节点n的第一存储模块整合信息sk、sk+1、ak、rk,得到第k组轨迹经验信息[sk,ak,rk,sk+1],将[sk,ak,rk,sk+1]并存入第一存储模块的经验回放池;
5.13机器人节点n的第一计算模块中的公共计算子模块判断:若经验回放池中已经存满R条轨迹经验,则从经验回放池中随机抽取R条用于神经网络模型的训练,并执行步骤5.14;否则,转步骤5.8;
5.14机器人节点n的第一计算模块的公共计算子模块读取R条轨迹经验,并利用梯度下降法最小化如公式(1)所示的损失函数L,从而更新Critic结构评价网络的参数,实现Critic结构评价的优化;
5.15机器人节点n的第一计算模块的公共计算子模块根据当前读取的R条轨迹经验,计算损失函数L1:
其中,T代表步骤5.1中创建的教师网络,括号中的符号代表教师网络输入的状态,θT代表教师网络的网络参数,将状态sk作为教师网络的输入,得到教师网络根据状态sk判断的教师动作ak与两个动作概率分布之间的差异越大,L1的数也越大;
5.16机器人节点n的第一计算模块的公共计算子模块计算损失函数L2:
其中,ρk(sk)表示在第k步时,Actor结构策略网络根据探测模块观测到的状态sk得到采取不同行动的概率分布,而Q(sk,ak)表示Critic结构评价网络对当前的状态和机器人采取的动作做出的评价;
5.17机器人节点n的第一计算模块的公共计算子模块计算损失函数L‘并利用梯度下降法最小化L‘,从而优化Actor结构策略网络:
L‘=L1+L2 公式(8)
5.18机器人节点仿真模型n的第一计算模块的公共计算子模块根据读取的R条轨迹经验,按照公式(3)对Actor结构目标网络、按照公式(4)对Critic结构目标网络进行更新;
5.19令k=k+1,若k达到第二最大步数K,代表多目标采样策略训练完毕,执行第六步;否则,执行步骤5.11;
第六步,将N个机器人节点部署在需要开展多目标采样任务的地点中;
第七步,多机器人系统根据第五步获得的多机器人自主协同多目标采样策略,在开放场景下协同完成多目标采样任务;N台机器人节点并行执行以下步骤,机器人节点n的具体步骤如下:
7.1根据多目标采样任务要求,设置多机器人系统需要采样的多个目标点,并将所有目标点的坐标存放在列表L中,将L发送至机器人节点n的第一通信模块中,第一通信模块将列表L转发到第一计算模块中;机器人节点n的Actor结构策略网络从列表L中自主选择前往的目标点;
7.2初始化k=0;
7.3机器人节点n的探测模块探测任务场景状态sk,将sk发送到机器人节点n的第一计算模块;
7.4机器人节点n的第一计算模块的公共计算子模块将从探测模块收到的状态sk以及列表L中选择的目标点位置组成一个二元组(sk,L中的目标点位置);
7.5第一计算模块的Actor结构策略网络根据二元组进行动作决策,得到策略网络的输出ak,将ak发送给运动模块;
7.6机器人节点n的运动模块执行动作ak,即前往目标点移动;
7.7若机器人节点达到目标点位置附近d米内,d为正数,进行目标采样,并从列表L中删除d米内的目标点,执行步骤7.8;否则,令k=k+1,转步骤7.3;
7.8机器人节点n判断L中是否还有目标点,若仍有目标点尚未采样,则转步骤7.2;否则,执行第八步;
第八步,结束。
2.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于所述探测模块指扫描雷达或红外摄像头或深度摄像头。
3.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于所述t的取值范围为0.3~1秒;H的取值范围为5000~10000;a的取值范围为4~8,b的取值范围为64~256;W取值为100;t取值范围为0.3~1秒;M不少于20;I取值范围为4000~10000;w的取值范围为5~10;α的取值范围为0.2~0.3;τ1、τ2取值范围为0.2~0.3之间;R的取值为100;所述d的取值为0.2~0.5米;所述第一最大步数Q的取值范围为25~50;所述第二最大步数K的取值范围为20000~30000。
4.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于所述深度学习框架指Pytorch0.3.0.post4,所述.data参数格式的文件由深度学习框架生成。
5.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于所述第一通信模块和第二通信模块采用无线网卡;所述第二存储模块采用容量大于100GB的硬盘。
6.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于所述第一通信模块通过SSH即网络服务安全协议通信服务将.data参数格式文件发送给云端服务器节点的第二通信模块;第二通信模块通过SSH同时与N个机器人节点进行通信。
7.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于所述Gazebo仿真环境从http://gazebosim.org下载,要求版本9.10.0以上。
8.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于2.2步所述环境要素指障碍物、建筑物、动物、目标点。
9.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于2.4步所述设计多目标采样任务完成度评价指标的方法是对多种环境要素衡量进行打分并累计求和。
10.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于第三步所述将N个机器人节点仿真模型进行预训练采用多机器人强化学习算法MADDPG即多智能体深度确定性策略梯度算法或MAAC即多演员注意力评论家算法。
11.如权利要求1所述的一种面向开放场景的多机器人协同多目标采样方法,其特征在于第四步所述N个机器人节点仿真模型将.data参数格式文件上传到云端服务器节点的方法是:N台机器人节点仿真模型并行进行文件上传,机器人节点仿真模型n的上传方法是:
4.1机器人节点仿真模型n的第一计算模块将.data参数格式文件发送到第一通信模块;
4.2机器人节点仿真模型n的第一通信模块通过SSH通信服务将.data参数格式文件发送至云端服务器节点的第二通信模块;
4.3云端服务器节点的第二通信模块将收到的.data参数格式文件保存在第二存储模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110396041.7A CN113189983B (zh) | 2021-04-13 | 2021-04-13 | 一种面向开放场景的多机器人协同多目标采样方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110396041.7A CN113189983B (zh) | 2021-04-13 | 2021-04-13 | 一种面向开放场景的多机器人协同多目标采样方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113189983A CN113189983A (zh) | 2021-07-30 |
CN113189983B true CN113189983B (zh) | 2022-05-31 |
Family
ID=76975663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110396041.7A Active CN113189983B (zh) | 2021-04-13 | 2021-04-13 | 一种面向开放场景的多机器人协同多目标采样方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113189983B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741461B (zh) * | 2021-09-06 | 2023-10-03 | 中国人民解放军国防科技大学 | 一种面向受限通信的复杂场景下多机器人避障方法 |
CN117957500A (zh) * | 2021-09-23 | 2024-04-30 | 西门子(中国)有限公司 | 一种多个机器人协同工作的控制方法、系统及机器人 |
CN114756052B (zh) * | 2022-03-31 | 2023-04-07 | 电子科技大学 | 一种基于无人机群的多目标协同追踪方法 |
CN115284288B (zh) * | 2022-08-09 | 2024-04-12 | 清华大学 | 多机器人在线任务分配和执行方法、装置及存储介质 |
CN116488154B (zh) * | 2023-04-17 | 2024-07-26 | 海南大学 | 基于微电网的能源调度方法、系统、计算机设备及介质 |
CN117103281B (zh) * | 2023-10-20 | 2024-01-26 | 深圳墨影科技有限公司 | 一种机器人全融合仿真系统及方法 |
CN118296702A (zh) * | 2024-04-09 | 2024-07-05 | 合肥工业大学 | 基于多智能体深度强化学习的自动化建筑空间组合方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600379A (zh) * | 2018-04-28 | 2018-09-28 | 中国科学院软件研究所 | 一种基于深度确定性策略梯度的异构多智能体协同决策方法 |
CN110427006A (zh) * | 2019-08-22 | 2019-11-08 | 齐鲁工业大学 | 一种用于流程工业的多智能体协同控制系统及方法 |
CN110587606A (zh) * | 2019-09-18 | 2019-12-20 | 中国人民解放军国防科技大学 | 一种面向开放场景的多机器人自主协同搜救方法 |
CA3060900A1 (en) * | 2018-11-05 | 2020-05-05 | Royal Bank Of Canada | System and method for deep reinforcement learning |
CN111880564A (zh) * | 2020-07-22 | 2020-11-03 | 电子科技大学 | 一种基于协同增强学习的多智能体区域搜索方法 |
CN112131660A (zh) * | 2020-09-10 | 2020-12-25 | 南京大学 | 一种基于多智能体强化学习的无人机集群协同学习方法 |
WO2021007812A1 (zh) * | 2019-07-17 | 2021-01-21 | 深圳大学 | 一种深度神经网络超参数优化方法、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110574048B (zh) * | 2017-06-09 | 2023-07-07 | 渊慧科技有限公司 | 训练动作选择神经网络 |
WO2019002465A1 (en) * | 2017-06-28 | 2019-01-03 | Deepmind Technologies Limited | NEURONAL LEARNING ACTION SELECTION NETWORKS USING APPRENTICESHIP |
CN110000785B (zh) * | 2019-04-11 | 2021-12-14 | 上海交通大学 | 农业场景无标定机器人运动视觉协同伺服控制方法与设备 |
CN111667513B (zh) * | 2020-06-01 | 2022-02-18 | 西北工业大学 | 一种基于ddpg迁移学习的无人机机动目标跟踪方法 |
CN111858009B (zh) * | 2020-07-30 | 2022-06-17 | 西北工业大学 | 基于迁移和强化学习的移动边缘计算系统任务调度方法 |
-
2021
- 2021-04-13 CN CN202110396041.7A patent/CN113189983B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600379A (zh) * | 2018-04-28 | 2018-09-28 | 中国科学院软件研究所 | 一种基于深度确定性策略梯度的异构多智能体协同决策方法 |
CA3060900A1 (en) * | 2018-11-05 | 2020-05-05 | Royal Bank Of Canada | System and method for deep reinforcement learning |
WO2021007812A1 (zh) * | 2019-07-17 | 2021-01-21 | 深圳大学 | 一种深度神经网络超参数优化方法、电子设备及存储介质 |
CN110427006A (zh) * | 2019-08-22 | 2019-11-08 | 齐鲁工业大学 | 一种用于流程工业的多智能体协同控制系统及方法 |
CN110587606A (zh) * | 2019-09-18 | 2019-12-20 | 中国人民解放军国防科技大学 | 一种面向开放场景的多机器人自主协同搜救方法 |
CN111880564A (zh) * | 2020-07-22 | 2020-11-03 | 电子科技大学 | 一种基于协同增强学习的多智能体区域搜索方法 |
CN112131660A (zh) * | 2020-09-10 | 2020-12-25 | 南京大学 | 一种基于多智能体强化学习的无人机集群协同学习方法 |
Non-Patent Citations (7)
Title |
---|
An adaptive deep reinforcement learning approach for MIMO PID control of mobile robots;Ignacio Carlucho;《ISA Transactions》;20200219;全文 * |
Deep Multi-Critic Network for accelerating Policy Learning in multi-agent environments;Joosep Hook;《Neural Networks》;20200504;全文 * |
Improving Fast Adaptation for Newcomers in Multi-Robot Reinforcement Learning System;王怀民;《2019 IEEE SmartWorld》;20200409;全文 * |
Multi-objective evolutionary computation for topology coverage assessment problem;王怀民;《Knowledge-Based Systems》;20190401;全文 * |
动态不确定环境下的智能体序贯决策方法及应用研究;仵博;《中国优秀博士学位论文全文数据库 信息科技辑》;20140215;全文 * |
基于深度强化学习的智能体环境感知与控制决策;高令平;《中国优秀硕士学位论文全文数据库 信息科技辑》;20210215;全文 * |
未知环境下基于智能优化算法的多机器人目标搜索研究;唐宏伟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20210115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113189983A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113189983B (zh) | 一种面向开放场景的多机器人协同多目标采样方法 | |
CN110587606B (zh) | 一种面向开放场景的多机器人自主协同搜救方法 | |
CN110262511B (zh) | 基于深度强化学习的双足机器人自适应性行走控制方法 | |
Xia et al. | Neural inverse reinforcement learning in autonomous navigation | |
Yuan et al. | A novel GRU-RNN network model for dynamic path planning of mobile robot | |
Khan et al. | A systematic review on reinforcement learning-based robotics within the last decade | |
de Morais et al. | Vision-based robust control framework based on deep reinforcement learning applied to autonomous ground vehicles | |
CN112132263A (zh) | 一种基于强化学习的多智能体自主导航方法 | |
CN110442129A (zh) | 一种多智能体编队的控制方法和系统 | |
CN114510012A (zh) | 一种基于元动作序列强化学习的无人集群演进系统及方法 | |
Guo et al. | Local path planning of mobile robot based on long short-term memory neural network | |
Simoes et al. | Exploring communication protocols and centralized critics in multi-agent deep learning | |
Gao et al. | Asymmetric self-play-enabled intelligent heterogeneous multirobot catching system using deep multiagent reinforcement learning | |
Jaafra et al. | Context-aware autonomous driving using meta-reinforcement learning | |
Xing et al. | Robot path planner based on deep reinforcement learning and the seeker optimization algorithm | |
Zhu et al. | Vision-based control in the open racing car simulator with deep and reinforcement learning | |
Chen et al. | Deep reinforcement learning-based robot exploration for constructing map of unknown environment | |
CN117553798A (zh) | 复杂人群场景中移动机器人的安全导航方法、设备及介质 | |
CN116643586A (zh) | 一种面向复杂场景的多机器人协同侦察方法 | |
CN116360435A (zh) | 基于情节记忆的多智能体协同策略的训练方法和系统 | |
Munnangi et al. | Improving Wildlife Monitoring using a Multi-criteria Cooperative Target Observation Approach. | |
Nguyen et al. | Apprenticeship bootstrapping | |
CN113741461B (zh) | 一种面向受限通信的复杂场景下多机器人避障方法 | |
Mohammed et al. | Reinforcement learning and deep neural network for autonomous driving | |
Karatzas et al. | On autonomous drone navigation using deep learning and an intelligent rainbow DQN agent |
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 |