APP下载

拖动示教教学机器人研究与设计

2020-09-29赵艺兵王振豪倪银堂温秀兰宋爱国

实验技术与管理 2020年6期
关键词:上位编程脉冲

赵艺兵,王振豪,倪银堂,温秀兰,宋爱国

(1.南京工程学院 工业中心,江苏 南京 211167;2.南京工程学院 自动化学院,江苏 南京 211167;3.东南大学, 江苏 南京 211196)

工业机器人作为《中国制造2025》重点发展的十大领域之一,已成为工业4.0 的重要标志。由于其具有稳定可靠,能在高危环境下作业等优点,已被广泛应用于汽车制造、激光焊接、激光切割以及航空航天等应用领域。由此迫切需要培养工业机器人方向的应用技术人才,以应对中国制造产业技术进步和产业升级带来的对应用技术人才的大量需求。为此,很多高校也相应地增加了机器人实践操作教学课程[1-2]。但是传统机器人成本高、示教效率低,往往不能在短时间内使众多学生完成机器人编程实践操作任务。为了解决上述问题,迫切需要设计研发结构简单、成本低、能够实现快速编程的示教教学机器人,以培养学生的实践动手能力和机器人驾驭能力[3]。文献[4]介绍了一种基于按键和视频监控的机器人示教器,该示教器在获取按键输入后会执行一个延时消抖机制,该机制会造成示教指令发送延时。针对输入延时的问题,文献[5]提出了一种基于以太网和嵌入式Windows CE 的机器人示教器方案,该方案使用Windows CE 作为操作系统获取用户输入,使用Socket 协议传输数据,使得示教器的实时性得到了很大的提高,但是该示教器仍然使用示教点编程方式,还不能满足需要快速编程的场合。还有一部分机器人采用离线编程方式,这种编程方式在电脑上搭建好虚拟模型环境后,可以实现机器人的快速编程[6],文献[7]提出了一种基于Solidworks API 二次开发函数及VC++编程语言的机器人离线编程系统,使用Solidworks 可以实现快速的车间环境搭建,编程时可以使用VC++进行机器人界面控制和快速精确的轨迹规划,但是这种编程方式需要专业的人员才能够进行操作,无疑提高了生产成本。

为了解决机器人快速编程的问题,本文设计了一种拖动示教机器人系统,该系统在设置好相关参数后只需根据上位机操作界面提示拖动机械臂运动就可以对机器人进行快速编程。

1 机械结构设计

该系统由三个水平自由度和一个旋转自由度构成,机械结构部分如图1 所示。

图1 系统机械结构

水平自由度上实现拖动示教功能,每个水平自由度安装一个步进电机驱动系统和一个位置采集系统。为了把每个自由度的转动惯量控制在最低范围,在综合考虑加工难度后,本设计把每个自由度的驱动电机安放在上一个自由度的机械臂上面,把每个自由度的重心后移,从而在不增加机械制造难度的前提下实现了转动惯量的降低。

旋转自由度由上位机控制,可以根据实际情况变换旋转角度,进而实现不同的功能。为了使机器人的末端执行器轻量化并且有更好的适应性,使用了3-D打印技术,只需要很少的时间就能制造出工程需要的末端执行器,可以大幅提高机器人针对不同工作场合的适应能力。

2 软硬件设计

2.1 硬件设计

机器人硬件由ESP8266、超高精度位置传感器、步进电机驱动器、步进电机和末端执行器等组成,硬件结构如图2 所示。该机器人使用ESP8266 模组作为控制器,ESP8266 为超低功耗32 位RISC 处理器,内部集成一个8 位模数转换器,系统时钟速度最高达160 MHz,支持Wi-Fi 协议栈,可以满足机器人的所有计算任务和无线数据传输任务。该系统采用不同型号的57 系列步进电机作为动作执行部件,配合使用改进版128 细分DM542 步进电机驱动器,可以保证步进电机运行时的振动噪声在预期范围以内,大幅提高控制精度。

图2 系统硬件结构

2.2 软件设计

该机器人拖动示教系统的软件分为上位机软件和下位机控制软件两部分。上位机软件主要实现机器人的工作状态控制、过程控制和修改必要运行参数的功能,采用Python 语言编写,主要由操作界面程序、通讯程序、数据解析程序、数据存储程序以及数据库接口构成。操作界面主要由位置控制模块、程序编辑模块、程序传输模块、拖动示教模块和电源管理模块组成,主要实现操作人员与内部程序的交互,操作人员可以在操作界面上通过点击按钮调用回调函数发送相应的数据包到下位机,控制其实现不同的功能和修改运行参数,在示教结束后上位机首先通过数据解析程序解析机器人上传数据包的信息,然后通过数据存储程序精简数据结构后调用数据库接口把信息保存到数据库中,实现数据存储。

下位机控制软件采用MicroPython 语言编写,主要分为示教程序和还原程序,上位机负责这两种状态之间的切换。在正常运行时ESP8266 通过UDP 协议接收来自上位机的指令数据包,通过数据解析算法得到相应执行指令及其运行参数。如果接收到执行指令,ESP8266 会根据运行参数使用控制算法控制步进电机驱动器,使步进电机以一定的速度旋转一定的角度;如果接收到示教指令,ESP8266 会通过A/D 转换器得到位置传感器的数据并使用位置混合数据滤波算法进行预处理,然后保存到Flash 中,示教结束后会把示教结果上传到上位机进行处理并保存。

3 算法设计

3.1 位置数据滤波算法

传统滑动平均滤波器[8]因在空间和时间的复杂度比较低,且能够有效抑制连续的白噪声信号而得到较多应用[9],但是当信号有突变时滤波效果不佳。为了解决采集数据波动带来的问题,本文提出了一种基于平均值滤波器和滑动平均滤波器相结合的混合滤波方法,实现思路是在采集某点数据时先采集该点的多组数据,应用平均值滤波器得到一个相对准确的数据值,然后将这个数据值送入滑动平均滤波器得到该点的最终数据,其原理表示如下:

式中,y 为输出信号值,x 为输入信号值,i 为输入数据下标,N 为采集数据总数,n 为经过平均滤波后的数据下标,k 为中间运算变量,M 为滑动数据窗口的宽度。

3.2 示教动作还原算法

本设计由ESP8266 为步进电机驱动器提供三路驱动脉冲、驱动方向信号和使能控制信号,控制三个自由度的机械臂同时运动。现阶段控制步进电机转动的方法大部分是使用主控芯片的内部定时中断来产生驱动脉冲信号[10-11],但是ESP8266 的定时中断只有一个,按照文献[12]中的控制算法只能控制一个步进电机的运行,无法满足本设计的控制要求,所以本文提出了一种基于系统运行时间控制脉冲信号输出的方法实现三路脉冲的同步输出。

在还原示教动作前,ESP8266 首先需要将三个自由度的示教数据加载到内存,初始化每个自由度的数据寄存器、GPIO 引脚并计算第一次脉冲输出时的系统时间,然后ESP8266 会进入还原示教动作的循环。为了在循环中提高动作还原精度,该系统在动作还原时使用ESP8266 内部集成的一个8 位A/D 转换器采集位置传感器的实时数据,并不断比较控制偏差,构成一个闭环控制系统,控制系统结构如图3 所示。

图3 控制系统结构图

在循环中ESP8266 会根据示教数据和控制偏差计算每个自由度下一次脉冲信号的输出时间,随着系统时间的增加,ESP8266 不断输出每个自由度步进电机的控制信号,直到完成示教动作,程序流程如图4 所示。

图4 动作还原程序流程图

3.3 步进电机运动控制算法

在实际应用中,通常要通过上位机直接控制机械臂运动。为了避免机器人在启动和停止时产生机械振动,该系统采用基于系统时间实现的S 曲线来控制步进电机的变速过程,实验表明S 曲线的加减速方法能够保证速度、加速度的连续,有效抑制步进电机的失步和机械振动。该控制方法没有采用常用的分段控制方式[13],而是由式(2)生成的S 曲线控制。

式中, fout为输出频率,Exp 为指数函数, fmax为最大运行频率,in、b 和a 分别为系统时间变量、时间系数和时间修正系数。当in=0 时,设 f0是电机的初始运行频率,则有

由式(3)可以反推求出a 与 f0、 fmax之间的关系:

由式(4)即可根据初始运行频率和最大运行频率求出系统时间修正系数的值,最后由

可得到对应时刻的脉冲输出周期。

在步进电机启动时,先给步进电机一个启动脉冲,同时记录系统时间,然后根据脉冲周期曲线得出脉冲延时时间,加上第1 个脉冲的系统时间后得到下次脉冲输出时的系统时间;当发出第2 个脉冲时,计算出下一次脉冲输出的系统时间;这样循环执行,步进电机就会根据脉冲周期曲线一直加速运行到匀速阶段。步进电机减速阶段的实现思路与加速阶段类似,只需要逆向查询脉冲周期曲线即可实现步进电机的减速过程。

4 机器人原型系统搭建与调试

为了验证本设计的可行性,根据上述设计制作出了机器人原型系统平台如图5 所示,上位机界面如图6所示。

图5 机器人原型系统

图6 上位机界面

上位机支持手动示教和拖动示教两种编程方式,手动示教用于完成示教点少的机器人高精度编程任务,拖动示教用于完成示教点多的复杂编程任务。在上位机界面中手动示教单元由位置控制模块、程序传输模块和程序编辑模块组成。在手动示教时,可以通过调节滑条上滑块的位置来改变机器人的位姿;机器人位姿调整完成后可以通过点击程序传输模块的“记录位置”按钮把机器人目前的位姿直接插入到程序编辑窗口;本系统的示教程序格式统一为“指令:参数”格式,每条程序以分号结尾;示教过程结束后,可以通过点击“执行程序”按钮让机器人执行程序编辑窗口中的示教程序。拖动示教功能由拖动示教模块实现,点击“开始示教”按钮后,机器人开始使用混合滤波器处理并记录示教数据;示教完成后通过点击“停止示教”按钮停止示教操作,接着可以点击程序传输模块的“上传程序”按钮把示教数据插入程序编辑窗口进行相应处理。对机器人原型系统采集数据的分析结果表明,采用上文提出的混合滤波方法可以准确有效地记录位置传感器的数据,数据曲线如图7 所示,可以明显看出采用混合滤波方法采集的数据非常接近预期数据,即使在50 ms 处原始数据出现了较大的数值波动,相比平均滑动滤波器,本文提出的混合滤波器的采集值更加稳定,这使得机器人在拖动示教时采集的示教数据更加精确。

图7 位置采集曲线

通过点击拖动示教模块的“动作还原”按钮,机器人会还原示教动作,为了测定动作还原精度,在实际测试中采集了步进电机运行还原程序时位置传感器的实时数据,并将其与示教数据进行比较,结果如图8 所示,可见实时位置曲线始终在示教曲线周围上下波动,说明在动作还原时闭环控制系统一直在修正运行偏差,使还原动作更接近示教动作;实时位置曲线与示教数据曲线重合,说明动作还原时机器人的动作重现了示教动作,验证了示教动作还原算法的正确性。

图8 动作还原比较结果

5 结语

针对现有教学机器人结构复杂、成本高、编程示教复杂等问题,本文设计完成了拖动示教机器人机械结构设计、硬件设计、上位机软件和下位机控制软件研发。为降低噪声影响及使机器人运动更平稳,提出混合滤波方法、步进电机位置还原算法及步进电机S曲线控制算法,并应用于该机器人控制程序中。经机器人原型系统设计制造及实验研究,证实了使用该机器人上位机拖动示教不仅大大简化了机器人编程的复杂度,提高了机器人编程效率,而且成本低廉,非常适于在自主创新实践教学中推广应用。

猜你喜欢

上位编程脉冲
脉冲离散Ginzburg-Landau方程组的统计解及其极限行为
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
上下解反向的脉冲微分包含解的存在性
特斯拉 风云之老阿姨上位
黄芩苷脉冲片的制备
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统