王 剑,李成刚,岳云双,韩 宇,韩林昌,伏子豪
(南京航空航天大学机电学院,江苏 南京 210016)
随着机器人技术的不断发展,机器人在现代工业生产中扮演着越来越重要的角色[1]。机器人示教是机器人投入工业生产前的重要步骤,对于大部分工业机器人而言,使用示教器进行示教操作是最普遍的示教方式。但这一示教方式过程烦琐、效率低下,对操作者的技能水平要求高[2],若能直接拖动机器人进行示教,则可以极大地提升效率、简化操作,也能降低对操作者的要求。
机器人零力控制技术使直接拖动示教这一设想成为现实,零力控制的目标是实现操作者可以不用克服机器人的重力和摩擦力,仅以较小的外力就能轻松地控制机器人的关节位置[3],其核心原理是电机实时补偿所需要的力矩,用以克服机器人拖动过程中的重力和摩擦力[4]。当机器人处于零力控制状态时,操作者就可以对机器人进行直接拖动,完成示教操作。
近年来,国内外学者针对零力控制开展了广泛的研究,并提出了许多理论方案,应用于不同的需求场景。游有鹏等[5]参考了Goto等[6]的零力控制方法提出了基于力矩控制的零力控制拖动方法,针对摩擦力模型和重力模型难以精确建模的问题,还提出了自测量的计算方案。Tungpataratanawong等[7]基于Hogan[8]的理论提出了无力矩传感器的零力控制方案,但是由于所设计的观测器复杂度高,且对动力学模型精度的要求高,该方案难以应用于实际场景之中。机器人零力控制更多时候采用基于传感器信号反馈的方式实现,通过在机器人末端安装六维力传感器可以直接采集操作人员作用在末端的外力,实现笛卡尔空间下的零力控制,这一方法实现原理相对简单。Lee等[9]利用2个六维力传感器分别测量操作人员与机械臂末端的接触力和工件与机器人末端的接触力,实现工件去毛刺环境下的拖动示教任务。虽然基于六维力传感器的零力控制实现原理相对简单,但在实际应用中对于末端接触力的稳定性有较高要求,而且还需要在机器人运动过程中不断进行逆运动学求解,计算量大。同时,由于传感器安装在末端,导致只能在笛卡尔空间下对末端进行拖动,无法实现任意关节的拖动。
针对上述问题,本文提出了一种基于关节力矩反馈的零力控制方法,利用关节力矩传感器反馈的力矩信息可实现关节空间下的零力控制,进而实现对机械臂任意部位的拖动。同时,区别于一般的基于力矩的零力控制方法,本方法采用阻抗控制框架,充分利用阻抗控制鲁棒性强的优点,无需获取精确的动力学参数,通过设置较低的刚度增益,在使用设计参数的条件下便能达到良好的零力控制效果。为了验证该方法的可行性,利用实验室自行设计搭建的机器人平台进行了拖动实验。
机器人零力控制实现的前提是建立其动力学模型,本文所描述的机器人是应用于工业生产的机械臂。在与外部环境接触时,其关节空间下的动力学方程为
(1)
为了实现良好的零力控制效果,关节处的摩擦力矩τf是不可忽略的影响因素之一。考虑到摩擦力会受到位置、速度和安装结构等因素的影响,同时为了降低控制系统的复杂度,本文选用经典的C-V模型,模型为
(2)
为了便于后续零力控制器的设计,还需要列出以下3点重要性质:
a.惯性矩阵M(q)∈Rn×n是正定对称的,即
M(q)=M(q)T,λTM(q)λ>0 ∀λ≠0∈Rn×1
(3)
(4)
c.惯性矩阵M(q)∈Rn×n的特征值始终大于0且有界,即
0<λmin≤λ(M(q))≤λmax<∞
(5)
λmin为惯性矩阵的最小特征值;λmax为最大特征值。
为了实现良好的零力控制效果,并实现对机械臂任意关节的拖动,控制系统需要满足以下要求:
a.机械臂各关节都安装力矩传感器,用以实现对任意关节外力矩的实时反馈。
b.控制器需要实时补偿机械臂的重力、摩擦力和惯性力等非接触力,满足操作者以较小的外力便可对机械臂进行拖动牵引的要求。
c.操作者将机械臂拖动至任意位置松手后,必须保证机械臂能够维持当前姿态,不受重力影响而下坠。
本文的零力控制器采用阻抗控制框架,可通过调节力和位置之间的动态关系实现对机械臂的柔顺控制,表现出类似弹簧和阻尼的性质,因此可用质量-弹簧-阻尼系统来描述,如图1所示。
图1 质量-弹簧-阻尼系统模型
在质量-弹簧-阻尼系统中,力和位置之间动力学关系为
(6)
Md、Dd和Kd分别为系统的期望惯性、阻尼和刚度系数,系数均为正定对角矩阵。qe为关节连杆期望角度和实际角度之间的差值,即
qe=q-qd
(7)
在阻抗控制中,力矩为输入量,位置为输出量,其原理框架如图2所示。
图2 阻抗控制模型
将式(6)代入式(1)中消去τext,进而推导出阻抗控制下的关节驱动力矩τimp,即
(8)
式(8)为阻抗控制律,在控制律中包含加速度信号,但实际系统中加速度信号难以获取,即使获取到,也无法忽略信号噪声的干扰,因此,在设计控制器时应避免加速度信号反馈。本文中的机器人实验平台安装有关节力矩传感器,所以可以直接引入接触力反馈,消去式中的加速度项,即
(9)
将式(9)代入式(1)可以得到最终的阻抗控制律为
(10)
由弹簧系统特性可知,当期望刚度Kd很小时,操作者仅需很小的力便可改变关节连杆的角度。当撤去外力后,根据阻抗控制律式(10),等式左侧的关节驱动力矩τimp维持在抵消机械臂重力和摩擦力的水平。由于摩擦力的阻碍作用,关节连杆便会稳定在当前位置,而不受重力影响下坠。因此,可通过在阻抗控制框架下设置低期望刚度的方式达到零力控制的效果,进而实现对机械臂的直接拖动示教。
为验证本文零力控制方法的可行性,以实验室自行设计搭建的机器人作为实验平台,设计了拖动实验。实验平台的主体包括1个二自由度机械臂,由伺服电机驱动关节运动,各关节均安装有角度编码器,可测得关节连杆角度,关节内部安装有力矩传感器(型号为M2210B,量程为±250 N·m,精度为±1.25 N·m),可测得关节所受外力矩。
下位机采用CSAPCE控制器,采样周期最小为5 ms,可下载搭建好的控制算法程序,下发指令,实现对机械臂的控制。控制器还提供配套的上位机软件,可与控制器进行通信,并实时监测反馈数据,如图3所示。
图3 二自由度机器人实验平台
为了实现良好的零力控制效果,设定合适的动力学参数是十分重要的。其中,需要特别说明的是,期望刚度Kd应设定较小的值。经实验,各关节的期望动力学参数设定如表1所示。
表1 期望动力学参数表
分别对大小臂关节进行拖动实验,拖动过程中,力矩传感器和连杆编码器实时监测并记录接触力矩和关节角度的变化情况,如图4和图5所示。
图4 大臂拖动实验
图5 小臂拖动实验
从图4和图5可以看出,当操作者对机械臂施加外力时,关节角度随即发生改变,表明实现了对机械臂的拖动。在拖动过程中,大臂所需的最大拖动力矩仅为7.3 N·m,小臂所需的最大拖动力矩仅为3.1 N·m,远小于大小臂关节自身的重量。同时,关节角度变化曲线平滑,启停波动小,表明本文提出的零力控制方法性能稳定、效果良好。
图6为末端拖动实验数据,表明该方法不仅可实现各关节的零力控制,还可实现笛卡尔空间下对机械臂末端的零力控制。
图6 末端拖动实验
本文提出一种阻抗控制框架下基于关节力矩反馈的零力控制方法,可辅助操作者对机械臂进行直接拖动示教,简化示教过程,提高示教效率。该方法通过设置低刚度增益,在无需获取精确动力学参数的条件下便可实现良好的零力控制效果。实验表明,相较于一般的零力控制方法,该方法鲁棒性强、性能稳定,并可实现对机器人任意关节的零力控制。