基于深度强化学习的水下机械臂自主控制研究

2024-01-09 07:06李忻阳卢倪斌吕诗为刘海瑞
控制与信息技术 2023年6期
关键词:执行器坐标系机械

李忻阳,卢倪斌,吕诗为,刘海瑞

(上海中车艾森迪海洋装备有限公司, 上海 201306)

0 引言

近年来,随着各国相继提出“工业4.0”发展计划,智能控制、水下机器人技术、海洋科学等前沿科技逐渐受到了广泛的关注[1]。水下机器人作为探索海洋的主力军,近些年来更是获得了飞速的发展。水下机器人按控制方式大体上可分为遥控水下机器人(remotely operated vehicle,ROV)、半自主水下机器人(unmanned underwater vehicle,UUV)和智能水下机器人(autonomous underwater vehicle,AUV),其中水下作业任务通常是由装载有水下机械臂的ROV来完成。由于水下机器人往往只能从有限的角度观测目标物,不仅受水下海流、能见度等因素影响,而且水下作业环境复杂多变,传统的控制算法很难实现水下机械臂的自主控制。操作水下机器人和机械臂进行作业通常需要经验丰富的操作手谨慎地完成,会耗费大量的时间和精力。

2014 年,夏威夷大学的Giacomo 等[2]在“SAUVIM”型UUV的基础上,设计并搭载了一款基于声呐和视觉的多重感知系统。其通过获得的感知信息,在海洋环境中完成了目标的抓取和移动任务。2016年,美国斯坦福大学(Stanford University)和阿卜杜拉国王科技大学红海研究中心(KAUST’s Red Sea Research Center)以及MEKA机器人(MEKA Robotics)合作研制了“海洋一号”(Ocean One)人形水下机器人来代替潜水员实现较高度智能的水下作业[3]。其配备了两个七功能的机械臂以及多种传感器,方便操作人员通过遥控的方式进行控制和感知,可以执行精细的水下勘探和考古等作业任务。2018 年,Satja 等提出了一种用于作业级水下机器人的全自动视觉伺服控制算法[4],其通过视觉伺服的方法获取目标位置的偏差量,然后通过逆运动学计算各关节的期望位置,以此来控制机械臂的运动。但这种方法往往仅适用于小范围的机械臂移动,而且随着机械臂自由度的提高,逆运动学求解也会愈发困难。由此可见,实现水下机械臂系统的自主控制仍然面临着诸多挑战,特别是随着自由度的提高,状态维度会成倍增加,控制的难度和复杂度也会显著提升。

近年来,随着人工智能技术的发展,深度强化学习逐渐被证明是一种极具发展潜力的智能控制算法,其优秀的自学习能力、良好的鲁棒性以及可以快速适应不同环境的强大能力,为实现水下机器人及机械臂的自主控制提供了广阔的发展前景。本文以作业级水下机器人上搭载的七功能机械臂为主要研究对象,分析并应用强化学习算法,实现了水下七功能机械臂在空间内自主地向目标位置进行快速精准移动。文中提出的基于人工势场的奖励塑造方法不仅适用于水下机械臂的强化学习训练,而且对目标移动类型的强化学习任务训练均有较好的学习效果。

1 任务概述和建模

1.1 任务概述

如图1 所示,本文所研究的水下机械臂自主运动控制任务可以被看作是一系列连贯的决策-运动控制过程。在每一个时间步内,智能体会从环境中获得机械臂和目标物的状态信息,包括机械臂各关节的位置、速度和目标物的位置等数据。随后智能体会根据获得的数据,基于强化学习训练得到的策略做出相应的决策,决策数据会对应输出给各个关节的控制器,控制机械臂各关节的运动。在下一个时间步内,智能体会根据新的状态信息,做出新的决策,直到完成任务目标或被判定任务失败。从任务开始直到达成目标或任务失败的这一系列决策-运动控制的过程被称之为一幕(Episode)。

1.2 系统建模

设世界坐标系为{I},机械臂关节坐标系为{i},i∈{0,1,2,…,n},其中{n}为末端执行器坐标系。则,由世界坐标系到末端执行器坐标系的齐次变换矩阵可表示为[5]

式中:T0,I——机械臂基坐标到世界坐标系的齐次变换矩阵,由机械臂基座的安装位置决定;Ti,i-1(ηi)——机械臂关节i到关节(i-1)的齐次变换矩阵,由机械臂的DH(Denavit-Hartenberg)参数ηi决定。

机械臂各关节的运动学可通过下列方程组递归得出:

式中:ωi,i——第i个关节相对于坐标系{i}的角速度;Vi,i——第i个关节相对于坐标系{i}的线速度;Ri-1,i——由坐标系{i-1}到坐标系{i}的旋转变换矩阵;zi-1,i-1——在坐标系{i-1}下第( )i-1 个关节的旋转轴方向;ri,i——在坐标系{i}中表示的由坐标系{i-1}原点指向坐标系{i}原点的位置向量。

系统的动力学模型如下[6-7]:

式中:M——计及附加质量的惯性矩阵;C——计及附加质量的科氏力矩阵;D——阻尼矩阵;G——恢复力矩阵;τctrl——控制力(矩)。

2 基于强化学习的机械臂自主控制策略

多功能机械臂的自主控制具有高维且连续的状态空间和动作空间,应用强化学习算法需保证强化学习策略更新方向准确并有效解决强化学习训练过程中的奖励稀疏问题。

2.1 PPO结合AC算法模型和原理

强化学习的本质就是学习“做什么才能使得数值化的收益信号最大化”,其中“做什么”指的是如何把当前的情景映射成动作输出。近端策略优化[8](proximal policy optimization,PPO)属于一类基于策略的强化学习方法。所谓策略指的是由状态空间到动作空间的一个映射,主要通过构建深度神经网络的方式来实现。

对于随机策略,策略函数π(a|s,θ)的意义为:在时刻t、状态s和参数θ下选择动作a的概率,即

式中:At——t时刻采取的动作;St——t时刻的状态;θt——t时刻的策略网络参数。

基于策略的强化学习算法通常采用式(5)和式(6)进行策略的更新:

式中:Gt——t时刻的综合收益或回报;T——当前幕的总时间步数;γ——奖励折扣系数,用于反映某一时刻的收益与之前时刻的关联程度,一般取值在0.9~0.99之间;Rk——(k-1)时刻后智能体从环境中获得的即时奖励;α——学习率,也称步长,用于控制参数更新的步进效率。

该策略梯度算法被称为REINFORCE[9],它的策略参数的更新正比于回报Gt和一个向量的乘积。这个向量是选取动作概率的梯度除以概率本身,这使得参数更新的大小正比于回报,而反比于选择动作的概率。前者的意义在于它使得参数向着更有利于产生最大回报动作的方向更新;而后者的意义在于如果不这样的话,在当前策略下频繁被选择的动作会具有优势而被频繁更新,即便这些动作并不是产生最大回报的选择,而这将导致这些动作可能会在学习的过程中胜出,继而影响策略的优化。

该方法在大多数简单的强化学习环境中都获得了良好的表现,但对水下具有多个自由度的机械臂控制而言,却难以取得较好效果。主要原因有:1) REINFORCE所使用的奖励是由环境直接给出的,它所评判的只是某一时刻所采取的动作正确与否,而非基于当前已学习到的策略的评判。在水下机械臂控制这一类高维环境下,这样的奖励很难指导智能体朝着正确的方向更新策略;2) 相较于简单的强化学习测试环境,水下机械臂的自主控制更为接近真实的环境,具有较高的状态维度。这使得智能体难以充分地去探索环境以获得有效的奖励,致使训练过程进展缓慢甚至无法得到进展。

因此,本文采用PPO 结合AC 算法[10]框架进行强化学习训练,AC 包含行动器(actor)和评判器(critic)两部分,算法结构如图2所示。

图2 PPO 结合AC 算法结构图Fig.2 Algorithm structure of PPO combined with AC

行动器使用深度神经网络构建和拟合策略函数,并使用PPO算法对策略网络进行参数学习和更新,策略参数更新的表达式为

式中:Vt——t时刻的优势函数,用于描述t时刻所采取的行为的优劣;θold——上一次策略更新后的策略参数向量;ϵ——裁剪系数;clip——裁剪函数。

式(8)为clip 函数,用于修正新旧策略的比值函数,见式(9),避免在相同状态下,依据新、旧策略选择某一动作的概率出现过大的差异,进而影响强化学习策略参数的更新。

近端策略优化算法通过裁剪函数来控制新旧策略之间的差异,并将其控制在(1-ϵ,1+ϵ)的范围内。此时,如果优势函数Vt>0,则依据梯度上升的原理,式(9)将大于1,如果比值超出了()1+ϵ,程序将会提前中断策略参数的更新,从而将新旧策略之间的比值控制在(1+ϵ)以内;反之,如果优势函数Vt<0,根据梯度上升原理,式(9)将小于1,程序就会将新旧策略间的比值限制在(1-ϵ)和1之间。

评判器使用深度神经网络构建和拟合当前环境的状态价值函数v(St|ω),并采用深度学习中的梯度下降算法对价值网络的参数进行更新。价值网络更新过程中的损失计算采用均方误差的方式,损失函数Lv为

价值网络参数ω通过梯度下降算法进行更新,更新的价值网络参数为ωq,其计算公式为

式中:q——强化学习训练轮次。

价值网络所拟合的正是在当前策略下的状态价值函数,将此时的回报与状态价值函数进行比较,即可得到基于当前策略的优势函数:

2.2 奖励塑造

稀疏奖励问题是指智能体在训练环境中进行探索的过程中难以获得有效的奖励,导致学习缓慢甚至无法进行学习[11]。这是强化学习训练过程中经常会面临的核心问题之一,特别是在面对复杂任务或是接近真实环境的情况下。

解决强化学习中的稀疏奖励问题,通常首选的思路是使用人为设计的密集奖励;但如果人为设计奖励的方法不当,会使强化学习训练产生诸多的问题。首先,人为设计奖励的方法大都是针对某一特定的强化学习环境,几乎不具备足够的通用性,即便是相近的环境,也经常需要对奖励的设计做出较大的改动;其次,不当的人为奖励设计往往会给予智能体以错误的引导,使学习到的策略错误地收敛到局部最优,从而导致强化学习训练的失败;再者,不当的人为奖励可能会使训练得到的策略存在安全隐患,甚至在应用后对机器人或周边环境带来损害。

对于奖励的设计,文献[12-13]给出了一种在奖励设计的过程中可以保证最优策略不变的充分必要条件,结论是当附加的值函数可以表示为势函数的差分形式的时候可以保证原最优策略不变,即

式中:F(s,a,s')——在状态s采取动作a并达到状态s'后给予的附加奖励;Φ(s)——状态s的势函数,其定义为状态到实数的映射。

根据这一原理,本文提出了一种基于人工势场法的密集奖励设计方法,该方法在保证整体强化学习最优策略不变的同时,可以广泛适用于多种水下作业任务。

设pn=[xn yn zn]T为末端执行器在世界坐标系下的坐标,pt=[xtytzt]T为目标物在世界坐标系下的坐标,则末端执行器和目标物的相对位置矢量可以表示为

此时,末端执行器与目标物的欧几里得距离ρ(pnt)可表示为

则密集奖励的势函数可表示为

式中:ξ——大于0的奖励增益系数。

式(16)中取负号的原因在于,对于强化学习中的奖励而言,越接近目标物智能体所获得的奖励应是不断增大的,这样才有利于智能体朝着正确的方向更新相应的抓取策略。由此可得,每一步的附加奖励函数的表达式:

3 仿真试验和分析

为验证基于人工势场法的奖励塑造方法的有效性,将应用奖励塑造前后的强化学习训练综合奖励曲线进行对比分析;同时,应用强化学习训练后的策略进行仿真试验,分析自主控制策略的有效性和稳定性。

3.1 仿真试验环境

本文中的仿真试验所采用的仿真建模工具为OpenAI Gym MuJoCo(Multi-Joint dynamics with Contact),在机器人的运动仿真过程中,MuJoCo可以通过设置介质密度和黏度来模拟水下操作环境,通过设置关节和驱动,完成对水下机器人各自由度的状态模拟和运动控制,实现水下机器人的姿态控制和机械臂运动仿真功能[14-15]。此外,MuJoCo也可以设置多种类型的传感器,以方便地获得各类数据,如位置、角度、速度信息等,便于对强化学习结果进行验证。本文搭建的仿真环境包括水下仿真环境、七功能机械臂仿真模型和目标物模型,以模拟水下机械臂自主操作控制的场景。

图3 示出水下机械臂实物和仿真模型,其中七功能机械臂的后两个关节主要用于末端执行器的转动和开合,并不影响末端执行器的位置。因此,本文仅对影响末端执行器运动的前五个转动关节进行了仿真建模。为方便观察,本文在仿真模型中以一个球形点表示末端执行器位置的参考点;目标物随机生成在机械臂的作业空间内,同样以一个球形点表示,如图3中的机械臂仿真模型所示。

图3 水下机械臂实物和仿真模型Fig.3 Physical and simulated models of the underwater manipulator

3.2 仿真试验设置

本文采用Python 搭建仿真训练程序,策略网络和价值网络均包含2个隐层,每个隐层包含64个神经元,激活函数采用Tanh 函数,输出层无激活函数。输入层包含5 个关节的角度和角速度,以及末端执行器与目标的相对位置关系,共13个神经元;输出层包含5个关节的控制力信息,共5个神经元。

本文设置的PPO 训练参数为:奖励折扣系数γ=0.99,裁剪系数ϵ=0.2,策略网络学习率αθ=0.000 3,价值网络学习率αω=0.001,每幕最大时间步长为1 000,每个训练轮次步长为4 000,训练轮次为400次。

环境奖励设置为:每个时间步给予-0.1的奖励。当关节角超出限定值,额外给予-30奖励。末端执行器与目标距离小于0.005 m,并稳定维持3 个时间步后,任务判定成功,额外给予100奖励。若应用奖励塑造后的附加奖励,则奖励增益系数ξ=1 000。

3.3 仿真结果分析

强化学习训练综合奖励曲线如图4所示。图中,曲线V0表示未应用奖励塑造时的强化学习奖励曲线,曲线V1表示应用奖励塑造后的强化学习奖励曲线。

图4 奖励曲线对比Fig.4 Comparison of reward curves

从曲线V0可以看出,由于智能体始终难以探测到有效的正奖励,最终只能避免获得更大的负奖励,经过约100万步训练后,训练奖励稳定在-100。而从曲线V1中看到,智能体经过约90万步的训练后,逐渐获得了有效的自主控制策略,综合奖励曲线逐渐收敛,奖励稳定在300左右。其中奖励曲线的波动主要源于目标物生成位置的随机性,最终的任务成功率达到95%以上。

为验证智能体经过强化学习训练后策略的有效性,本文在机械臂的工作范围内随机生成了一个目标点(0.626,0.295,0.137)进行仿真试验。图5和图6分别示出水下机械臂5 个关节的角度和角速度曲线。可以看出,在智能体控制机械臂自主向目标移动过程中,机械臂各关节的运动过程稳定、连贯,共同带动末端执行器向目标位置快速移动。

图5 机械臂关节转角曲线Fig.5 Angle curves of manipulator joints

图6 机械臂关节角速度曲线Fig.6 Angular velocity curves of manipulator joints

图7 和图8 分别显示了末端执行器向目标靠近过程中的三维路径曲线和欧氏距离曲线。可以看出,在机械臂的整个运动过程中,末端执行器径直趋向目标,并走出了一条较为平直且顺滑的三维趋近曲线;同时从欧氏距离曲线中也可以看到,仅经过约140 个仿真时间步,末端执行器即完成了初始距离约0.5 m的趋近任务,整个趋近过程流畅且稳定,达到了水下机械臂自主运动控制的预期效果。

图7 机械臂末端执行器轨迹Fig.7 Track of the manipulator end effector

图8 末端执行器与目标距离Fig.8 Distance between the end effector and the target

4 结束语

受水下环境水动力的复杂特性以及水下作业时观测角度因素的影响,操作水下多功能机械臂完成水下精细的作业任务一直以来都需要耗费大量的人力和时间成本,这对自主控制技术的研究提出了更为迫切的需求。本文针对水下机械臂的自主控制问题,设计了一种将PPO与AC结合的深度强化学习训练方法。同时,针对此类高维环境下强化学习训练过程中出现的奖励稀疏问题,文章提出了一种能够保证最优策略不变的基于人工势场法的奖励塑造方法,并使用MuJoCo 建立了仿真模拟环境,通过对比分析强化学习训练综合奖励曲线,验证了该奖励塑造方法的有效性。通过随机生成目标点的方式,验证了经强化学习训练得到的策略可以在较短的时间内控制水下机械臂向目标完成趋近,趋近过程流畅、稳定且可靠。

目前,受客观条件的限制,水下机械臂自主控制的整体研究还仅是在仿真环境下进行,缺少实际水下机械臂的自主控制经验。在今后的研究中,我们会逐步将仿真结果迁移到实际的水下机器人的机械臂控制中,并将其应用到更多、更复杂的情况中,比如更多的自由度、水下机器人自主控制乃至多智能体的协同作业等。

猜你喜欢
执行器坐标系机械
调试机械臂
双级执行器系统的离散滑模控制
解密坐标系中的平移变换
坐标系背后的故事
简单机械
飞机装配预连接紧固件自动化安装末端执行器设计
基于重心坐标系的平面几何证明的探讨
考虑执行器饱和的改进无模型自适应控制
一类具有执行器饱和的非线性系统抗饱和方法研究
按摩机械臂