摘要:机器人技术是当今高技术研究的一个重要的方向,各国也都开始对这一技术高度重视。本文选择了机器人技术的研究方向之一进行研究,以固定底座式写字机器人为例,针对机器人的运动控制系统和机械结构设计方面进行了较为深入的分析和研究。本文具体介绍了机器人运动学方面和轨迹规划的发展现状和发展趋势及其运动控制和机械结构设计,并总结分析了机器人的传动机构,对我们设计的传动机构,从结构的合理性和零件的工艺性进行了改善,并对其在工作区域的轨迹规划和步进电机的步进角和转矩进行了修改,从而实现了写字机器人的实时性和高精度,最终实现写字或图画轮廓绘制的目的。
关键词:机器人;运动控制;机械结构设计;轨迹规划;
ABSTRACT:Robot technology is an important direction of high-tech research today, and all countries are beginning to attach great importance to this technology. In this paper, we choose one of the research directions of robot technology. Taking the fixed-base type writing robot as an example, we conduct a more in-depth analysis and research on the robot's motion control system and mechanical structure design. This paper introduces the robot kinematics and trajectory planning in the development of the actuality and development trends and motion control and mechanical structure design and analysis of the robot's transmission mechanism, the transmission mechanism designed for us has been improved from the rationality of the structure and the production capacity of the parts. The trajectory planning of the work area and the step angle and torque of the stepper motor have been modified. In order to achieve the real-time writing robot and high precision, and ultimately achieve the purpose of drawing or drawing contour.
Key words: robot; motion control; mechanical structure design; trajectory planning;
一、引言
随着科学技术的快速发展,写字机器人这个集机械、电子、信息有机结合的产物也是其快速发展中主要的一部分,由于写字机器人涉及机械学、计算机、系统工程等多个学科领域,所以对其的研究和学习需要综合各个学科。写字机器人的高效率、高精度作业过程是人无法完成的,无论在工业还是生活方面它都为社会创造了很大的经济效益。
茹浩磊[1]等设计出一种高精度且适用于重复性较高的工作场合的智能写字机器人,它可以通过手机、电脑等终端能直接遥控控制模块,驱动X和Y轴运动系统以及书写模块,以代替人书写或绘画;高玲玲[2]等也设计出以DOODLE BOT为基础,通过控制小车的运行轨迹,实现写字功能;由于某些特定类别的工业机器人的轨迹规划与控制的研究还很欠缺,刘乐[3]通过对机器人轨迹规划的研究,发现可以减小写字机器人在快速运动过程中的冲击性和残余振动,提高写字机器人运动的精度。通过对分段函数轨迹规划算法,正弦函数轨迹规划算法以及多项式函数轨迹规划算法的验证,最后得出正弦轨迹规划是较为理想的轨迹规划方法;梁锡昌[4]等发明出可以通过人从微机键盘输入文字或者符号,实现在纸上写出相应的字句的多关节结构的实用型写字机器人;在描述机器人的运动时,我们关心的是它的运动位置以及运动路径,关于这种现象Paul[5]提出了通过平滑过渡与受控加速度连接在一起的直线段构成的路径,分段端点可以在各种固定和移动的笛卡尔坐标系中定义;而此次所设计的固定底座式写字机器人原理方面则类似于陈玉敏[6]等设计的一种可以很轻易地完成在平面上的书写和绘画的两自由度写字机器人;
二、工作原理
本作品的工作原理:Arduino UNO R3控制板的D2引脚控制X轴的步进,D3引脚控制Y轴的步进。D5引脚控制X轴步进电机的方向,D6引脚控制Y轴步进电机的方向。D8引脚控制步进电机的使能端(ENABLE,注:低电平有效)。而这些引脚也全部是通过控制板连接的扩展板上的步进电机驱动模块A4988来控制步进电机的角位移和正反转以及转速。接着就是步进电机,通常步进电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一个矢量磁场。该磁场会带动转子旋转一个角度,使得转子的一对磁场方向与定子的磁场方向一致。当定子的矢量磁场旋转一个角度。转子也随着该磁场转一个角度。每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。改变绕组通电的顺序,电机就会反转。所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动。通过步进电机的这种工作原理,在其输出轴上安装一同步轮,通过同步带分别带动X、Y轴运动来实现高精度的动力传动。最终达到写字机器人正确书写的目的。
下图为写字机器人的工作原理图:
图1写字机器人的工作原理图
三、写字机器人的硬件组成
写字机器人的整体结构如下图所示:
图2写字机器人的整体结构图
其硬件主要包括:
序号写字机器人硬件组成
12个42步进电机
2Arduino UNO R3控制板
3CNC Shield v3 扩展板
4步进电机驱动模块A4988
512V1.5A电源
6双维一体式LM滚动导轨滑块 CSR型
7LM滚动导轨
8马克笔等
表1写字机器人硬件组成
3.1 Arduino UNO R3控制板
Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电机、电灯和其他物理设备。Arduino项目可以是单独的,也可以在运行时和电脑中运行的程序(例如:Processing,Flash,MaxMSP)进行通讯。
Arduino Uno是其推出的最为基础的开发板。可以配合外围器件(控制开关,传感器,LED屏等),首先介绍一下Arduino Uno开发板的基本组成。
图3 Arduino UNO R3控制板
①、微处理器:ATmega328,8位微处理器,片内包含32KB Flash(0.5KB由BootLoader使用),2KB SRAM,1KB EEPROM,运行时钟频率为16MHz。
②、USB接口:与电脑连接,用于从电脑中下载程序,同时给Uno单板供电。
③、外接电源:当Uno脱离电脑独立运行时,用来给装置供电,一般使用9V电池供电即可。
④、电源管脚,地:可输出5V,3.3V;也可以通过Vin给整个装置供电。
⑤、模拟输入:6个模拟输入,提供10-bit的解析度(0-1023)。
⑥、数字输入/输出:14个数字输入/输出管脚,可以由程序自己定义为输入或者输出;其中0,1两个管脚是串口复用管脚;3,5,6,9,10,11六个管脚可提供8位(0-255)的PWM输出;13管脚与板上LED相连,当输出高电平时,LED点亮。
Arduino的编程语言就像似在对一个类似于物理的计算平台进行相应的连线,它基于处理多媒体的编程环境。Arduino UNO R3控制板的电路图如下图所示:
图4 Arduino UNO R3控制板的电路图
3.2 42步进电机
步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度,从而达到调速的目的。
图5 42步进电机内部接线图
步进电机不能直接接到交流或直流电源上工作,而必须使用专用的步进电动机驱动器,它由脉冲发生控制单元、功率驱动单元、保护单元等组成。驱动单元与步进电动机直接耦合,也可理解成步进电动机微机控制器的功率接口。
3.3 A4988步进电机驱动模块
①、简介
A4988是一款带转换器和过流保护的DMOS微步进电机驱动器,它用于操作双极步进电机,在步进模式,输出驱动的能力35V和±2A。转换器是A4988易于实施的关键。只要在“步进”输入中输入一个脉冲,即可驱动电 动机产生微步。
②、引脚定义
如下图A4988典型电路图所示:注意步进电机的接线方式,步进电机为两相四线的步进电机,OUT1A 与 OUT2B 分别 接电机同相的两端;OUT2A 与 OUT2B 分别接电机另一相的两端。
图6 A4988引脚定义
③、A4988连接原理图
下图为A4988与步进电机连接原理图:
图7 A4988与步进电机连接原理图
由上图可以看出:在具体的使用中我们只要控制STEP和DIR就可以了,可以说很是方便;在电源供电方面器件逻辑电压VDD和GND之间我们接Arduino的+5V电源端,而电机电源VMOT和GND之间我们需要接8-15V(DC);
④、步进模式设置
有关于三个模式选择端MS1、MS2、MS3我们全部接地也就是全步进模式(转一圈要200个步进值或一个步进1.8°),如果要求更高的精度,我们可以通过选择其他的模式,比如我们如果选择1/4步进模式,那么我们电机转一圈就要送800个微步才能完成。下表是模式选择与MS1、MS2、MS3之间的关系:
表2 步进电机步进模式
测试中选择型号为17HS13-0404S的两相四线步进电机,步距角为1.8°,200个脉冲转动一圈。STEP、DIR分别连接单片机的两个控制端口,EN可以使用Arduino UNO端口控制,也可以直接连接GND使能;MS1、MS2、MS3按照“步进模式设置”,接高低电平,设置步进模式,来选择不同的步距角。例如全模式时,一个脉冲,步进电机旋转角度 1.8°;设置脉冲的频率,来控制旋转速度。
3.4 CNC Shield v3扩展板
①、输入电压范围12~36V。
②、GBRL专用CNC模块,完全兼容GBRL的Arduino UNO R3接口和A4988步进电机驱动模块接口。
③、模块直接插在Arduino UNO R3控制板上,A4988驱动模块直接插在此板上。
四、机械结构和软件设计
4.1、机械结构设计
前期在对写字机器人硬件的选择和了解后,便需要机械结构设计及后期的加工,而数据的确定需要根据已知的零部件来计算。
对于写字机器人的机械结构设计首先是考虑到它对写字机器人的精度的影响,所以尺寸需要计算和校核,之后则是根据图纸加工零部件后,组装完成,通过对整机的测试对其结构修改和改善,使机械臂的运动更加流畅。下面则针对写字机器人的几个主要的结构部分介绍:
①、底座:根据LM滚动导轨确定螺栓孔的位置,根据LM滚动导轨和42步进电机支架确定其长宽尺寸,给同步齿轮拟定合适的尺寸,并确定其安装尺寸和螺栓型号以确定底座上螺栓孔的位置,考虑到机械臂Y轴运动到末端时需要较大的力,故底座材料选用铝块,其厚度为10mm。
②、传动机构:本作品没有采用市场上写字机器人常用的光轴和轴承的组合,而是选用了双维一体式LM滚动导轨滑块 CSR型、LM滚动导轨。虽然滑块和导轨的组合比较不轻便,但是它可以是写字机器人的整体性更好,更能提高写字机器人的精确度,使写字机器人的传动也更加顺畅,再者就是它可以简化写字机器人的传动机构,使机械结构变得不像光轴和轴承组合式的那样复杂,使得传动机构更容易安装,也更容易调整其位置和尺寸。
③、42步进电机双维一体式LM滚动导轨滑块 CSR型支架:42步进电机有配套的支架是标准件,所以不需要进行机械结构的设计,但是该写字机器人的机械结构设计只有X轴可以利用标准件,而Y轴的步进电机支架则需要结合双维一体式LM滚动导轨滑块 CSR型进行设计,所以需结合滑块和42步进电机的尺寸确定支架的尺寸及安装位置。
4.2、软件设计
①、编程软件利用的Arduino IDE
Arduino IDE是计算机中的程序开发环境。只要在IDE中编写程序代码,将程序上传到Arduino UNO电路板后,程序便会命令Arduino UNO电路板执行。并且它在Windows、Macintosh OS X、Linux操作系统上均可运行。Arduino IDE基于processing IDE开发。Arduino语言基于wiring语言开发,是对avr-gcc库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,也可以快速的进行开发。再者就是IDE软件及核心库文件都是开源的,所以更便于我们学习和检查代码并可以提出改进的地方。
前期设计思路是利用Arduino IDE中编写程序代码让写字机器人完成“口”字的书写。程序代码如下:
#define EN 8
#define X_DIR 5
#define X_STP 2
#define Y_DIR 6
#define Y_STP 3
void step(boolean dir,byte dirPin,byte stepperPin,int steps)
{digitalWrite(dirPin,dir);
delay(50);
for(int i=0;i<steps;i++){
digitalWrite(stepperPin,1);
delayMicroseconds(800);
digitalWrite(stepperPin,0);
delayMicroseconds(800); }
void setup() {pinMode(X_DIR,OUTPUT);
pinMode(X_STP,OUTPUT);
pinMode(Y_DIR,OUTPUT);
pinMode(Y_STP,OUTPUT);
pinMode(EN,OUTPUT);
digitalWrite(EN,0);}
void loop(){step (false,X_DIR,X_STP,4800);
step(true,Y_DIR,Y_STP,4800) ;
step(true,Y_DIR,Y_STP,4800);
step (true,X_DIR,X_STP,4800);
delay(2000);
step(false,Y_DIR,Y_STP,4800);
delay(2000);}
实验结果如下:
图8“口”字的书写
②、利用GRBL进行文字的书写或者图画的绘制
GRBL是上位机和下位机的组合。下位机程序不能使用普通的arduino ide来下载,需要利用 arduino builder下载程序,将其下载到Arduino UNO控制板后,便可以使用上位机Grbl Controller控制步进电机。
在利用上位机Grbl Controller控制步进电机之前,还需要利用Inkscape进行G代码的制作。
汉字的书写整机测试结果:
图9 “毛”字的书写
五、结论与展望
此次设计的固定底座式写字机器人的功能是通过程序或者上位机来控制机械臂的运动轨迹以及速度所制作出的一台高精度智能写字机器人,它包括设置有20cmx20cm书写区域的基座,在基座上设置有控制模块、X和Y轴运动系统、以及书写模块,X和Y轴运动系统能带动书写模块在书写区域内移动,从而实现写字或图画轮廓绘制的目的。其优点为:硬件结构简单,可操作性强且可以通过上位机实现任何复杂字体的书写以及图画轮廓的绘制。缺点:无抬笔装置,无法精确控制马克笔与纸面的接触摩擦力使得书写过程基座震动,影响书写精度。解决方法:通过在书写区域放置较软的材料使得写字机器人的运动更加平顺;经过多次的整机运动调试后发现写字机器人在A4纸上写出的字或者绘制的图画轮廓达到预期的效果。当然该写字机器人还可以拓展一轴,加入Z轴,从理论上可以实现3D打印功能,或者把写字笔换成雕刻刀,或者是激光头用来雕刻立体作品。
六、参考文献
[1] 茹浩磊, 王斌, 谢勋. 高精度智能写字机器人:, CN 205969001 U[P]. 2017.
[2] 高玲玲, 李红, 李宇舰. 基于Arduino的机器人写字系统的设计与实现[J]. 合肥学院学报(自科版), 2016, 33(4):54-58.
[3] 刘乐. 直角坐标机器人轨迹规划与控制仿真研究[D]. 河南科技大学, 2015.
[4] 梁锡昌, 王光建. 写字机器人:, CN2654293[P]. 2004.
[5] Paul R. Manipulator Cartesian Path Control[J]. IEEE Transactions on Systems Man & Cybernetics, 2007, 9(11):702-711.
[6] 陈玉敏, 谢玮, 孟宪民,等. 智能写字机器人设计[J]. 计算机测量与控制, 2016, 24(1):266-268.
[7] 李鹏越, 李晓林. 关于写字机器人多轴联动路径优化控制研究[J]. 计算机仿真, 2017, 34(6):335-339.
[8] 陈书贵, 梁魏巍, 陈葛. 一种仿真人写字机器人:, CN 105881547 A[P]. 2016
论文作者:杨本超,王兆强
论文发表刊物:《防护工程》2018年第1期
论文发表时间:2018/5/23
标签:机器人论文; 步进论文; 步进电机论文; 脉冲论文; 轨迹论文; 导轨论文; 控制板论文; 《防护工程》2018年第1期论文;