轻型六自由度工业机器人设计与运动学分析*
2021-01-12祝洲杰吴锂力许林杰刘顺利
祝洲杰,吴锂力,许林杰,刘顺利
(1.浙江机电职业技术学院,杭州 310053;2.浙江中力机械有限公司,浙江湖州 313300)
0 引言
在近几年“机器换人”的大趋势下,由于机器人能大量替代人工的操作,减轻劳动强度,正在多个领域发挥着日益重要的作用[1]。《中国制造2025》提出推动工业机器人的产业化及应用,满足我国制造业转型升级的迫切需求[2]。鉴于知名品牌的机器人产品价格昂贵,系统庞大且封闭,而很多企业的生产只需满足较单一的特定工况或轻型的工作环境,以这些产品作为升级方案无必要且不切实际。因此,很多企业转而寻求针对自身特定的工作环境研发简单的工业机器人,以期在实现生产需求的同时达到更好的经济性。
机器人是复杂的工业产品,涉及结构优化设计、运动学、轨迹规划、控制算法等多方面的研究[3]。依据企业的实际需求,并结合很多前人学者在机器人的构型提出、机构分析、控制系统等理论方面的大量研究[4],基于产品可以在保证性能要求的条件下大幅节约机器人的成本的目的,研发了一种针对企业轻型工作环境的六自由度工业机器人。本文对该款机器人进行了结构设计、运动学分析和控制系统开发,这是全面掌握该机器人产品特性的理论基础。
1 结构设计及参数建模
该工业机器人根据企业的实际使用要求采用典型的六自由度串联机器人结构,其前面3个轴主要负责机器人的位置调整,后面3个轴主要负责机器人的姿态调整,如图1所示。其中,6 个关节均为旋转关节,每个关节分别对应1 个自由度,传动的模式都设计采用电机驱动,通过直接联接减速器减速并增大扭矩输出,其中某些关节使用了同步带传动和链传动来完成动力传输带动相应关节的旋转或摆动,这样6个通过关节的旋转和摆动使机器人到达三维空间中一定范围内的任意点,最后通过末端执行器完成指定的动作。
图1 机器人总体结构
图2 机器人D-H坐标系示意图
对机器人来说,如果要能通过程序指令使其完成相应的动作,就需要先考虑完成机器人的运动路径规划[5]。依据上述的结构型式,以各关节的中心为坐标系原点建立了该机器人的D-H 坐标系,如图2 所示。D-H 法需要用4 个参数(θ、α、a 和d)来描述机器人各相邻连杆之间的关系,逐次推导出机器人末端执行器坐标系相对于基坐标系的等价齐次坐标变换矩阵,获得机器人的运动方程。
按照D-H 法的建立原则[6],参数确定如表1 所示。其中,θi为绕zi轴从xi-1到xi的旋转角度;αi-1为绕xi-1轴从zi-1到zi的旋转角度;ai-1为沿xi-1轴从zi-1到zi的距离;di为zi轴从xi-1到xi的距离。
表1 各连杆D-H参数
2 运动学方程求解
基于前文的空间坐标系和D-H参数表,即可对机器人的运动学特性展开分析。运动学分析用于研究关节变量空间和末端执行器的位置和姿态之间的关系[7]。分别通过正、逆两方面的求解对该机器人进行了分析。
2.1 正运动学求解
该机器人全部采用转动关节链,各连杆以O0为基点,各关节依次沿坐标系旋转相应的θi。因而可以得出连杆i 对连杆i-1的连杆变换关系式为:
而根据机器人的正运动学变换矩阵:
其中矩阵左边3列的3×1矩阵表示末端执行器相对基坐标系的姿态,
是坐标系{O0} 相对于坐标系{O6}在X 轴上的方向矢量;是坐标系{O0}相对于坐标系{O6}在y 轴上的方向矢量;是坐标系{O0}相对于坐标系{O6}在z轴上的方向矢量。而第4 列的3×1 矩阵则表示为末端执行器相对基坐标系的位置。因而可以求得机器人末端的姿态方程如下:
基于正运动学变换矩阵,若已知各连杆的关节变量θi,将矩阵各行列元素一一对应,末端执行器相对于基坐标系的位姿即可求出。取θ1=θ3=θ4=θ5=0,θ2=-90°,θ6=180°的组合数据进行验证,当机器人处于上述θi的位姿时,验证结果与实际的机器人位姿一致。
2.2 逆运动学求解
当末端执行器的位姿为已知条件,逆求即是解出机器人各关节的变量θi。对于本文的机器人来说,即为求解各连杆之间的角度。
与正解法不同,逆解问题更为复杂和难解。对于六自由度机器人来说一般情况下不存在封闭解,即可能存在多组满足条件的角度值,且大部分逆解都在实际中无法实现,理论计算无法规避这些情况。因而为了便于计算,在进行运动学反解时,可以针对部分角度值固定的特殊位姿进行运动学求解,这时剩余的变量就可以通过反解得到结果[8]。因此当该机器人的θ1、θ2、θ3已知的情况下,通过变换矩阵和逆矩阵可以求得:
式中:atan2 为返回方位角的函数;r13、r23、r33等则取自末端执行器的姿态矩阵。显然,这里得到了两组解,需要根据实际情况选择其中的一组可行解或最优解[9]。
3 机器人的控制系统
上述正、逆求解的结果也为机器人控制系统的搭建或程序的编制提供了理论支撑。为了兼顾该机器人的性能需求及成本控制,对机器人的控制系统进行了相应地设计。整个控制系统包含了上位机与下位机监控程序,可以通过上位机实现对机器人下位硬件系统的远程控制,从而执行各种指定的动作。
3.1 系统硬件设计
由于6 个自由度都为通过电机控制的转动关节,核心控制对象比较单一,该机器人在硬件设计时未采用PLC 作为主控模块,而是尝试选择Arduino开发环境搭建了机器人控制系统硬件平台,主要包括电源模块、CPU 控制模块、传感器模块、电机和驱动器模块,其系统结构框图如图3所示。
图3 机器人控制系统结构框图
该机器人需要用到6 路电机控制,以及传感器限位信号的处理,因而核心控制模块选用了Arduino Mega 2560 控制板,这种控制板有54 路数字输入/输出端口,I/O 接口比较丰富,能较好地满足上述的控制要求,且其编程环境Arduino IDE拥有丰富的库文件,因而该控制板具备性能可靠稳定、成本低廉、控制方法简便等特点,比较适合作为该机器人的控制模块。
鉴于Arduino Mega 2560 控制板的I/O 口需要使用5 V 的供电,电源模块选择220 V转5 V、2A的直流电源。其余的控制模块也能以此电源进行供电。
针对6 路电机的驱动,系统选用了ST-6600 电机驱动器,并通过带隔离继电器模块保证稳定性。在连接时,将ST-6600驱动器的PUL 和DIR 引脚依次接至Mega 2560 主控板的2~13引脚;将带隔离继电器模块连接至Mega 2560主控板的38~45引脚;并用主控板的14~19、+5、GND 引脚连接机器人各轴的限位电路。除此之外,6路电机驱动器则依照驱动器的设置说明设置如表2所示。这样,系统的硬件即基本设置完成。
表2 各轴电机驱动器设置
3.2 控制程序设计
对于该机器人来说,控制程序包括底层控制下位机程序和远程控制端的上位机监控程序。由于使用的是Arduino Mega 2560 控制板,需要使用Arduino IDE 进行底层控制固件的程序编写才能完成机器人控制。在Arduino IDE 编程环境中,主函数在内部已定义了,且自带有电机的驱动库函数,在程序中只需要完成对于电机驱动函数的调用,完成对Mega 2560 控制板各电机信号引脚的设置,并设置好各轴的限位信号引脚,就基本完成Arduino程序的编写。
而上位机监控程序的是基于python 软件开发的。上位机监控程序主要功能是完成机器人的实时位置、姿态和速度控制,并能对机器人的状态进行远程监察。因此,监控程序被设计为机器人监控部分、机器人操作部分和数据库这3 大部分。如图4所示。
图4 上位机监控程序效果图
在机械手监控画面上,可以监测到机械手各个轴的进给速度、报警状态、各个轴的位态及对应的各轴角度;除此之外,还显示上位机与下位机的通信状态等信息;在机械手操作部分,用户可以通过界面对各个轴进行操作,有利于试验者实时现场调试,避免了调试中的不便利;而数据库部分则是能完成自动程序运行的各项数据统计,方便用户把握设备的状态及趋势曲线分析等工作。
因而,当启动下位机程序和上位机监控程序后,软件会依次完成机器人各关节电机和相应驱动器的初始化和复位,即回复坐标原点的过程。完成后下位机控制程序将会通过通讯模块和上位机监控程序建立通讯连接,并开始对上位机监控程序所发出的指令进行接收和指令解析。当下位机监收到上位机发出的模式及运动指令后,通过指令解析获得对应的运动方式和位置、速度、加速减速时间等运动参数后,即驱动各轴电机实现预期的运动。
4 结束语
这种基于企业实际工况需求设计的轻型六自由度串联机器人,采用Arduino 开发环境,以Mega 2560 为硬件核心搭建,具有多自由度、功能扩展性较好且成本较低的特点。本文对该机器人进行了结构分析和控制系统设计,并采用D-H法进行了运动学正、逆问题分析和深入研究,实现了使用Arduino 硬件系统对机器人的控制并充分发挥了其优越的性能。通过实验调试和在企业现场的安装运行,目前该机器人在完成企业指定工作中运行安全可靠,同时也实现了成本降低,达到了最初的设计和开发预期。
值得一提的是,这种串联机器人结构基于Arduino开发的控制系统,在适当调整还可被开发使用于多种功能用途,通过合理的运动参数分配甚至可获得非常理想的运行效果,在应用上具有很强的适应性。