基于QMIX强化学习算法的船舶多机械臂焊点协同焊接方法与流程

文档序号:24120551发布日期:2021-03-02 11:06阅读:171来源:国知局
基于QMIX强化学习算法的船舶多机械臂焊点协同焊接方法与流程
基于qmix强化学习算法的船舶多机械臂焊点协同焊接方法
技术领域
[0001]
本发明属于焊接控制领域,具体涉及一种基于qmix强化学习算法的船舶多机械臂焊点协同焊接方法。


背景技术:

[0002]
在全球各行各业的工业机器人中,焊接机器人占据了半数以上。焊接机器人从一开始的流水线手臂式机器人,到后来的基于传感器的离线编程焊接机器人,再到现今广泛适用的多传感器、具有高度自适应能力的智能化焊接机器人,其焊接的能力及自动化的水平也快速提高。在船舶这种大空间中利用焊接机器人对多处复杂场景焊接处进行焊接,可以大大提升焊接效率和质量,这一技术也成为如今研究的热门。将机器人投入到船舶制造业中,部分代替直至全面代替人工焊接,实现机械化、自动化、部分智能化甚至全智能化以及真正“无人化”是未来船舶建造的必然趋势(于步江,“船舱格子间机器人焊接工艺研究”[d],江苏:江苏科技大学,2013)。
[0003]
在复杂的任务要求下,多焊接机器人协同进行焊接对提升焊接效率、减少焊接时间有着重要的意义。多机器人焊接要处理和研究的主要问题可以分为以下几个方面。其一,多焊接机器人的协同任务分配和路径规划问题;其二,多机器人在焊接作业过程中相互干涉、碰撞问题;其三,通过传感设备传递信息的机器人在作业过程中通信受限情况下的协同焊接问题。针对以上三个问题,国内外学者研究了多种方法来进行解决。
[0004]
景奉水等在文献(景奉水,谭民,侯增广,梁自泽,王云宽,“基于多机器人协调的船体分段对接系统的运动学及对接精度研究”,机器人,2002(04):324-328.)针对基于多机器人协调的船体分段对接系统的运动学和对接精度问题,提出了机器人的轨迹规划算法和对接控制方案,讨论了几种误差因素对系统对接精度的影响,该方法可以保证船体分段对接精度。gan在文献(gan y,duan j,chen m,dai x,“multi-robot trajectory planning and position/force coordination control in complex welding tasks”,applied sciences,2019,9(5):924.)针对多机器人系统在焊接过程中的轨迹规划和位置协调控制问题,采用面向对象的层次规划控制策略,针对多机器人协同机械手的位置跟踪,提出了对称内外自适应变阻抗控制,该方法可以平滑地完成焊接任务,实现良好的位置跟踪性能。以上文献很好的解决了多机器人的协同焊接路径规划问题,但对于机器人之间干涉和传感器限制问题并没有涉及。
[0005]
陈辉在文献(陈辉,“白车身多机器人协同焊接的路径规划研究”[d],山西:中北大学,2019)分析比较了常用路径规划算法的优缺点,并针对传统蚁群算法的缺陷提出一种复合改进蚁群算法,应用于单机器人以及多机器人焊接路径规划问题,并针对多机器人焊接路径规划问题建立焊点分配模型以及机器人间的防干涉模型,但该文献也并未将传感器受限的情况纳入考虑范围。考虑到船舶焊接为一个较大空间的焊接过程,在机器人作业过程中往往会由于传感设备性能的限制,无法得到全局的焊接信息,从而会影响路径规划的准确性及防干涉的有效性。


技术实现要素:

[0006]
本发明的目的在于提供一种基于qmix强化学习算法的船舶多机械臂焊点协同焊接方法,该方法简单有效,能够实现在协同焊点焊接的任务需求和信息传感受限的焊接环境中的机械臂作业路径的合理规划并避免碰撞,同时降低生产的人工和时间成本。
[0007]
实现本发明目的的技术解决方案为:一种基于qmix强化学习算法的船舶多机械臂焊点协同焊接方法,适用于船舶多机械臂焊点协同焊接作业过程中的路径规划及避碰情况,具体包括如下步骤:
[0008]
步骤(a):由实际的船舶多机械臂焊点焊接场景,搭建船舶多机械臂焊点协同焊接的强化学习环境,并设定、区分环境中的焊接区域及机械臂作业区域;
[0009]
步骤(b):由步骤(a)中设置的环境及区域,构建机械臂在强化学习过程中的状态值和动作值;
[0010]
步骤(c):由步骤(b)中对状态值、动作值的规定及实际生产中的协同焊接任务需求,设定强化学习过程中引导机械臂学习的奖励值;
[0011]
步骤(d):将步骤(b)中设定完成的状态值及动作值通过循环神经网络来计算得到每个机械臂的局部动作价值函数,并进行动作选择过程;
[0012]
步骤(e):由步骤(d)得到的每个机械臂局部的动作价值函数,通过设定权值非负的超网络,得到所有机械臂总体的动作价值函数;
[0013]
步骤(f):由步骤(c)的奖励值及步骤(e)总体的动作价值函数网络构造损失函数,由反向传播算法计算更新神经网络的权重并重复训练过程。
[0014]
进一步的,所述步骤(a)具体包括如下步骤:
[0015]
步骤(a1):由实际船舶多机械臂焊接场景,刻画基于python软件中的仿真焊接环境的舱室空间;
[0016]
步骤(a2):由舱室空间及实际焊接场景,描述机械臂及待焊接区域位置,并在空间中对其进行划分。
[0017]
进一步的,所述步骤(b)具体包括如下步骤:
[0018]
步骤(b1):由a)中的仿真环境规定机械臂作为强化学习智能体在学习和训练过程的状态值;
[0019]
步骤(b2):根据实际机械臂作业方式及仿真环境,描述机械臂作为强化学习智能体,在学习和训练过程的动作值。
[0020]
进一步的,所述步骤(c)具体包括如下步骤:
[0021]
步骤(c1):分析实际焊接场景的任务需求,并给出需要达成的协同焊接目标;
[0022]
步骤(c2):将步骤(c1)所述的目标刻画为强化学习过程的奖励值形式。
[0023]
进一步的,所述步骤(d)具体包括如下步骤:
[0024]
步骤(d1):构建一个以状态值和动作值作为输入、动作价值函数作为输出的循环神经网络;
[0025]
步骤(d2):将步骤(b1)和步骤(b2)中得到的状态值和动作值作为输入,通过步骤(d1)的神经网络得到每个机械臂的局部的动作价值函数;
[0026]
步骤(d3):由步骤(d1)得到的每个机械臂局部的动作价值函数,根据epsilon-greedy策略选取每个机械臂下一时刻的动作。
[0027]
进一步的,所述步骤(e)具体包括如下步骤:
[0028]
步骤(e1):构建一个权重非负的以局部动作价值函数作为输入、总体价值函数为输出的超网络;
[0029]
步骤(e2):将步骤(d2)得到的局部动作价值函数作为输入,代入步骤(e1)所构建的神经网络中并得到总体的动作价值函数。
[0030]
进一步的,所述步骤(f)具体包括如下步骤:
[0031]
步骤(f1):由步骤(c2)的奖励值及步骤(e2)的总体动作价值函数构造损失函数;
[0032]
步骤(f2):由反向传播算法计算更新神经网络权重并重复训练过程。
[0033]
本发明与现有技术相比,其显著优点在于:
[0034]
本方法简单有效,能够实现在协同焊点焊接的任务需求和信息传感受限的焊接环境中的机械臂作业路径的合理规划并避免碰撞,同时降低生产的人工和时间成本。
附图说明
[0035]
图1为船舶组立件焊接场景。
[0036]
图2为本发明基于python软件的仿真焊接网格世界。
[0037]
图3为基于python软件的两机械臂仿真焊接环境示意。
[0038]
图4为机械臂的部分观测情况。
[0039]
图5为仿真环境中两机械臂潜在碰撞场景。
[0040]
图6为一个基础的循环神经网络。
[0041]
图7为三个时刻的循环神经网络展开图。
[0042]
图8为总体动作价值函数计算的超网络。
[0043]
图9为基于qmix强化学习算法的船舶多机械臂焊点协同焊接方法流程图。
[0044]
以上的图中:以为中心的机械臂的观测空间,其中为第j格的观测信息;x:循环神经网络输入层;s:循环神经网络隐藏层;o:循环神经网络输出层;u:循环神经网络输入层到隐藏层的权重;w:循环神经网络隐藏层之间的权重;v:循环神经网络隐藏层到输出层的权重;x
t-1
:t-1时刻循环神经网络输入层;s
t-1
:t-1时刻循环神经网络隐藏层;o
t-1
:t-1时刻循环神经网络输出层;x
t+1
:t+1时刻循环神经网络输入层;s
t+1
:t+1时刻循环神经网络隐藏层;o
t+1
:t+1时刻循环神经网络输出层;q1第一个机械臂的局部动作价值函数;q2第二个机械臂的局部动作价值函数;w2:超网络的权重;s
total
:全局状态信息;q
total
总体的动作价值函数。
具体实施方式
[0045]
下面结合附图对本发明作进一步详细描述。
[0046]
本发明是一种基于qmix强化学习算法的船舶多机械臂焊点协同焊接方法,特别适用于包括协同焊接需求、传感信息受限、避碰等情况的焊接环境。首先,考虑两个机械臂j1,
j2在一个20x20的网格世界中进行协同焊接学习,并对该环境在python软件中进行建模。根据实际焊接场景分别建立大小为2x4、2x10的独立焊接区域及大小为2x8的协同焊接区域,其在网格世界中的起始坐标分别为((4,9),(5,9))、((9,6),(10,6))、((16,8),(17,8))。
[0047]
两个机械臂j1,j2在学习和训练过程中由于传感器等信息交流设备的限制,机械臂只能够得到以其自身为中心的3x3范围网格的信息而并不能得到全局的状态信息如该范围以外的焊接区域的具体位置并不能得到。
[0048]
对于两个机械臂的动作除了基本的上下左右四个方向及静止以外,还对机械臂的动作做一些限制。当机械臂进入焊接区域后,由于现实焊接时当机械臂找到准确的焊点后,便可以顺利完成对包括该焊点区域部分的焊接,那么对应仿真环境中,当机械臂到达某一焊接区域的初始点后,便限定其动作为只能沿着完成焊接的方向进行,而不能离开该焊接区域。
[0049]
对机械臂在学习环境中的奖励值r的设置可以正确的引导其学习过程。首先对于协同焊接的需求,协同焊接区域需要两个机械臂均到达其初始焊接区域,并在完成对协同焊接区域的焊接后两机械臂可以得到一个共同的+500奖励值。另外对于避碰情况,规定当两机械臂在一格范围以内时,若两机械臂采取动作后导致了坐标位置重叠,即发生碰撞,则两机械臂会共同受到-500的惩罚值,意在防止机械臂在之后的学习训练过程中再次发生碰撞情况。当两机械臂共同完成了所有焊接区域的任务后,两机械臂会得到+2000的奖励值,来鼓励它们协同完成了焊接任务。
[0050]
在对机械臂学习过程的状态值、动作值及奖励值做了上述规定后,便可以利用qmix算法训练机械臂在环境中的学习过程。
[0051]
每个机械臂自己的局部动作价值函数q
i
由自身的动作及观测值通过一个循环神经网络得到。每个机械臂对于自己的动作选择也基于这样一个循环神经网络输出的局部动作价值函数。由epsilon-greedy策略,在当前观测下机械臂有ε的概率选择所有可行动作中最大的q
i_max
值对应的动作同时也有1-ε的概率选择其余的任意非最大值作为当前时刻的动作。根据这样的策略,每个机械臂便能够在学习到更好的价值函数后选择更为合理的动作。
[0052]
qmix算法中规定,每个机械臂根据自身的动作价值函数进行动作选择,但同时也要学习一个包括所有机械臂的总体动作价值函数q
total
。将每个智能体的局部动作价值函数通过一个权值非负的超网络,便可以得到总体动作价值函数q
total
。由q
total
及奖励值r便能够构造一个更新动作价值函数的损失函数l(θ),其中θ为包含神经网络权重u,v,w的参数。根据反向传播算法,可以最小化该损失函数,并计算更新神经网络的权重。将更新权重后的神经网络不断进行以上步骤的重复及训练过程,最终可以得到一个近似收敛到最优值的结果。由此,便完成了基于qmix强化学习算法的船舶多机械臂焊点协同焊接的训练学习过程。
[0053]
图9是本发明的设计流程图,由步骤p1-p6构成,各步骤叙述如下:
[0054]
(1)步骤p1
[0055]
本发明是一种基于qmix强化学习算法的船舶多机械臂焊点协同焊接方法,因此需要根据实际的船舶多机械臂协同焊40点焊接需求,搭建船舶多机械臂焊点协同焊接的强化学习环境,并设定待焊接及机械臂作业区域,具体实施步骤如下:
[0056]
第一步:根据如图1所示的实际船舶焊接场景可知,船舶焊接任务主要是在一个焊接舱室中,通过操控机械臂对如图中的条状待焊接区域进行焊接。因此,利用python软件中的cv库可以刻画如图2所示的仿真焊接环境的舱室空间。整个焊接舱室建立在一个平面直角坐标系上,整个焊接舱室的左上角为原点、水平向右的方向为x轴,垂直向下的方向为y轴。整个平面对应的20x20的等分白色格子代表实际焊接环境中的船舱;
[0057]
第二步:图1中的待焊接区域通常由如图所示三个部分组成,完成所有三个部分的焊接后算作对该区域的焊接完成。因此,设置机械臂及焊接区域如下:机械臂分别用图3中标号为ⅰ、ⅱ的圆形表示,其初始位置处于整个平面的两端,坐标分别为,与焊接区域表示如下:两部分大小分别为2x4、2x10的标号分别为
“①”

“②”
的区域(下文中分别用焊接区域1、焊接区域2代指)代表两个大小不同的待焊接区域,这两个待焊接区域都是有两边需要焊接的(即,每个由虚线分隔开的1x4,1x10的区域为一边,2x4和2x10的区域便表示一个焊接区域的两边),且均可以由单独一个机械臂完成对任一区域中两条边的焊接。单机械臂对该区域进行焊接时,需从起始位置处(黑色三角形处)开始焊接,并在终止位置处(白色三角形处)结束焊接。标号为
“③”
的2x8的区域(下文中用焊接区域3代指)表示需要两个机械臂进行协同焊接的待焊接区域,即两个机械臂均需要在每一边1x8的起始焊接位置(黑色三角形位置处)时,才能开始对该区域进行焊接,并结束于终止位置处(白色三角形处)。
[0058]
(2)步骤p2
[0059]
步骤p2由步骤p1中设置的仿真环境及焊接区域,进一步规定机械臂在强化学习过程中的状态值、动作值。具体实施步骤如下:
[0060]
第一步:状态值的设定。对于非部分观测情况,第i个机械臂的状态值即为其坐标但考虑到实际焊接环境的场景均比较大,机械臂通常在焊接过程中受通信及传感器设备性能等限制,只能得到其附近一定范围内的信息,而并不能准确得到全局状态信息,所以此处对状态值的设置要考虑部分观测情况。此时规定在网格世界中,每个机械臂只能得到以其为中心的附近3x3格子的信息(如图4所示),而不再能得到准确的状态值(坐标)时,第i个机械臂的观测值表示为并以机械臂位置(图中灰色圆形)为中心,得到与其余格子的相对坐标信息。例如,的坐标信息便可以表示为除了得到附近格子的坐标信息以外,机械臂还能够得到这些格子上对应的环境信息。例如,格子上是焊接区域1的左侧起始焊接处,则机械臂在学习的过程中便可以得知当前位置该机械臂与焊接区域1的左侧起始焊接处的相对位置信息,进而对当前所处的位置进行判断。
[0061]
第二步:动作值的设定。机械臂的运动动作大体上可以分为上、下、左、右、静止五个动作,分别对应(u1,u2,u3,u4,u5)。其中,考虑到实际情况,动作在学习的环境里还有如下的限制:(1)机械臂在墙壁周围(对应网格的边界部分)运动时,动作限定为,若选取的动
作将要与墙壁发生碰撞,则实际动作为静止不动,例如机械臂在左侧边界处选取了向左运动的动作u3,则实际该动作的结果为使得机械臂静止不动;(2)成功找到并进入待焊接区域的初始焊接位置后,机械臂的动作限制为只能沿着继续完成焊接的方向运动,例如某机械臂在焊接区域1的左侧边起始焊接位置,则该机械臂直到完成对该1x4区域的焊接前,其动作只能够沿着向下完成焊接的方向运动,即不论选取哪个最终的实际动作均为这是考虑到实际情况中,焊接机械臂在找到焊接的起始点后,可以直接完成对该部分的焊接,而不需要对这一过程进行额外的学习。
[0062]
(3)步骤p3
[0063]
步骤p3由步骤p2中对状态值、动作值的规定及实际生产中的协同焊接任务需求,设定强化学习过程中引导机械臂学习的奖励值。设计按下列步骤实现:
[0064]
第一步:分析实际焊接场景的任务需求包括三点。其一为任务要求机械臂在尽可能少的步数内,即尽可能短的作业时间内完成对所有待焊接区域的焊接;其二为机械臂在焊接作业过程中尽可能避免与边界及机械臂之间的碰撞;其三为要在体现机械臂协作的要求下,完成焊接任务。
[0065]
第二步:由上分析,设置的奖励值r需要包括以下层面。(1)考虑到该方案的总体目标为在尽可能短的时间内完成所有焊接任务,对应到离散的环境中即为机械臂运动的总的步数最少,所以设置每走一步奖励值为-1,代表若机械臂完成所有区域焊接所需的步数越多,则总的奖励值越小,即鼓励机械臂在尽可能少的步数内完成所有的焊接任务。(2)当机械臂在进行焊接时,即每一步的动作都固定为沿着焊接方向前进时,则每一步奖励为0,意为不对多余的步数惩罚或者奖励,让机械臂能够顺利完成焊接目标。(3)对于非协同焊接区域,某一机械臂在完成对该区域的焊接任务后,会得到一个+200的奖励值;对于协同焊接区域,由于只有当两个机械臂都处于该区域的初始焊接位置时,焊接才能开始,所以对于两个机械臂都进入该区域的初始焊接位置并完成对该区域的焊接后,两机械臂会得到+500的奖励值。需要说明的是,机械臂在学习过程中,会根据奖励值的引导来决策并不断朝着累计奖励值最大的方向进行决策更新,所以在设计这种协同作业的任务时并不需要额外规定机械臂焊接顺序的奖励值,因为机械臂在学习过程已经在不断对其焊接顺序的决策进行了更新和优化。(4)避碰:根据两机械臂的相对距离(若能在观测范围内观测到),当两机械臂的中心在一格的距离以内时(如图5中两黑色圆形所示),若两机械臂选择了减小相对距离的动作,则会收到一个碰撞惩罚值-500,并且直接结束一个学习过程的片段,回到初始位置并重新开始学习。考虑到实际生产中若两机械臂发生碰撞,都会给生产成本和生产效率带来很大的损失,所以碰撞的发生是要在训练过程中极力避免的。(5)完成任务:当机械臂对所有待焊接区域已完成焊接时,两机械臂收到+2000的奖励值,并结束学习过程。
[0066]
(4)步骤p4
[0067]
步骤p4将步骤p2中设定完成的状态值及动作值通过循环神经网络来计算得到每个机械臂的局部动作价值函数,并进行动作选择过程。设计按下列步骤实现:
[0068]
第一步:构建如图6所示的一个循环神经网络。其中,x代表输入层,s代表隐藏层,o代表输出层。u,w,v分别代表输入层到隐藏层、隐藏层之间、及隐藏层到输出层的权重。由于循环神经网络是针对序列决策的,将图6的单个时刻(由下标t表示)的神经网络展开为图7的形式,可以得到前一时刻(由下标t-1表示)及后一时刻(由下标t+1表示)的三个时刻的神
的更新。其中,参数θ与θ-即为包含了神经网络的权重u,v,w的参数向量。将更新权重后的神经网络不断进行以上步骤的重复及训练过程,最终便可以得到一个近似收敛到最优值的结果。由此,便完成了基于qmix强化学习算法的船舶多机械臂焊点协同焊接的训练学习过程。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1