《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于K64机械臂控制系统的设计与实现
基于K64机械臂控制系统的设计与实现
2017年电子技术应用第12期
丁 伟,王宜怀,贾荣媛
苏州大学 计算机科学与技术学院,江苏 苏州215000
摘要: 机械臂被广泛应用,其结合不同末端工具来完成特定功能。机械臂的合理使用能大大解放人力,代替人们完成一些重复枯燥或危险的工作。针对自行设计的三自由度机械臂,提出一种专用的嵌入式控制系统。该控制系统以K64为核心控制板,MQX_Lite为操作系统,通过与上位机的通信解析相关命令,计算相应关节旋转角度,多任务并发执行。通过实验验证,该系统运行平稳高效,具有很强的应用价值。
中图分类号: TP391
文献标识码: 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.
Design and implementation of the robotic arm control system based on K64
Ding Wei,Wang Yihuai,Jia Rongyuan
School of Computer and Technology,Soochow University,Suzhou 215000,China
Abstract: Robotic arm is widely used,which combines with different tools to accomplish specific functions. The rational use of robotic arms can greatly liberate manpower, replacing people to complete some repetitive and boring or dangerous work. A special embedded control system is proposed for the self-designed three-degree-of-freedom robotic arm. The control system uses K64 as the core control board, MQX_Lite for the operating system, through communication with the computer, parsing the relevant command and calculating the corresponding joint rotation angle with multi-task concurrent execution. At the same time, through the experiment, the system runs smoothly and efficiently,which has high application value.
Key words : robotic arm;MQX_Lite;motion control;embedded system

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。

qrs2-b1.gif

    由于Z轴是由单独电机控制,不需要其他关节的配合,所以竖直方向单独考虑。平面位置的移动则依靠两个电机的配合,机械臂的俯视图如图1所示。

qrs2-t1.gif

    结合表1,可得运动学方程为:

     qrs2-gs1.gif

1.2 逆运动学

    逆运动学指在已知机械臂末端的执行器位姿,求解各个关节的角度问题。

    求解逆运动学方程时,面临最优解和唯一解问题。在图1中,机械臂末端的目标点B(x,y),此时有两种情况与之对应,选择最小的旋转角度达到该目标位置,才能解决最优解和唯一解问题。

    求操作臂的反解有两种方法:封闭解法和数值解法。选择封闭解可以准确求解出对应的角度变化。对于封闭解法,有两种途径:代数解和几何解。考虑到机械的结构以及运动学方程,采用几何法。

    如图1所示的平面机械臂,利用平面几何关系求运行学反解,在世界坐标系中,已知机械臂末端的坐标点B的坐标值,利用余弦定理和反三角函数,求θ1和θ2的角度值。

qrs2-gs2.gif

2 控制系统总体设计及工作原理

    该系统主要由上位机控制软件、K64核心控制电路和机械关节等部分组成。其中,串口作为上位机和K64之间的主要通信方式,在上位机采用一般的串口调试工具;微控制器部分以恩智浦公司K64为核心,由通信模块、电机驱动模块、传感器模块、电源模块、指示灯模块组成。系统整体结构框图如图2所示。

qrs2-t2.gif

    系统将整体工作流程分模块进行,首先由操作人员在上位机软件输入指令,通过串口通信模块将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所示。

qrs2-t3.gif

2.1.2 电机控制模块

    机械臂的平稳正常工作,离不开电机的驱动。作为常见的工业控制方式之一,电机性能的稳定对整个系统具有至关重要的作用。为了排除电机工作时的反向电流干扰,设计了兼具方向和PWM脉冲控制的电路,如图4所示。

qrs2-t4.gif

    图4左侧两个输入分别控制着电机的转速和方向,由于电机运行过程中会对MCU造成反向干扰,因此需要光电隔离器,光耦的型号为6N138,三极管型号为S8050。电路实现电气隔离,增强了系统的稳定性,排除了干扰。

2.2 系统软件设计

    在机械臂控制系统中,软件部分主要包括PC程序和主控芯片程序,PC端主要负责与操作人员进行实时交互,采用一般的串口调试工具即可。以K64作为主控芯片,该芯片的主频达到120 MHz,具有1 MB闪存、256 KB的RAM,这些数据足以说明其强大的处理能力,充分满足系统的数据处理要求。系统软件业务流程图如图5所示。

qrs2-t5.gif

    将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所示。

qrs2-t6.gif

    在机械臂末端安装一支墨水笔,在图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)

此内容为AET网站原创,未经授权禁止转载。