毛丽民,陈 煜,杨海萍
(常熟理工学院 电气与自动化工程学院,常熟 215500)
码垛机器人是根据特定要求,完成自动拿取、搬运和堆垛的自动化机器设备。在高温、高压、多粉尘等恶劣环境中,码垛机器人可代替人工作业,节省大量人力资源,大幅提高工作效率。
目前,面对人工成本增加、招工难的现象,很多制造企业希望用设备代替人工,从而实现无人化工厂的目标。但是动辄数万元一套的机械手或者价格昂贵的非标设备,使得企业转型遇到很大障碍。在这种情况下,低成本的三轴移动平台就有了很大的应用前景,市场很多锁螺丝机、点胶机、焊锡机、打标机等都是三轴平台的应用。一台三轴移动平台,可以代替2~3人的作业。例如锁螺丝机,一个点位的速度可以达到0.5 s以内,比人工效率至少高3倍以上。三轴移动平台可以根据需求选择不同的电机和传动装置,并且工作空间相比机械臂而言更大。
本文设计的码垛机器人由2个X轴(运动轴与辅助轴)、1个Y轴和1个Z轴组成,底座有铝型材支撑架空,从而在较大范围内实现定位移动。三轴都是由带编码器的步进电动机驱动。控制器发送高低电平控制方向,发送频率及个数都可改变的脉冲来调节3个步进电动机的转速和旋转圈数。利用加减速算法来提高系统的工作效率的同时,满足稳定性的要求[1]。码垛上装有9个光电限位开关,来配合控制器进行行程限制以及原点搜索。最后通过对末端执行器的吸取或抓取控制来实现对物料的整齐堆垛[2-3]。图1为码垛机器人结构。
图1 4轴龙门平台结构图
X,Y,Z轴都选用相同型号的MH45导轨,其中Y轴长1200mm(有效行程800mm)、两个X轴长1 050 mm(有效行程800 mm)、Z轴长450 mm(有效行程200 mm),另外还有5个联轴器、3个57系列步进电动机支架、1个T型连接板、4个地脚座、2个高脚座及1根长850 mm、直径12 mm的传动轴[4]。图2为码垛机器人控制系统示意图。
图2 码垛机器人控制系统示意图
本文控制器采用STM32,通过对通用定时器输出比较模式下的自动重装载ARR与输出比较寄存器RCC的比较情况,判断中断的发生并实现对引脚电平的翻转,从而输出完整脉冲。系统的行程限制与原点搜索,是通过轴上的感应片接触到光电开关产生的下降沿,触发外部中断,在该外部中断所定义好的中断处理函数中改变步进电动机的运行状态。为了提升移动定位的速度、提高移动程序执行的效率,在步进电动机的运动中加入实时计算的梯形加减速算法,更增加了系统高速运行时的稳定性。
本文选用目前市面主流的带编码器的步进电动机,编码器的加入可以使得电机具有反馈补偿能力,从而使电机可以在一定程度上克服一些丢步或过冲现象,图3为本文选用的带编码器步进电机。由于XY轴与Z轴带载不同,所以XY轴采用力矩2.2 N·m的步进电动机,而Z轴是力矩1.5 N·m的步进电动机;表1是57系列不同型号步进电动机的技术参数。
图3 带编码器步进电机
表1 步进电机技术参数
一般与步进电动机配套的驱动器都会采用默认的细分数,这种默认的细分设置是可以满足大多数使用需求的。本文选择一款可以兼容带编码器步进电动机的雷赛公司步进电机驱动器[5-6]。默认细分数为1 600,即1 600步为一整圈。
1.1.1 步进电机与驱动器的连线
电机与驱动器的接线如图4所示。当编码器所需电流Icc<50 mA时,可由HBS57内部自带的5 V电压直接供电,此时应将EGND接编码器地,E+5 V接编码器的VCC,编码器A+、A-、B+、B-信号依次接至驱动器EA+、EA-、EB+、EB-端口。当编码器所需电流Icc>50 mA时,则需外加5 V电源供电。
图4 电机与驱动器接线图
1.1.2 驱动器与控制器的接线
控制器信号输入与步进电动机驱动器的接法通常有三种:差分方式控制、共阳接法、共阴接法。对于STM32来说,大多数I/O口输入可以达到5 V。STM32输出5 V有多种方法,如用三极管做开关,将I/O口3.3 V的输出给三极管去控制开断从而输出5 V。但实际STM32本身GPIO支持一种开漏输出模式,它只能输出强低电平,需要通过上拉电阻接到5 V才能实现[7]。3个驱动器与STM32的接线如图5所示。
图5 驱动器与STM32接线图
开漏模式下,将I/O口上拉到5 V时使用2 kΩ的电阻。通过输出比较模式产生的脉冲电压有效值实际只有3 V左右,所以STM32开漏输出串接的电阻为2 kΩ,上拉电阻的5 V电压也由板载的MP2359降压得到[8]。
为了避免在调试过程中撞击极限位置,本文使用光电限位开关,图6(a)为槽形光电限位开关,图6(b)为感应金属片。本文使用了常开信号线。用2 kΩ的电阻接到了STM32的3.3 V电压上,用3.3 V的电压,就可以推挽输出,而不需要设置为开漏模式再增加额外的上拉电阻。光电开关接线图如图7所示。
(a) 槽形光电限位开关
(b) 感应金属片图6 槽形光电限位开关与感应金属片
图7 光电开关接线图
本文的3个移动轴需要相互独立工作,各个轴的极限之间不能有干扰,因此接线选择尾部数字都不一样的GPIO引脚:PF0、PF1、PF2、PG3、PG4、PG5、PG6、PG7、PG8,这样在程序调用时都是不同的中断函数,运行过程中也不会出现同一时刻只有一个中断被响应的情况。图8为光电限位开关在三轴上实际的安装位置。
图8 实际安装位置
真空泵的额定工作电压是12 V,用三极管来控制继电器,为避免电感类负载对电源电压产生影响,本文使用光耦隔离,如图9所示。
图9 真空泵驱动电路图
步进电动机对于速度变化较大,尤其是加减速较为频繁的设备,会发生力矩不足或者失步的现象;如果励磁频率选择不当,电机就不能够移到新的位置,会发生失步或过冲现象。要解决该问题,通常采用加减速的方法,即在步进电机在起步时让频率逐步升高,减速时频率逐步降低。
加速过程是由基础频率与跳变频率组成加速过程的曲线。反之,降速过程一样。加速曲线通常采用直线(梯形)、指数曲线或者S型曲线等。本文按直线方式(从起动速度到目标速度的加减速),以一定的比例进行加速/减速,如图10所示。
图10 加减速运行图
当程序起动(复位后)或者步进电动机运动状态在停止状态时候,程序结束。当加速段移动步数计算完成,新的状态就会被置位,同时定时器的中断也会被起动。定位移动程序流程如图11所示。
图11 移动程序流程图
主程序框图如图12所示。堆垛函数中共有6个有符号32位入口参数,它们分别是:拾取下降高度、返回高度、放置点X与Y轴位置、再次下降高度、再次返回高度。这些变量通过二维数组stack[][]以及主程序中的循环来传递。
图12 主程序流程图
第一层的堆垛数组,每次都是写入6个参数,变量会保存每一次+1后的变量,然后与之匹配,再通过二维数组的组号,去调用不同数组的参数。最后当row加到27后,再对row的计数标志start置零,从而完成一次完整的堆垛。图13为堆垛程序要实现的堆垛图。
(a) 堆垛侧视图
(b) 堆垛俯视图图13 堆垛视图
码垛机器人实物如图14所示。
图14 码垛机器人实物图
图15为整个码垛机器人堆垛过程,吸盘每次都会在传送带固定的地点吸取木块,然后读取数组中的坐标位置将木块放置在指定位置。图15(a)为第一层第一列的堆垛;图15(b)为第一层的堆垛;图15(c)为第二层的堆垛;图15(d)为堆垛结束。
(a) 第一层第一列
(b) 第一层
(c) 第二层
(d) 堆垛结束图15 码垛机器人堆垛过程
本文设计了一种小成本高精度的龙门码垛平台,根据成本和定位精度选择使用带补偿的闭环步进电动机,控制器采用STM32单片机,相比PLC,成本降低了很多,采用了梯形加减速,运行良好,控制精度也满足了要求。