文献标识码: A
DOI:10.16157/j.issn.0258-7998.172276
中文引用格式: 丁伟,王宜怀,贾荣媛. 基于K64机械臂控制系统的设计与实现[J].电子技术应用,2017,43(12):36-39.
英文引用格式: Ding Wei,Wang Yihuai,Jia Rongyuan. Design and implementation of the robotic arm control system based on K64[J].Application of Electronic Technique,2017,43(12):36-39.
0 引言
机器人技术是一种融合了机械、计算机技术、电子、人工智能等众多学科于一体的先进技术[1],各国竞相在机器人的研发及生产上投入大量人力物力。我国的机器人控制技术仍然和欧美一些国家存在较大差距,机械臂也属于机器人范畴的一部分。
为了解放人类生产力,用机器取代人类做一些重复且危险的工作已成为必然。在调研了目前市面上机械臂的发展情况下,结合实际设计了一套基于K64的三自由度机械臂控制系统。该机械臂在平面上具有良好的顺从性,在竖直方面具有良好的刚性[2],配合机械臂末端携带的工具能够满足不同操作要求。经过研究比对,采用恩智浦的K64芯片作为核心控制芯片、以MQX_Lite为操作系统的控制系统能够充分利用嵌入式软硬件结合的优点,使控制系统的性能更加优越,成本更低,功能更健全,改善了传统机械臂存在的控制功能单一、生产成本高等一些问题[3]。
1 运动学基础
1.1 机械臂建模
任何涉及机械手臂的设计均要以运动学为基础。在传统的三维几何学中,使用3×1维向量的加法来进行平移计算,使用3×3矩阵的乘法进行转动计算。一般用Trans(X1,Y1,Z1)代表平移,表示在XYZ轴上分别平移X1、Y1、Z1;用Rot(Z,θ)代表绕Z轴旋转θ角,可以根据需要修改对应参数。
在进行机械臂运动学计算之前,首先将机械臂用数学表达式表示出来,这涉及到机械臂建模,通过D-H建模法建立模型参数[4],如表1。
由于Z轴是由单独电机控制,不需要其他关节的配合,所以竖直方向单独考虑。平面位置的移动则依靠两个电机的配合,机械臂的俯视图如图1所示。
结合表1,可得运动学方程为:
1.2 逆运动学
逆运动学指在已知机械臂末端的执行器位姿,求解各个关节的角度问题。
求解逆运动学方程时,面临最优解和唯一解问题。在图1中,机械臂末端的目标点B(x,y),此时有两种情况与之对应,选择最小的旋转角度达到该目标位置,才能解决最优解和唯一解问题。
求操作臂的反解有两种方法:封闭解法和数值解法。选择封闭解可以准确求解出对应的角度变化。对于封闭解法,有两种途径:代数解和几何解。考虑到机械的结构以及运动学方程,采用几何法。
如图1所示的平面机械臂,利用平面几何关系求运行学反解,在世界坐标系中,已知机械臂末端的坐标点B的坐标值,利用余弦定理和反三角函数,求θ1和θ2的角度值。
2 控制系统总体设计及工作原理
该系统主要由上位机控制软件、K64核心控制电路和机械关节等部分组成。其中,串口作为上位机和K64之间的主要通信方式,在上位机采用一般的串口调试工具;微控制器部分以恩智浦公司K64为核心,由通信模块、电机驱动模块、传感器模块、电源模块、指示灯模块组成。系统整体结构框图如图2所示。
系统将整体工作流程分模块进行,首先由操作人员在上位机软件输入指令,通过串口通信模块将TTL信号转化成单片机识别的RS232信号,紧接着由单片机对接收到的信号进行处理,同时融入实时操作系统MQX_Lite,分别执行相对应的任务,例如电机控制、指示灯变化等。同时,单片机也通过中断方式实时检测着传感器,将信息反馈给用户,做到实时监控。
2.1 系统硬件设计
机械臂的主要应用目标是工业控制,而可靠性和抗干扰能力是衡量工业控制中电气设备性能的关键指标,因此在设计内部电路时,采用了抗干扰技术,其中包括光耦隔离电路。系统采用的硬件是具有极高性能的元件,其中包括高速光耦6N138、三极管S8050等[5]。下面着重介绍电源模块和电机控制模块。
2.1.1 电源模块
由于硬件系统中涉及到不同的外设,各个外设工作电压又各不相同,电源模块需要满足统一供电,需要设计电源转化模块,满足要求。本系统中采用常见的24 V直流电源供电,通过LM2596-ADJ电压调节器的调节,输出电压依据公式V_out=V_ref(1+R1/R2)得出,通过改变R1、R2的值调整需要的输出电压。经过分析,系统需要电压3.3 V、5 V、12 V、24 V、36 V几种电压值供不同部分使用。电源模块的电路图如图3所示。
2.1.2 电机控制模块
机械臂的平稳正常工作,离不开电机的驱动。作为常见的工业控制方式之一,电机性能的稳定对整个系统具有至关重要的作用。为了排除电机工作时的反向电流干扰,设计了兼具方向和PWM脉冲控制的电路,如图4所示。
图4左侧两个输入分别控制着电机的转速和方向,由于电机运行过程中会对MCU造成反向干扰,因此需要光电隔离器,光耦的型号为6N138,三极管型号为S8050。电路实现电气隔离,增强了系统的稳定性,排除了干扰。
2.2 系统软件设计
在机械臂控制系统中,软件部分主要包括PC程序和主控芯片程序,PC端主要负责与操作人员进行实时交互,采用一般的串口调试工具即可。以K64作为主控芯片,该芯片的主频达到120 MHz,具有1 MB闪存、256 KB的RAM,这些数据足以说明其强大的处理能力,充分满足系统的数据处理要求。系统软件业务流程图如图5所示。
将MQX_Lite实时操作系统植入到芯片内,实现了任务的调度,提高了系统实时性,另外,采用“多任务+中断”编程设计思想,将复杂的工作按照功能进行任务划分,主要分为主任务、指示灯任务、串口任务、电机任务等;另外一条主线则是中断、实时监控外部事件、保证系统的稳定执行。
2.2.1 多任务体系
在引导程序中,首先加载主任务task_main,在主任务中,完成了小灯模块、串口模块、PWM功能、输入捕捉、电机控制的初始化,并且使能GPIO、输入捕捉等中断。
在主任务完成相关模块的初始化,并且开了总中断以后,主任务就进入了阻塞态,操作系统就开始进行任务的调度[6]。小灯任务是一直进行,通过小灯的闪烁情况,可以判断出整个系统是否在运行,确保程序没有跑飞。
机械臂控制系统的核心部分是串口任务和电机任务,当机械臂工作之前,从极限位置[7]运动到工作位置的起始点。通过串口接收数据,将数据解析,提取相关指令和数据分别赋值全局变量,置事件位,电机任务等待到事件位,通过调用cal_degree()函数,计算出各个关节的角度,赋值全局变量,供其他任务中使用,确定相对应的关节需要的脉冲数,启动电机。
2.2.2 中断处理
将输入捕捉引脚与PWM脉冲输出脚连接,当捕捉到的脉冲数达到了MOTOR1_COUNT值,停止电机,并且置完成事件位,通过串口给上位机发送完成的指令,等待接收下一条命令。
3 机械臂运动实验
为了验证整个系统是否能够满足工作的需要,最后进行实验。为了保证曲线连续[8],设定的路线是X轴方向每次减小5 mm,Y轴方向每次增加5 mm,设定的曲线方程为y=-x+400,由于硬件的构造,存在死限位,关节无法继续旋转。经过测量,在工作平面内X的取值范围为180~400 mm。与上位机的交互信息如图6所示。
在机械臂末端安装一支墨水笔,在图6中实时地将机械臂的一些信息反馈在串口调试工具中,最后输入指令为OVER时,系统停止运行。实验阶段,将一张白纸固定在操作面上,当整个实验停止运行之后,对所画的曲线进行分析,非常接近于一条直线,能满足设计要求。
4 结论
本文研究的机械臂控制系统以K64作为核心芯片,以MQX_Lite为操作系统,从原理到软硬件整体设计上介绍了整个系统的研发流程。此系统用一块核心控制芯片,通过与上位机的交互,控制多路电机的协同运行,完成操作人员指定的功能。经过实验,该控制系统在整体成本低廉的情况下,依然能够平稳运行并且满足整体需求。该机械臂控制系统可以作为一个平台,满足不同功能的需要,改善了传统的机械臂单一功能不足的缺点,降低了成本。
参考文献
[1] 王田苗,陶永.我国工业机器人技术现状与产业化发展战略[J].机械工程学报,2014,50(9):1-13.
[2] GUO R J,ZHAO J S.Topological principle of strengthened connecting frames in the stretchable arm of an industry coating robot[J].Mechanism & Machine Theory,2017,114:38-59.
[3] 李海标,甘镇钊,杨硕.基于ARM9的机械手控制系统的设计[J].测控技术,2015,34(8):82-85.
[4] 郭丙华,胡跃明.三连杆移动机械臂模型与运动规划[J].控制理论与应用,2005,22(6):965-968.
[5] 司萧俊,王宜怀,白聪.基于K60的GCPLC系统的设计与实现[J].电子技术应用,2017,43(2):47-50.
[6] 王宜怀.嵌入式系统原理与实践:ARM Cortex-M4 Kinetis微控制器[M].北京:电子工业出版社,2012.
[7] SU K L,LI B Y,GUO J H,et al.Motion control of a robot arm[J].Applied Mechanics & Materials,2013,479-480:768-772.
[8] 王宪,王伟,张方生,等.基于嵌入式系统的机器人关节空间轨迹规划[J].传感器与微系统,2011,30(10):19-21.
作者信息:
丁 伟,王宜怀,贾荣媛
(苏州大学 计算机科学与技术学院,江苏 苏州215000)