工业机器人运动控制系统的设计与实现

2015-01-27 07:36施文龙闵华松
自动化与仪表 2015年5期
关键词:工控机运动学轨迹

施文龙,闵华松

(武汉科技大学 冶金自动化及检测技术教育部工程研究中心,武汉 430081)

工业机器人[1]广泛应用于工业领域。除机器人本体、驱动装置之外,控制系统[2]是工业机器人最重要的组成部分。工业机器人在轨迹空间中的运动,除直线、圆弧等基本的运动之外,有时需要进行比较复杂的运动。由于NURBS方法在复杂的几何造型等方面的优势,其在CAD/CAM中被广泛应用。因此,研究NURBS轨迹规划[3],采用实时性好可靠性强的NURBS插补算法,具有现实意义。利用工控机[4]的稳定性高、防潮、防尘、防振以及可扩展等优点,再以DMC-2163运动控制卡[5]为控制核心,可保证控制系统在硬件上的强劲和可靠。

目前国内已有的特定的工业机器人控制系统只能用于特定的机器人,扩展性和通用性有待提高。本文在已有6自由度工业机器人UPR100本体的基础上设计和实现的运动控制系统,不仅可精确可靠地完成对机器人的运动控制,通过修改控制系统中关于机器人的参数,可用于控制其它的6自由度机器人,极大增强了通用性。控制系统采用模块化的设计原则,提高了功能扩展性。

1 控制系统总体方案

在已有6自由度工业机器人机械本体的基础上,本文设计并实现了整套控制系统。该控制系统包含硬件和软件2部分。硬件部分为整个控制系统提供良好的物质基础,用于执行软件部分所规定的操作。软件部分作为控制系统的灵魂,需要完成包括但不仅限于以下任务:

1)机器人运动学正逆解[6];

2)机器人程序的解析与译码、轨迹规划、插补运算;

3)驱动机器人各关节运动和机器人末端相应装置的动作。

2 控制系统硬件设计

针对6自由度工业机器人,本文采用基于ARM工控机的运动控制方案。使用DMC-2163控制卡作为下位机模块。工控机通过以太网向DMC-2163发出控制命令,DMC-2163根据命令执行相应的程序发出电机控制信号。指令信号经过伺服放大器放大之后,驱动工业机器人的各个电机转动,从而使各个关节运动;机器人各个关节对应的电机编码器能够将位置信号经DMC-2163通过以太网反馈给工控机,这样机器人的状态就可以被实时地显示和监控。控制系统硬件架构如图1所示。

2.1 DMC-2163运动控制卡

Galil公司研发和生产的DMC系列控制器,能很好地满足数控设备的精度与性能需要。本文针对的是6自由度的工业机器人,选用DMC-2163运动控制器。同时使用提供的API,可以在工控机上对其进行二次开发。

图1 控制系统硬件架构Fig.1 Hardware structure of the robot control system

2.2 嵌入式ARM工控机

针对硬件系统需要的稳定、可靠和高性能等特点,系统选用嵌入式的Freescale IMX6工控机,其CPU为Cortex-A9核心处理器,主频高达1.2 GHz,最高支持到32 G的存储器。工控机上硬件资源丰富,完全满足作为机器人控制系统上位机的要求。

3 控制系统软件设计与实现

3.1 NURBS插补实现

在空间中的NURBS曲线的有理分式形式[7]可定义为

式中:Pi(i=0,1,…,n)为控制顶点;wi为对应控制顶点的权因子;Bi,k(t)为 k 次 B 样条基函数,其定义为取u0,u1,…,un+k共n+k+1个节点值组成节点向量(u0,u1,…,un+k)(一般取 u0=u1=…=uk=0,un=un+1=…=un+k=1)。令:

式中,参数 t的变化范围为[t1,t2]=[uk,un]。则 Bi,j(t)可定义为

式中,当分母为0时,定义式中的分式的值为0。

3.1.1 NURBS 插补算法

由给定的控制顶点、与控制顶点相对应的权因子以及节点矢量可唯一确定NURBS曲线。而NURBS曲线的插补,其实质在于使用一个插补周期内的步长折线段去近似地逼近NURBS曲线本身。所以NURBS插补的实现需要至少解决2个基本问题:1)密化参数,也就是把轨迹空间中的进给步长ΔL映射到参数空间,求出相应的参数增量Δu及新点的参数坐标 ui+1=ui+Δu;2)计算轨迹,也就是将得到的参数空间中的坐标值反向映射回轨迹空间,得到对应的映射点pi+1=p(ui+1),即插补轨迹的新的坐标点。

3.1.1.1 插补前的预处理

为提高NURBS曲线的插补速度、保证实时性,在插补前进行预处理以减少插补的计算量。预处理是指在插补前确定NURBS的轨迹表达式,这将通过控制顶点、对应的权因子以及节点矢量来完成。NURBS曲线是分段参数曲线,实际应用中常采用3次NURBS曲线,其每一段可表示为

式中,当参数u变化时,每段曲线的分子、分母的系数也会随着改变。

3.1.1.2 参数密化

针对参数密化问题,本文的解决思路是采用阿当姆斯算法,同时利用前、后向差分结合代替微分的方法来避免复杂的隐式方程求解和微分运算。最终,可得到新插补点的参数估计值为

3.1.1.3 轨迹计算

针对轨迹计算问题,先求得参数ui+1,再将其转换为ti+1,然后带入式(4)得到下一个插补点的位置:

通过这种参数密化和轨迹计算的方法,可在每一个插补周期内得到下一个插补点,重复这种方式直到插补结束,可得到整个NURBS曲线的插补轨迹。

在机器人的轨迹规划和插补中,给出曲线中几个关键点的机器人的位置和姿态,按照上述的基本插补算法和机器人的运动学正逆解就可得到曲线上各插补点的位置和姿态。

3.1.2 NURBS 插补算法的 Matlab 仿真

为证实本文选用[8]的插补算法的有效性,使用Matlab平台进行算法仿真。由50个控制顶点、权值为1、在0和1之间的控制节点确定的3阶NURBS曲线,Matlab仿真时的插补参数为最大进给速度fmax=18mm/min;初始进给速度 fs=0;插补周期 T=1ms;弓高误差上限hmax=1 μm;最大法向进给加速度为0.8 g; 步长误差上限 δmax=0.001; 最大加加速度 J=50000 mm/s3;加速度上限 Amax=2500 mm/s2。

仿真结果如图2和图3所示。

图2 NURBS曲线插补轨迹Fig.2 Interpolation trajectory

图3 进给速度Fig.3 Feed speed

从图2和图3可知,生成的插补点均在规划好轨迹之上,插补速度等指标都在理论允许范围之内。

3.2 ARM工控机上软件设计与实现

工业机器人运动控制系统的软件部分在ARM工控机[9]上实现。首先需要配置软件开发环境:在Freescale IMX6上面安装Linux系统的ubuntu版本,移植嵌入式Qt[10],并将DMC控制卡的Linux下的库移植到ubuntu中。

控制软件采用图形用户界面,使用QMainWindow类构建主框架,使用QWidget类、QDialog类实现各个模块的功能,各模块之间的信息交流通过Qt的信号/槽机制、全局变量、事件管理、配置文件等方式实现。控制软件系统框图如图4所示。

图4 控制系统软件框图Fig.4 Block diagram of software system

1)与下位机通讯模块。主要利用DMCComandOM()函数读取各编码器的值,获取机器人各关节转角,用于后续的正逆运动学计算和轨迹规划;另外用DMCDownloadFile()函数把运动控制指令下载到DMC-2183运动控制卡中。

2)文档管理模块。该模块可进行新建、保存文档等操作,文档中是能被DMC-2163控制卡解析的二字符指令集,用于对机器人各轴进行代码级别的测试与简单控制。

3)运动学分析模块。已知机器人各关节转动的角度,求机器人末端在空间中的位置和姿态,这称为运动学正解。若末端连杆的位置和姿态已知,反求机器人各关节转动的角度则称为运动学逆解。这是整个控制软件实现机器人正确运行的基础,同时检验机器人是否已达到目标点,以便设计人员及时发现错误。

4)人机界面模块。人机界面主要用于机器人运动状态数据的显示与更新,以及用户输入相关设置参数,使用户能实时监控机器人状态并对其进行相应控制。

5)轨迹规划模块。为机器人的作业任务中需要使用到的基本运动形式打下基础。除实现最基本的直线运动和圆弧运动插补外,还完成NURBS轨迹插补,实现自由的曲线运动。

6)示教再现模块。完成机器人复杂作业的示教模式和再现模式操作界面,示教完成之后通过再现模式界面自动重现示教动作。

7)系统设置。设置系统进入密码、机器人本体参数、机器人各轴运动的极限位置等。其中,通过设置机器人本体参数,可以使本控制系统软件用于其它的基于同样硬件架构的6自由度工业机器人,这体现了设计的控制系统的通用性。

8)状态显示模块。完成控制卡I/O状态、机器人位姿状态、作业完成进展等重要信息的显示。

3.2.1 机器人参数设置

机器人参数包括了运动学方面D-H参数、伺服驱动相关的分频比/倍频比。其中D-H参数决定了6自由度工业机器人的本体结构。分频比/倍频比决定了工控机通过DMC控制卡发送单个脉冲时对应机器人关节的转动角度。

3.2.2 机器人轨迹规划

Galil公司DMC系列运动控制器种类齐全,适合解决复杂的运动问题。DMC-2163控制器的轮廓模式使用户可在1~6轴内定义自由的位置—时间曲线,因而可非常理想地跟踪通过计算机产生的轨迹。在设计的机器人运动控制系统中,空间运动规划以及机器人的运动学正逆解将由工控机内的算法完成,通过DMC-2163的轮廓模式完成各关节的运动协调控制,空间运动轨迹的插补周期为32 ms。

流程如下:首先,将空间轨迹的参数方程建立出来,每隔32 ms算出运动轨迹的空间坐标,坐标向量表示为(x,y,z)。而机器人末端空间坐标向量经机器人运动学反解后,即可计算得到对应的各关节的关节变量。电机轴的脉冲量需由上述得到的各关节变量变换求出,这是因为DMC的各电机控制变量是通过发送一定的脉冲量来完成。当前各轴的脉冲增量通过计算得到,相应的轨迹规划文本 *.dmc记录各脉冲增量。轨迹规划流程图如图5所示。

图5 DMC上实现轨迹规划的流程Fig.5 Flow chart of trajectory planning in the DMC

然后通过调用DMC-2163提供的API函数库中的文件下载函数DownloadFile(),将上述产生的轨迹规划文本*.dmc下载到DMC中。最后,调用Command()执行文本中的命令,使机器人的末端完成由用户自己定义的轨迹。

3.2.3 机器人示教作业

机器人通过设计的控制系统完成特定的作业,采用示教和再现模式。在示教界面选择合适的坐标系,通过轴控制按钮控制机器人末端运动到位置点,再选择具体的运动指令及指令参数,使机器人末端按照直线、圆弧或其他自由形状的轨迹运动到目标点。示教模块中实现了基本的运动指令集,包括 MOVJ、MOVL、MOVC、MOVS、NURBS 等,以及包括延时、数字运算等在内的其他指令。使用机器人的运动学求解结果,得到机器人各关节需要转动的角度,发送命令给DMC控制卡,从而完成对机器人作业的操作。

3.3 软件系统运行

设计的控制软件系统各模块完成并测试成功后,融入应用程序主框架,最终完成系统的设计和实现。控制软件系统测试成功后,得到的运行效果如图6所示,系统顺利运行,达到了设计效果。

4 结语

本文针对已有UPR100机器人本体,设计和实现了其控制系统。该控制系统在硬件方面以DMC-2163控制卡和嵌入式ARM工控机为核心;在工控机的ubuntu平台下搭建Qt环境,并在此基础上设计和开发了控制软件。控制系统融入了NURBS插补算法,使得机器人的末端可在轨迹空间中完成自由曲线的轨迹。控制系统提供图形界面,操作方便,通用性高、扩展性强,具有一定的实用价值。

[1]蔡自兴.机器人学[M].北京:清华大学出版社,2000.

[2]徐达,郝琢,李华,等.弹药自动装填机器人控制系统开发平台设计[J].计算机测量与控制,2011,19(4):125-127.

[3]邱宁佳,隋振,李明哲,等.六自由度机器人空间划线轨迹规划算法[J].吉林大学学报:工学版,2013,43(5):160-166.

[4]Vernier M A,Wensing P M,Morin C E,et al.Design of a fullfeatured robot controller for use in a first-year robotics design project[C]//121st Annual American Society for Engineering Education Conference & Exposition,Indianapolis,2014.

[5]胡金义.基于GALIL运动控制器的CAD/CAM软件系统设计[D].北京:北京邮电大学,2006.

[6]孙学俭,王仙勇,董宇.焊接机器人运动学正逆解[J].北京石油化工学院学报,2011,19(1):30-34.

[7]施法中.计算机辅助几何设计与非均匀有理B样条[M].北京:高等教育出版社,2001.

[8]王强.六自由度工业机器人的运动轨迹插补算法的研究[D].浙江:浙江工业大学,2012.

[9]胡波,莫肇銮,冯兴悦,等.基于ARM开发板的机场航显工控机研究[J].中国科技信息,2014(1):137-139.

[10]陈曦,刘增强.基于Qt/Embedded嵌入式控制界面的设计[J].化工自动化及仪表,2012(9):99-100.

猜你喜欢
工控机运动学轨迹
轨迹
轨迹
基于MATLAB的6R机器人逆运动学求解分析
定制工控机在老旧线路计算机联锁设备中的应用
工业机器人在MATLAB-Robotics中的运动学分析
广州地铁3号线CC工控机电源国产化改造
轨迹
进化的轨迹(一)——进化,无尽的适应
基于双工控机模式的混合车道系统设备控制的设计与实现
基于运动学原理的LBI解模糊算法