马前帅 ,王二敏
(1.天津职业技术师范大学工程实训中心,天津 300222;2.天津大学电气自动化与信息工程学院,天津 300072)
机器人产业化是“中国制造2025”中重要的一部分。机器人的快速发展促进了工业生产自动化的发展,提高了生产效率,其应用从工业逐渐向服务、医疗、水下探测等领域发展,功能也逐步向模块化、智能化、微型化发展。目前,中国的机器人市场规模较大,发展前景十分可观[1]。机器人控制系统主要实现对机器人的位置、速度或扭矩等的控制和管理,使其按照既定的轨迹或其他已知的运动参数进行准确、平稳和快速的运动[2]。随着物流行业的快速发展,码垛机器人应用场合越来越多,而且对码垛机器人的要求也在不断提高。目前,国外码垛机器人在码垛市场的份额已经超过90%,但国内对码垛机器人的设计研究与国外相比仍有一定的差距。因此,设计稳定、性价比高、通用性强的码垛机器人控制系统对国内物流业至关重要。本文对码垛机器人控制系统的硬件电路和软件控制进行设计。
四轴码垛机器人系统由机械结构和电气控制系统组成,其总体设计如图1所示。
图1 四轴码垛机器人系统总体设计框图
码垛机器人控制系统选择越疆的DOBOT-M1机器人作为被控对象,该机器人为四自由度串联开链式机械臂,包括底盘旋转轴、大臂旋转轴、小臂旋转轴和腕部旋转轴,4个关节均为转动关节,可用于完成雕刻、焊接、搬运、码垛等工作,是一种典型的操作型机器人[3],其机械结构如图2所示。
图2 四轴码垛机器人机械结构
码垛机器人电气控制系统主要包括主控模块、电源及管理模块、运动控制模块和人机交互模块。主控模块采用微处理器STM32F103ZET6,负责四轴码垛机器人通信、任务规划、轨迹规划、插补控制;电源及管理模块包括开关电源和电压监测模块,为其他模块提供可靠稳定的电源;运动控制模块采用ATMEGA2560固化Marlin固件,为四轴码垛机器人提供运动规划、运动学逆解的解决方案,该模块包含运动控制器和步进电机驱动模块,运动控制器负责运动学逆解和多轴协调联动控制,步进电机驱动模块用来控制机器人4个旋转轴电机;人机交互模块用于四轴码垛机器人控制任务选择、命令控制和参数信息显示。四轴码垛机器人控制系统结构如图3所示。
图3 四轴码垛机器人控制系统结构
主控模块实现了机器人的任务规划,将特定的任务分解成终端运动轨迹序列[4]。任务规划包括任务命令的解析、机器人运动轨迹的生成、轨迹运动学参考计算并生成G代码。机器人工作的轨迹控制方式根据插补方式的不同可分为关节空间和终端直线运动控制。关节空间运动控制要求在规定的时间内各关节同时运动,并同时停止运动,达到目标位置。这种控制方式对空间要求较高。终端直线运动控制机器人终端按照规定的速度、加速度,直线运动到下一个目标位置。实际中终端直线运动控制方式比较常用,在示教过程需要一条可行的运动轨迹。
主控芯片采用ST公司的STM32F103RCT6,主频72 MHz,内部256 K Flash和48 K RAM。程序采用FreeRTOS作为实时操作系统,FreeRTOS操作系统占62 K Flash和16 K RAM[5-6]。所选主控芯片有足够的空间和运算能力处理机器人底层控制、算法、扩展功能。主控芯片资源分配列表如表1所示。
电源及管理模块包括2路LDO线性稳压电源、1路开关型稳压电源和1路电源电压检测电路。2路LDO线性稳压电源分别为控制电路和A/D转换器供电,2路电源的地与0 Ω电阻相连。2路LDO线性稳压电源采用TI公司的TPS79301。TPS79301为超低噪声200 mA的线性稳压模块,通过修改电阻将输出电压均设为3.3V;1路开关型稳压电源采用TI公司的LM2576T-12,负责为步进电机驱动、人机交互和夹手驱动供电;1路电源电压检测电路,用于检测系统的电源电压,采用精密电阻分压,通过检测分压电阻两端电压计算电压检测电路。电源及管理模块电路如图4所示。
表1 主控芯片资源分配表
图4 电源及管理模块电路
运动控制模块主要包括运动控制器、步进电机和步进电机驱动器。运动控制器根据主控发送的轨迹进行运动学逆解,将终端轨迹分解到各个轴的角度控制。通过对步进电机的角度、速度和扭矩的控制,使四轴码垛机器人按照设定的参数轨迹进行准确、平稳和快速的运动。
运动控制器在整个系统中处于核心地位,主要完成运动规划任务,针对终端轨迹运动要求,利用运动学逆解,获得各关节的运动要求。运动规划的主要任务是G代码解析、运动轨迹离散化、运动学逆解以及多轴联动控制等,运动规划功能如图5所示。
图5 运动规划功能
运动控制器采用ATMEGA2560固化Marlin固件作为运动控制模块。Marlin融合了Sprinter和Grbl固件的优点,是基于Arduino的开源混合版,能使用G代码指令协议进行通信。主控模块发送G代码指令给运动控制器,运动控制器中的Marlin固件负责解释应用程序发来的G代码指令,然后控制步进电机执行命令。
选用步进电机驱动机器人关节运动,步进电机结构简单,控制方式简便,能够对机器人关节角度进行精确控制。由于机器人每个关节的负载都不相同,所以需对每个关节的步进电机的功率、转矩进行计算。
设定负载为1 kg,最大运行速度ν=0.2 m/s,机器人最大加速度a=0.5 m/s2,摩擦系数μ=0.2,转动半径为γ,机械传动效率η=0.8,则电机运动功率为:
电机转矩为:
对小臂转动轴关节进行计算:m=1+2=3 kg,γ=0.2 m,电机运动功率为1.88 W,电机转矩为1.2 N·m;
对大臂转动轴关节进行计算:m=2+3=5 kg,γ=0.4 m,电机运动功率为3.12 W,电机转矩为4 N·m;
对地盘旋转轴进行计算:m=2+5=7 kg,γ=0.4 m,电机运动功率为4.38 W,电机转矩为5.6 N·m。
为实现对步进电机稳定精确的转速和转矩控制,使电机高精度、低噪声、低振动运行,同时考虑到控制系统的功耗及驱动电流等因素,驱动控制器选择TI公司的LV8727作为驱动芯片[7]。LV8727为PWM电流控制型微步双极步进电机驱动芯片,双全桥MOSFET驱动,并且包括细分、半流控制等功能模块,可以精确地控制步进电机[8],它的微步控制分辨率可达8种,分别为 1/2、1/8、1/16、1/32、1/64、1/128、1/10 和 1/20,可简单通过步进输入来控制电机,根据不同的驱动负载及运行精度等要求选取最佳的工作模式,电路设计如图6所示。
图6 电机驱动电路
人机交互模块采用图形界面设计,能够实现输入控制命令、编写控制程序、显示机器人自身参数和工作状态、各个关节单独运动控制、机器人终端运动控制、机器人任务模式选择等功能。人机交互模块采用触摸屏DMT80600T080_02W。主控模块通过MAX232接口与触摸进行通信,实现监控和数据传输。在电路设计上,只需设计串口通讯及抗干扰电路。
机器人控制系统程序流程如图7所示。
图7 控制系统程序流程
首先进行系统初始化,然后系统等待操作命令,当接收到控制命令,主控器进行任务规划并生成G代码,运动控制器解析G代码并进行运动规划,最后机器人终端根据要求的轨迹运行。
本文基于FreeRTOS操作系统设计四轴码垛机器人控制系统软件,实现机器人的任务规划、传感器和机器人位姿信息的交互、处理以及人机交互信息处理[9]。该操作系统的任务列表如表2所示。
表2 FreeRTOS操作系统任务列表
为测试机器人控制器的动态运行精度,以四轴码垛机器人为测试平台,对机器人的终端运行轨迹进行测试。测试条件为机器人末端执行器负载1 kg,运动速度为 0.02 m/s~0.2 m/s,运动加速度 0.1 m/s2,通过 100 次重复试验,获取终端偏移情况,重复误差测试结果如表3所示。
表3 机器人重复误差测试数据表
对测试数据进行分析,得出:实际工况下机器人重复定位精度为±0.5 mm,这一结果满足了四轴码垛机器人的控制要求,能够应用于一般的工业场合,控制板实物如图8所示。
图8 控制板实物
该机器人的关节采用步进电机和行星减速器,其部件是影响系统重复精度的主要因素,特别是在高速情况下误差较大,通过更换伺服电机和VR减速器可进一步提高系统重复精度。
本文设计的四轴码垛机器人控制系统以微控制器STM32F103ZET6为核心,实现机器人的任务规划、轨迹规划和插补控制,内嵌实时操作系统能够有效确保机器人在作业过程中的实时性和稳定性;利用ATMEGA2560固化Marlin固件实现机器人的运动规划、运动学逆解、多轴联动控制,利用固件的资源,降低了开发的难度和成本;通过人机交互进行机器人控制和参数显示,感知机器人自身状态、周边环境信息,为使用者提供良好的操作选择;机器人外设通信接口,具有与外部设备通信的功能。经测试,该控制器能够从操作、感知、交互、智能、通信等方面实现对四轴码垛机器人的控制,达到编程和手动控制机器人预期的运动要求,并且控制精度也达到一般码垛作业应用场合的要求。