基于SARSA算法的机器人轴孔装配策略
2023-12-04李少东袁小钢
李少东,袁小钢,牛 捷
(1.广西大学 广西电力装备智能控制与运维重点实验室,广西 南宁 530004;2.智能带电作业技术及装备(机器人)湖南省重点实验室,湖南 长沙 410100;3.带电巡检与智能作业技术国网公司实验室,湖南 长沙 410100;4.国家电网有限公司,北京 100031)
0 引言
随着智能制造快速发展,机器人已通过示教或简单编程方式完成结构化生产线上的装配任务[1]。但对于存在定位误差的轴孔位姿不确定复杂装配任务,传统算法的装配成功率和效率远不能满足期望。因此,研究适用于轴孔位姿不确定问题的控制算法非常重要。
在轴孔装配过程中,轴零件与装配孔间隙小且接触频繁,即使较小位置误差也会出现卡阻、楔紧[2]或力值超过安全限制的情况,从而导致装配失败。因此,需要引入柔顺控制来提高装配成功率。柔顺控制[3]分为被动柔顺和主动柔顺,可以解决机器人高刚度需求与环境顺从能力之间的矛盾。被动柔顺是在机械结构上增加弹簧、阻尼等储能元件,使机器人与环境接触时获得一定的顺从性,具有较低的控制复杂度[4]。但由于弹性元件的使用和特定场景的设计,系统刚度和适应性较差。主动柔顺[5]是基于传感器感知环境信息,根据控制策略驱动机器人顺应环境变化,有利于不确定环境下机器人自主操作。主动柔顺控制方法中导纳模型是以力为输入、位置为输出,可控制机器人顺应环境作用力运动,被广泛应用于机器人轴装配任务。文献[6-7]通过分析摩擦、错误抓取姿势等不确定性因素并针对性建立模型,提出一种机器人导纳控制系统设计方法,解决不确定性因素影响下的零部件装配问题,但仍存在较大模型误差。文献[8]提出一种嵌套的导纳/阻抗控制策略,解决了较大位姿误差的零部件装配任务,但仅在X、Y轴上开展了运动控制实验。上述研究基于固定参数导纳控制赋予机器人一定的柔顺操作能力,但其难以适应变化的环境,且装配效率较低,故需在线辨识导纳参数来适应轴孔位姿不确定的装配环境,进而提高机器人的装配成功率和效率。
导纳参数的在线辨识是以变化的导纳模型去适应装配环境,寻找合适的导纳参数配置,进而高效地完成轴孔装配任务。文献[9]提出一种基于刚度椭圆的导纳控制方法,实现了装配任务中接触状态和非接触状态的连续控制,缺点是未能拓展到三维空间中。文献[10]采用自适应导纳控制,在实际装配操作中完成了无传感器触觉控制算法的验证,但存在装配精度不高的问题。文献[11]分析了导纳参数对运动控制的影响规律,利用余弦相似度指数表征操作任务,实现了阻尼参数的模糊自适应配置,但对于非余弦相似度指数的装配任务适用性未知。上述基于启发式或模糊式的变参数方法在一定程度上改善了导纳装配的效果,却都需对环境有一定的先验认知,在不同装配环境中难以保证效果,泛化能力较差。
强化学习的探索决策能力可以解决环境未知问题,能够提高机器人在复杂环境中柔顺操作的泛化能力[12-13]。随着深度学习和强化学习的结合[14],强化学习具备了解决连续运动控制问题的能力,在高维状态动作空间的决策任务中应用较多,典型算法有深度Q网络(Deep Q-Networks,DQN)[15]、深度确定性策略梯度算法(Deep Deterministic Policy Gradient,DDPG)[16]等。文献[17]基于深度Q网络实现了机器人精准插孔的技能学习,提高了机器人技能的适应能力,但其仅在4自由度平台完成了算法验证。文献[18]基于DDPG算法提出一种混合勘探策略,提高了算法的适应性,但其需要的训练步数较多,训练成本较高。深度强化学习提升了算法的泛化能力,但融入深度学习也使得训练过程需要输入大量数据,进而导致算法计算量较大、收敛所需步数较多,在机器人轴孔装配任务中并没有体现出明显优势。而基于强化学习的离散控制往往数据量小、训练速度较快,在轴孔装配领域也有所应用。文献[13]利用Q-learning算法寻找最大化累积奖励的状态动作策略,解决了装配对象决策过程的优化问题。文献[19]结合线性函数逼近的思想提出一种基于SARSA算法的在线调整策略,提高了装配任务中的定位精度。但是,文献[13,19]以固定的数学模型作为奖励函数,很难准确描述装配过程。总的来说,应用强化学习算法使得机器人可以通过探索学习获得操作技能,在保证装配成功率的同时提升了机器人装配操作的泛化能力,但上述算法均采用固定的数学模型建立奖励函数来表达时变、非线性的装配过程,这显然不能准确评估动作对装配过程的影响。由此,需要重点研究装配过程的奖励函数设定,正确引导学习方向。同时,由于导纳参数的离散取值只改变模型参数配置,并不影响机器人的连续运动控制,故可采用SARSA算法实现导纳参数的在线辨识,在大幅降低数据量的同时保证装配成功率和效率。
综上所述,本文采用SARSA算法在线辨识导纳参数,提高机器人装配任务中轴孔位姿不确定情况的装配成功率、效率和泛化能力。首先,分析了轴孔装配机理指导运动控制策略设计。其次,仿真分析了导纳模型各参数对位置响应的影响,确定导纳控制器参数设定。接着,结合运动控制逻辑、导纳控制和SARSA算法提出了一种变参数导纳控制策略。在算法的动作价值更新过程中,建立以插孔深度、单次调整移动量为尺度的动作评估机制,并融合资格迹函数考虑每个动作对装配过程产生的长期影响,进而提高算法学习效率。最后,在真实机器人平台上开展3组对比实验,通过比较累积奖励、调整步数和插孔深度3种指标,验证了变参数导纳控制策略在装配效率、成功率和泛化能力上的提升。
1 轴孔装配机理分析
轴孔装配过程一般分为孔外接近阶段、孔边搜孔阶段和孔内调整阶段[2]。
(1)孔外接近阶段是控制轴零件完成相对于装配孔位置的初步定位,将轴零件移动到装配孔边缘。
(2)孔边搜孔阶段是按照预设轨迹探索,通过传感器获取装配孔位置,将轴零件移动到可装配域[2],即轴零件的侧向位移小于装配孔与轴零件半径之差。
(3)孔内调整阶段是指从可装配域任意位置开始直到插孔成功的过程,该阶段直接影响装配质量。
孔内调整阶段是整个装配过程的核心,而圆轴类零部件又是最常见的装配操作对象,因此本文将圆轴类零部件在孔内调整阶段作为轴孔装配任务的研究重点。为了合理设计控制策略、改善装配效果,对轴孔装配过程进行机理分析,研究轴孔装配过程的接触状态和运动控制逻辑。轴孔装配过程根据接触状态可分为孔外未接触、孔内未接触、单点接触和两点接触,如图1所示。为了更好地描述轴零件运动,建立坐标系O—XYZ如图1a,其Z轴为装配孔的轴向向上,X轴为装配孔的径向向右。从运动控制逻辑来看,装配过程中轴零件的调整动作包括沿X、Y、Z轴的移动和绕X、Y轴的转动。在孔外未接触和孔内未接触状态应控制轴零件沿Z轴负方向移动,若处于单点接触和两点接触状态应控制轴零件顺从环境作用力沿X、Y、Z轴移动或绕X、Y轴转动。
随着装配深度的变化,适当选取轴零件的移动步长和转动角度有利于提高装配成功率和效率,即随着插孔深度增加,轴偏角减小,移动步长和转动角度也应减小。在如图2所示两点接触的极限装配状态,lmax表示轴零件沿X、Y轴的最大移动步长;θ为轴零件与装配孔中心线的夹角,表示轴偏角,并作为轴零件沿X、Y轴的最大转动角度;d为轴零件直径;D为装配孔直径;h>0,表示插孔深度;Δmnk和Δkef是直角三角形,且有θ=θ1=θ2。对图2所示装配状态进行几何分析,可得到移动步长、轴偏角和插孔深度之间的关系:
(1)
进一步整理可得:
2Dh2lmax=d2h2-D2h2。
(2)
式中:轴零件直径d和装配孔直径D在轴孔装配任务中是固定值,故沿X、Y轴的最大移动步长lmax只与插孔深度h有关,据此可设置轴零件的最大移动步长。由式(1)还可整理得到:
(3)
式中轴偏角θ与lmax和h相关,据此可设置沿X、Y轴的最大转动角度。
2 柔顺控制算法
2.1 导纳模型
导纳模型用来建立机器人控制量与环境作用力之间的动态关系。为便于分析理解,本文以一维导纳模型展开描述,可用相似方法延伸到多维度导纳控制器。如图3所示的一维导纳模型中,Md、Bd和Kd分别表示机器人的虚拟惯性、虚拟阻尼和虚拟刚度,ΔF为环境作用力相对于期望力的偏差,ΔX为机器人当前时刻和上一时刻的位姿偏差。由图3可建立导纳控制器为:
(4)
为进一步实现计算机控制并保证离散化精度,本文采用双线性变换法将式(4)离散化为:
(5)
式中:A=4Md+2BdT+KdT2,B=-8Md+2KdT2,C=4Md-2BdT+KdT2,T为采样周期。由式(5)可进一步得到差分表达式为:
T2F(k-2)-BX(k-1)-CX(k-2)]。
(6)
为方便导纳控制器的分析与设计,通过仿真研究了导纳模型各参数对位置响应的影响。将阶跃力信号作为输入,分析导纳模型各参数不同取值对位置响应的影响,仿真结果如图4所示。图4a为不同惯性参数对位置响应的影响,可以看出惯性参数主要影响位置输出的响应速度和稳定性,惯性参数越大,响应速度越慢,超调量越大;图4b为不同阻尼参数对位置响应的影响,分析可知阻尼参数影响其位置输出响应速度,阻尼参数越大,响应速度越慢;图4c为不同刚度参数对位置响应的影响,可以看出刚度参数主要影响位置输出的幅值,刚度参数越小,位置输出越大。
此外,由于机器人连续运动的控制特点,需要考虑位置响应对输入信号的跟随效果。因此,将随时间变化的正弦力信号作为输入,分析导纳模型各参数不同取值对位置响应的跟随效果,仿真结果如图5所示。图5a为不同惯性参数对位置响应的影响,可以看出惯性参数越大,位置响应的周期性越差,跟随效果越差;图5b为不同阻尼参数对位置响应的影响,分析可知阻尼参数越大,位置响应的周期变化越大,跟随效果越差;图5c为不同刚度参数对位置响应的影响,可以知道不同刚度参数的位置响应具有相同周期,跟随效果较好。综上所述,惯性和阻尼参数主要影响其位置响应对输入信号的跟随效果,刚度参数不影响位置响应周期,只改变位置响应的幅值。结合阶跃输入的仿真结果可知,导纳模型在阶跃输入下响应速度越快、稳定性越好,其在正弦输入下的跟随效果就越好,导纳参数取值变化对位置响应的影响是一致的。在机器人轴孔装配任务中,需要能够控制机器人的移动量,进而更好地适应不同的装配环境。因此,为了控制导纳装配中机器人的移动量,同时使系统有较快的响应速度和较好的跟随性能,将惯性和阻尼参数取较小数值,通过改变刚度参数取值控制导纳模型输出,进而控制机器人移动量。
将带高斯噪声的正弦力信号作为输入,分析惯性参数和阻尼参数对位置响应的影响,仿真结果如图6和图7所示。图6是扰动输入下不同惯性参数取值的位置响应的影响,其中图6a为带高斯噪声的正弦力信号输入,图6b~图6d分别表示惯性参数Md=0,Md=0.0001和Md=0.01时的位置响应曲线,分析可知Md=0时位置响应噪声较大,Md=0.0001时位置响应存在一定毛刺现象,Md=0.01时位置响应噪声较低,可见惯性参数有抑制噪声输入的作用。图7是扰动输入下不同阻尼参数取值对位置响应的影响,其中图7a为带高斯噪声的正弦力信号输入,图7b~图7d分别表示阻尼参数Bd=0,Bd=0.02和Bd=0.2时的位置响应曲线,分析可知阻尼参数也可以抑制输入扰动对位置响应的影响。因此,为保证系统具备一定抗干扰能力,惯性参数和阻尼参数一般不设为0。
基于上述仿真结果可知,采用导纳模型控制机器人完成轴孔装配任务时,惯性参数Md和阻尼参数Bd应取较小值,进而保证机器人系统拥有快速的响应能力、一定的抗干扰能力和良好的跟随效果。同时,由图4a中Md=0.0001和图4b中Bd=0.02的位置响应曲线可以看出,两种情况的位置响应曲线与输入的阶跃力信号几乎重合,继续减小Md和Bd对系统的控制效果影响很小。综上所述,在基于导纳控制的真实装配任务中惯性参数和阻尼参数选择固定值,其中Md=0.0001,Bd=0.02。而刚度参数Kd影响位置响应的幅值,调节Kd取值能明显控制机器人移动步长。因此,可以通过自适应策略改变刚度参数Kd,在线调整机器人移动步长,进而提高机器人在不确定环境中的装配效果。
2.2 基于SARSA算法的导纳参数辨识
在SARSA算法中,以S={s1,…,sm}表示状态集合,A={a1,…,an}表示动作集合,则在任意时刻t,智能体感知环境状态st∈S,根据动作策略选择并执行动作at∈A到达新状态st+1∈S,同时获得瞬时奖励rt+1,然后基于动作价值函数Qt(st,at)计算动作价值Q-value,进而更新动作价值表Q-table,不断重复上述步骤直到调整策略收敛。本文采用SARSA算法实现导纳模型刚度参数的在线辨识,探索不同状态下刚度参数的选取策略,有望提高装配成功率,减少装配步数,其控制策略如图8所示。
在轴孔装配过程中,不同插孔深度下智能体所处的状态和允许的调整动作存在极大区别,即环境状态和调整动作随插孔深度的变化而变化。因此,本文采用插孔深度h表征装配过程的环境状态st,并以st作为SARSA算法的状态输入。在导纳控制器中,导纳模型输出的调整动作是机器人的位姿增量,其大小与导纳模型参数取值高度相关。而导纳模型的刚度参数作为在线辨识的对象,则成为SARSA算法的动作输出。在圆轴类零部件的装配任务中,机器人运动共需要5个自由度,对应导纳控制器的刚度参数为5个维度。由于不同维度的虚拟刚度在取值上存在一定比例关系,SARSA算法的输出动作at可设为一个标量,其余维度的虚拟刚度通过比例关系映射得到。SARSA算法的动作选取采用ε-greed策略,可表述为:
式中:ε为概率因子,0<ε<1;|A|为动作数量。在任意状态st下,智能体根据均匀概率或动作价值最大原则选择动作。考虑智能体执行输出动作对装配过程产生的长期影响时,选定并执行的动作产生正向影响,其余动作产生负向影响。因此,本文采用资格迹函数实现智能体的部分记忆功能,区分不同动作对装配过程的影响,提高算法学习效率。资格迹函数可表述为:
(8)
式中:et(s,a)表示t时刻所有状态-动作对的资格迹,λ为资格迹退化参数,ω为正向权值,st为环境状态,at为所选择动作。当环境状态st与输出动作at选定后,对所有状态—动作对的资格迹根据式(8)进行更新,即t时刻环境状态st与输出动作at所对应的资格迹增加相应权值,其余按比例衰减。结合资格迹函数,状态动作值更新方式为:
(9)
式中:Qt(s,a)为t时刻所有状态—动作对的动作价值Q-value,可用Q-table表示,δt为时间差分误差,α为学习率,rt为瞬时奖励,γ为折扣因子,st+1为t+1时刻的环境状态,at+1为t+1时刻所选择动作。在任意状态下,智能体选择并执行一个动作就更新一次Q-table,进而学习获得使整个装配过程的累计奖励趋于最大值时不同状态下刚度参数的最佳选取策略。因此,奖励函数可根据装配过程中期望得到优化的性能指标进行定义。对于轴孔装配任务,期望调整步数steps越少越好,且真实接触力F′始终在安全范围内,故本文构建式(10)所示的瞬时奖励函数优化上述评价指标,瞬时奖励函数如下:
rt=Rt+Rp。
(10)
式中:Rt为负值,表示单次调整动作的过程奖励;Rp为负值,表示因调整步数steps过多或接触力F′过大导致装配失败的定值惩罚。在轴孔装配任务中,过程奖励Rt与插孔深度h、单次调整移动量Δh高度相关。但常规奖励函数评估装配动作时未考虑单次调整移动量和非线性情况,往往不能充分表达真实的装配过程。因此,本文基于插孔深度h、单次调整移动量Δh建立过程奖励表,通过建立的过程奖励机制评估每一步的装配动作,在同一深度h处,Δh越大则Rt越大,Δh相同时,上一时刻所处深度h越大则Rt越大。基于建立的瞬时奖励函数rt,智能体在线学习并优化评价指标,机器人的单次调整移动量Δh往增大方向变化,所需调整步数相应减少,过程奖励和瞬时奖励增大。当智能体选择并执行一个动作后,根据过程奖励机制获得过程奖励Rt,接着计算瞬时奖励rt,进而根据动作价值函数更新Q-table,学习寻找使式(11)趋于最大的刚度参数调整策略,其实际就是期望轴孔装配过程获得最大累积奖励Reward,
(11)
为便于理解SARSA算法的在线优化过程,给出刚度参数在线辨识的单次训练过程,如伪码1所示。
伪码1基于SARSA算法辨识刚度参数的单次训练过程。
1:输入:环境状态s
2:初始化:重力补偿、导纳控制器、离散动作集A、Q-table和SARSA算法相关参数设置
3:t←0, et(s,a)←0, Qt(s,a)←10
4:For t=0,1,2,…do
5: 获取环境状态st
6: at←根据式(7)所示动作选取策略完成动作选取
7: 获取瞬时奖励rt,计算δt
8: 根据式(9)更新Q-table
9: If s=siand a=aithen
10: et+1(s,a)←λet(s,a)+ω
11: else
12: et+1(s,a)←λet(s,a)
13: end if
14: t←t+1
15: Output:动作输出Bd
16:end for
3 实验与分析
3.1 实验设计
为验证基于SARSA算法的变刚度导纳控制策略有效性,开展了3组轴孔装配实验,实验1是基于位置控制完成装配任务,根据实验结果分析位置控制特点;实验2对比基于SARSA算法的变刚度导纳控制和5组定参数导纳控制的装配效果,分析变刚度导纳控制策略的优势和有效性;实验3是在不同初始位姿下进行装配测试,验证变刚度导纳控制策略的泛化能力。在轴孔装配过程中,以调整步数Steps、累积奖励Reward和插孔深度Depth为评估装配过程的指标,Steps值越小,表示插孔成功所需的调整步数越少,装配效率越高;Reward值越大,表示装配过程的累积奖励越高、装配效益越好;Depth值达到目标深度的次数越多,表示装配成功率越高。机器人轴孔装配平台如图9所示,实验采用UR10工业机器人作为执行器;采用M4313M2B六维力传感器获取轴孔装配过程的环境作用力,并安装于机器人法兰和工件之间;轴零件直径为10.0 mm,长度为35.0 mm,采用螺纹方式固定于六维力传感器的受力面;装配孔为3D打印制作,孔的直径为13 mm。
轴孔装配开始前,轴零件处于可装配域任意初始位置,接近装配孔但不与之接触,然后机器人控制轴零件相对于图9所示基坐标系O1-X1Y1Z1进行运动,完成如图10所示初始位置—调整阶段—插孔成功或失败的装配过程。由于搜孔阶段定位产生的轴偏角通常低于5度,故本文以5~10度的大角度轴偏角来验证算法的柔顺装配能力。当装配过程的插入深度不小于30 mm,力值小于2 N时认定插孔成功,而调整步数或接触力超出限制则认定插孔失败。出现插孔成功或失败时退出当前动作,回到初始位置开始下一回合装配过程。
由于强化学习算法在初始训练阶段有较强的随机探索性,装配过程中会出现危险的探索性动作,容易导致装配失败或工件损坏。因此,实验中应对机器人的移动速度和加速度施加限制。此外,从装配作业的安全性考虑,应设置装配过程的接触力阈值,并结合轴孔装配机理分析设置各轴向最大移动步长和转动角度,具体参数如表1所示。
表1 机器人实验参数
3.2 实验结果与分析
3.2.1 基于位置控制的轴孔装配实验
为方便对比导纳控制的装配效果,采用单变量法设计基于位置控制的轴孔装配实验,将沿X1轴的移动量设为SARSA算法的动作输出,其余轴向的移动和旋转均以定参数导纳控制实现。根据实验现象设置环境状态集合S={5,10,15,22,26,28,30},结合轴孔装配机理分析设置动作集合A1={-0.001,-0.0005,0,0.0005,0.001},根据导纳模型仿真结果设置Md=0.0001,Bd=0.02,Kd=1,控制器其余参数如表2所示。
表2 控制器模型参数
基于位置控制的轴孔装配实验如图11所示,Reward和Depth曲线出现剧烈振荡,没有收敛趋势,且装配过程成功率极低。观察Steps曲线,此时的轴孔装配过程往往是试探1~3步就会力值超限触发失败退出插孔动作,这是由于SARSA算法的动作输出随机性较强,机器人执行了不合适的位置增量运动,导致移动中力值超限引发插孔失败。基于位置控制直接进行增量运动对于装配过程接触力的敏感性强、顺从性差,较小的增量运动也可能出现非常大的接触力,进而导致插孔失败。综上所述,基于位置控制的装配过程随机性较强,对接触力的敏感性强、顺应性差,难以直接应用于轴孔装配任务。
3.2.2 基于导纳控制的柔顺轴孔装配实验
为分析不同刚度取值对导纳装配过程的影响,分别获取Kd取0.1、1、1.5、2、4时累积奖励Reward、单次训练调整步数Steps和插孔深度Depth数值绘制曲线。基于定参数导纳控制的轴孔装配过程如图12所示图中。观察Kd=0.1时导纳装配过程,Reward和Depth曲线出现大幅度凹陷,表示该取值下装配失败次数多,装配成功率低,结合Steps曲线可知,此时若装配成功则调整步数Steps较少,具有较高的装配效率。综上所述,由于Kd=0.1时装配成功率低且不稳定,难以直接用于轴孔装配任务。观察Kd分别取1、1.5、2、4的Reward和Steps曲线,随着Kd取值减小,累积奖励变大,装配所需调整步数明显降低,结合Depth曲线可知,四组取值下的导纳装配过程稳定性较好,成功率均为100%。Kd=1时,调整步数为9步,累积奖励稳定在-3.9左右;Kd=1.5时,调整步数为12步,累积奖励稳定在-6.8左右;Kd=2时,调整步数为18步,累积奖励稳定在-12左右;Kd=4时,调整步数为38步,累积奖励稳定在-33左右。从实验结果来看,定参数导纳控制在合适取值时能够较好地完成柔顺装配任务,但合适的参数值并不容易获取,往往需要付出大量的时间和试错成本,且定参数导纳控制在不同装配任务中效果差异大,适用性较差。
基于SARSA算法的变刚度轴孔装配实验中,根据轴孔装配机理分析和导纳参数仿真结果得到SARSA算法的动作集合A={0.1,1,1.5,2,4},控制器中除虚拟刚度外的其余参数与基于位置控制的装配实验一致。基于SARSA算法的刚度在线辨识过程如图13所示,随着训练次数的增加,累积奖励Reward、调整步数Steps和插孔深度Depth曲线趋于稳定。从Reward和Steps曲线可以看出,基于SARSA算法的变刚度控制策略在第6回合开始有收敛的趋势,具备较快的收敛速度,提高了对装配环境的适应能力。训练过程仅在第14和22回合出现力值超限导致插孔失败,这是由于训练前期较高随机性导致。插孔失败后该状态下策略调整更新,并开始下一回合训练,从Reward、Steps和Depth曲线均逐渐稳定在一个值附近可知,基于SARSA算法的变刚度控制策略趋于收敛。策略收敛后,调整步数稳定在7~8步,累积奖励稳定在-2.8附近,装配成功率为100%。对比5组定参数导纳控制装配过程,收敛后的变刚度控制策略在保证100%成功率的同时有最高的装配效率,较Kd=0.1时定刚度导纳控制的装配成功率和稳定性有较大提升,与Kd取1、1.5、2、4时的装配效率也有明显提升。因此,实验结果表明,基于SARSA算法的变刚度导纳控制策略可以有效提高机器人轴孔装配任务的成功率和效率。
3.2.3 不同初始位姿的装配测试
为了验证基于SARSA算法的变刚度控制策略的泛化能力,采用收敛后的策略在3组不同的初始位姿开展了20次插孔测试。由于搜孔阶段定位时轴偏角通常低于5度,孔截面的位置误差β低于60度。因此,3组测试初始位姿的轴偏角设为5度、7.5度和10度,对应如图14所示β角度内3个位置,测试结果如图15所示。观察Reward和Steps曲线,3组测试结果基本一致,累积奖励稳定在-5左右,调整步数稳定在7~8步,装配效率高,结合Depth曲线可知,3组测试的装配成功率均为100%,算法稳定性较好。测试结果表明所提算法具备一定的泛化能力。
4 结束语
针对机器人装配任务中轴孔位姿不确定问题,本文提出了一种基于SARSA算法的变导纳控制策略。首先,分析了轴孔装配机理,指导运动控制策略。其次,仿真分析了不同导纳参数的位置响应,确定控制器参数。接着,将建立的装配动作评估机制和资格迹函数引入SARSA学习过程提高所提算法的效果和效率。最后,在机器人平台开展了3组实验。基于位置控制的装配实验中,训练结果出现剧烈振荡,证明了柔顺控制的必要性。定参数和变参数导纳装配的对比实验中,变参数导纳控制算法收敛后装配成功率为100%,调整步数仅为7~8步,相较定参数导纳控制提升明显,验证了所提变参数导纳控制策略的优势。不同初始位姿下的装配实验结果一致,验证了所提算法的泛化能力。上述结果表明,所提算法有望解决机器人装配任务中的轴孔位姿不确定问题。目前,本文仅考虑了力信息,而面向更复杂的装配任务存在局限性,后续可以引入视觉等多模态信息进一步提高算法的稳定性和泛化能力。