机器人 2023, Vol. 45 Issue (3): 321-332  
0
引用本文
双丰, 卢万玉, 李少东, 袁小钢. 基于强化学习的机器人轴孔装配算法[J]. 机器人, 2023, 45(3): 321-332.  
SHUANG Feng, LU Wanyu, LI Shaodong, YUAN Xiaogang. Robotic Peg-in-hole Assembly Algorithm Based on Reinforcement Learning[J]. ROBOT, 2023, 45(3): 321-332.  

基于强化学习的机器人轴孔装配算法
双丰 , 卢万玉 , 李少东 , 袁小钢     
广西大学电气工程学院广西电力装备智能控制与运维重点实验室, 广西 南宁 530004
摘要:为了完成非结构化环境中的机器人轴孔装配任务, 提出了一种融入模糊奖励机制的深度确定性策略梯度(DDPG)变参数导纳控制算法, 来提升未知环境下的装配效率。建立了轴孔装配接触状态力学模型, 并开展轴孔装配机理研究, 进而指导机器人装配策略的制定。基于导纳控制器实现柔顺轴孔装配, 采用DDPG算法在线辨识控制器的最优参数, 并在奖励函数中引入模糊规则, 避免陷入局部最优装配策略, 提高装配操作质量。在5种不同直径的孔上进行装配实验, 并与定参数导纳模型装配效果进行比较。实验结果表明, 本文算法明显优于固定参数模型, 并在算法收敛后10步内可完成装配操作, 有望满足非结构环境自主操作需求。
关键词强化学习    机器人轴孔装配    柔顺控制    模糊奖励    
中图分类号:TP249            文献标志码:A            文章编号:1002-0446(2023)-03-0321-12
Robotic Peg-in-hole Assembly Algorithm Based on Reinforcement Learning
SHUANG Feng , LU Wanyu , LI Shaodong , YUAN Xiaogang     
Guangxi Key Laboratory of Intelligent Control and Maintenance of Power Equipment, School of Electrical Engineering, Guangxi University, Nanning 530004, China
Abstract: In order to complete the robotic peg-in-hole assembly task in unstructured environment, a DDPG (deep deterministic policy gradient) based variable parameter admittance control algorithm integrated with fuzzy reward mechanism is proposed to improve the assembly efficiency in unknown environment. The mechanical model of contact state for peg-in-hole assembly is established, and the peg-in-hole assembly mechanism is studied, to guide the formulation of robotic assembly strategy. The compliant peg-in-hole assembly is realized based on the admittance controller, whose optimal parameters are online identified by DDPG algorithm. The fuzzy rules are introduced into the reward function to avoid falling into the local optimal assembly strategy, which improves the assembly quality. Finally, assembly experiments are carried out on holes of 5 different diameters, and compared with the results of the fixed parameter admittance model. The experimental results show that the proposed algorithm is obviously superior to the fixed parameter model, and the assembly operation can be completed within 10 steps after the algorithm convergence. The proposed algorithm is expected to meet the requirements of autonomous manipulation in unstructured environment.
Keywords: reinforcement learning    robotic peg-in-hole assembly    compliant control    fuzzy reward    

1 引言(Introduction)

轴孔装配是机器人在制造业中的一种重要应用[1]。为了避免装配过程中轴孔之间接触力过大造成工件和设备的损坏,需要引入柔顺装配策略减小装配过程中的接触力。当前主要有2种柔顺控制策略,一种是主动柔顺策略,另一种是被动柔顺策略。被动柔顺策略是通过机器人末端机械结构的形变来实现对外界作用力的顺从,如RCC(远心柔顺)法[2]、DRCC(动态远心柔顺)法[3]、VRCC(可变远心柔顺)法[4]。这种机械结构的通用性差、控制精度低、适应性差[5]。由于被动柔顺策略的局限性,很多学者对主动柔顺策略进行了大量的研究。主动柔顺策略是通过机器人控制算法改变末端的位姿来顺应外界环境对末端的作用力。目前常用的算法是力/位混合控制和阻抗控制[6]。Zhang等[7]基于对刚性轴孔装配模型的分析,提出了机器人模糊力控制方法,通过实验验证了其在装配任务中的有效性,但是需要一定的先验知识。阻抗控制由Hogan[8]于20世纪80年代提出,被广泛用于柔顺装配中。Chan和Liaw[9]通过关节力矩阻抗控制方式完成机器人柔顺装配任务,但是需要建立十分精确的机器人模型。这种定参数控制系统无法适应非结构化的装配环境,且装配效率较低,甚至难以完成该环境下的装配任务。因此,需要一种不必对物理接触进行建模分析且不依赖先验知识的智能算法来控制机器人或者实时辨识控制器参数,以完成非结构化环境下的装配任务。

在非结构化环境下,人类可以利用所学到的经验完成轴孔装配任务[10]。受此启发,工业机器人可以在装配的过程中自主学习轴孔装配技能。强化学习算法在机器人中的应用是构建一个智能体,该智能体以从环境中获得针对当前任务的最大奖励为目的来学习机器人的控制策略[11]。因此,可以将强化学习用到机器人中,让机器人不断地进行装配探索并从中学习到装配技能,而不需要人为地将人类的装配经验转移到机器人的执行程序中[12]。强化学习受自身结构约束,常用来解决离散的问题,但机器人控制是一个状态信息连续且连续控制的过程[13]。杜志江[14]将模糊理论与Sarsa($ \lambda $) 算法结合,使强化学习具有处理连续状态信息的能力。Zou[15]结合强化学习的优点,将模糊理论引入Q学习中,提出基于模糊Q学习的变阻抗控制器,实现了轴孔装配插入过程的姿态调整,使Q学习具有处理连续状态信息的能力。然而,模糊规则的建立需要对模型有一定的先验知识,且输入状态中包含力和位姿信息,模糊规则数量较多,编程实现较为复杂。

随着深度学习的发展,高维数据经过神经网络处理后可以得到维度较低的特征表示,将深度学习和强化学习相结合的深度强化学习被更多地用于高维状态空间和高维动作空间任务的决策上[16]。同时深度强化学习也被广泛地应用于机器人控制中[17]。尤其是深度确定性策略梯度(DDPG)算法[18]在执行连续和高维动作控制任务时表现出良好的效果。但是强化学习算法需要经过一段时间的训练过程,而装配过程中,轴孔间隙较小,机器人在前期训练时容易因为错误的试探产生很大的接触力而造成设备和工件的损坏。Xu[19]提出了一种模型驱动的DDPG算法,将强化学习输出的动作输入到比例力控制器中,通过比例控制器输出机器人的控制量,使机器人在前期训练的时候避免冒险的探索动作。然而,由于比例控制器自身的缺陷,系统的稳定性有待提高。Lee[20-21]采用多模态表征的自监督学习完成了从定位、搜孔到插孔的机器人自主装配过程,机器人的动作调节从3维(3维位置调节)提升到4维(3维位置调节加上绕一个轴的旋转)。然而,仅有4维的动作调整在装配时还是有较大的局限性。Meng[22]采用近端策略优化(proximal policy optimization)算法辨识阻抗控制器参数,在人的参与下完成轴孔装配任务,机器人的自主性稍显不足。

本文主要针对圆柱状工件的装配进行研究。通过对轴孔装配过程中的接触状态进行力学建模,指导机器人装配策略的制定。在轴孔装配过程中,轴孔间隙小,且接触均为刚性接触,而强化学习在前期需要不断地进行探索试错来积累大量的经验。为了保证强化学习算法在执行过程中的安全性,将导纳控制器作为机器人底层的柔顺控制器,用强化学习辨识导纳控制器的参数。

本文使用DDPG算法处理轴孔装配过程中的连续高维状态输入信息,实现高维连续的导纳参数输出,以控制机器人高效地完成装配任务。为了避免因奖励系统考虑的影响因素不够导致智能体陷入局部最优,或者多种变量的影响导致难以建立复杂精确的奖励模型,将模糊规则引入奖励系统中。通过机器人对不同直径孔的装配实验证明了融入模糊奖励机制的DDPG变参数导纳控制模型在轴孔装配过程中的稳定性、高效性和泛化能力。

2 轴孔装配模型分析(Analysis on the peg-in-hole assembly model)

为了分析装配过程中接触状态与力值之间的关系,对装配过程进行力学建模。由于空间装配的力学分析过程与平面装配情形相似,为了便于分析,对平面的轴孔装配进行建模。在轴孔装配时,可将力传感器、夹爪和轴简化,如图 1所示。

图 1 力传感器、夹爪和轴简化图 Fig.1 Simplified diagram of the force sensor, parallel gripper and peg

轴孔接触前的状态如图 2所示。其中,$ R $为孔的半径,$ r $为轴的半径,$ \theta_{0} $为轴孔未接触时的初始倾转角度偏差,$ u_{0} $表示轴孔未接触时轴端的初始侧向位移偏差,$ l_{\rm g} $为轴的长度。

图 2 未接触时的轴与孔 Fig.2 Peg and hole before contact
2.1 接触状态分析

整个装配过程根据轴、孔间的相对位置可分为3个阶段:接近阶段,单点接触阶段,两点接触阶段,如图 3所示。接近阶段没有受到外界的接触力,因此,本节只对单点接触和两点接触进行受力分析。

图 3 轴孔装配过程的3个阶段 Fig.3 Three stages in the peg-in-hole assembly process

设其侧向刚度为$ k_{x} $,倾转刚度为$ k_{\theta} $。装配时在不引入任何主动柔顺装配策略的前提下,对其受力情况进行分析。有如下假设:

1) 装配过程中只有轴与机器人的连接处发生弹性形变,可将其简化成倾转弹簧和拉压弹簧组合;

2) 轴与机器人的连接处的侧向刚度和倾转刚度相互独立,无耦合关系;

3) 轴孔装配过程中的接触状态均为准静态平衡状态,轴的重力已通过数学模型进行补偿处理,可忽略其影响。

基于上述假设,当轴受到外力作用时只会产生横向平移和侧向倾转。

2.1.1 单点接触阶段的受力分析

当轴与孔处于单点接触时,状态如图 4(a)所示。对接触状态进行几何分析:

$ \begin{align} u-u_{0} =(l_{\rm g} -l)\cdot \sin \theta +R-r-u_{0} \end{align} $ (1)
图 4 轴孔接触状态 Fig.4 Contact state of the peg and hole

$ \theta $很小,因此$ \sin \theta \approx \theta $,可将式(1) 化为

$ \begin{align} \theta -\theta_{0} =\frac{u-(R-r)}{l_{\rm g} -l}-\theta_{0} \end{align} $ (2)

对接触点列受力平衡方程:

$ \begin{align} \begin{cases} F_{1} =f \\ F_{2} =F_{\rm N} \\ M=F_{\rm N} \cdot (l_{\rm g} -l)-f\cdot r \end{cases} \end{align} $ (3)

式中,$ F_{1} $$ F_{2} $$ M $为手爪对轴施加的力和力矩。

轴与夹爪物理性质方程为

$ \begin{align} \begin{cases} F_{1} =f=\mu \cdot F_{\rm N} \\ F_{2} =k_{x} (u-u_{0}) \\ M=k_{x} (\theta -\theta_{0}) \end{cases} \end{align} $ (4)

联立式(2)~(4) 可得:

$ \begin{align} \begin{cases} F_{1} =\dfrac{\mu \cdot k_{x} \cdot k_{\theta} \cdot L}{k_{x} \cdot A\cdot (l_{\rm g} -l)-k_{\theta}} \\[3pt] F_{2} =\dfrac{k_{x} \cdot k_{\theta} \cdot L}{k_{x} \cdot A\cdot (l_{\rm g} -l)-k_{\theta}} \\[3pt] M=\dfrac{k_{x} \cdot k_{\theta} \cdot A\cdot L}{k_{x} \cdot A\cdot (l_{\rm g} -l)-k_{\theta}} \end{cases} \end{align} $ (5)

式中,$ A=l_{\rm g} -l-\mu \cdot r $$ L=u_{0} -(R-r)-\theta_{0} \cdot (l_{\rm g} -l) $

2.1.2 两点接触阶段的受力分析

当轴与孔处于两点接触时,状态如图 4(b)所示。对接触状态进行几何分析:

$ \begin{align} \begin{cases} l\cdot \theta =2(R-r) \\ u=l_{\rm g} \cdot \theta -(R-r) \end{cases} \end{align} $ (6)

力平衡方程为

$ \begin{align} \begin{cases} F_{1} =f_{1} +f_{2} \\ F_{2} =F_{{\rm N}1} -F_{{\rm N}2} \\ M=f_{2} \cdot r+F_{{\rm N}1} \cdot (l_{\rm g} -l)-f_{1} \cdot r-F_{{\rm N}2} \cdot l_{\rm g} \end{cases} \end{align} $ (7)

物理性质方程为

$ \begin{align} \begin{cases} F_{1} =\mu \cdot (F_{{\rm N}1} +F_{{\rm N}2}) \\ F_{2} =k_{x} \cdot (u-u_{0}) \\ M=k_{\theta} (\theta -\theta_{0}) \end{cases} \end{align} $ (8)

联立式(6)~(8) 可以得到$ F_{1} $$ F_{2} $$ M $随插入深度$ l $的变化关系:

$ \begin{align} \begin{cases} F_{1} =\dfrac{2\mu} {l} \left[F_{2} \cdot \left(l_{\rm g} -\mu \cdot r-\dfrac{1}{2}\cdot l\right)-M \right] \\ F_{2} =k_{x} \cdot (u-u_{0}) \\ M=k_{\theta} \cdot (\theta -\theta_{0}) \end{cases} \end{align} $ (9)

式中:

$ \begin{align*} \begin{cases} \theta -\theta_{0} =\dfrac{2(R-r)}{l}-\theta_{0} \\ u-u_{0} =l_{\rm g} \cdot \theta -(R-r)-u_{0} \end{cases} \end{align*} $

利用Matlab软件对式(5) 和式(9) 进行仿真,设轴与机器人的连接处的侧向刚度和倾转刚度分别为$ k_{x} =2 \times {10}^{4} $ N/m,$ k_{\theta} =2 \times {10}^{4} $ N/m,仿真结果如图 5图 6所示。

图 5 不同插入深度下单点接触的力与力矩值 Fig.5 Force and moment during single-point contact at different insertion depths
图 6 不同插入深度下两点接触的力与力矩值 Fig.6 Force and moment during two-point contact at different insertion depths

图 5图 6的仿真结果表明,轴孔装配时的单点接触力值远小于两点接触力值。此外,发生两点接触时的力值随插入深度呈指数下降。因此,装配时应满足如下需求:

1) 装配中出现两点接触时,易出现力值很大的情况。因此,需要引入柔顺控制器,使机器人能通过调整自身位姿来减小外界环境的接触力。

2) 单点接触的力值远小于两点接触,力值过大的情况多数出现在两点接触状态,装配过程中应尽可能避免出现两点接触。当两点接触无法避免时,应尽量使两点接触在插入较深时出现,两点接触时插入的深度越深,装配效果越好。因此,装配开始时,插入深度较浅,应以较大的姿态调整量来减小轴与孔的夹角,增大两点接触出现时的插入深度,甚至避免出现两点接触。在接触力相同的情况下,插入深度越深,轴与孔间的夹角越小,机器人的位姿调节量也应越小,避免出现调节过度的情况。

3) 为保证装配的成功率和高效性,要求控制器的参数能自动随装配状态而改变。装配状态是连续变化的,柔顺控制器参数也应是连续变化的。

综上所述,本文选用导纳模型作为机器人柔顺控制器,使用DDPG算法辨识导纳控制器参数。

3 柔顺装配控制算法(Control algorithm for compliant assembly)

本节详细介绍机器人自主轴孔装配柔顺控制算法的具体实现过程。算法由导纳控制模型和参数辨识算法两部分组成,通过导纳控制模型建立轴、孔间接触力和力矩与机器人末端位姿调整量的关系,让机器人可根据轴孔接触力来调整轴的位姿,以完成柔顺装配。参数辨识模型主要用于导纳模型参数的实时调整,这部分功能由融入模糊奖励机制的DDPG算法实现。

3.1 导纳控制模型

导纳控制模型是常见的机器人主动柔顺控制方式。导纳模型的输入是力,输出是位置或速度,通过改变位姿来顺应外界环境的作用力。装配过程中,机器人需要根据孔对轴的作用力,实时地调整轴的位姿。因此,本文将导纳控制器作为机器人的柔顺控制器。定义导纳控制器的传递函数为

$ \begin{align} H(s)=\frac{\Delta X(s)}{\Delta F(s)}=\frac{1}{Ms^{2}+Bs+K} \end{align} $ (10)

式中,$ \Delta F $为施加在机器人末端的作用力与期望力之差,$ \Delta X $为机器人位姿修正量,$ M $为虚拟惯性参数,$ B $为虚拟阻尼参数,$ K $为虚拟刚度参数。文中的实验是对末端位姿进行调整,导纳控制器直接输出末端位姿的调整量,机器人的移动均以基坐标系为参考,为了便于计算,力值也是经过坐标变换后在基坐标系下的表达。

为了方便编程实现,将Tustin变换式:

$ \begin{align} s=\frac{2}{T}\frac{z-1}{z+1} \end{align} $ (11)

代入式(10) 中,进行离散化得:

$ \begin{align} \frac{\Delta X(z)}{\Delta F(z)}=\frac{T^{2}+2 T^{2}\cdot z^{-1}+T^{2}\cdot z^{-2}}{A+C\cdot z^{-1}+D\cdot z^{-2}} \end{align} $ (12)

式中,$ T $为采样周期,且:

$ \begin{align*} \begin{cases} A=4 M+2B\cdot T+K\cdot T^{2} \\ C=-8 M+2 K\cdot T^{2} \\ D=4 M-2B\cdot T+K\cdot T^{2} \end{cases} \end{align*} $

进一步将式(12) 化简为差分式:

$ \begin{align} X(k)&=\dfrac{1}{A}\big[T^{2}\cdot F(k)+2 T^{2}\cdot F(k-1)+T^{2}\cdot F(k-2)- \\ &\quad C\cdot X(k-1)-D\cdot X(k-2)\big] \end{align} $ (13)

式中,$ X(k) $为第$ k $时刻的位姿修正量,$ F(k) $为第$ k $时刻的接触力与期望力之差。基于式(13) 实现对导纳模型的离散化处理,进而满足机器人控制需求。

调整导纳参数需要先分析参数$ M $$ B $$ K $的变化对控制系统的影响,利用Matlab软件对机器人导纳控制模型进行仿真。

虚拟惯性参数$ M $与接触的稳定性有关,令$ B= $ $ 20 $ N$ \cdot $s/mm,$ K=10 $ N/mm,将$ M $分别取0.02、0.2、2、20、50,仿真结果见图 7。可以发现,随着$ M $的增大,超调增大,调节时间变长,而导纳控制器输出的位置修正量基本不变。当$ M $小于一定值时,再减小$ M $的值对系统的影响变化不大,仿真中$ M= $ 0.02与$ M= $ 0.2的曲线几乎重合。因此,$ M $应该取较小的值,确保接触过程中有较好的动态性能。

图 7 惯性参数M对位置修正量的影响 Fig.7 Effect of inertial parameter M on position correction

若接触状态不同,则机器人的最优位姿调整量也不同。在装配初始阶段,轴、孔间的姿态误差较大,需要机器人大幅度地调整姿态来快速减小轴、孔间的姿态误差。当插入深度较深时,轴、孔间的姿态误差和轴孔间隙较小,即使受到较大接触力也应避免大幅度地调节机器人位姿,防止出现调节过度的情况。

经实验发现,在保证系统稳定性的前提下,$ K $取较小的值时,$ B $的改变对机器人位姿的调整幅度影响较大。因此,为了获得良好的装配效果,在保证装配成功的前提下,以最少的调整步数完成装配,需要机器人能够根据当前的装配情况实时调整导纳控制器的阻尼参数。

装配过程中,令虚拟惯性参数和虚拟刚度参数为常数,采集机械臂末端受力信息和末端位姿信息作为强化学习输入,进而在线辨识虚拟阻尼参数。其中,虚拟惯性参数的值、虚拟刚度参数的值和虚拟阻尼参数的调整范围由实验确定。

3.2 融入模糊奖励机制的DDPG虚拟阻尼参数辨识算法

本节重点介绍基于DDPG算法的虚拟阻尼参数在线调整方法和模糊奖励系统。在轴孔装配的过程中,装配状态是一个连续变化的过程,状态对应的最优阻尼参数也处于连续变化中,阻尼参数中的6个值与机器人的6D位姿相对应。因此,所使用的强化学习算法要能满足连续状态输入和连续动作输出的需求。DDPG算法在实现连续状态输入和连续动作输出时具有稳定、高效的表现。为获取轴孔装配过程中的位姿信息与接触力信息,并将该信息反映在虚拟阻尼参数的调整策略中,本文采用DDPG算法来解决装配过程中状态和控制均是连续变量的问题,无需对装配环境进行建模就可以通过与环境的交互来学习到最佳调整策略。

在强化学习训练初期,动作执行后难以综合考虑装配深度和接触力给出合适的精确奖励值。因此,引入模糊奖励系统有助于将装配过程中更多影响装配的因素考虑进来,建立更复杂的奖励逻辑,无需建立精确复杂的数学函数,简化了系统的复杂度,提高了装配质量。

3.2.1 DDPG学习算法

对于轴孔装配任务,目标是开发一个智能体,该智能体通过与装配环境交互来学习装配过程中导纳控制器阻尼参数$ B $的调整策略。装配时导纳控制器参数$ B $的调整过程可以表述为一个马尔可夫决策过程。在每个时间步骤$ t $,智能体获得环境的状态$ \mathit{\boldsymbol{s}}_{t} \in S $,根据状态输出一个虚拟阻尼矩阵$ \mathit{\boldsymbol{a}}_{t} \in A $,并获得一个奖励值$ r_{t} $用来评估执行一个动作的好坏。

智能体以长期收益$ R_{t} $最大化为目标来改进学习策略,如下所示:

$ \begin{align} R_{t} =\sum\limits_{i=0} \gamma^{i}\cdot r_{t+i} =r_{t} +\gamma \cdot R_{t+1} \end{align} $ (14)

式中,$ \gamma $为奖励的折扣率,$ \gamma \in (0, 1) $,奖励值$ r_{t} $取决于在状态$ \mathit{\boldsymbol{s}}_{t} $下执行动作$ \mathit{\boldsymbol{a}}_{t} $的好坏。奖励信号定义了装配任务的目标,即缩短装配步数和平滑接触力。

策略$ \pi $是状态到动作的映射,输出动作值可以是具体动作或动作的概率分布。DDPG算法输出的是当前状态对应的某个确定的动作,动作的选取策略$ \pi $定义如下:

$ \begin{align} {\mathit{\boldsymbol{a}}}=\pi ( \mathit{\boldsymbol{s}} |\mathit{\boldsymbol{\theta}} ^{\pi}) \end{align} $ (15)

式中,策略$ \pi $使用Actor神经网络来表示。$ \mathit{\boldsymbol{\theta}}^{\pi} $为Actor网络的权重,网络更新的目的是找到一个最优的权重$ \mathit{\boldsymbol{\theta}}^{\pi} $,当输入一个状态时能选择出一个当前状态对应的最优动作,执行这个动作后能获得最大的$ R_{t} $

所用到的导纳控制模型的阻尼矩阵由5个参数组成,对应机器人运动的5个动作。本文研究的是圆柱形零件的装配,装配过程中不需要考虑绕$ z $轴的旋转。为了减少Actor网络的输出量,提高网络的收敛速度,令沿$ x $$ y $轴的位移为相同的阻尼参数,绕$ x $$ y $轴的旋转取相同的阻尼参数。因此Actor网络的输出是3个阻尼参数,分别为沿$ x $$ y $轴运动的阻尼参数,绕$ x $$ y $轴旋转的阻尼参数,和沿$ z $轴运动的阻尼参数。DDPG Actor网络输出的动作是一个$ 1\times 3 $向量,定义如下:

$ \begin{align} \mathit{\boldsymbol{a}}_{t} =[b_{1}, b_{2}, b_{3} ] \end{align} $ (16)

式中,$ \mathit{\boldsymbol{a}}_{t} $$ t $时刻的动作输出,$ b_{1} $对应机器人6D位姿中在$ x $$ y $轴上的平移量,$ b_{2} $$ z $轴上的平移量,$ b_{3} $对应绕$ x $$ y $轴的旋转量。

装配过程中,需要考虑力、力矩、轴的姿态和插入深度的影响。因此,环境的状态由8个元素组成,定义如下:

$ \begin{align} \mathit{\boldsymbol{s}}_{t} =[ F_{x}, F_{y}, F_{z}, M_{x}, M_{y}, \theta_{x}, \theta_{y}, h ] \end{align} $ (17)

式中,$ \mathit{\boldsymbol{s}}_{t} $$ t $时刻的环境状态,$ \mathit{\boldsymbol{F}} $$ \mathit{\boldsymbol{M}} $是6维力传感器测得的力和力矩,单位为N和N$ \cdot $m,$ \theta_{x} $$ \theta_{y} $是机械臂末端绕末端坐标系$ x $轴和$ y $轴的旋转角,参考坐标系为基坐标系。$ h $是插入深度,单位是mm。

在DDPG算法中,策略$ \pi $的参数$ \mathit{\boldsymbol{\theta}}^{\pi} $通过式(18) 更新:

$ \begin{align} \mathit{\boldsymbol{\theta}}^{\pi} \leftarrow \mathit{\boldsymbol{\theta}}^{\pi} +\beta \gamma^{\:t}\cdot \nabla_{\theta^{\pi}} \pi \left(\mathit{\boldsymbol{s}}_{t} | {\mathit{\boldsymbol{\theta}}^{\pi}}\right) \cdot \left[ \nabla_{{\mathit{\boldsymbol{a}}}} q(\mathit{\boldsymbol{s}}_{t}, {\mathit{\boldsymbol{a}}}| {\mathit{\boldsymbol{\theta}}^{q}}) \right]_{{\mathit{\boldsymbol{a}}}=\pi \left(\mathit{\boldsymbol{s}}_{t}, \mathit{\boldsymbol{\theta}}^{\pi}\right)} \end{align} $ (18)

式中,$ q(\mathit{\boldsymbol{s}}_{t}, a| \mathit{\boldsymbol{\theta}}^{q} ) $为动作价值函数,使用Critic网络来表示,$ \mathit{\boldsymbol{\theta}}^{q} $为Critic网络的权重。Critic网络的输出为$ Q $,表示智能体选择这个动作后,一直到最终状态获得奖励的期望。$ \mathit{\boldsymbol{\theta}}^{q} $的更新公式如下:

$ \begin{align} \mathit{\boldsymbol{\theta}}^{q}\leftarrow \mathit{\boldsymbol{\theta}}^{q}+\alpha \left( y-q \left(\mathit{\boldsymbol{s}}_{t}, \mathit{\boldsymbol{a}}_{t} | \mathit{\boldsymbol{\theta}}^{q} \right) \right)\nabla_{\bm\theta^{q}} q \left(\mathit{\boldsymbol{s}}_{t}, \mathit{\boldsymbol{a}}_{t} | \mathit{\boldsymbol{\theta}}^{q} \right) \end{align} $ (19)

式中,$ \alpha $$ \beta $为网络的学习率。

3.2.2 奖赏函数

对于轴孔装配任务,整个奖励系统的输出为$ r $,由3部分奖励组成,可以表示为

$ \begin{align} r=r_{1} +r_{2} +r_{3} \end{align} $ (20)

$ r_{1} $只有机器人装配成功时才能获得。如果轴插入到目标位置,接触力没有超过设定的最大接触力且在最大步数内成功完成装配任务,则认定装配成功,智能体获得正奖励值,其奖励函数如下:

$ \begin{align} r_{1} =k\cdot \left(1-\frac{n}{n_{\max}}\right) \end{align} $ (21)

式中,$ n_{\max} $是给定的最大步数,$ k $为奖励系数。

$ r_{2} $是接触力过大时给的负奖励值,该负奖励值要大于执行$ n_{\max} $步探索时每一步的负奖励值之和,为一个定值。若没有触发力值过大则为0。

$ r_{3} $为每执行一个动作的负奖励值,从模糊奖励系统获得。接触力和力矩越大、深度越浅、每一步插入值越小,则惩罚越大。

模糊系统输入变量为$ h $$ \Delta h $$ F_{\max} $$ M_{\max} $,每个变量的模糊语言均为$ [ $差, 较差, 正常, 较好, 好$ ] $。模糊奖励系统根据轴的当前深度$ h $,每一步插入深度的进给量$ \Delta h $,3个方向力的最大值$ F_{\max} $,和$ x $$ y $方向的最大力矩$ M_{\max} $来确定奖励值。把最大接触力和力矩作为奖励系统的输入可以实现柔顺装配。奖励权重会自适应插入深度,深度越深则力和力矩对插入步长越敏感,故惩罚权重随插入深度变大而减小,进一步提高算法收敛效果。因此,基于上述分析制定了模糊规则。为了简化计算过程,设计两层模糊奖励系统,如图 8所示。系统包含3个模糊集,每个模糊集包含25条模糊规则。第1层包含2个模糊集,分别为力-力矩和当前深度-进给量;第2层输入为第1层2个模糊集合的输出。最后基于式(22) 逆模糊化输出模糊奖励系统惩罚值。

图 8 模糊奖励系统框图 Fig.8 Schematic diagram of the fuzzy reward system
$ \begin{align} f(\mathit{\boldsymbol{I}}_{\rm p})=\frac{\sum\limits_{i=1}^{25} U_{i} \prod\limits_{j=1}^n v_{j}^{i} (i_{{\rm p}j}) } {\sum\limits_{i=1}^{25} \prod\limits_{j=1}^n v_{j}^{i} (i_{{\rm p}j})} \end{align} $ (22)

式中,$ \mathit{\boldsymbol{I}}_{\rm p} =[i_{{\rm p}1}, i_{{\rm p}2}, \cdots, i_{{\rm p}n}] $$ f(\mathit{\boldsymbol{I}}_{\rm p}) $分别表示输入和逆模糊化后的输出;$ v_{j}^{i} (i_{{\rm p}j}) $为三角隶属函数,3个模糊集使用的三角隶属函数是不同的;$ U_{i} $表示第$ i $条模糊规则输出的权重,该值由经验给定。

融入模糊奖励机制的DDPG变参数导纳控制算法框图如图 9所示,算法流程如下。

图 9 融入模糊奖励机制的DDPG变参数导纳控制模型框图 Fig.9 Schematic diagram of the DDPG-based variable parameter admittance control algorithm integrated with fuzzy reward mechanism

算法1  融入模糊奖励机制的DDPG变参数导纳控制算法
1: 随机初始化$ \mathit{\boldsymbol{\theta}}^{q} $$ \mathit{\boldsymbol{\theta}}^{\pi} $,随机初始化目标Critic网络$ q' (\mathit{\boldsymbol{s}}, {\mathit{\boldsymbol{a}}}| \mathit{\boldsymbol{\theta}}^{q\prime }) $和目标Actor网络$ \pi '(\mathit{\boldsymbol{s}}| \mathit{\boldsymbol{\theta}}^{ \pi ' }) $的参数$ \mathit{\boldsymbol{\theta}}^{q'} $$ \mathit{\boldsymbol{\theta}}^{ \pi '} $,初始化经验池$ W $、随机噪声$ \varepsilon $
2: for episode $ = $ 1 to $ E $ do
3:     初始化装配状态,接收初始状态$ \mathit{\boldsymbol{s}}_{1} $
4:     for $ t= $ 1 to $ T_{\rm e} $ do
5:       在$ \mathit{\boldsymbol{s}}_{t} $状态下通过Actor网络选取动作$ \mathit{\boldsymbol{a}}_{t} = \boldsymbol{\pi} (\mathit{\boldsymbol{s}}_{t}, \mathit{\boldsymbol{\theta}}^{\pi})+\mathit{\boldsymbol{\varepsilon}}_{t} $
6:       执行动作$ \mathit{\boldsymbol{a}}_{t} $,获取下一状态$ \mathit{\boldsymbol{s}}_{t+1} $和奖励$ r_{t} $
7:       将$ (\mathit{\boldsymbol{s}}_{t}, \mathit{\boldsymbol{a}}_{t}, {r}_{t}, \mathit{\boldsymbol{s}}_{t+1}) $保存到经验池中
8:       当$ W $装满后,随机从$ W $中抽取$ N $个样本训练网络
9:       更新Critic网络:$ \mathit{\boldsymbol{\theta}}^{q}\leftarrow \mathit{\boldsymbol{\theta}}^{q}+\alpha \cdot \dfrac{1}{N}\cdot {\mathit{\boldsymbol{f}}}_{\rm c} $,其中:
          $ {\mathit{\boldsymbol{f}}}_{\rm c} =\sum\limits_i \left[y_{i} -q(\mathit{\boldsymbol{s}}_{i}, \mathit{\boldsymbol{a}}_{i} | \mathit{\boldsymbol{\theta}}^{q})\right] \cdot \nabla_{\bm\theta^{q}} q(\mathit{\boldsymbol{s}}_{i}, \mathit{\boldsymbol{a}}_{i} | {\mathit{\boldsymbol{\theta}}^{q}}) $
          $ y_{i} =r_{i} +\gamma q '\left[\mathit{\boldsymbol{s}}_{i+1}, \pi ' \left(\mathit{\boldsymbol{s}}_{i+1}, | \mathit{\boldsymbol{\theta}}^{\pi'}\right)\right] $
          更新Actor网络:$ \mathit{\boldsymbol{\theta}}^{\pi} \leftarrow \mathit{\boldsymbol{\theta}}^{\pi} +\beta \cdot \dfrac{1}{N}\cdot {\mathit{\boldsymbol{f}}}_{\rm a} $,式中,
          $ {\mathit{\boldsymbol{f}}}_{\rm a} =\sum\limits_i \nabla_{\bm\theta^{\pi}} \pi (\mathit{\boldsymbol{s}}_{i} | \mathit{\boldsymbol{\theta}}^{\pi} )\cdot \left[ \nabla_{{\mathit{\boldsymbol{a}}}} q(\mathit{\boldsymbol{s}}_{i}, {\mathit{\boldsymbol{a}}}| \mathit{\boldsymbol{\theta}}^{q})\right]_{{\mathit{\boldsymbol{a}}}=\pi (\mathit{\boldsymbol{s}}_{i})} $
10:      更新目标网络:$ \mathit{\boldsymbol{\theta}}^{ q '}\leftarrow \tau \mathit{\boldsymbol{\theta}}^{q}+(1-\tau)\mathit{\boldsymbol{\theta}}^{ q '} $ $ \mathit{\boldsymbol{\theta}}^{ \pi '}\leftarrow \tau \mathit{\boldsymbol{\theta}}^{\pi} +(1-\tau)\mathit{\boldsymbol{\theta}}^{ \pi '} $
11:    end for
12: end for

4 实验与分析(Experiment and analysis) 4.1 实验设计与平台构建

轴孔装配实验平台如图 10(a)所示。机器人使用的是6自由度的UR10机器人,力传感器为南宁宇立仪器有限公司的M4313M2B六维力传感器,实验中读取力数值的频率为1000 Hz,夹爪用的是Robotiq 2F-85二指夹爪。实验台采用3D打印树脂材料,上面分布着直径分别为14.0 mm、13.0 mm、12.0 mm、11.5 mm和11.0 mm的孔,如图 10(b)所示。实验使用2种装配轴,一种是钢材料,直径为10.0 mm,长度为35.0 mm,装配时由二指夹爪夹持,如图 10(c)所示,从力传感器受力面到轴末端的长度约为23.5 cm;另一种为铝合金材料,直径为10.0 mm,长度为40.0 mm,直接固定于力传感器受力面,如图 10(d)所示。

图 10 轴孔装配实验平台 Fig.10 Experimental platform of peg-in-hole assembly

为了验证所提出的融入模糊奖励机制的DDPG变参数导纳控制算法的可行性和对不同直径的孔进行装配的适用性,以及对定参数导纳控制在装配效率上的优势,设计了2组实验。第1组实验分别在5个不同直径的孔上进行训练,孔的直径分别为14.0 mm、13.0 mm、12.0 mm、11.5 mm和11.0 mm。夹爪夹持钢件进行强化学习训练,在接触力值达到最大设定值时,轴与夹爪之间偶尔有滑动,产生移位,导致对直径11.0 mm的孔进行实验时轴偏移出孔外。因此,在直径为11.0 mm的孔上进行装配时,使用直接固定于力传感器端的铝合金轴,其他直径的孔用夹爪夹持钢轴进行装配。对直径11.0 mm的孔进行装配时,初始角度差约为10$ ^{\circ} $,其他孔的初始角度误差约15$ ^{\circ} $,验证即使在较大姿态误差的情况下依然能保证装配的成功性。第2组实验是在直径为11.0 mm的孔上用训练好的模型进行装配测试,并与定参数导纳模型进行对比,验证融入模糊奖励机制的DDPG变参数导纳控制对减少装配步数的有效性。

强化学习的模型参数和导纳模型参数如表 1所示,虚拟惯性参数$ M_{1} $、虚拟阻尼参数$ B_{1} $和虚拟刚度参数$ K_{1} $对应机器人的末端位移量,虚拟惯性参数$ M_{2} $、虚拟阻尼参数$ B_{2} $和虚拟刚度参数$ K_{2} $对应机器人的末端旋转量。在实验过程中,虚拟惯性参数和虚拟刚度参数均为恒值,DDPG算法根据环境状态输出确定的虚拟阻尼参数,为了保证导纳模型的稳定性,对虚拟阻尼参数的变化范围进行限制,具体范围见表 1中的虚拟阻尼参数$ B_{1} $$ B_{2} $的调整范围。

表 1 控制器模型参数 Tab. 1 Model parameters of the controller
4.2 实验结果与分析

每次训练开始时,机器人移动到固定的初始位置,轴中心线与孔的中心线夹角为10$ ^{\circ} $或15$ ^{\circ} $,用融入模糊奖励机制的DDPG变参数导纳控制算法控制机器人进行装配。当轴插入深度大于等于30 mm时,完成装配操作。

考虑装配的安全性,实验过程中设置力的最大值为35 N,力矩的最大值为5 N$ \cdot $m。装配过程中,机器人的移动都在其基坐标系下进行,基坐标系$ z $轴垂直于水平面向上,$ z $轴设置5 N的期望力用来引导机器人沿着$ z $轴向下运动完成装配操作。轴件在$ z $轴负方向移动步长限制为5 mm,正方向限制为2 mm,横向移动的最大步长限制为1.0 mm。装配过程中,为了保证接触力过大时及时将机器人刹停,将机器人末端位移速度限制为0.001 m/s,加速度限制为0.005 m/s $ ^{2} $。位姿调整的最大步数为100步。如果接触力和力矩值超限或者调整步数超过了100步,则判断装配失败。

图 11~15分别是对直径为14.0 mm、13.0 mm、12.0 mm、11.5 mm和11.0 mm的孔进行训练的结果,包括算法训练时的奖励值和执行步数。其中,训练至收敛所需的训练次数分别为24次、8次、28次、58次、30次。

图 11 直径14.0 mm孔上的算法训练结果 Fig.11 Algorithm training results on the hole of 14.0 mm diameter
图 12 直径13.0 mm孔上的算法训练结果 Fig.12 Algorithm training results on the hole of 13.0 mm diameter
图 13 直径12.0 mm孔上的算法训练结果 Fig.13 Algorithm training results on the hole of 12.0 mm diameter
图 14 直径11.5 mm孔上的算法训练结果 Fig.14 Algorithm training results on the hole of 11.5 mm diameter
图 15 直径11.0 mm孔上的算法训练结果 Fig.15 Algorithm training results on the hole of 11.0 mm diameter

在对DDPG算法进行训练时,为了避免模型陷入局部最优,对DDPG输出的动作添加随机噪声,让机器人有随机探索的可能性,但是本次实验设置机器人的移动步长较大,而孔内间距较小,一次错误的随机探索可能会造成整个装配过程的失败。因此,在奖励函数收敛到最大值、步数收敛到最小值时,出现2种情况,一是装配成功,轴插入到目标深度,且装配力值没有超限,智能体获得成功奖励$ r_{1} $,这时装配步数为最小值;另一种是触发力值超限导致装配失败。轴孔直径差越小,失败的次数越多,但本文依然认为此时已训练完成,并做如下实验进行验证:使用训练完成的模型重新对用来训练的孔进行了30次装配测试,强化学习网络输出的动作不再添加随机噪声,成功率均达到了100%,完成装配所需步数在10步以内。实验结果如表 2所示,证明了融入模糊奖励机制的DDPG变参数导纳控制算法在轴孔装配中的有效性。文[15]中使用模糊Q学习方法以较小姿态偏差对轴孔直径差为1 mm的孔进行装配训练,经过160回合的训练后达到收敛状态,收敛后装配次数为26步,本文以10$ ^{\circ} $的姿态对轴孔直径差为1 mm的孔进行训练,经过30回合的训练后完成收敛,如图 15所示,所需的装配步数为8步,大幅度缩短了收敛所需的训练回合数和装配所需步数。

表 2 不加随机噪声测试结果 Tab. 2 Testing result without stochastic noise

第2组实验使用定参数的导纳控制模型进行装配,根据实际调参结果和经验设置参数,在保证装配成功率的情况下,以尽可能少的调整步数完成装配。使用完成训练的变参数柔顺控制器对直径为11.0 mm的孔进行装配,所需的步数为8步,装配效果如图 16所示。利用定参数的导纳控制算法对直径为11.0 mm的孔进行装配时,$ \mathit{\boldsymbol{M}} $$ \mathit{\boldsymbol{K}} $的取值与变参数导纳控制器相同,$ \mathit{\boldsymbol{B}}=[2.0, 2.0, 0.5, 0.5, 0.5, 0.5 ] $,完成一次装配所需的步数为28步,装配效果如图 17所示。虽然定参数与变阻尼参数的导纳控制都能完成轴孔装配任务,但是执行相同的装配任务,变阻尼导纳模型完成装配所需的步数更少。

图 16 直径11.0 mm孔的算法测试结果 Fig.16 Algorithm test results on the hole of 11.0 mm diameter
图 17 定参数导纳控制在直径11.0 mm孔上的装配效果 Fig.17 Assembly effect of constant parameter admittance controller on the hole of 11.0 mm diameter
5 结论(Conclusion)

面向非结构化装配环境,为避免将强化学习算法直接用在机器人控制上所带来的风险,提出了融入模糊奖励系统的DDPG变参数导纳控制算法,实现了机器人自主轴孔装配。

算法在奖励函数中引入模糊奖励系统,不需要建立精确的数学模型,便于算法的研究和工程实现。为了证明算法的可行性与优势,设计了2组实验,一是对5个不同直径的孔进行装配,二是将训练完成的模型与定参数导纳算法进行对比。分析实验结果可知,融入模糊奖励机制的DDPG变参数导纳控制算法在对不同的孔进行装配训练时,均具有较快的收敛速度,且能把装配过程所需的调整步数缩短至10步以内,远少于定参数导纳的调整步数,对提高工业制造过程的装配效率和安全性具有重要意义。

然而,在非结构化环境中,仅靠力/位信息进行装配还有一定局限性,后续可将多模态信息引入控制系统中,增强系统对环境的感知能力,进一步提高装配的稳定性和效率。

参考文献(References)
[1]
Liu S, Xu D, Zhang D P, et al. High precision automatic assembly based on microscopic vision and force information[J]. IEEE Transactions on Automation Science and Engineering, 2016, 13(1): 382-393. DOI:10.1109/TASE.2014.2332543
[2]
贾计东, 张明路. 人机安全交互技术研究进展及发展趋势[J]. 机械工程学报, 2020, 56(3): 16-30.
Jia J D, Zhang M L. Research progress and development trend of the safety of human-robot interaction technology[J]. Journal of Mechanical Engineering, 2020, 56(3): 16-30.
[3]
张国龙, 张杰, 蒋亚南, 等. 机器人力控末端执行器综述[J]. 工程设计学报, 2018, 25(6): 617-629.
Zhang G L, Zhang J, Jiang Y N, et al. Review of robotic endeffector with force control[J]. Chinese Journal of Engineering Design, 2018, 25(6): 617-629. DOI:10.3785/j.issn.1006-754X.2018.06.001
[4]
Zhao F L, Wu P S Y. VRCC: A variable remote center compliance device[J]. Mechatronics, 1998, 8(6): 657-672. DOI:10.1016/S0957-4158(98)00002-6
[5]
宋健伟. 圆-长方形复合孔件机器人装配技术研究[D]. 哈尔滨: 哈尔滨工业大学, 2017.
Song J W. Research on robot assembly technology of circlerectangle hole parts[D]. Harbin: Harbin Institute of Technology, 2017.
[6]
Kim S, Kim J P, Ryu J. Adaptive energy-bounding approach for robustly stable interaction control of impedance-controlled industrial robot with uncertain environments[J]. IEEE/ASME Transactions on Mechatronics, 2014, 19(4): 1195-1205. DOI:10.1109/TMECH.2013.2276935
[7]
Zhang K, Shi M H, Xu J, et al. Force control for a rigid dual peg-in-hole assembly[J]. Assembly Automation, 2017, 37(2): 200-207. DOI:10.1108/AA-09-2016-120
[8]
Hogan N. Impedance control: An approach to manipulation[C]//American Control Conference. Piscataway, USA: IEEE, 1984: 304-313.
[9]
Chan S P, Liaw H C. Generalized impedance control of robot for assembly tasks requiring compliant manipulation[J]. IEEE Transactions on Industrial Electronics, 1996, 43(4): 453-461. DOI:10.1109/41.510636
[10]
Tang T, Lin H C, Tomizuka M. A learning-based framework for robot peg-hole-insertion[C]//ASME Dynamic Systems and Control Conference. New York, USA: ASME, 2015. DOI: 10.1115/DSCC2015-9703.
[11]
陈卫东, 席裕庚, 顾冬雷. 自主机器人的强化学习研究进展[J]. 机器人, 2001, 23(4): 379-384.
Chen W D, Xi Y G, Gu D L. A survey of reinforcement learning in autonomous mobile robots[J]. Robot, 2001, 23(4): 379-384. DOI:10.3321/j.issn:1002-0446.2001.04.018
[12]
Yang C G, Zeng C, Cong Y, et al. A learning framework of adaptive manipulative skills from human to robot[J]. IEEE Transactions on Industrial Informatics, 2019, 15(2): 1153-1161. DOI:10.1109/TII.2018.2826064
[13]
董豪, 杨静, 李少波, 等. 基于深度强化学习的机器人运动控制研究进展[J]. 控制与决策, 2022, 37(2): 278-292.
Dong H, Yang J, Li S B, et al. Research progress of robot motion control based on deep reinforcement learning[J]. Control and Decision, 2022, 37(2): 278-292.
[14]
杜志江, 王伟, 闫志远, 等. 基于模糊强化学习的微创外科手术机械臂人机交互方法[J]. 机器人, 2017, 39(3): 363-370.
Du Z J, Wang W, Yan Z Y, et al. A physical human-robot interaction algorithm based on fuzzy reinforcement learning for minimally invasive surgery manipulator[J]. Robot, 2017, 39(3): 363-370.
[15]
Zou P, Zhu Q G, Wu J, et al. Learning-based optimization algorithms combining force control strategies for peg-in-hole assembly[C]//IEEE/RSJ International Conference on Intelligent Robots and Systems. Piscataway, USA: IEEE, 2020: 7403-7410.
[16]
刘建伟, 高峰, 罗雄麟. 基于值函数和策略梯度的深度强化学习综述[J]. 计算机学报, 2019, 42(6): 1406-1438.
Liu J W, Gao F, Luo X L. Survey of deep reinforcement learning based on value function and policy gradient[J]. Chinese Journal of Computers, 2019, 42(6): 1406-1438.
[17]
刘乃军, 鲁涛, 蔡莹皓, 等. 机器人操作技能学习方法综述[J]. 自动化学报, 2019, 45(3): 458-470.
Liu N J, Lu T, Cai Y H, et al. A review of robot manipulation skills learning methods[J]. Acta Automatica Sinica, 2019, 45(3): 458-470.
[18]
Lillicrap T P, Hunt J J, Pritzel A, et al. Continuous control with deep reinforcement learning[DB/OL]. (2019-07-05)[2022-01-01]. https://arxiv.org/abs/1509.02971.
[19]
Xu J, Hou Z M, Wang W, et al. Feedback deep deterministic policy gradient with fuzzy reward for robotic multiple peg-in-hole assembly tasks[J]. IEEE Transactions on Industrial Informatics, 2019, 15(3): 1658-1667.
[20]
Lee M A, Zhu Y, Srinivasan K, et al. Making sense of vision and touch: Self-supervised learning of multimodal representations for contact-rich tasks[C]//International Conference on Robotics and Automation. Piscataway, USA: IEEE, 2019: 8943-8950.
[21]
Lee M A, Zhu Y, Zachares P, et al. Making sense of vision and touch: Learning multimodal representations for contactrich tasks[J]. IEEE Transactions on Robotics, 2020, 36(3): 582-596.
[22]
Meng Y, Su J H, Wu J X. Reinforcement learning based variable impedance control for high precision human-robot collaboration tasks[C]//6th IEEE International Conference on Advanced Robotics and Mechatronics. Piscataway, USA: IEEE, 2021: 560-565.