六自由度机械手仿真与实训平台开发
2019-11-22彭芳于楚泓杨亮黎萍邓文彬
彭芳 于楚泓 杨亮 黎萍 邓文彬
摘 要 针对目前六自由度机械手的实验项目大多采用示教编程练习和二次开发使用,实验项目与机器人技术教学内容脱节等问题,提出一种模块化结构的仿真平台和实训平台相结合的实验平台建设方案,利用MATLAB与ADAMS开发仿真平台,实现机械手的正逆运动学求解、轨迹规划、运动学和动力学仿真,开发基于ARM+FPGA架构的开放式底层控制平台,设计HMI人机交互界面,编写C语言算法程序实现机械手轨迹控制。实验平台具有层次递进、易于扩展、深入底层控制等特点。实践证明,该平台在本科教学和毕业设计中取得良好效果。
关键词 六自由度机械手;机器人技术;仿真平台;实训平台;控制系统;MATLAB
中图分类号:TP391.9 文献标识码:B
文章编号:1671-489X(2019)10-0012-04
Abstract At present, most of the experiment items of the 6-DOF manipulator are implemented by teaching-programming practice or secondary development, which is out of touch with the teaching con-tent of Robot Technology. A modular structure platform of combining simulation and training is proposed. MATLAB and ADAMS are used to develop the simulation platform which realizes the forward and reverse kinematics solution, trajectory planning, kinematics and dynamics simulation of the manipulator. An open low-level control platform based on ARM+FPGA architecture is also developed. HMI man-machine interactive interfaces are designed and the trajectory control of manipulator is realized by programming algorithm in C language. The experimental platform has the characteristics of pro-gressive hierarchy, easy extension and deep low-level control. The practice shows that the platform has achieved good results in under-graduate teaching and graduation design.Key words 6-DOF manipulator; robot technology; simulation plat-form; training platform; control system; MATLAB
1 前言
随着我国从制造大国向制造强国的迈进,工业机器人将逐步取代人力,成为生产中必不可少的自动化装备。六自由度机械手作为工业机器人的典型代表,广泛用于工业搬运、机械加工、焊接、装配、打磨抛光、喷涂等工业生产过程[1]。然而国内发展现状是,机械手的“三大”核心部件伺服电机、减速机和控制器大部分依赖进口[2],严重制约了我国机器人产业的发展,本土机器人相关人才的培养已刻不容缓。
在面向本科教育的工业机器人教学实践中,一般方法是购买成套六自由度机械手平台进行示教编程练习和二次开发使用[3-4],极大限制了学生对于机械手底层控制算法和控制方法的理解和研究。本文根据机器人技术教学目标,提出一种模块化结构的仿真平台和实训平台,采用阶梯递进式学习,一步一步引导学生从机械手的运动轨迹规划求解入手,到实际控制电路和程序开发的训练,对机器人技术进行深入剖析。
2 六自由度机械手的正逆运动学求解
机器人运动学是机器人技术的研究基础。机器人运动学就是把机器人的空间位移解析地表示为时间的函数,研究关节变量空间和末端执行器位姿之间的关系。本文以实验室的LT950六自由度机械手为例(如圖1所示),探讨机械手正逆运动学求解算法,继而在MATLAB中根据求解的结果进行空间轨迹规划。
正运动学解析 Denavit和Hartenberg提出的连杆坐标系法是机器人运动学建模的通用方法。本文采用D-H前置坐标系法,建立机械手连杆坐标如图2所示,其中d2=90 mm,
根据图2坐标系,确定各连杆的D-H参数和关节变量,得到机械手连杆参数如表1所示。
通过D-H方法,可以建立起机器人各个关节的坐标系,相邻两杆件的坐标变换关系用变换矩阵表示为:
利用式(2),若机器人结构参数已知,则当给出机械手各个运动关节的关节变量θi时,就可以确定出运动学方程中各位姿矩阵的值,从而求得机械手末端执行器的位置和姿态。
逆运动学求解 运动学逆解问题是给定机器人末端执行器需要达到的位置和姿态,求解机器人各关节的关节变量,即已知T的值,求解θi。本文采用代数法进行逆运动求解,代数法求逆解在很多机器人经典教材和文献中都有较详细的论述[5-7]。根据代数法,如果连杆末端的位姿已知,即式(2)已知,则可以采用依次左乘的方法,把关节变量分离出来,进而求解出全部关节角度。
在求机器人运动学逆解过程中,关节轴4和6重合,操作臂处于奇异形位,编程时需要进行奇异形位判别后确定θ4的值[7]。
六自由度机器人存在八组逆解,而机器人的控制需要选择其中一组作为最优解,由于机器人结构的限制,求得的逆解可能会超出关节变量范围。运动学逆解的选择并没有统一的标准,应根据具体的实际情况而定,一般情况下满足行程最短、功率最省、回避障碍和受力最好等原则要求。
本文在不考虑避障的前提下,最优解的求取算法如图3所示:首先根据关节变量范围,淘汰不在范围内的逆解;接着进行奇异点的处理;最后根据“行程最短”准则,选取一组最优解。
3 机械手仿真平台开发
MATLAB仿真平台开发 本文使用Robotics Toolbox工具箱的SerialLink()函数,创建机械手模型,编写自己的正逆解算法函数。为了实现良好的人机交互功能,开发相应的GUI界面。图4为正逆运动学测试系统。首先在文本框中输入机械手的六个关节角,通过调用正解函数进行正向运动学求解,得到机械手的当前位姿;有了机械手位姿后,可点击逆解求解调用逆解函数,求得最优关节角度值。通过多次反复测试,正逆解结果与设定值完全一致,从而验证正逆解算法的正确性。
机械手轨迹规划的一般方法是笛卡尔空间轨迹规划[8]。学生可以编写直线插补、圆弧插补、样条插补等插补程序进行轨迹规划研究,Robotics Toolbox工具箱的ctraj函数也可以实现笛卡尔空间轨迹规划。设计典型的轨迹规划交互界面如图5所示,可通过设定末端轨迹方程,进行笛卡尔空间轨迹规划。
在图5窗口输入具有代表性的空间螺旋线作为目标轨迹,螺旋线参数方程为:
式中,k=0:pi/20:3*pi。需要对式(3)中的螺旋线进行分段取点规划。机械手的初始角度值为q0=[0 -pi/2 0 0 pi/2 0],初始位姿为T0 =[1 0 0 450; 0 -1 0 -90; 0 0 -1 596; 0 0 0 1],在机械手轨迹规划中,末端姿态保持不变;接着运用逆解函数对规划出的所有末端位姿进行关节角度求取;最后根据关节角度矩阵用plot()函数绘制机械手运动轨迹。在图形输出窗口可观察到机械手运行的全部动态过程,可从仿真结果对插补算法和正逆运动学算法程序的有效性进行直观判别。
ADAMS虚拟样机开发 在PRO/E中对机械手的各个零部件进行精确的造型设计,确定底部模型、大臂模型、小臂模型、手部模型等的参数,对各模块进行组装成型。再将整体模型导入ADAMS软件,为各个零部件设置正确的传动方式、驱动方式,从而进行约束、驱动的添加。ADAMS是虚拟样机分析应用软件,用户可以运用该软件非常方便地对虚拟机械系统进行运动学和动力学分析。ADAMS还提供有与MATLAB的仿真接口,可以用Simulink实现机械手的动力学控制算法仿真,也可以直接在各个关节导入MATLAB中规划好的角度值,进行运动学仿真[9-11],如图6所示。
4 機械手实训平台开发
为了进一步加强学生对机械手实际控制的理解,本文开发了针对底层控制的开放式控制平台。机械手本体采用的是安川公司的伺服电机和伺服驱动器。从学生实践角度出发,伺服电机采用经典的位置控制方式,此时伺服驱动器的主要输入信号有PULS脉冲驱动信号、SIGN方向信号、SEN绝对值编码器使能信号、伺服电机ON信号;输出信号有绝对值编码器A、B、C相信号与旋转量串行数据。
在分析比较各种方案之后,本文采用ARM与FPGA结合的控制方式,其总体架构如图7所示。由于FPGA是并行运算,以硬件描述语言来实现,在信号发送和接收方面直接采用硬件电路实现,省去软件上的延时,速度更快、更准确。机械手控制系统主要包括以下四个部分:
第一部分是基于ARM的CortexM4系列内核F4芯片的主控模块;
第二部分是以FPGA为核心的Cyclone IV E系列的EP4CE30F23C8模块;
第三部分是接口电路部分;
第四部分是人机交互系统。
主控模块 ARM主控模块主要负责控制系统初始化、任务调度、轨迹生成算法运算、机器人正逆运动学求解、正交编码信号处理与PD控制算法、控制模块通信与人机交互系统的通信等。为了应付如此繁杂任务的处理,主控模块上运行有实时的操作系统uCOS-III,通过实时操作系统对ARM的硬件资源进行合理的分配调度,在合理的时间内完成各项任务。主控模块将处理后的数据通过FSMC并行方式发送到FPGA。
FPGA模块 FPGA设计有伺服电机驱动模块和正交编码器信号接收模块。驱动模块的任务是生成伺服电机的控制信号,该模块接收来自主控模块发来的并行数据指令,包括脉冲频率、脉冲个数、方向信号与位置完成信号等,将包含相对角度位置的旋转指令转化为PWM脉冲输出信号,再发送至接口电路模块进行信号转换与隔离,从而驱动机械手各关节运动;正交编码器信号接收模块的任务是接收伺服驱动器发出的正交编码信号,需要设计四倍频电路来准确捕捉A、B相信号,再将计数数据发送给主控模块进行角度运算。
接口电路 接口电路的主要任务是进行差分和单端信号的转换、信号电源的隔离。接口电路主要包括信号转换电路、通信电路以及隔离电路。
人机交互系统 人机交互系统主要是实现操作人员对机械手运动方式及轨迹的指定。人机交互界面的开发,选用的是辉度智能系统公司的WTH207A HMI人机界面,开发环境为WitGrid组态软件,WinCE操作系统。通过人机交互界面,能够实时观察反馈回来的机械手末端的空间坐标位置及角度值;能够采用关节点动控制对空间点进行采集,并选择插补算法,实现运动轨迹的设定,机械手能够根据画面的设定按计算好的运行轨迹运动,完成相应的动作。人机交互系统与ARM之间是通过Modbus协议进行通信,采用组态软件方式也易于学生进行界面开发。
以学生开发的运行界面为例,如图8所示,通过点动操作机械手各关节进行末端坐标值采样,两个采样点确定后,点击启动,就可以让机械手末端以设定的速度从采样点1直线运行到采样点2。
5 平台的使用和运行
学生首先在MATLAB和ADAMS下进行轨迹规划与仿真;然后在ARM中编写C语言算法程序和开发HMI人机界面,编写的机械手算法程序可以与MATLAB中的仿真结果相互印证,以确定算法的可靠性;同时,由于FPGA采用的是可编程逻辑单元阵列,学生也可以通过编程的方式改进驱动电路,训练电路设计能力。
6 结语
本文所开发的仿真与实训平台,采用阶梯递进方式,引导学生由浅入深,逐步掌握与机械手控制技术相关的原理与应用。平台采用模块化开放式结构,易于扩展和改进,可有效激发学生综合运用所学知识不断创新,为进一步的机器人控制研究打下基础,培养机械手控制系统开发人才。实验平台已应用于本科机器人技术教学与毕业设计,收到良好的效果,培养的人才受到用人单位的极大肯定。■
参考文献
[1]鄧必懋,朱涛.浅析我国工业机器人技术的产业化发展[J].机械工程与自动化,2017(2):222-224.
[2]孟明辉,周传德,陈礼彬,等.工业机器人的研发及应用综述简[J].上海交通大学学报,2016(S1):98-101.
[3]荣继民.工业机器人教学实验工作站[J].实验技术与管理,2001,18(5):17-20.
[4]李颀,强华.工业机器人实验教学平台[J].实验技术与管理,2018,35(4):166-170.
[5]Niku S B. Introduction to Robotics Analysis, Con-
trol, Applications[M].2nd Edition. Beijing, Publi-shing House of Electronics Industry,2013,3:66-70.
[6]Craig J J. Introduction to Robotics Mechanics and
Control[M].3rd Edition. Beijing, China Machine Press,
2013:83-86.
[7]熊有伦.机器人技术基础[M].武汉:华中理工大学出版社,1996.
[8]林仕高,刘晓麟,欧元贤.机械手笛卡尔空间轨迹规划研究[J].机械设计与制造,2013(3):49-52.
[9]武金艺,黄金凤,李炜,等.基于SolidWorks和ADAMS的装车机械手运动仿真[J].机床与液压,2016,44(9):52-56.
[10]林海波,王延兵,张毅.基于ADAMS机械手的动力学分析[J].制造业自动化,2012,34(22):80-83.
[11]董其维.采摘机器人机械手夹紧装置优化设计:基于Pro/E和ADAMS联合仿真[J].农机化研究,2017,39(5):
226-230.