摘 要: 为了解决机械臂开环控制精度低的问题,设计了一套基于STM32微控制器的机械臂反馈控制系统。通过QT图形界面将控制数据输入上位机,控制数据经串口传输到微控制器后驱动机械臂运动;由加速度传感器和磁通传感器组成的惯性传感器节点采集机械臂运动数据传回微控制器,采用由多个相关的参数可变PID控制器构成的控制器组对机械臂各个部位进行反馈控制。测试结果表明,利用惯性传感器实现的改进型PID的反馈控制系统比无反馈控制系统精度有较大提高,可用于实现更高精度的机械臂控制。
关键词: 机械臂;改进型PID反馈控制;惯性传感器;嵌入式系统
0 引言
机械臂作为一种实用的机器人设备,被广泛地应用在工业生产和日常生活中。周舟等人[1]控制机械臂进行番茄采摘,根据仿真结果调节控制参数。李鲤[2]以钻孔机械臂为研究对象,着重对交流伺服电机的驱动进行了研究。刘洋等人[3]在LabVIEW环境下开发了视觉伺服机械臂控制系统的实验平台。以上这些系统采用的均是开环控制,虽也能满足特定的应用场合,但无法满足高精度机械臂控制的需求。
赵杰等人[4]设计了双关节机械臂控制系统,利用光电编码器实现了机械臂的闭环控制,但光电编码器精度仍然较低。因此,本文设计了针对机械臂的改进型PID闭环控制系统,该系统利用惯性传感器采集机械臂运动数据,在STM32平台上实现机械臂的反馈控制,旨在提高机械臂的控制精度以满足精细化动作控制的需求。
1 系统概述
系统硬件部分由STM32微控制器、三关节三自由度机械臂和惯性传感器节点组成。软件部分包含QT图形输入界面、舵机驱动、控制数据生成和反馈控制。系统整体结构如图1所示,上位机通过QT图形界面采集用户输入的机械臂控制数据后通过串口传输到STM32微控制器,微控制器根据控制数据驱动机械臂运动并读取惯性传感器节点采集的数据进行反馈控制。
2 QT图形输入界面
为了实现良好的用户体验和方便远程控制,本文设计了相应的QT图形界面。用户通过上位机可以远程控制机械臂并监测其运行状态,STM32微控制器和上位机之间通过RS232串口通信。图形界面由输入区和状态监控区两部分组成,如图2所示,用户可以通过监控区观察本次动作的完成度以决定是否进行下一个动作。
3 反馈数据生成
惯性传感器模块由加速度传感器ADXL345和磁通传感器HMC5883组成,将惯性传感器模块绑定在机械臂各个部位,经过数据预处理[5]可分别采集传感器坐标系下的重力加速度Gs和地磁通量?椎s。记地理坐标系下的重力加速度和地磁通量分别为Ge和e,从传感器坐标系变换到地理坐标系对应的旋转矩阵为R,其对应的四元数表示为Q=w+xi+yi+zk。
根据梯度四元数按照一定的步长对状态四元数进行修正,通过反复的迭代融合,求得机械臂各个部位的姿态四元数[6]。将机械臂相邻两个部位的姿态四元数分别记为Qn和Qn-1,若其相对姿态四元数为。将四元数转化为欧拉角即为控制所需的反馈数据。
4 反馈控制
为了增强反馈控制的精度,减少抖动的产生,使机械臂在短时间内达到稳定状态,本系统采用使用简单、适应性和鲁棒性均较强的PID控制器进行反馈控制。但本文中机械臂一共包含三个关节,误差会随着机械臂关节延伸逐渐积累。普通的PID控制器只能对手臂各个部位进行独立控制,不能充分利用机械臂各个部位之间的关系,且控制器参数固定,控制过程所需的时间长。因此,本文在普通PID控制器的基础上进行了改进,将机械臂各个部位独立的PID控制器组合起来形成参数可变的PID系统,其控制流程如图4所示。
上臂PID控制器的差分方程为:
其中,u(k)为输出量,e(k)为第k次测量的误差,Kpu、Kiu和Kdu分别为上臂控制器的比例系数、积分项系数和微分项系数。
小臂PID控制器的参数为:
其中,Kif和Kdf分别为小臂控制器可变的积分项系数和微分项系数,Kif0和Kdu0为基础值,λ为比例系数,可通过实际测试进行调节。同理可得手掌处的PID控制器参数。
5 舵机驱动
本系统采用MG966R舵机驱动机械臂运动,其扭力大、响应速度快并且可以使机械臂在静止时仍然保持特定姿态。控制过程中可以通过调节周期为20 ms的PWM波的占空比直接控制机械臂姿态,且占空比与舵机转角基本成线性关系,避免了通过速度间接控制转角过程中出现的延迟和精度低的问题。STM32F107微控制器包含PWM波产生模块,通过配置相应的定时器即可产生特定占空比的PWM波。高级定时器还能产生多路适合电机控制的带死区互补PWM波,通过单个定时器即可同时驱动多个舵机转动不同的角度,可以节省出硬件资源以便后期更多功能的开发。
6 测试结果
为了验证利用惯性传感器实现的PID反馈控制的效果,本文对有无反馈控制两种情况下的机械臂控制效果分别进行了测试,测试结果如表1所示。其中A组为控制数据,B组为无反馈情况下的控制结果,C组为有反馈情况下的控制结果。从表1可看出,在第一次试验中有反馈情况下的误差反而较大,通过分析发现是由于传感器节点安装位置离舵机过近而受到舵机磁场干扰造成的。通过改变传感器的安装位置,在后期的测试中得到了较为理想的效果。在第二和第三次试验中,无反馈情况下的平均误差为5.66°,而有反馈情况下的平均误差仅为1.5°,控制精度提高了2~7倍,可见改进型的PID反馈控制大大提高了机械臂的控制精度。
7 结论
本文设计了一种基于STM32的机械臂反馈控制系统。本系统通过上位机QT图形界面远程控制和显示机械臂运动状态,实现了友好的人机交互。采用惯性传感器采集机械臂运动数据,在STM32上实现对机械臂的改进型PID反馈控制,测试结果表明,利用惯性传感器实现的改进型PID反馈控制较大地提高了机械臂控制的精度,为高精度的机械臂控制提供了一种新的方案。
参考文献
[1] 周舟,王俊.采摘机器人机械臂的控制与联合仿真[J].电子技术,2013(1):60-62.
[2] 李鲤.基于ARM的机械臂控制系统分析[J].自动化与仪器仪表,2012(2):176-177.
[3] 刘洋,方敏.基于LabVIEW的视觉伺服机械臂控制系统[J].微型机与应用,2012,31(10):25-27.
[4] 赵杰,任思瓂,崔崇信.基于ARM的危险作业机器人机械臂控制系统设计[J].工业仪表与自动化装置,2012(3):111-112.
[5] DONG W, LIM K Y, GOH Y K, et al. A low-cost motion tracker and its error analysis[C]. IEEE International Conference on Robotics and Automation, Pasadena, 2008: 311-316.
[6] SABATINI A M. Quaternion based attitude estimation algorithm applied to signals from body-mounted gyroscopes[J]. Electronics Letters, 2004,40(10):584-586.