多机器人协同移动与动态避障方法、装置、设备及介质
技术领域
本发明涉及机器人控制技术领域,尤其涉及一种多机器人协同移动与动态避障方法、装置、设备及介质。
背景技术
近年来,受益于深度学习和传感器感知技术的发展以及ROS等机器人操作系统的不断完善,大量的机器人产品得以走向市场。在移动类机器人中,轮式机器人较为普遍,对轮式机器人而言,完善的动态路径规划与避障方法是其正常作业的前提,但同时也是优化轮式机器人性能面临的核心难题。
常见的传统动态避障方法,如DWA、TEB局部路径规划算法应用在移动类机器人上时,并没有考虑周围物体的动态运动,且通过代价函数的方法寻找最优解,容易使规划路径陷入局部最优,导致机器人反复震荡。
但在日常应用场景中,机器人的工作环境往往是复杂动态的,如机场候机楼、车站候车厅等应用场景中,机器人在按规划路径运动时,既要动态避开行人,还要考虑附近多机器人移动过程中的相互影响,在此我们将移动的行人和物体统称为智能体。那么如何解决多机器人在协同移动过程时,动态避开其他智能体是提高机器人性能的关键。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种多机器人协同移动与动态避障方法,通过强化学习对机器人环境进行建模,根据机器人本体在环境中的状态和周围其他智能体的联合状态,获得最优的动作序列,使得机器人在执行相应动作时,能动态避开其他智能体,安全无碰的移动。
本发明的目的之一采用以下技术方案实现:
多机器人协同移动与动态避障方法,包括以下步骤:
获取机器人本体位姿,根据预先构建的三维点云地图和所述机器人本体位姿,计算机器人本体的实时状态;
采集实时点云数据,对所述点云数据进行预处理;
检测所述预处理后的点云数据中的若干智能体;
分别计算所述若干智能体的实时状态;
将所述若干智能体的实时状态输入预先构建的目标卷积神经网络,执行所述目标卷积神经网络输出的实时响应动作。
进一步地,通过3D激光雷达采集所述点云数据,对所述点云数据进行预处理,包括:删除地面及与所述机器人本体的直线距离大于5m的点云数据。
进一步地,根据预先构建的三维点云地图和所述机器人本体位姿,计算机器人本体的实时状态,具体包括:
获取机器人本体在所述三维点云地图中的定位坐标;
获取所述机器人本体位姿中的目标点坐标、机器人本体到所述目标点坐标的偏角、机器人本体的移动速度以及机器人本体半径;
根据所述定位坐标和所述目标点坐标,计算机器人本体到目标点坐标的距离,得到机器人本体的实时状态集合,如下所示:
其中,d
g为机器人本体到目标点坐标的距离,
为机器人本体到目标电坐标的偏角,
为机器人本体的移动速度,r为机器人本体半径。
进一步地,分别计算所述若干智能体的实时状态,包括:
分别获取每个智能体在三维点云地图中的实时定位坐标和半径;
分别根据每个智能体在三维点云地图中实时定位坐标,计算得到每个智能体在预设时段的实时位移;
分别通过对每个智能体的实时位移进行时间微分,计算得到每个智能体的移动速度;
生成所述若干智能体的实时状态,如下所示:
;其中,
,
为智能体在三维点云地图中的定
位坐标,
、
为智能体的移动速度,
为智能体距机器人本体的距离,
为智能体
与机器人本体的半径之和。
进一步地,预先构建所述目标卷积神经网络,包括以下步骤:
构建输入层,所述输入层包括两个GRU网络;
构建全连接层,设置所述全连接层的每层神经元个数为384,设置所述全连接层的激活函数为Relu,其表达式为:f(x)=max(0,x);
构建输出层,所述输出层包括两个输出单元和softmax层;
将所述输出层与所述连接层拼接,将所述全连接层与所述输出层拼接,形成所述目标卷积神经网络。
进一步地,预先构建所述目标卷积神经网络,还包括:
训练所述目标卷积神经网络的网络参数,具体包括以下步骤:
获取测试样本,将所述测试样本生成状态-值集合,形成测试集;
将所述测试集输入所述目标卷积神经网络的输入层,获取所述输出层的输出结果,计算所述输出结果的最小化二次回归误差,通过反向传播所述最小化二次回归误差更新所述目标卷积神经网络的网络参数。
进一步地,将所述若干智能体的实时状态输入预先构建的目标卷积神经网络,包括:
根据每个智能体距机器人本体的距离,降序排列每个智能体的实时状态,将每个智能体的实时状态依次输入所述目标卷积神经网络的输入层,通过所述输入层输出每个智能体的隐状态;
拼接所述隐状态与所述机器人本体的实时状态,形成输入向量;
将所述输入向量输入所述目标卷积神经网络的全连接层进行计算;
将所述全连接层的输出向量与所述输出层的输出结果进行全连接,并通过softmax层处理所述输出结果后,输出实时动作响应。
本发明的目的之二在于提供一种多机器人协同移动与动态避障装置,旨在实现动态环境下的实时任务分配和路径规划,提高多机器人调度过程中的通讯效率,从而提升客户体验。
本发明的目的之二采用以下技术方案实现:
多机器人协同移动与动态避障装置,其包括:
本体状态采集模块,用于获取机器人本体位姿,根据预先构建的三维点云地图和所述机器人本体位姿,计算机器人本体的实时状态;
点云数据处理模块,用于采集实时点云数据,对所述点云数据进行预处理,并检测所述预处理后的点云数据中的若干智能体;
智能体状态计算模块,用于分别计算所述若干智能体的实时状态;
响应动作生成模块,用于将所述若干智能体的实时状态依次输入预先构建的目标卷积神经网络,执行所述目标卷积神经网络输出的实时响应动作。
本发明的目的之三在于提供执行发明目的之一的电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时实现上述的多机器人协同移动与动态避障方法。
本发明的目的之四在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的多机器人协同移动与动态避障方法。
相比现有技术,本发明的有益效果在于:
本发明基于预先构建的目标卷积神经网络和预先构建的环境地图,实时获取机器人的环境状态作为输入信息,通过该目标卷积神经网络输出响应动作,使得机器人能根据响应动作移动,实现动态避障。
附图说明
图1是本发明多机器人协同移动与动态避障方法的流程原理图;
图2是实施例2中的多机器人协同移动与动态避障装置的结构框图;
图3是实施例3的电子设备的结构框图。
具体实施方式
以下将结合附图,对本发明进行更为详细的描述,需要说明的是,参照附图对本发明进行的描述仅是示意性的,而非限制性的。各个不同实施例之间可以进行相互组合,以构成未在以下描述中示出的其他实施例。
实施例1
本实施例提供了一种多机器人协同移动与动态避障方法,首先预先对机器人本体所处的环境进行3D建模,按照智能体距机器人本体的远近,将机器人本体周围的智能体(包括其他机器人和行人)的实时状态依次输入训练好的目标卷积神经网络,以输出机器人本体的实时响应动作,使得机器人本体执行实时响应动作,安全无碰的移动直到达到目标点。
根据上述原理,对多机器人协同移动与动态避障方法进行介绍,如图1所示,多机器人协同移动与动态避障方法,具体包括以下步骤:
获取机器人本体位姿,根据预先构建的三维点云地图和所述机器人本体位姿,计算机器人本体的实时状态;
采集实时点云数据,对所述点云数据进行预处理;
检测预处理后的所述点云数据,得到所述点云数据中的若干智能体;
分别计算所述若干智能体的实时状态;
将所述若干智能体的实时状态依次输入预先构建的目标卷积神经网络,执行所述目标卷积神经网络输出的实时响应动作,直到到达目标点坐标。
在本实施例中,机器人本体位姿包括初始位姿和目的地位姿;所述初始位姿包括机器人本体的初始坐标、初始坐标距离目标点坐标的距离、初始坐标到目标点坐标的偏角以及机器人本体的移动速度,所述目的地位姿包括目标点坐标以及最终姿态。
在本实施例中,上述预先构建的三维点云地图为通过机器人本体内置的3D激光雷达扫描周围环境信息,并采用google公司提供的cartographer软件根据扫描到的周围环境信息进行构建,通过该三维点云地图对机器人本体和智能体进行定位,得到定位坐标。
在本发明的其他实施例中,也可采用SLAM(即时定位与地图创建)来完成机器人本体所在空间的建模,得到三维环境地图(同三维点云地图),具体建模方法为本领域公知常识,在此不再赘述。
通过机器人本体内置的3D激光雷达采集机器人本体周围的点云数据,对所述点云数据进行预处理,即删除地面的点云数据以及删除与机器人本体距离大于5m的点云数据。
通过所述3D激光雷达实现采集实时点云数据,实现动态获取机器人本体周围的智能体,具有扫描范围广、精度高的优点,使得采集数据更精确。
本实施例采用SqueezeSeg网络检测预处理后的点云数据中的智能体,所述智能体包括行人和其他机器人,所述智能体为一个或多个。
当然,在其他实施例中,也可以采用其他算法实现三维物体的分割或检测,例如欧几里得聚类算法。
优选地,根据预先构建的三维点云地图和所述机器人本体的位姿,计算机器人本体的实时状态,具体包括:
实时获取机器人本体在所述三维点云地图中的定位坐标;当机器人在初始点时,该坐标可以通过机器人本体位姿中确定,具体根据机器人初始位姿确定。
获取所述机器人本体位姿中的目标点坐标、机器人本体到所述目标点坐标的偏角、机器人本体的移动速度;
根据机器人本体在所述三维点云地图中的定位坐标和所述目标点定位,计算机器人本体到目标点坐标的距离,从而根据上述信息生成机器人本体的状态集合,如下所示:
其中,其中,d
g为机器人本体到目标点坐标的距离,
为机器人本体到目标点坐标的
偏角,
为机器人本体的移动速度,r为机器人本体半径。
优选地,分别计算所述若干智能体的实时状态,包括:
分别获取每个智能体在三维点云地图中的实时定位坐标和半径;
分别根据每个智能体在三维点云地图中实时坐标,计算得到每个智能体在预设时段的实时位移;
通过对每个智能体的实时位移进行时间微分,计算得到每个智能体的移动速度;
此时,可生成智能体本体的自身状态集合,如下所示:
其中,
、
为所述智能体在环境地图中的位置,
、
为所述智能体速度,
为
智能体半径;
根据所述机器人本体的实时状态,分别计算每个智能体距所述机器人本体的距离以及每个智能体与所述机器人本体的半径之和;
生成每个智能体的实时状态,如下所示:
;其中,
,
为智能体在三维点云地图中的定位
坐标,
、
为智能体的移动速度,
为智能体距机器人本体的距离,
为智能体与
所述机器人本体的半径之和。
需要注意的是,
,
为智能体在三维点云地图中的定位坐标,具体为X坐标和Y
坐标;所述
、
表示智能体的移动速度,具体为移动速度在X坐标和Y坐标的分量。
因为通过SqueezeSeg网络检测所述点云数据,会得到一个或多个智能体,因此需要分别计算所述智能体的实时状态,得到每个智能体的实时状态集合。
在本实施例中,对求解智能体的移动速度的过程进行说明:假定获取到在T时刻和T-1时刻的实时定位坐标,可以计算T-1时刻到T时刻这个时段的实时位移,根据实时位移进行时间微分,即实时位移/T-(T-1)=移动速度。上述预设时段可根据实际情况设置,在本实施例中预设时段取值为1min。
优选地,所述预先构建的目标卷积神经网络的构建和网络参数训练过程如下:
构建输入层,所述输入层包括两个基于循环神经网络RNN的GRU网络;
构建全连接层,所述全连接层的每层神经元个数设置为384,设置所述全连接层的激活函数为Relu,其表达式为:f(x)=max(0,x);
构建输出层,所述输出层包括两个输出单元和softmax层;
将所述输入层与所述全连接层拼接,将所述全连接层与所述输出层拼接,形成所述目标卷积神经网络。
通过循环神经网络(RNN)的GRU网络构建输入层,使得在对机器人本体周围的智能体的隐状态进行表征时,智能体数量不会对训练过程进行限制,能保证训练速度。在本实施例中,该两个GRU网络的隐藏层数目为64,所述两个GRU网络分别用于输入智能体中的行人和智能体中的其他机器人,通过两个GRU网络输出智能体的隐状态。
构建目标卷积神经网络的全连接层,该全连接层包括依次构建的3个全连接层,设置全连接层的每层神经元为个数为384,且使用偏置(bias),设置该全连接层的激活函数为Relu,其表达式为:f(x)=max(0,x);
构建目标卷积网络的输出层,构建输出层的两个输出单元和softmax层;这两个输出单元分别用于输出状态-值和动作集合,这两个输出单元与所述全连接层连接,所述输入层与所述全连接层连接,从而完成目标卷积神经网络的构建。
因此,本实施例构建的目标卷积神经网络由循环神经网络和全连接网络构成。
对上述构建的卷积神经网络进行网络参数训练:本实施例通过强化学习构造测试样本,该强化学习是一种基于学习环境状态到动作映射的机器学习方法,为本技术领域的公知常识,在此不对其原理和处理过程进行赘述。具体基于强化学习,采用ORCA(optimalreciprocal collision avoidance)生成1000条移动轨迹集作为训练样本,该移动轨迹集包括50000对状态-值。每条轨迹训练生成一个状态-值集合,状态-值集合如下所示:
其中,
,t
g为到达目标点坐标所花费的时间,γ为衰减系数,该衰减系数
的取值为0.95,S
jn为智能体和机器人本体的联合状态,即上述
和
;
上述状态-值集合形成测试集:即将状态-值集合处理成[状态,值,动作]集合作为测试集,其中状态为机器人本体和智能体状态集合,值为该状态对应的值,动作为该状态对应的动作。
在本发明的其他实施例中,也可人工采集轨迹集作为测试样本。
将所述测试集输入上述目标卷积神经网络的输入层,获取输出层的输出结果,即状态-值和动作;
计算两个输出结果的最小化二次回归误差,计算公式如下:
其中,f
v为状态-值的回归误差, f
π表示动作集合的回归误差,下标t表示t时刻,
为
t时刻输出的响应动作;函数V表示状态-值函数,即
表示输入t时刻的联合状态Sjn得
到的值;
表示集合,
表示t时刻的联合状态下的响应动作集合, 表示t
时刻的联合状态集合;β为10
-4。
反向传播上述最小化二次回归误差以更新网络参数,具体计算公式如下:
其中,
表示目标神经网络的权重,即网络参数;k与上述t的含义相同,均是训练样本
的下标,在本实施例中k和t表示时刻。
冻结上述更新后的网络参数,完成所述目标神经网络的训练,通过训练后的目标神经网络能用于机器人动态避障,通过该目标卷积网络模型动态输出机器人的实时响应动作,使得机器人执行实时响应动作移动到目标点。
优选地,将所述若干智能体的实时状态输入预先构建的目标卷积神经网络,得到输出结果,包括:
根据每个智能体距机器人本体的距离,降序排列每个智能体的实时状态,将每个智能体的实时状态依次输入所述目标卷积神经网络的输入层,通过所述输入层输出每个智能体的隐状态;
拼接所述隐状态与所述机器人本体的实时状态,形成输入向量;
将所述输入向量输入所述目标卷积神经网络的全连接层进行计算;
将所述全连接层的输出向量与所述输出层的输出结果进行全连接,并通过softmax层处理所述输出结果后,输出实时动作响应。
在本实施例中,对目标卷积神经网络处理智能体实时状态并输出响应动作的具体处理过程进行说明:
通过SqueezeSeg网络检测出所述点云数据中的一个或多个智能体,分别计算所述智能体的实时状态,得到每个智能体的实时状态集合。
计算所述智能体的实时状态,得到所述智能体的实时状态集合So,如下所示:
通过上述处理步骤,得到机器人本体的实时状态集合sh,如下所示:
以及智能体的实时状态So,如下所示:
其中,
、
为所述智能体在环境地图中的位置,
、
为所述智能体速度,
为
智能体半径;
根据机器人本体的实时状态集合s
h和智能体的实时状态S
o,得到机器人本体的实时状
态集合
,如下所示:
其中,d
g为机器人本体到目标点的距离,
为机器人本体到目标点的偏角,
为机
器人本体的参考速度,r为机器人半径。
根据每个智能体距机器人本体的距离,按照距离远近,降序排列每个智能体状态
集合,并根据所述排列结果,将智能体的状态集合依次输入目标卷积神经网络,此时输入的
智能体的状态集合(这里输入的智能体集合跟上面计算得到智能体集合是不同的)
为:
其中,其中,
,
为智能体在三维点云地图中的定位坐标,
、
为智能体的移
动速度,
为智能体距机器人本体的距离,
为智能体与所述机器人本体的半径之和。
将上述状态集合
输入目标卷积神经网络的输入层,即将行人的状态集合和其他
机器人的状态集合分别输入两个GRU网络,通过这两个GRU网络输出智能体隐状态,并将该
智能体隐状态及机器人本体的状态s
h拼接,形成一个19维的输入向量,该输入向量包括机
器人本体及智能体的所有信息,将所述输入向量输入全连接层。
然后将全连接层的输出结果转换为一维向量;
通过输出层的两个输出单元分别输出状态-值V(s)和动作集合,这两个输出单元分别与全连接层输出的一维向量全连接,此时状态-值V(s)为1维,动作集合为11*1张量,通过输出层的softmax层对动作集合进行softmax处理,将动作集合转换为概率值,根据概率值确定最佳的移动策略,即得到目标卷积神经网络输出的响应动作,使得机器人可根据该响应动作移动。
实施例2
本实施例对应实施例1的多机器人协同移动与动态避障方法,公开了一种多机器人协同移动与动态避障的装置,为上述实施例1的虚拟装置结构,请参照图2所示,包括:
本体状态采集模块210,用于获取机器人本体位姿,根据预先构建的三维点云地图和所述机器人本体位姿,实时计算机器人本体的实时状态;
点云数据处理模块220,用于采集实时点云数据,对所述点云数据进行预处理,并检测所述预处理后的点云数据中的若干智能体;
智能体状态计算模块230,用于分别计算所述若干智能体的实时状态;
响应动作生成模块240,用于将所述若干智能体的实时状态依次输入预先构建的目标卷积神经网络,执行所述目标卷积神经网络输出的实时响应动作。
实施例3
图3为本发明实施例3提供的一种电子设备的结构示意图,如图3所示,该电子设备包括处理器310、存储器320、输入装置330和输出装置340;电子设备中处理器310的数量可以是一个或多个,图3中以一个处理器310为例;电子设备中的处理器310、存储器320、输入装置330和输出装置340可以通过总线或其他方式连接,图3中以通过总线连接为例。
存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的多机器人协同移动与动态避障方法对应的程序指令/模块(例如,多机器人协同移动与动态避障装置中的本体状态采集模块210、点云数据处理模块220、智能体状态计算模块230和响应动作生成模块240)。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现实施例1的多机器人协同移动与动态避障方法。
存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置330可用于接收输入的本体位姿等。输出装置340可为显示屏等显示设备。
实施例4
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行多机器人协同移动与动态避障方法,该方法包括:
获取机器人本体位姿,根据预先构建的三维点云地图和所述机器人本体位姿,实时计算机器人本体的实时状态;
采集实时点云数据,对所述点云数据进行预处理;
检测所述预处理后的点云数据中的若干智能体;
分别计算所述若干智能体的实时状态;
将所述若干智能体的实时状态输入预先构建的目标卷积神经网络,执行所述目标卷积神经网络输出的实时响应动作。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的多机器人协同移动与动态避障方法中的相关操作。
通过以上关于实施方式的描述,所属邻域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(RandomAccess Memory, RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述多机器人协同移动与动态避障装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
对本邻域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。