一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向受限通信的复杂场景下多机器人避障方法与流程

2021-12-04 14:02:00 来源:中国专利 TAG:


1.本发明涉及在地震灾区等通信带宽受限,并存在多种复杂障碍物的场景中,如何让分布式多机器人在满足通信带宽要求的前提下,自主协同地完成导航避障任务。尤其涉及多机器人在面对无法提前预知的灾后避障任务场景时,综合考虑自身和周围环境状态选择通信对象,以完成导航和避障等任务的方法。


背景技术:

2.目前常见的多机器人协同任务包括协同搜索、协同搬运、协同侦察等,相比于单机器人,多机器人能够处理合作型任务,具有更加灵活、高效、可靠的优点;并且能够实现群体智能涌现。目前,多机器人自主导航避障已经被广泛用于灾后避障等实际应用场景,极大地提升了避障效率,同时降低了人力成本。
3.对于分布式多机器人避障问题,一些传统的基于规则的方法将经典的单机器人避碰算法推广到多机器人场景中。然而,这些方法往往会陷入局部最优,导致机器人出现局部卡死的情况。深度强化学习(drl(deep reinforcement learning)在应对这一挑战方面取得了巨大成功。现有的drl方法可分为两类:智能体级别的方法和传感器级别的方法。受基于规则的方法的启发,智能体级别的方法通过考虑其他机器人的智能体级别信息(例如,形状、速度和位置等),以生成避障动作。比如论文《decentralized non

communicating multiagent collision avoidance with deep reinforcement learning》(译为“基于深度强化学习的分布式无通信多智能体避障”,2017ieee机器人与自动化国际会议,285

292页)提出了一种智能体级别的避障方法,该方法训练了一个预测与相邻智能体交互的双智能体价值函数,并将智能体自身的状态和邻居的状态显式映射到一个不会碰撞的动作。然而,仅仅使用智能体级别的信息并不能适应复杂的场景,因为对其他机器人和障碍物具有完美感知的假设并不总是成立的。传感器级别的方法被提出来解决这个问题,并直接依据视野中的传感器级别观测(原始传感器输入,如二维激光扫描或深度图像等)生成动作,并且不需要对相邻的代理和障碍物有完美的感知。论文《virtual

to

real deep reinforcement learning:continuous control of mobile robots for mapless navigation》(译为“虚拟到现实深度强化学习:移动机器人无地图导航的连续控制”,2017ieee智能机器人与系统国际会议,31

36页)提出一种传感器级的方法,直接将激光、速度和目标信息映射到单个机器人所需的无碰撞动作指令。但是传感器级的方法可能会遗漏一些关键信息,并引起一些新的问题。例如,很难区分静态障碍物和静止机器人。因此,多机器人的避碰应该同时利用智能体级别和传感器级别观测,特别是在具有各种未知障碍物和高机器人密度的复杂场景中。
4.在每个代理的能力或对世界的可见性都有限的情况下,通信对于执行复杂任务至关重要。考虑现实世界中的一个交通路口,驾驶员们可以通过喇叭和转向灯向其他人展示他们的行动意图,以便进行协同。在多机器人无地图导航任务中,由于局部观测和缺乏其他机器人的内部状态,机器人无法协调运动进行协作。近年来,在多智能体强化学习(marl)领
域,通信技术被引入到解决局部观测问题中。由于合作是机器人群的特征之一,因此机器人之间进行通信以合作避免碰撞是很自然的。在避免碰撞时,如果机器人在产生动作时考虑到其他机器人的动作意图以及自身的观察,那么导航效率将显著提高。
5.由于机器人群的特点是使用大量通信能力有限的机器人,因此如何选择最有价值的通信信息就显得尤为重要。通常来说,每个机器人不使用预先定义的协商协议向其他机器人广播消息,且由于带宽有限,一次只能从数量有限的机器人接收消息,除了距离之外,各种潜在变量,如速度、机器人的航向和障碍物的位置,也是选择最有价值信息的必要因素。然而,考虑到以上所有因素,没有一个度量来计算机器人之间的关系。因此,一个综合考虑周围环境因素的消息选择器对于在有限带宽环境下,特别是在各种未知障碍物和高机器人密度的复杂场景下,机器人之间的通信具有重要意义。对于受限的通信环境,论文《learning attentional communication for multi

agent cooperation》(译为“为多智能体合作学会注意力通信”,发表在arxiv预印本论文网站,网址为https://arxiv.org/pdf/1805.07733.pdf,出版时间2018年11月)提出atoc(全称为“attentional communication model”,译为“基于注意力机制的通信模型”),使用论文《attention is all you need》(译为“注意力是你所全部需要的”,2017神经信息处理系统进展,5998

6008页)中提出的注意力机制来决定每个代理是否需要与其他代理进行通信。然后发起方选择决定通信的代理,建立通信组。同一组中的代理可以通过双向lstm实现的通信通道共享其行为思想。论文《tarmac:targeted multi

agent communication》(译为“tarmac”,2019机器学习国际会议,1538

1546页)提出tarmac(全称为“targeted multi

agent communication architecture”,译为“定向的多智能体通信结构”),使用一种用于目标通信的软注意机制,该机制对代理的排列是不变的,并且允许每个代理权衡来自其他代理的消息。
6.现有的避障方法大多只利用了智能体级别和传感器级别观测的其中之一,未能将二者进行充分结合。此外,现有方法也未能综合分析自身和周围环境状态,以高效地利用环境中的受限带宽进行通信。所以目前公开的技术方案均无法表现出较好的合作性能,导致无地图的复杂场景下导航避障任务的完成质量较差。尤其是在灾后场景中,如玉树地震灾区、长宁地震灾区等等,由于机器人无法提前了解各种障碍物的具体特征,没有综合利用智能体级别和传感器级别观测,并引入适用于受限带宽通信的能力建立有效的协同避障策略,导致搜索和救援不能准确和及时。基于以上分析,如何实现面向通信带宽受限的复杂场景的多机器人自主协同避障,是本领域技术人员极为关注的技术问题。


技术实现要素:

7.本发明所面向的应用场景是,多机器人在通信受限且有未知可移动障碍物的场景下所要执行的导航避障任务。该问题主要有以下两个约束:第一,机器人的通信能力受限,无法将消息广播给场景中其他所有机器人。这意味着每个机器人都要综合分析自身和周围机器人的状态,计算出其他机器人的消息与自身的相关度,从而进行选择性通信;第二,由于场景任务的复杂性以及障碍物精确的信息事先未知,仅仅使用智能体级别或传感器级别的观测都无法很好适应该场景,所以需要构建分布式避障框架以充分结合两者的信息。
8.本发明要解决的技术问题是提供一种多机器人在通信受限的复杂场景下通过自
主协同执行导航与避障任务的方法,既解决背景技术所述只使用智能体级别的方法由于障碍物信息未知而失效的问题,又解决仅基于传感器级别的避障方法由于无法利用智能体级别的信息而导致的避障效率低下问题(具体体现为碰撞率较高,导航时间过长等)。
9.本发明的技术方案是构建支持通信受限条件的多机器人导航避障系统,该系统利用深度值函数学习网络的消息选择器,使机器人结合其他机器人的智能体级别信息和传感器级信息,分布式地计算与其他机器人的关系,从而有选择地进行通信。然后将部分观察结果和接收到的信息输入到基于注意力机制实现的通信信道中,产生机器人的协同和无碰撞动作,解决了有限带宽环境和复杂场景下的分散式多机器人避碰问题。
10.本发明包括以下步骤:
11.第一步,构建通信受限的多机器人导航避障系统。该系统由一个云端服务器节点、n个机器人节点组成。云端服务器节点与n个机器人节点相连,n为正整数。
12.机器人节点指能够运动、观测、通信、具有软件运行能力的机器人。可采用的机器人节点包括但不限于地面机器人节点pioneer 3

dx(具体参数见:https://www.generationrobots.com/media/pioneer3dx

p3dx

reva.pdf)等。每个机器人节点上均部署有两个通信模块(即第一通信模块、第二通信模块)、探测模块、第一存储模块、动作生成模块、运动模块、第一优化模块。以下以机器人节点i(1≤i≤n)为例描述各模块的功能和连接关系。
13.探测模块是能采集复杂场景环境数据的传感器,如激光扫描雷达、红外摄像头、深度摄像头等。机器人节点i(1≤i≤n)的探测模块与机器人节点i的第一存储模块和动作生成模块相连,探测模块每隔α秒周期性地对传感器可见范围内的应用场景和除机器人节点i以外的另n

1台机器人节点进行拍摄或扫描,得到机器人自身观测(包括当前机器人的位置、速度和朝向)、传感器级别观测(如二维激光雷达、红外摄像头、深度摄像头输出的距离信息)和智能体级别观测(其他机器人位置和速度),并将这些应用场景状态发送给机器人节点i的第一存储模块和动作生成模块。α建议取值范围为0.1~0.3。
14.动作生成模块负责制定和优化避障策略,并根据与避障策略向运动模块发送动作指令。机器人节点i的动作生成模块与机器人节点i的探测模块、第一存储模块、运动模块、第二通信模块、第一优化模块相连。动作生成模块由第一策略网络,第二策略网络,第一通信信道,相关度生成器和消息选择器组成。
15.第一策略网络与探测模块、相关度生成器、第一通信信道相连,第一策略网络由两个卷积层(即第一卷积层、第二卷积层)和两个全连接层(即第一全连接层、第二全连接层)组成。第一卷积层由32个内核大小为5,步长为2的一维过滤器(conv1d)组成。第二卷积层由32个内核大小为3,步长为2的一维过滤器(conv1d)组成。第一卷积层从探测模块接收传感器级别观测和机器人节点i自身观测,即激光扫描观测,并对传感器级别观测进行卷积操作,将卷积操作后的传感器级别观测传给第二卷积层。第二卷积层对卷积操作后的传感器级别观测进行卷积操作,并将第二次卷积操作后的传感器级别观测与机器人自身观测(即机器人节点i的速度、位置和目标点)坐标信息进行拼接,将拼接好的激光扫描观测传给第一全连接层。第一全连接层具有512个整流单元,第二全连接层具有128个整流单元,第一全连接层、第二全连接层依次对拼接好的传感器级别观测进行全连接操作,由第二全连接层向相关度生成器、第一通信信道输出128维的通信消息。
16.相关度生成器与第一策略网络、消息选择器、探测模块、第一存储模块相连,是包含64个整流单元的全连接层,用于将从第一策略网络接收的机器人节点i的通信消息和从探测模块得到的其他机器人的智能体级别信息进行编码,生成其他机器人相对于机器人节点i的相关度,将相关度发送给消息选择器。
17.消息选择器与相关度生成器、第二通信模块和第一通信信道相连。消息选择器从第二通信模块接收来自其他机器人的消息,从相关度生成器得到其他机器人相对于机器人节点i的相关度,根据其他机器人相对于机器人节点i的相关度从来自其他机器人的消息中筛选出最相关的消息,将最相关的消息发送给第一通信信道,使得第一通信信道进行选择性通信。选择性通信保证了机器人节点i的通信带宽满足通信限制。
18.第一通信信道与第一策略网络、消息选择器和第二策略网络相连,由注意力机制实现,具体表现形式是三个包含256个整流单元的全连接网络。第一通信信道从第一策略网络接收机器人节点i产生的消息,从消息选择器接收最相关的消息,将机器人节点i产生的消息和最相关的消息整合成其他机器人对机器人节点i的256维影响向量,将影响向量发送给第二策略网络。
19.第二策略网络与第一通信信道、运动模块、第一存储模块相连,由两个全连接层组成,一个全连接层包含128个整流单元,另一个全连接层包含32个整流单元。来自第一通信信道的影响向量依次输入两个全连接层,映射为动作指令,输出给运动模块和第一存储模块。
20.动作生成模块的第二策略网络将更新后的第一策略网络、相关度生成器、第一通信信道和第二策略网络组成中的参数保存生成第一.pth格式文件,将第一.pth格式文件发送给第一通信模块。
21.机器人节点i的第一存储模块是可用空间1gb以上的存贮器,与机器人节点i的探测模块、动作生成模块、第二通信模块和第一优化模块相连。从探测模块接收应用场景状态(包括机器人自身观测、传感器级别观测和智能体级别观测),从第二通信模块接收其他所有机器人的消息,从动作生成模块接收当前时刻的动作。第一存储模块中有两个经验回放池(第一经验回放池和第二经验回放池)。第一经验回放池是一个容量为p1的双端队列,存放机器人节点i的p1条第一轨迹信息(p1为正整数,p1的建议取值范围为128~256)。第一轨迹信息以五元组的形式存放,五元组包含当前时刻的观测、通信消息、动作、环境反馈的奖励以及下个时刻的观测。机器人节点i的第t条第一轨迹信息的格式表示为其中,表示机器人节点i的探测模块第t步观察到的应用场景状态,主要涵盖第t个时间步观察到的传感器级别观测、自身的速度、位置和目标点坐标,以及除机器人节点i以外的另n

1台机器人节点的速度和位置。表示其他所有机器人的消息组成的集合。表示机器人节点i的探测模块在第t次观测后,机器人节点i所采取的行动,表现为机器人节点i的线速度和角速度。机器人节点i在执行行动时自动记录为机器人节点i的线速度和角速度。机器人节点i在执行行动时自动记录是机器人节点i的探测模块在第t 1次观察前,对于第t次观察到的导航与避障场景状态的任务完成度进行评价的得分。表示机器人节点i的探测模块第t 1次观察到的复杂场景状态,主要涵盖第t 1次观察到的激光雷达数据,自身的速度,位置和目标点坐标,以及除机器人
节点i以外的另n

1台机器人节点的速度和位置。在逻辑关系上,可以解释为由经过行为a
t
后所得到的新应用场景观察到的激光雷达数据。第二经验回放池是一个容量为p2的双端队列,存放机器人节点i的p2条第二轨迹信息(p2为正整数,p2的建议取值范围为2000~2500)。第二轨迹信息是三元组,三元组包含当前时刻对环境中某个机器人的观测、环境反馈的奖励以及下个状态对该机器人的观测。第t条第二轨迹信息的格式表示为反馈的奖励以及下个状态对该机器人的观测。第t条第二轨迹信息的格式表示为包括机器人i在第t个时间步观察到的传感器级别观测、自身的速度、位置和目标点坐标,以及机器人节点j的速度和位置。
22.第一优化模块用于机器人更新避障策略。本发明中所述“策略”的具体表现形式为对动作生成模块中的所有子模块的参数(即每层网络之间权重矩阵和偏置向量的参数值)保存得到的第一.pth格式文件。机器人节点i第t步的自身观测和传感器级别观测会输入到动作生成模块的经第一.pth格式文件赋值参数的第一策略网络中;机器人节点i基于第一.pth格式文件中的相关度生成器参数选择最有价值的机器人节点的通信消息;机器人节点i基于第一.pth格式文件中保存的第一通信信道和第二策略网络参数生成动作。从宏观上,动作生成模块中的相关度生成器实现了让机器人节点根据当前观察到的复杂场景状态,自主选择通信对象;动作生成模块中的第一策略网络、第一通信信道和第二策略网络实现了让机器人节点自主决定下一步的行动。每个机器人节点的动作生成模块拥有独立的参数,能自主决定自身行为,仅依靠自身观察获取其他机器人消息的相关度,并依据相关度与对自己最重要的机器人通信,实现协同导航和避障。因此,动作生成模块对应的第一.pth格式文件和第一优化模块的第二.pth格式文件是本发明生成的避障策略。
23.机器人节点i的第一优化模块与机器人节点i的第一存储模块、第一通信模块、动作生成模块相连。第一优化模块由第三策略网络、第二通信信道和第四策略网络组成。第三策略网络与第一策略网络的结构完全相同。第三策略网络与第一存储模块和第二通信信道相连,从第一存储模块读取第一轨迹信息。第三策略网络将第一轨迹信息中的传感器级别观测和机器人自身观测映射为当前机器人节点i的消息,将机器人节点i的消息发送给第二通信信道。第二通信信道和第一通信信道结构完全相同,第二通信信道与第三策略网络和第一存储模块相连,接收第三策略网络中输出的机器人节点i的消息以及第一存储模块中第一轨迹信息中的得到影响向量(256维向量,是注意力机制的输出结果),将影响向量发送给第四策略网络;第四策略网络与第二策略网络的结构完全相同,第四策略网络与第二通信信道和动作生成模块相连,从第二通信信道接收影响向量,输出当前观测对应的价值(价值为强化学习中的概念,代表对当前状态下做出的动作的评判。具体可参考http://incompleteideas.net/book/first/ebook/node34.html),并以当前观测对应的价值生成梯度(梯度是机器学习中的概念,用于参数回传更新。具体可参考https://ml

cheatsheet.readthedocs.io/en/latest/gradient_descent.html),将梯度发送给动作生成模块,以辅助动作生成模块进行参数更新。第一优化模块的第四策略网络将更新后的第三策略网络、第二通信信道和第四策略网络组成中的参数保存生成第二.pth格式文件,将第二.pth格式文件发送给第一通信模块。
24.机器人节点i安装有ubuntu 16.04及以上版本的操作系统(用于x86架构处理器)或ubuntu mate16.04及以上版本的操作系统(用于arm架构处理器),并安装有与操作系统
相匹配的ros(robot operating system,译为“机器人操作系统”)和pytorch深度学习框架(要求1.4版本及以上)。本发明使用pytorch深度学习框架创建动作生成模块和第一优化模块,原理可参考文献《actor

critic algorithms》,译为“演员

评论家算法”,发表在acm出版机构,出版时间2001年4月,可下载网址为https://www.researchgate.net/publication/2354219_actor

critic_algorithms),对避障策略进行探索和优化。
25.机器人节点i的第一通信模块(如无线网卡)与机器人节点i的动作生成模块、第一优化模块、云端服务器节点的第三通信模块相连。第一通信模块从动作生成模块接收第一.pth格式文件,从第一优化模块接收第二.pth格式文件,将第一.pth格式文件和第一.pth格式文件通过ssh(secure shell,一种网络服务安全协议)通信服务发送给云端第三通信模块。
26.机器人节点i的运动模块由数模转换器和马达、轮胎等驱动装置构成。机器人节点i的运动模块与机器人节点i的动作生成模块相连,从动作生成模块接收动作指令,通过内置的数模转换器将数字信号转换为模拟信号,并将模拟信号传输给驱动装置,使机器人根据行动指令做出相应动作,导致场景的状态发生改变。
27.机器人节点i的第二通信模块(如蓝牙、zigbee、wifi等)与机器人节点i的动作生成模块、机器人节点j的第二通信模块相连,负责机器人节点i与另n

1个机器人之间的通信,并模拟复杂场景中受限的通信环境。第二通信模块广播消息无限制,但在同一个时间步内最多只能同时监听其他r个机器人节点的消息,r为正整数,r≤n

1,建议取值范围为2~5。
28.云端服务器节点指网络服务器、工作站等,安装有ubuntu16.04及以上版本的操作系统,以及与机器人节点相同版本的pytorch深度学习框架,并安装有第三通信模块(如无线网卡)和第二优化模块,负责接收来自n个机器人的第一.pth格式文件和第二.pth格式文件。
29.云端服务器节点上安装有第二优化模块、第三通信模块。
30.第三通信模块与n个机器人节点的第一通信模块均相连,从n个机器人节点的第一通信模块分别接收第一.pth格式文件和第二.pth格式文件,将第一.pth格式文件和第二.pth格式文件发送给第二优化模块。第二优化模块对从第三通信模块接收的2n个.pth格式文件进行整合,得到最终的协同避障策略。
31.第二步,在webots仿真环境(要求版本2020b以上,可从官网https://cyberbotics.com/doc/blog/webots

2020

b

release下载并按照教程安装)中构建导航与避障仿真复杂场景,为训练做准备。具体步骤如下:
32.2.1在任意一台装有ubuntu16.04及以上版本的电脑上运行webots仿真环境,并在webots仿真环境中,仿照第一步构建的通信受限的多机器人导航避障系统中n个机器人节点的实际结构和尺寸,构建对应的n个机器人节点仿真模型。
33.2.2在webots仿真环境中,对复杂场景可能出现的各个要素(如目标点、行人和障碍物)以相同比例进行仿真建模,得到各种场景要素仿真模型。
34.2.3设计避障任务完成度单步奖励函数,用于对机器人协同导航与避障策略在仿真环境下的效果给出定量评价,奖励函数通常采用对复杂场景多要素衡量进行打分并累计求和的方式得到奖励值。如机器人节点仿真模型距离目标点每接近1米则奖励2.5分,每背
离1米则扣2.5分;机器人节点仿真模型到达目标点则奖励15分;机器人节点仿真模型与其他机器人模型或障碍物碰撞则扣15分;如果机器人节点仿真模型的角速度大于1.05rad/s,则扣角速度的0.1倍对应的分数。
35.第三步,n个机器人节点仿真模型在第二步构建好的仿真复杂场景中并行进行预训练,使机器人节点掌握具有泛化性(即在多种场景下均能适用)的协同避障策略。n台机器人节点仿真模型的训练过程相同,机器人节点仿真模型i的训练过程如下,1≤i≤n:
36.3.1对机器人节点仿真模型i的避障策略进行初始化,即对动作生成模块包含的第一策略网络、相关度生成器、第一通信信道和第二策略网络和第一优化模块中的第三策略网络、第二通信信道和第四策略网络参数进行初始化,参数包括全连接网络内部每层之间的权重矩阵、偏置向量以及卷积网络中的卷积核,具体数值按照期望为0、方差为2的正态分布随机生成。
37.3.2初始化已经探索的轮数k=0,并设定在仿真复杂场景中最大探索轮数k(k为正整数,建议取值范围为100~200)。
38.3.3在仿真复杂场景中随机设置多机器人节点仿真模型和各自对应的目标点位置。
39.3.4初始化机器人节点仿真模型i在第k轮探索中已经完成的行动步数t=0,并设定第k轮探索中机器人节点仿真模型i可以执行的行动步数最大值t,t为正整数(t的设置应该参考机器人节点仿真模型i的初始位置p
m
、距离其最近的目标点的初始位置p
t
、机器人节点仿真模型所能允许的最大速度v
max
;t的建议取值为2
×
(||p
m

p
t
||2/v
max
)/σ~3
×
(||p
m

p
t
||2/v
max
)/σ,其中||x

y||2表示从位置x到位置y的欧氏距离,σ=0.1)。
40.3.5机器人节点仿真模型i的动作生成模块从机器人节点仿真模型i的探测模块获得在时间步t对于机器人节点仿真模型j(1≤j≤n且j≠i)的观测值生成动作指令a
i
,将a
i
发送给机器人节点仿真模型i的运动模块和第一存储模块,方法是:
41.3.5.1第一策略网络从机器人节点仿真模型i的探测模块获得传感器级别观测、机器人自身观测,记为将输入第一策略网络,得到通信消息,将通信消息发送给第一通信信道和相关度生成器。
42.3.5.2相关度生成器从第一策略网络接收通信消息,从机器人节点仿真模型i的探测模块获得智能体级别的观测根据通信消息和智能体级别的观测生成机器人节点仿真模型i与其他所有机器人节点仿真模型的相关度,将相关度发送给消息选择器。
43.3.5.3消息选择器从相关度生成器接收相关度,从第二通信模块接收其他机器人模型(即机器人节点仿真模型i以外的模型)的消息根据相关度对机器人节点进行排序,选出最大的前l个相关度值对应的机器人节点发送的消息,形成机器人节点仿真模型i最相关的消息集合将连同机器人节点i自身的消息一起输入到第一通信信道。
44.3.5.4第一通信信道通过注意力机制,将输入的消息映射为影响向量,并将影响向量发送给第二策略网络。(《attention is all you need》(译为“注意力是你所全部需要的”,2017神经信息处理系统进展,5998

6008页))
45.3.5.5第二策略网络将从第一通信信道接收的影响向量映射为行动指令a
i
,将a
i

送给机器人节点仿真模型i的运动模块和第一存储模块;是一个二维向量,μ是平均值,σ是标准差。最终的动作数值在高斯分布n(μ,σ2)中采样得到,即得到策略)中采样得到,即得到策略表示机器人节点仿真模型i在第t步时,动作生成模块按照当前策略根据生成的动作概率分布。
46.3.6运动模块执行动作
47.3.7按照步骤2.3中设计的奖励函数,webots仿真环境返回机器人节点仿真模型i在时刻t的导航与避障任务完成度奖励值将发送到机器人节点仿真模型i的第一存储模块。
48.3.8机器人节点仿真模型i的动作执行导致复杂场景状态发生变化,机器人节点仿真模型i的探测模块观测到下一个时间步t 1的复杂场景状态将并发送给机器人节点仿真模型i的第一存储模块。
49.3.9机器人节点仿真模型i的第一存储模块将一组第一轨迹信息存入到第一经验回放池。机器人节点仿真模型i的第一存储模块将第二轨迹信息存入到第二经验回放池。
50.3.10机器人节点仿真模型i的第一优化模块判定第一经验回放池是否已有p条信息,若已有p条信息,则第一优化模块从第一经验回放池随机抽取p条第一轨迹信息,转步骤3.11;否则,令i=i 1,转步骤3.8。p为正整数,p的建议取值为50~100。
51.3.11机器人节点仿真模型i的第一优化模块按照抽取的先后顺序对p条第一轨迹信息进行编号,令为1~p。同时初始化第一轨迹信息序号值np=1。
52.3.12机器人节点仿真模型i的第一优化模块从序号np开始顺序选取前p条第一轨迹信息,将选取的p条第一轨迹信息发送给动作生成模块,并将np更新为选取第一轨迹信息中最后一条的序号。p为小于等于p的正整数,p的建议取值范围为5~10。
53.3.13机器人节点仿真模型i的动作生成模块从第一优化模块接收选取的p条第一轨迹信息,根据p条第一轨迹信息,采用梯度下降法(一种经典的无约束优化问题解法,原理可参考https://www.jianshu.com/p/c7e642877b0e中的数学解释部分),使得机器人节点仿真模型i表现评价函数j(θ)值增大。在增大j(θ)值的过程中,动作生成模块中的第一策略网络、相关度生成器、第一通信信道和第二策略网络同时得到更新,从而实现对动作生成模块进行参数优化:
[0054][0055]
其中,θ表示动作生成模块中包含的第一策略网络、第一通信信道和第二策略网络的参数,表示机器人节点仿真模型i在第t步时,动作生成模块按照当前策略根据第一轨迹信息中依照观测生成动作指令的概率,表示机器人节点仿真模型i在第t步时,动作生成模块按照上次更新前的策略根据第一轨迹信息中依照观测生成动
作指令的概率,这两个概率分布由动作生成模块的第二策略网络确定。φ是第一优化模块中包含的第三策略网络、第二通信信道和第四策略网络的参数。∈是控制策略更新幅度的超参数,建议取值为0.1

0.3。γ是衰减因子,建议取值为0.8

0.9。是第一优化模块输出的价值,t

是大于t的步骤号。
[0056]
3.14机器人节点仿真模型i的第一优化模块采用梯度下降法最小化如公式(2)所示的损失函数l,实现第一优化模块中第三策略网络、第二通信信道和第四策略网络优化:
[0057][0058]
3.15机器人节点仿真模型i的第一优化模块从第二经验回放池中取出的(n

1)
×
p条轨迹,同样使用梯度下降法更新相关度生成器:
[0059][0060][0061]
其中,是相关度生成器的参数。
[0062]
3.16令t=t 1。若t等于设定的每轮最大步数t,则执行步骤3.17;否则执行步骤3.5。
[0063]
3.17令k=k 1。若k等于设定的最大执行轮数k,则执行步骤3.18;否则执行步骤3.5。
[0064]
3.18机器人节点仿真模型i第一优化模块将更新后的第三策略网络、第二通信信道和第四策略网络组成中的的参数保存生成第二.pth格式文件;动作生成模块将更新后的第一策略网络、相关度生成器、第一通信信道和第二策略网络组成中的的参数保存生成第一.pth格式文件。(.pth格式的文件可由pytorch深度学习框架直接生成)。
[0065]
n个机器人节点仿真模型并行执行完第三步,得到了2n个.pth格式文件。其中n个第一.pth格式文件中记录的动作生成模块的参数,为n个机器人节点生成导航和避障动作,另外n个第二.pth格式文件中记录的第一优化模块的参数,用于对机器人节点避障策略的进一步调整。2n个.pth格式文件共同组成最终的协同避障策略。
[0066]
第四步,n个机器人节点仿真模型将第一.pth格式文件、第二.pth格式文件上传到云端服务器节点,由第二优化模块对这2n个.pth格式文件进行评价。n台机器人节点仿真模型并行执行以下步骤,以机器人节点仿真模型i为例来说明,具体步骤如下:
[0067]
4.1机器人节点仿真模型i的动作生成模块将第一.pth格式文件发送到机器人节点仿真模型i的第一通信模块;机器人节点仿真模型i的第一优化模块将第二.pth格式文件发送到机器人节点仿真模型i的第一通信模块。
[0068]
4.2机器人节点仿真模型i的第一通信模块通过ssh通信服务,将第一.pth格式文件、第二.pth格式文件发送到云端服务器节点的第三通信模块。
[0069]
4.3第三通信模块接收到的第一.pth格式文件、第二.pth格式文件发送至第二优化模块。
[0070]
4.4n个第一.pth格式文件和n个第二.pth格式文件两两成对(即同一个机器人节点的第一.pth格式文件和第二.pth格式文件组成一对),由第二优化模块对这n对.pth格式文件(即n个机器人的策略)在仿真环境中进行测试,根据成功率、碰撞率和导航时间三种性能指标归一化(一种物理学计算方式,具体参考https://www.jianshu.com/p/95a8f035c86c)后按照1:1:1的权重对n个机器人的策略进行评价,作为策略标签值。机器人节点仿真模型i的策略标签值记为pv
i
。这n对.pth格式文件共同构成该多机器人系统的协同避障策略。
[0071]
第五步,将第一步构建的通信受限的多机器人导航避障系统设置在需要导航和避障任务的地点(即将要派遣多机器人进行搜救的灾区等复杂场景),对仿真环境下的多机器人协同避障策略进行优化,提升在仿真复杂场景中形成的避障策略在真实复杂场景中的使用效果。n台机器人节点并行执行以下步骤,以机器人节点i为例来说明,具体步骤如下:
[0072]
5.1机器人节点i的第一通信模块向云端服务器节点的第三通信模块发送基本多机器人协同避障策略下载请求。
[0073]
5.2机器人节点i的第二优化模块为机器人节点i从n对.pth格式文件中以概率分布的方式选择一对.pth格式文件,并将其通过第三通信模块转发给机器人节点i的第一通信模块。其中第i对.pth格式文件被选中的概率为(因此机器人节点i收到的可能是其他机器人的策略,以保证优秀的策略被选中的概率更大)
[0074]
5.3机器人节点i的第一通信模块将选中的一对.pth格式文件中的第一.pth格式文件发送给机器人节点i的动作生成模块,初始化机器人节点i的第一优化模块的参数(由pytorch深度学习框架直接加载);机器人节点i的第一通信模块将选中的一对.pth格式文件中的第二.pth格式文件发送给机器人节点i的第一优化模块,初始化机器人节点i的第一优化模块的参数。
[0075]
5.4初始化t=0,清空第一存储模块,初始化最大步骤数t

,t

为正整数,建议取值为50~100。
[0076]
5.5机器人节点i的动作生成模块从机器人节点仿真模型i的探测模块获得在时间步t对于机器人节点仿真模型j(1≤j≤n且j≠i)的观测值从其他所有机器人的消息集合中选取最相关的消息集合生成动作指令a
i
,将a
i
发送给机器人节点仿真模型i的运动模块。将第一轨迹信息和第二轨迹信息存入第一存储模块。具体方法与3.5相同。
[0077]
5.6机器人节点i的运动模块执行动作
[0078]
5.7在机器人节点i的运动模块执行行为后,机器人节点i根据步骤2.4设计的评价指标,得到当前避障任务完成度评分并将发送到机器人节点i的第一存储模块。
[0079]
5.8的执行导致复杂场景状态发生变化,机器人节点i的探测模块观测到新的复
杂场景环境状态并将发送到第一优化模块。
[0080]
5.9机器人节点i的第一存储模块将接收的整合成一组第一轨迹信息存入机器人节点i的第一存储模块的第一经验回放池;将接收的整合成一组第二轨迹信息存入机器人节点i的第一存储模块的第二经验回放池。
[0081]
5.10若机器人节点i的第一存储模块的第一经验回放池已经有r1条信息,则动作生成模块从第一经验回放池中随机抽取r1条第一轨迹信息,转步骤5.11;否则,令t=t 1,转步骤5.4。r1为正整数,r1的建议取值为30~50。
[0082]
5.11机器人节点i的动作生成模块根据读取的r1条第一轨迹信息,通过梯度下降法,使得如公式(1)所示的机器人节点i表现评价函数j(θ)值增大。在此过程中更新了动作生成模块中的网络参数,实现对动作生成模块中第一策略网络、第二策略网络和第一通信信道的优化。
[0083]
5.12机器人节点i的第一优化模块读取r1条第一轨迹信息,采用梯度下降法最小化如公式(2)所示的损失函数l(φ),在此过程中第一优化模块中的网络参数得到了更新,实现了对第一优化模块的第三策略网络、第二通信信道和第四策略网络的优化。
[0084]
5.13机器人节点i的第一优化模块在第一存储模块的第二经验回放池中读取对应的r2(r1为正整数,r2的建议取值为180~300)条第二轨迹信息,通过梯度下降法,使得如公式(3)所示的机器人节点i的消息选择器对应的损失函数最小,实现了对相关度生成器的网络参数得到了更新,实现了对通信消息选择的优化。
[0085]
5.14休眠α秒。若t达到最大步骤数t

,表示避障策略优化完毕,转第六步;否则,转步骤5.4。
[0086]
执行完第五步后,当前每个机器人节点的动作生成模块中的第一策略网络、相关度生成器、第一通信信道和第二策略网络参数,第一优化模块中的就是依据真实场景进一步优化后的避障策略,能够实现根据机器人节点观测到的复杂场景状态自主选择最有价值的通信消息,并决定下一步采取的动作。
[0087]
第六步,多机器人系统根据优化后的避障策略,在复杂场景下协同完成导航与避障任务。n台机器人节点并行执行以下步骤,以机器人节点i为例来说明,具体步骤如下:
[0088]
6.1初始化t=0。
[0089]
6.2机器人节点i的探测模块探测复杂场景状态(此时是真实复杂场景状态,包括周围机器人节点、障碍物位置信息等),将发送至动作生成模块。
[0090]
6.3机器人节点i的动作生成模块生成动作,方法是:
[0091]
6.3.1第一策略网络从探测模块接收传感器级别观测和机器人自身观测,生成通信消息将发送给相关度生成器、第一通信信道。
[0092]
6.3.2相关度生成器从第一策略网络接收从探测模块接收智能体级别观测,生成其他机器人对机器人节点i的相关度,将相关度发送给消息选择器。
[0093]
6.3.3消息选择器从相关度生成器接收其他机器人节点的相关度,从第二通信模
块接收来自其它机器人的消息,根据相关度从来自其它机器人的消息集合中筛选出与机器人节点i最相关l条消息,形成机器人节点仿真模型i最相关的消息集合将与机器人节点的消息发送给第一通信信道。
[0094]
6.3.4第一通信信道从第一策略网络接收从消息选择器接收与机器人节点,采用注意力机制,生成影响向量。
[0095]
6.3.5第二策略网络将影响向量映射为动作
[0096]
6.4机器人节点i的动作生成模块的第二策略网络将发送到机器人节点i的运动模块。
[0097]
6.5机器人节点i的运动模块执行动作
[0098]
6.6若机器人节点i在各种障碍物保持安全距离d1米的同时达到目标点附近d2米以内,d1和d2均为正数(d1和d2的建议取值范围在0.1~0.3米),则判定其到达目标点,转第七步;如果未能保持安全距离d1米,则判定为碰撞,转第七步;如果在各种障碍物保持安全距离d1米的同时未达到目标点附近d2米以内,且未到达最大时间步则返回步骤6.2;如果在各种障碍物保持安全距离d1米的同时未达到目标点附近d2米以内,且到达最大时间步,则判定为超时,转到第七步。
[0099]
第七步,结束。
[0100]
本发明的有益技术效果是:
[0101]
(1)本发明综合考虑自身和周围环境的各方面因素来选择与当前机器人最相关的消息进行通信,从而体现出更好的协同性能。
[0102]
(2)本发明利用了智能体级别观测和传感器级别观测信息,巧妙地结合了两者的优势,实现了1 1>2的效果。能够在存在各种移动障碍物、机器人密度较大的复杂场景中仍表现出较好的避障性能。
[0103]
(3)本发明将策略训练分为两个阶段,首先在第三步仿真器中进行大量的知识积累,然后第五步从仿真环境中迁移到真实环境中做少量训练,适应真实场景中存在误差和噪声等问题。
[0104]
(4)在基于仿真环境的测试中,通过与背景技术中提到的仅基于传感器信息的方法、atoc、tarmac方法进行对比,本发明在改变环境条件和机器人节点数目两种设置下,均取得了在更短的时间内学习到拥有最高的避障成功率和导航效率的策略。
附图说明
[0105]
图1是本发明第一步构建的多机器人自主协同导航与避障逻辑结构图。
[0106]
图2是本发明动作生成模块逻辑结构示意图。
[0107]
图3是本发明第一优化模块的逻辑结构示意图。
[0108]
图4是本发明总体流程图。
[0109]
图5是本发明在第三步构建的仿真环境示意图:人群场景下的多机器人避障复杂场景。每个机器人装配有探测模块,并选择性的与周围的机器人进行通信,然后生成协作和无碰撞的动作以导航至目标点。
[0110]
图6是第三步的训练过程重复执行3次后得到的损失函数度量值平均结果。
具体实施方式
[0111]
图4是本发明总体流程图。如图4所示,本发明包括以下步骤:
[0112]
第一步,构建通信受限的多机器人导航避障系统。该系统如图1所示,由一个云端服务器节点、n个机器人节点组成。云端服务器节点与n个机器人节点相连,n为正整数。
[0113]
机器人节点指能够运动、观测、通信、具有软件运行能力的机器人。可采用的机器人节点包括但不限于地面机器人节点pioneer 3

dx等。每个机器人节点上均部署有两个通信模块(即第一通信模块、第二通信模块)、探测模块、第一存储模块、动作生成模块、运动模块、第一优化模块。
[0114]
探测模块是能采集复杂场景环境数据的传感器,如激光扫描雷达、红外摄像头、深度摄像头等。机器人节点i(1≤i≤n)的探测模块与机器人节点i的第一存储模块和动作生成模块相连,探测模块每隔α秒周期性地对传感器可见范围内的应用场景和除机器人节点i以外的另n

1台机器人节点进行拍摄或扫描,得到机器人自身观测(包括当前机器人的位置、速度和朝向)、传感器级别观测(如二维激光雷达、红外摄像头、深度摄像头输出的距离信息)和智能体级别观测(其他机器人位置和速度),并将这些应用场景状态发送给机器人节点i的第一存储模块和动作生成模块。α建议取值范围为0.1~0.3。
[0115]
动作生成模块负责制定和优化避障策略,并根据与避障策略向运动模块发送动作指令。机器人节点i的动作生成模块与机器人节点i的探测模块、第一存储模块、运动模块、第二通信模块、第一优化模块相连。如图2所示,动作生成模块由第一策略网络,第二策略网络,第一通信信道,相关度生成器和消息选择器组成。
[0116]
第一策略网络与探测模块、相关度生成器、第一通信信道相连,第一策略网络由两个卷积层(即第一卷积层、第二卷积层)和两个全连接层(即第一全连接层、第二全连接层)组成。第一卷积层由32个内核大小为5,步长为2的一维过滤器(conv1d)组成。第二卷积层由32个内核大小为3,步长为2的一维过滤器(conv1d)组成。第一卷积层从探测模块接收传感器级别观测和机器人节点i自身观测,即激光扫描观测,并对传感器级别观测进行卷积操作,将卷积操作后的传感器级别观测传给第二卷积层。第二卷积层对卷积操作后的传感器级别观测进行卷积操作,并将第二次卷积操作后的传感器级别观测与机器人自身观测(即机器人节点i的速度、位置和目标点)坐标信息进行拼接,将拼接好的激光扫描观测传给第一全连接层。第一全连接层具有512个整流单元,第二全连接层具有128个整流单元,第一全连接层、第二全连接层依次对拼接好的传感器级别观测进行全连接操作,由第二全连接层向相关度生成器、第一通信信道输出128维的通信消息。
[0117]
相关度生成器与第一策略网络、消息选择器、探测模块、第一存储模块相连,是包含64个整流单元的全连接层,用于将从第一策略网络接收的机器人节点i的通信消息和从探测模块得到的其他机器人的智能体级别信息进行编码,生成其他机器人相对于机器人节点i的相关度,将相关度发送给消息选择器。
[0118]
消息选择器与相关度生成器、第二通信模块和第一通信信道相连。消息选择器从第二通信模块接收来自其他机器人的消息,从相关度生成器得到其他机器人相对于机器人节点i的相关度,根据其他机器人相对于机器人节点i的相关度从来自其他机器人的消息中
筛选出最相关的消息,将最相关的消息发送给第一通信信道,使得第一通信信道进行选择性通信。选择性通信保证了机器人节点i的通信带宽满足通信限制。
[0119]
第一通信信道与第一策略网络、消息选择器和第二策略网络相连,由注意力机制实现,是三个包含256个整流单元的全连接网络。第一通信信道从第一策略网络接收机器人节点i产生的消息,从消息选择器接收最相关的消息,将机器人节点i产生的消息和最相关的消息整合成其他机器人对机器人节点i的256维影响向量,将影响向量发送给第二策略网络。
[0120]
第二策略网络与第一通信信道、运动模块、第一存储模块相连,由两个全连接层组成,一个全连接层包含128个整流单元,另一个全连接层包含32个整流单元。来自第一通信信道的影响向量依次输入两个全连接层,映射为动作指令,输出给运动模块和第一存储模块。
[0121]
动作生成模块的第二策略网络将更新后的第一策略网络、相关度生成器、第一通信信道和第二策略网络组成中的参数保存生成第一.pth格式文件,将第一.pth格式文件发送给第一通信模块。
[0122]
机器人节点i的第一存储模块是可用空间1gb以上的存贮器,与机器人节点i的探测模块、动作生成模块、第二通信模块和第一优化模块相连。从探测模块接收应用场景状态(包括机器人自身观测、传感器级别观测和智能体级别观测),从第二通信模块接收其他所有机器人的消息,从动作生成模块接收当前时刻的动作。第一存储模块中有两个经验回放池(第一经验回放池和第二经验回放池)。第一经验回放池是一个容量为p1的双端队列,存放机器人节点i的p1条第一轨迹信息(p1为正整数,p1的建议取值范围为128~256)。第一轨迹信息以五元组的形式存放,五元组包含当前时刻的观测、通信消息、动作、环境反馈的奖励以及下个时刻的观测。机器人节点i的第t条第一轨迹信息的格式表示为其中,表示机器人节点i的探测模块第t步观察到的应用场景状态,主要涵盖第t个时间步观察到的传感器级别观测、自身的速度、位置和目标点坐标,以及除机器人节点i以外的另n

1台机器人节点的速度和位置。表示其他所有机器人的消息组成的集合。表示机器人节点i的探测模块在第t次观测后,机器人节点i所采取的行动,表现为机器人节点i的线速度和角速度。机器人节点i在执行行动时自动记录为机器人节点i的线速度和角速度。机器人节点i在执行行动时自动记录是机器人节点i的探测模块在第t 1次观察前,对于第t次观察到的导航与避障场景状态的任务完成度进行评价的得分。表示机器人节点i的探测模块第t 1次观察到的复杂场景状态,主要涵盖第t 1次观察到的激光雷达数据,自身的速度,位置和目标点坐标,以及除机器人节点i以外的另n

1台机器人节点的速度和位置。在逻辑关系上,可以解释为由经过行为a
t
后所得到的新应用场景观察到的激光雷达数据。第二经验回放池是一个容量为p2的双端队列,存放机器人节点i的p2条第二轨迹信息(p2为正整数,p2的建议取值范围为2000~2500)。第二轨迹信息的格式表示为三元组~2500)。第二轨迹信息的格式表示为三元组包括机器人i在第t个时间步观察到的传感器级别观测、自身的速度、位置和目标点坐标,以及机器人节点j的速度和位置。
[0123]
第一优化模块用于机器人更新避障策略。
[0124]
机器人节点i的第一优化模块与机器人节点i的第一存储模块、第一通信模块、动作生成模块相连。第一优化模块如图3所示,由第三策略网络、第二通信信道和第四策略网络组成。第三策略网络与第一策略网络的结构完全相同。第三策略网络与第一存储模块和第二通信信道相连,从第一存储模块读取第一轨迹信息。第三策略网络将第一轨迹信息中的传感器级别观测和机器人自身观测映射为当前机器人节点i的消息,将机器人节点i的消息发送给第二通信信道。第二通信信道和第一通信信道结构完全相同,第二通信信道与第三策略网络和第一存储模块相连,接收第三策略网络中输出的机器人节点i的消息以及第一存储模块中第一轨迹信息中的得到影响向量(256维向量,是注意力机制的输出结果),将影响向量发送给第四策略网络;第四策略网络与第二策略网络的结构完全相同,第四策略网络与第二通信信道和动作生成模块相连,从第二通信信道接收影响向量,输出当前观测对应的价值,并以当前观测对应的价值生成梯度,将梯度发送给动作生成模块,以辅助动作生成模块进行参数更新。第一优化模块的第四策略网络将更新后的第三策略网络、第二通信信道和第四策略网络组成中的参数保存生成第二.pth格式文件,将第二.pth格式文件发送给第一通信模块。
[0125]
机器人节点i安装有ubuntu 16.04及以上版本的操作系统(用于x86架构处理器)或ubuntu mate16.04及以上版本的操作系统(用于arm架构处理器),并安装有与操作系统相匹配的ros和pytorch深度学习框架(1.4版本及以上)。本发明使用pytorch深度学习框架创建动作生成模块和第一优化模块。
[0126]
机器人节点i的第一通信模块(如无线网卡)与机器人节点i的动作生成模块、第一优化模块、云端服务器节点的第三通信模块相连。第一通信模块从动作生成模块接收第一.pth格式文件,从第一优化模块接收第二.pth格式文件,将第一.pth格式文件和第一.pth格式文件通过ssh(secure shell,一种网络服务安全协议)通信服务发送给云端第三通信模块。
[0127]
机器人节点i的运动模块由数模转换器和马达、轮胎等驱动装置构成。机器人节点i的运动模块与机器人节点i的动作生成模块相连,从动作生成模块接收动作指令,通过内置的数模转换器将数字信号转换为模拟信号,并将模拟信号传输给驱动装置,使机器人根据行动指令做出相应动作,导致场景的状态发生改变。
[0128]
机器人节点i的第二通信模块(如蓝牙、zigbee、wifi等)与机器人节点i的动作生成模块、机器人节点j的第二通信模块相连,负责机器人节点i与另n

1个机器人之间的通信,并模拟复杂场景中受限的通信环境。第二通信模块广播消息无限制,但在同一个时间步内最多只能同时监听其他r个机器人节点的消息,r为正整数,r≤n

1,建议取值范围为2~5。
[0129]
云端服务器节点指网络服务器、工作站等,安装有ubuntu16.04及以上版本的操作系统,以及与机器人节点相同版本的pytorch深度学习框架,并安装有第三通信模块(如无线网卡)和第二优化模块,负责接收来自n个机器人的第一.pth格式文件和第二.pth格式文件。
[0130]
云端服务器节点上安装有第二优化模块、第三通信模块。
[0131]
第三通信模块与n个机器人节点的第一通信模块均相连,从n个机器人节点的第一
通信模块分别接收第一.pth格式文件和第二.pth格式文件,将第一.pth格式文件和第二.pth格式文件发送给第二优化模块。第二优化模块对从第三通信模块接收的2n个.pth格式文件进行整合,得到最终的协同避障策略。
[0132]
第二步,在webots仿真环境(版本2020b以上)中构建导航与避障仿真复杂场景,为训练做准备。具体步骤如下:
[0133]
2.1在任意一台装有ubuntu16.04及以上版本的电脑上运行webots仿真环境,并在webots仿真环境中,仿照第一步构建的通信受限的多机器人导航避障系统中n个机器人节点的实际结构和尺寸,构建对应的n个机器人节点仿真模型。
[0134]
2.2在webots仿真环境中,对复杂场景可能出现的各个要素(如目标点、行人和障碍物)以相同比例进行仿真建模,得到各种场景要素仿真模型。
[0135]
2.3设计避障任务完成度单步奖励函数,用于对机器人协同导航与避障策略在仿真环境下的效果给出定量评价,通常采用对多要素衡量进行打分并累计求和的方式。如机器人节点仿真模型距离目标点每接近1米则奖励2.5分,每背离1米则扣2.5分;机器人节点仿真模型到达目标点则奖励15分;机器人节点仿真模型与其他机器人模型或障碍物碰撞则扣15分;如果机器人节点仿真模型的角速度大于1.05rad/s,则扣角速度的0.1倍对应的分数。
[0136]
图5是第二步构建的多机器人复杂仿真场景的一个实例,该场景中包含了六个机器人(其中一个不在视野范围内)和若干个行人。每个机器人同时最多只能与其他3(即r=3)个机器人进行通信。机器人要依据自己的观测来选择场景中最有相关的通信对象来接收消息,并依据消息和自身观测生成协作和无碰撞的导航动作。
[0137]
第三步,n个机器人节点仿真模型在第二步构建好的仿真复杂场景中并行进行预训练,使机器人节点掌握具有泛化性的协同避障策略。n台机器人节点仿真模型的训练过程相同,机器人节点仿真模型i的训练过程如下,1≤i≤n:
[0138]
3.1对机器人节点仿真模型i的避障策略进行初始化,即对动作生成模块包含的第一策略网络、相关度生成器、第一通信信道和第二策略网络和第一优化模块中的第三策略网络、第二通信信道和第四策略网络参数进行初始化,参数包括全连接网络内部每层之间的权重矩阵、偏置向量以及卷积网络中的卷积核,具体数值按照期望为0、方差为2的正态分布随机生成。
[0139]
3.2初始化已经探索的轮数k=0,并设定在仿真复杂场景中最大探索轮数k(k为正整数,建议取值范围为1500~2000。
[0140]
3.3在仿真复杂场景中随机设置多机器人节点仿真模型和各自对应的目标点位置。
[0141]
3.4初始化机器人节点仿真模型i在第k轮探索中已经完成的行动步数t=0,并设定第k轮探索中机器人节点仿真模型i可以执行的行动步数最大值t,t为正整数(t的设置应该参考机器人节点仿真模型i的初始位置p
m
、距离其最近的目标点的初始位置p
t
、机器人节点仿真模型所能允许的最大速度v
max
;t的取值为2
×
(||p
m

p
t
||2/v
max
)/σ~3
×
(||p
m

p
t
||2/v
max
)/σ,其中||x

y||2表示从位置x到位置y的欧氏距离,σ=0.1)。
[0142]
3.5机器人节点仿真模型i的动作生成模块从机器人节点仿真模型i的探测模块获得在时间步t对于机器人节点仿真模型j(1≤j≤n且j≠i)的观测值生成动作指令a
i
,将
a
i
发送给机器人节点仿真模型i的运动模块和第一存储模块,方法是:
[0143]
3.5.1第一策略网络从机器人节点仿真模型i的探测模块获得传感器级别观测、机器人自身观测,记为将输入第一策略网络,得到通信消息,将通信消息发送给第一通信信道和相关度生成器。
[0144]
3.5.2相关度生成器从第一策略网络接收通信消息,从机器人节点仿真模型i的探测模块获得智能体级别的观测根据通信消息和智能体级别的观测生成机器人节点仿真模型i与其他所有机器人节点仿真模型的相关度,将相关度发送给消息选择器。
[0145]
3.5.3消息选择器从相关度生成器接收相关度,从第二通信模块接收其他机器人模型(即机器人节点仿真模型i以外的模型)的消息根据相关度对机器人节点进行排序,选出最大的前l个相关度值对应的机器人节点发送的消息,形成机器人节点仿真模型i最相关的消息集合将连同机器人节点i自身的消息一起输入到第一通信信道。
[0146]
3.5.4第一通信信道通过注意力机制,将输入的消息映射为影响向量,并将影响向量发送给第二策略网络。
[0147]
3.5.5第二策略网络将从第一通信信道接收的影响向量映射为行动指令a
i
,将a
i
发送给机器人节点仿真模型i的运动模块和第一存储模块;是一个二维向量,μ是平均值,σ是标准差。最终的动作数值在高斯分布n(μ,σ2)中采样得到,即得到策略)中采样得到,即得到策略表示机器人节点仿真模型i在第t步时,动作生成模块按照当前策略根据生成的动作概率分布。
[0148]
3.6运动模块执行动作
[0149]
3.7按照步骤2.3中设计的评价指标,webots仿真环境返回机器人节点仿真模型i的导航与避障任务完成度评价得分将发送到机器人节点仿真模型i的第一存储模块。
[0150]
3.8机器人节点仿真模型i的动作执行导致复杂场景状态发生变化,机器人节点仿真模型i的探测模块观测到下一个时间步t 1的复杂场景状态将并发送给机器人节点仿真模型i的第一存储模块。
[0151]
3.9机器人节点仿真模型i的第一存储模块将一组第一轨迹信息存入到第一经验回放池。机器人节点仿真模型i的第一存储模块将第二轨迹信息存入到第二经验回放池。
[0152]
3.10机器人节点仿真模型i的第一优化模块判定第一经验回放池是否已有p条信息,若已有p条信息,则第一优化模块从第一经验回放池随机抽取p条第一轨迹信息,转步骤3.11;否则,令i=i 1,转步骤3.8。p为正整数,p的建议取值为50~100。
[0153]
3.11机器人节点仿真模型i的第一优化模块按照抽取的先后顺序对p条第一轨迹信息进行编号,令为1~p。同时初始化第一轨迹信息序号值np=1。
[0154]
3.12机器人节点仿真模型i的第一优化模块从序号np开始顺序选取前p条第一轨迹信息,将选取的p条第一轨迹信息发送给动作生成模块,并将np更新为选取第一轨迹信息中最后一条的序号。p为小于等于p的正整数,p的建议取值范围为5~10。
[0155]
3.13机器人节点仿真模型i的动作生成模块从第一优化模块接收选取的p条第一轨迹信息,根据p条第一轨迹信息,采用梯度下降法,使得机器人节点仿真模型i表现评价函数j(θ)值增大。在增大j(θ)值的过程中,动作生成模块中的第一策略网络、相关度生成器、第一通信信道和第二策略网络同时得到更新,从而实现对动作生成模块进行参数优化:
[0156][0157]
其中,θ表示动作生成模块中包含的第一策略网络、第一通信信道和第二策略网络的参数,表示机器人节点仿真模型i在第t步时,动作生成模块按照当前策略根据第一轨迹信息中依照观测生成动作指令的概率,表示机器人节点仿真模型i在第t步时,动作生成模块按照上次更新前的策略根据第一轨迹信息中依照观测生成动作指令的概率,这两个概率分布由动作生成模块的第二策略网络确定。φ是第一优化模块中包含的第三策略网络、第二通信信道和第四策略网络的参数。∈是控制策略更新幅度的超参数,建议取值为0.1

0.3。γ是衰减因子,建议取值为0.8

0.9。是第一优化模块输出的价值,t

是大于t的步骤号。
[0158]
3.14机器人节点仿真模型i的第一优化模块采用梯度下降法最小化如公式(2)所示的损失函数l,实现第一优化模块中第三策略网络、第二通信信道和第四策略网络优化:
[0159][0160]
3.15机器人节点仿真模型i的第一优化模块从第二经验回放池中取出的(n

1)
×
p条轨迹,同样使用梯度下降法更新相关度生成器:
[0161][0162][0163]
其中,是相关度生成器的参数。
[0164]
3.16令t=t 1。若t等于设定的每轮最大步数t,则执行步骤3.17;否则执行步骤3.5。
[0165]
3.17令k=k 1。若k等于设定的最大执行轮数k,则执行步骤3.18;否则执行步骤3.5。
[0166]
3.18机器人节点仿真模型i第一优化模块将更新后的第三策略网络、第二通信信道和第四策略网络组成中的的参数保存生成第二.pth格式文件;动作生成模块将更新后的第一策略网络、相关度生成器、第一通信信道和第二策略网络组成中的的参数保存生成第一.pth格式文件。
[0167]
n个机器人节点仿真模型并行执行完第三步,得到了2n个.pth格式文件。其中n个第一.pth格式文件中记录的动作生成模块的参数,为n个机器人节点生成导航和避障动作,另外n个第二.pth格式文件中记录的第一优化模块的参数,用于对机器人节点避障策略的进一步调整。2n个.pth格式文件共同组成最终的协同避障策略。图6是图5所示多机器人复杂仿真场景的实例训练结果示意图。该图表明了环境给予机器人仿真节点的奖励值随训练轮数的增多而变化的趋势。横轴表示训练的轮数k,纵轴表示每轮中环境反馈给机器人仿真节点的奖励值(由避障任务完成度单步奖励函数生成)。本发明与背景技术其他三种方法(即基于传感器的方法、tarmac、atoc)进行对比:基于传感器的方法是仅使用传感器级别信息,即激光雷达扫描数据生成无碰撞的导航动作;tarmac是假设通信不受限,即任何时刻任一机器人都与场景中其他所有机器人保持通信;atoc虽然采用了注意力机制用于决定机器人是否通信,但是其通信信道未使用注意力机制。本发明的通信信道基于注意力机制,可以保证协同避障策略的生成;且相关度生成器和消息选择器的结构更适用于多机器人受限通信场景。实验结果表明,当训练轮数到达1500时,四种算法生成的策略都能够达到收敛效果。但本发明获得环境反馈的奖励最大,说明本发明在该复杂场景下拥有更好的导航和避障性能。由图6可以看出:基于传感器的方法由于未能利用智能体级别信息且机器人之间不存在通信,难以达到理想的性能,训练到1600轮时,平均奖励刚刚比0稍大;atoc和tarmac的性能相近,但tarmac在训练轮数到1600之后的奖励值有下降的趋势,表明机器人之间的全局通信会对机器人的策略进行干扰;本发明虽然一开始上升较为缓慢,但最终收敛后的性能最好。
[0168]
第四步,n个机器人节点仿真模型将第一.pth格式文件、第二.pth格式文件上传到云端服务器节点,由第二优化模块对这2n个.pth格式文件进行评价。n台机器人节点仿真模型并行执行以下步骤,以机器人节点仿真模型i为例来说明,具体步骤如下:
[0169]
4.1机器人节点仿真模型i的动作生成模块将第一.pth格式文件发送到机器人节点仿真模型i的第一通信模块;机器人节点仿真模型i的第一优化模块将第二.pth格式文件发送到机器人节点仿真模型i的第一通信模块。
[0170]
4.2机器人节点仿真模型i的第一通信模块通过ssh通信服务,将第一.pth格式文件、第二.pth格式文件发送到云端服务器节点的第三通信模块。
[0171]
4.3第三通信模块接收到的第一.pth格式文件、第二.pth格式文件发送至第二优化模块。
[0172]
4.4n个第一.pth格式文件和n个第二.pth格式文件两两成对(即同一个机器人节点的第一.pth格式文件和第二.pth格式文件组成一对),由第二优化模块对这n对.pth格式文件(即n个机器人的策略)在仿真环境中进行测试,根据成功率、碰撞率和导航时间三种性能指标归一化后按照1:1:1的权重对n个机器人的策略进行评价,作为策略标签值。机器人节点仿真模型i的策略标签值记为pv
i
。这n对.pth格式文件共同构成该多机器人系统的协同避障策略。
[0173]
第五步,将第一步构建的通信受限的多机器人导航避障系统设置在需要导航和避障任务的地点(即将要派遣多机器人进行搜救的灾区等复杂场景),对仿真环境下的多机器人协同避障策略进行优化,提升在仿真复杂场景中形成的避障策略在真实复杂场景中的使用效果。n台机器人节点并行执行以下步骤,以机器人节点i为例来说明,具体步骤如下:
[0174]
5.1机器人节点i的第一通信模块向云端服务器节点的第三通信模块发送基本多机器人协同避障策略下载请求。
[0175]
5.2机器人节点i的第二优化模块为机器人节点i从n对.pth格式文件中以概率分布的方式选择一对.pth格式文件,并将其通过第三通信模块转发给机器人节点i的第一通信模块。其中第i对.pth格式文件被选中的概率为
[0176]
5.3机器人节点i的第一通信模块将选中的一对.pth格式文件中的第一.pth格式文件发送给机器人节点i的动作生成模块,初始化机器人节点i的第一优化模块的参数(由pytorch深度学习框架直接加载);机器人节点i的第一通信模块将选中的一对.pth格式文件中的第二.pth格式文件发送给机器人节点i的第一优化模块,初始化机器人节点i的第一优化模块的参数。
[0177]
5.4初始化t=0,清空第一存储模块,初始化最大步骤数t

,t

为正整数,建议取值为50~100。
[0178]
5.5机器人节点i的动作生成模块从机器人节点仿真模型i的探测模块获得在时间步t对于机器人节点仿真模型j(1≤j≤n且j≠i)的观测值从其他所有机器人的消息集合中选取最相关的消息集合生成动作指令a
i
,将a
i
发送给机器人节点仿真模型i的运动模块。将第一轨迹信息和第二轨迹信息存入第一存储模块。具体方法与3.5相同。
[0179]
5.6机器人节点i的运动模块执行动作
[0180]
5.7在机器人节点i的运动模块执行行为后,机器人节点i根据步骤2.4设计的评价指标,得到当前避障任务完成度评分并将发送到机器人节点i的第一存储模块。
[0181]
5.8的执行导致复杂场景状态发生变化,机器人节点i的探测模块观测到新的复杂场景环境状态并将发送到第一优化模块。
[0182]
5.9机器人节点i的第一存储模块将接收的整合成一组第一轨迹信息存入机器人节点i的第一存储模块的第一经验回放池;将接收的整合成一组第二轨迹信息存入机器人节点i的第一存储模块的第二经验回放池。
[0183]
5.10若机器人节点i的第一存储模块的第一经验回放池已经有r1条信息,则动作生成模块从第一经验回放池中随机抽取r1条第一轨迹信息,转步骤5.11;否则,令t=t 1,转步骤5.4。r1为正整数,r1的建议取值为30~50。
[0184]
5.11机器人节点i的动作生成模块根据读取的r1条第一轨迹信息,通过梯度下降法,使得如公式(1)所示的机器人节点i表现评价函数j(θ)值增大。在此过程中更新了动作生成模块中的网络参数,实现对动作生成模块中第一策略网络、第二策略网络和第一通信信道的优化。
[0185]
5.12机器人节点i的第一优化模块读取r1条第一轨迹信息,采用梯度下降法最小
化如公式(2)所示的损失函数l(φ),在此过程中第一优化模块中的网络参数得到了更新,实现了对第一优化模块的第三策略网络、第二通信信道和第四策略网络的优化。
[0186]
5.13机器人节点i的第一优化模块在第一存储模块的第二经验回放池中读取对应的r2条第二轨迹信息,通过梯度下降法,使得如公式(3)所示的机器人节点i的消息选择器对应的损失函数最小,实现了对相关度生成器的网络参数得到了更新,实现了对通信消息选择的优化。
[0187]
5.14休眠α秒。若t达到最大步骤数t

,表示避障策略优化完毕,转第六步;否则,转步骤5.4。
[0188]
执行完第五步后,当前每个机器人节点的动作生成模块中的第一策略网络、相关度生成器、第一通信信道和第二策略网络参数,第一优化模块中的就是依据真实场景进一步优化后的避障策略,能够实现根据机器人节点观测到的复杂场景状态自主选择最有价值的通信消息,并决定下一步采取的动作。
[0189]
第六步,多机器人系统根据优化后的避障策略,在复杂场景下协同完成导航与避障任务。n台机器人节点并行执行以下步骤,以机器人节点i为例来说明,具体步骤如下:
[0190]
6.1初始化t=0。
[0191]
6.2机器人节点i的探测模块探测复杂场景状态(此时是真实复杂场景状态,包括周围机器人节点、障碍物位置信息等),将发送至动作生成模块。
[0192]
6.3机器人节点i的动作生成模块生成动作,方法是:
[0193]
6.3.1第一策略网络从探测模块接收传感器级别观测和机器人自身观测,生成通信消息将发送给相关度生成器、第一通信信道。
[0194]
6.3.2相关度生成器从第一策略网络接收从探测模块接收智能体级别观测,生成其他机器人对机器人节点i的相关度,将相关度发送给消息选择器。
[0195]
6.3.3消息选择器从相关度生成器接收其他机器人节点的相关度,从第二通信模块接收来自其它机器人的消息,根据相关度从来自其它机器人的消息集合中筛选出与机器人节点i最相关l条消息,形成机器人节点仿真模型i最相关的消息集合将与机器人节点的消息发送给第一通信信道。
[0196]
6.3.4第一通信信道从第一策略网络接收从消息选择器接收与机器人节点,采用注意力机制,生成影响向量。
[0197]
6.3.5第二策略网络将影响向量映射为动作
[0198]
6.4机器人节点i的动作生成模块的第二策略网络将发送到机器人节点i的运动模块。
[0199]
6.5机器人节点i的运动模块执行动作
[0200]
6.6若机器人节点i在各种障碍物保持安全距离d1米的同时达到目标点附近d2米以内,d1和d2均为正数(d1和d2的建议取值范围在0.1~0.3米),则判定其到达目标点,转第七步。如果未能保持安全距离d1米,则判定为碰撞,转第七步;如果在各种障碍物保持安全距离d1米的同时未达到目标点附近d2米以内,且未到达最大时间步则返回步骤6.2;如果在
各种障碍物保持安全距离d1米的同时未达到目标点附近d2米以内,且到达最大时间步,则判定为超时,转到第七步。
[0201]
第七步,结束。
[0202]
表1是第七步在n=6时给每个机器人随机初始化初始点和目标点进行导航任务,重复实验50次得到的实验结果。其中成功率是指机器人在特定时间步长内无碰撞达到目标多占的比率;碰撞率是指机器人与其他机器人或障碍物碰撞所占的比率;导航时间测量的是机器人达到目标的平均时间步长。经过6个真实机器人在真实复杂场景中的50次重复试验和结果统计,本发明相比于其他三种方法拥有最高的成功率(61.90%),最低的碰撞率(25.24%)和最短的导航时间(117个时间步)。说明本发明使得机器人拥有更好的导航效率和协同特性。
[0203]
表1
[0204][0205]
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献