黄玉林,陈乃建,范 振,张来伟
(济南大学机械工程学院,山东济南250022)
随着现代社会的发展和科技水平的不断提升,越来越多的工业机器人投入到工业生产中,工业机器人的设计和应用越来越成熟[1]。目前传统机器人的示教以示教器示教和编程示教为主。示教器示教效率低,操作繁琐,并且不适用于复杂的曲线或曲面轨迹;编程示教对编程者编程能力要求较高,并且脱离本体,难以保证精度。在此背景下,柔顺示教因操作灵活、简单且效率高而成为研究热点。柔顺示教是指机器人顺应操作者操作力的运动轨迹,能够记录并再现作业轨迹。近几年,国内外多家机器人厂家,如ABB、KUKA、新松等,相继推出能够实现柔顺示教的机器人。
机器人的柔顺示教分为主动柔顺性和被动柔顺性。机器人凭借一些辅助的柔顺机构,在与环境接触时能够对外部作用力产生自然顺从,称为被动柔顺控制; 机器人利用力的反馈信息,采用一定的控制策略主动控制作用力,称为主动柔顺控制[2]。被动柔顺机构通常包括弹簧、阻尼等柔性装置; 主动柔顺控制按对作用力的获取的方式的不同又分为基于力和力矩传感器的柔顺示教和免力矩传感器的柔顺示教。
文献[3-5]中通过六维力/力矩传感器或三维力/力矩传感器实现对外界操作力的测量,同时将外力信号转换成机器人的位置调整量,实现了对机器人末端的柔顺示教。刘昆等[6]等通过安装在机座的力传感器,检测关节扭矩的变化量,通过机器人动力学及运动学方程,完成力与位置的转换,实现了基于关节位置变化的柔顺示教。相对于末端六维力传感器,关节扭矩传感器可接触范围广,安全性高,但是传感器成本高、系统高度复杂等问题限制了此类基于传感器的机器人柔顺示教的研究及应用。
免力矩传感器的柔顺示教通过控制策略实现对力的非精确测量,目前已有的方法包括阻抗控制、零力控制(force-free control)、自适应控制等。Hogan[7]最早提出基于阻抗控制的机器人柔顺示教,利用弹簧的阻抗特性,设定机器人末端含有虚拟弹簧系统,通过建立机器人末端力与位置的动力学模型,实现对力和位置混合控制下的柔顺示教;文献[8-9]中在阻抗控制的基础上分别研究了不同阻抗系数和不同摩擦模型对柔顺控制的影响,提出基于改进的位置阻抗控制的主动柔顺示教和变系数摩擦模型的阻抗控制,对柔顺示教功能具有一定的改善。Goto[10]提出柔顺示教机器人的零力控制概念,即机器人在柔顺示教运动过程中不受重力、摩擦力、离心力的影响,完全由操作者的操作力进行控制。游有鹏等[11]等在零力控制基础上,提出重力、摩擦力的自测量方案,通过自制的直流伺服驱动的二连杆机器人,完成对重力、摩擦力的补偿,实现柔顺示教,但是未对空间多自由度机器人进行验证。许家忠等[12]设计自适应控制器,实现了机器人参考位置与力跟踪之间的转换,验证了自适应控制器对于柔顺力跟踪的准确性。
本文中基于已有的零力控制策略,针对常规六自由度机器人,提出基于人机协作的柔顺示教及再现研究方法,将人机协作与柔顺示教相结合,从而提高示教过程中人机协作性,降低成本,增强对作用力的控制精度,并实现高精度的轨迹跟踪。
基于人机协作的柔顺示教增强了人机协作性,由人和驱动电机共同承担机器人运动过程中产生的各项力和力矩。机器人正常运动时动力学模型包括惯性力项、离心力和科氏力、重力项、摩擦力项,即
(1)
由机器人动力学模型式(1)可知,惯性力项与加速度有关,离心力和科氏力项与速度有关。由于柔顺示教过程以由人施加在机器人末端的操作力为主导,示教速度较小,加速度较小,因此产生的惯性力项、离心力和科氏力项较小。
本文中提出的基于人机协作的柔顺示教原理如图1所示,电机输出力矩实时补偿各关节不同位姿时较大的重力项和库伦摩擦力项;较小的惯性力、离心力和科氏力及黏滞摩擦力由操作者施加的操作力进行克服,电机输出力矩和操作者施加的操作力共同作用于六自由度机器人,实现柔顺示教。
关节角度、角速度; Mb—电机输出力矩; Fh—操作者施加的操作力。图1 基于人机协作的柔顺示教原理
在人机协作方案中,原本完全由电机承担的机器人运动过程中的各项力由操作者施加的操作力Fh和电机输出力矩Mb共同承担。结合原机器人动力学公式(1),人机协作状态下的机器人力学模型为
(2)
操作者施加的操作力Fh包括与速度、加速度相关的惯性力、离心力和科氏力项及黏滞摩擦力等力矩较小的项;电机输出力矩Mb包括重力矩、库伦摩擦力矩。在以人为主导的操作力作用下,与电机输出力矩相配合,人机协作,共同实现柔顺示教。为了确定准确的Mb、Fh,需要对常规六自由度机器人的重力、摩擦力进行建模分析并计算。
对于常规六自由度机器人,当底座水平放置时,机器人的自重以及腰部产生的弯矩近似为0,因此对于第1个关节,仅考虑进行库伦摩擦力的补偿;对于第4、6个关节,2个关节在运动时只产生绕自身轴线的回转运动,运行过程中质心位置变化较小,可忽略2个关节运动产生的重力矩;因此,只考虑库伦摩擦力对第4、6个关节的影响。而第2、3、5个关节进行俯仰运动,质心位置随机器人关节的位姿而变化,同时相邻2个关节之间会产生重力耦合作用,因此需对该3个关节进行重力补偿和摩擦力补偿。最终对第1、4、6个关节只补偿库伦摩擦力矩,对第2、3、5个关节分析不同位姿时的重力矩影响和库伦摩擦力影响。
首先建立该六自由度机器人连杆坐标系,进行力矩分析。机器人连杆坐标系及连杆关系如图2所示。分析建立各关节重力和位姿的数学模型。
表1所示为由机器人连杆坐标系得到的机器人的Denavit-Hartenberg(D-H)参数。根据连杆坐标系及D-H参数,通过拉格朗日法推导建立机器人重力矩模型。
拉格朗日函数L为机器人系统的动能K与位能P之差,即
L=K-P。
(3)
x、y、z—连杆坐标系的x、y、z轴; ai—连杆长度,即在连杆坐标系中沿着xi轴从zi轴到zi+1轴平移的距离,i=0,1,…,6;αi—连杆转角,即在连杆坐标系中绕着xi轴从zi轴到zi+1轴转过的角度; di—连杆偏距,即在连杆坐标系中沿着zi轴从xi-1轴到xi轴平移的距离。图2 机器人连杆坐标系及连杆关系
表1 机器人的D-H(Denavit-Hartenberg)参数
拉格朗日方程为
(4)
(5)
式中rp,ci为任意一点p在质心坐标系{ci}中的转换位置。
设机器人连杆i的质量为mi,则第i号连杆的位能为
(6)
其中g=(gx,gy,gz,1)为重力加速度项。
仅包含重力项在内的机器人总位能为
(7)
即各关节重力补偿项Gi为
(8)
第1、4、6个关节因结构特点而无需对其进行重力项补偿。仅考虑第2、3、5个关节重力矩影响。
库伦摩擦与法向载荷成正比,机器人结构确定后,法向载荷一定,即此时库伦摩擦为常数,因此包含摩擦力在内的6个关节力矩补偿模型为
(9)
式中:τi为各关节电机承担的重力与摩擦力的合力,i=1,2,…,6;fi为第i个关节的库伦摩擦力;ai为连杆长度,即在连杆坐标系中沿着xi轴从zi轴到zi+1轴平移的距离;ci=cosθi,θi为第i个关节的关节角;m34为第3、4个关节质量之和;m56为第5、6个关节质量之和;c23=cos(θ2+θ3);c235=cos(θ2+θ3+θ5);g为重力加速度。
根据式(9),在机器人柔顺示教过程中,由各关节电机承担的重力与摩擦力的合力为τi,i=1,2,…,6,当补偿了较大的重力和摩擦力后,惯性力、离心力和科氏力等较小的力矩数值项就可以由操作者承担,减小了操作者的负担。此时操作者和电机共同施加作用力,人机协作共同完成柔顺示教。各关节质量及库伦摩擦力的具体数值可由最小二乘法辨识得到。
通过人机协作方案得到机器人运动过程中的重力和摩擦力数值,控制电机实时补偿任意位姿下的重力和摩擦力,此时机器人就能平衡在任意位姿下;当操作者施加操作力作用在机器人末端时,平衡状态被打破,机器人开始运动,即操作者施加的操作力完成对机器人运动过程中较小的惯性力、离心力等的补偿,此时机器人就能顺应操作者的作用力的轨迹实现运动,即实现柔顺示教;示教完成后,当操作者撤去外力后,机器人又会稳定并平衡在示教的最后位置。可以通过Simulink软件的人机交互界面查看实时保存的机器人柔顺示教过程中的位置、角度、角加速度等变量,示教完成后,通过转换伺服驱动器控制模式,执行再现程序完成示教轨迹的再现。
示教轨迹再现时,采用电机速度模式下的基于比例积分微分(PID)控制的速度追踪,原因是PID控制是较成熟的传统的机器人控制,性能稳定。在应用PID控制的基础上,为了提高系统鲁棒性,辅助以速度前馈的控制策略,速度前馈旨在减小状态误差,提高系统响应以增加系统稳定性。基于PID控制的速度跟踪适用于完整轨迹的再现,如喷涂、焊接等作业环境中,该再现方式无需进行示教点的特征点提取及重新的轨迹规划,只需对原始示教数据进行简单的优化处理。
由于柔顺示教过程是由操作者进行的手动拖动,因此会造成轨迹示教过程中速度的不连续、突变等问题;同时电机固有特性及电流采集过程中的各种干扰,将导致采集的速度等数据信号含有噪声,无法对原始示教速度进行准确追踪。对于以上问题,目前已有学者进行了相关研究。文献[13]中针对示教轨迹形状畸变问题,提出将三维空间轨迹进行二维平面投影,进行二维平面数据处理后,再通过罗德里格旋转公式重新生成三维空间轨迹;虽然该方法很好地平滑了末端轨迹,但是数据处理量较大,占用大量内存,无法保证轨迹再现的实时性。
为了保证示教轨迹的完整性,同时提高数据处理速度,本文中选择对原始示教速度进行低通滤波处理。低通滤波是一种较常用的数据处理方式,既能消除示教再现过程中的冗余点及突变点,平滑轨迹,又能最大程度地还原示教轨迹。轨迹再现流程图如图3所示。
图3 轨迹再现流程图
机器人轨迹再现过程包含速度和位置的双闭环控制。在速度环中,将柔顺示教过程中保存的速度作为原始示教速度,将示教速度进行低通滤波处理后作为轨迹再现时的跟踪目标;将实时再现速度反馈与原始示教速度进行误差计算,并将速度误差进行比例调节,通过比例调节器进行调节控制,不断对误差进行修正;在位置环中,将示教位置与实时再现位置进行误差追踪,分别进行微分调节与比例调节,提高跟踪精度。适当选择微分系数Kd和比例系数Kp的数值,使系统既能达到较好的控制精度,同时又能生成较平滑的输出力矩。
由于目前不同厂家的机器人控制系统都仅遵循相关厂家的标准,采用封闭的控制器与编程语言,用户难以根据需求的变化对控制系统进行调整[14],因此需要搭建完全开放的机器人控制系统来验证本文中所提出的控制方法。
开放式系统平台基于个人计算机(PC)与固高系列(GTS)运动控制卡进行搭建,如图4所示。系统平台包括通用型六自由度机器人本体、工业控制计算机、GTS运动控制卡、多摩川交流电机、高创伺服驱动器等。
硬件平台采用GTS-800-PV(G)-PCI系列运动控制卡。该控制卡可实现多轴协调运动,核心由数字信号处理(DSP)和现场可编程逻辑门阵列(FPGA)组成,可以实现高性能的控制计算[15]。以GTS-800-PV(G)-PCI系列运动控制卡为核心的GTS系列运动控制器将IBM公司的PC(IBM-PC)及其兼容机作为主机,提供标准的外设部件互联标准(PCI)总线,内部自带C语言函数库、Windows动态链接库、MATLAB 2012B(或更高版本)软件实时驱动等,可实现复杂的控制功能。在硬件结构中,将工业控制计算机作为主机,通过PCI总线中插入GTS运动控制卡,通过端子板与高创伺服驱动器连接;高创伺服驱动器采用模拟电压或脉冲方式输入,采用电流环、速度环、位置环控制模式驱动电机;多轴驱动器通过菊花链RS232(串行通信标准接口之一)与上位机进行通讯。交流伺服电机具有绝对式编码器,用于检测电机实际位置,采样周期为5 ms,通过编码器反馈实时得到各关节角度信息,并将角度信息实时发送到在Simulink软件已建立的示教程序中。
PCI—外设部件互联标准。图4 实验平台系统构成
上位机软件包括用于高创伺服驱动器配置、调试的Servo Studio软件平台和用于机器人控制的MATLAB 2012B软件平台。Servo Studio软件用于选择驱动器类型、输入交流电机基本参数等。Simulink软件是MATLAB软件的一种可视化仿真工具,内部提供了动态系统建模、仿真和综合分析的集成环境,无需复杂程序的编写能力,仅利用其内部不同的模块就可搭建控制系统。
本实验中,在Simulink软件模块中调用函数及功能如下: Trapmode函数,初始化设备并设置运行模式; GetAdc函数,读取伺服电机电压值; GetVel函数,读取速度值; GetPos函数,读取关节位置值; SetDac函数,转换为模拟量输出。
在MATLAB软件中,将5个函数所编译生成的动态链接库嵌入文件m中,文件m是基于C++语言的可在MATLAB环境下运行的代码,在文件m中完成MATLAB软件与GTS运动控制卡的连接。函数调用流程如图5所示。在柔顺示教之前首先调用TrapMode、SetDac函数,分别用于设置运行模式和设置模拟量输出,柔顺示教时电机处于电流模式,轨迹再现时电机处于速度模式。电流模式和速度模式的输入量都是电压值。在柔顺示教过程中调用GetAdc、GetPos、GetVel函数,分别用于监测并在Simulink软件操作界面中反馈机器人运行过程中的电流、角度、角速度等实时变化量。示教完成后,示教文件会自动保存在MATLAB软件的工作空间,以备查看或调用。
图5 函数调用流程图
当进行示教轨迹再现时,同样通过TrapMode函数将运行模式转换为速度模式,同时运行再现程序,调用已保存的包含角度、角速度、电流在内的示教文件,程序内部首先对原始示教文件进行低通滤波处理,然后将处理后的示教数据转化为电压发送到伺服驱动器,控制电机完成轨迹的跟踪再现。
柔顺示教过程中前3个关节运动量较大,因此采集的前3个关节的角度、角速度、角加速度数据分别如图6。从图中可以看出,示教过程较流畅,表明力矩补偿较准确。
从图6中还可以看出,速度、加速度含有很强的干扰,无法直接使用,原因是电流信号干扰及数据采集滞后等因素导致噪声的影响严重,因此在示教再现过程之前需对原始角速度数据进行滤波处理,平滑轨迹。前3个关节的角速度原始图形与滤波图形如图7所示。
角速度数据进行低通滤波后,轨迹较平滑,噪声减弱,可以进行再现过程使用。示教完成后,打开再现程序,根据保存的示教信息,处理并发送示教信息,完成示教再现。示教轨迹及再现轨迹如图8所示。从图中可以看出,当柔顺示教的方向发生改变时,轨迹再现有少许误差,原因是方向改变时,速度、加速度突变导致跟踪滞后,但是整体跟踪精度较高,轨迹较流畅。
(a)第1个关节
(b)第2个关节
(c)第3个关节图6 前3个关节的角度、角速度、角加速度数据采集
图7 前3个关节的角速度原始图形与滤波图形
(a)前3个关节
(b)后3个关节图8 前3个、后3个关节的示教轨迹与再现轨迹
本文中针对机器人柔顺示教过程中动力学变化的特点,从人机协作、力矩补偿角度出发,实现了基于人机协作的机器人柔顺示教及轨迹再现,该方案关键在于重力矩和摩擦力矩的计算的准确性,通过理论分析、模型建立、实验验证,得到以下主要结论:
1)基于人机协作思想提出的机器人柔顺示教的方法,在建立重力矩和摩擦力矩模型后,控制电机输出相应电压进行补偿,进而实现柔顺示教,较传统示教更方便、灵活。
2)柔顺示教结束后,保存相应角度、角速度、角加速度等关节信息,通过比例微分控制及速度前馈控制,进行示教轨迹跟踪,完成示教再现,轨迹跟踪精度良好,满足基本作业要求。
3)将示教及再现算法在自行搭建的开放式机器人控制系统平台进行实验验证,结果表明,柔顺示教及轨迹再现效果良好,表明模型建立准确,补偿效果显著。