当前位置:首页 > 新型工业化 >机械手的运动控制(机械手运动控制系统设计)

机械手的运动控制(机械手运动控制系统设计)

视频教程:《视频教程:ZMC运动控制器SCARA机械臂应用快速入门》

今天我们来学习一下ZMC运动控制器SCARA机械臂应用的快速介绍。

机械手的运动控制(机械手运动控制系统设计)

控制器接线参考

01 概述

SCARA(SelectiveComplianceAssemblyRobotArm,中文译:选择性顺应性装配机械臂)是一种特殊类型的圆柱坐标工业机器人。 SCARA机器人可以制造成各种尺寸,最常见的工作半径范围为100毫米至1000毫米。此类SCARA机器人的有效负载范围为1公斤至200公斤。 SCARA系统在x和y方向上具有柔顺性,并且在Z轴方向上具有良好的刚度。它还具有两杆串联结构的特点,使其适合搬运零件和装配工作。因此,SCARA系统广泛应用于印刷电路板、电子元件、集成电路板的组装。此外,还广泛应用于塑料、汽车、电子产品、医药、食品等工业领域。

ZMC运动控制器有6轴、12轴、20轴、30轴、32轴、60轴、64轴等不同电机轴数的产品,支持直线插补、任意圆弧插补、空间圆弧和螺旋插值。补偿、电子凸轮、电子齿轮、同步跟随、虚拟轴设置、机器人指令等。本文使用ZMC运动控制器来介绍机器人命令CONNFRAME在SCARA机器人中的应用。

ZMC运动控制器采用简单易懂的BASIC程序二次开发机器人程序,支持多文件多任务运行,支持自定义指令,并提供强大的ZDevelop开发环境,支持PC机模拟运行和在线跟踪调试,兼容VC的操作习惯,使复杂的运动控制变得简单明了。运动控制器的机械手程序也可以使用常见的PC上位机开发软件,如VC、VB、VS、C++、C#等。根据不同的开发环境,从正数官网下载PC函数库编程资料Motion并找到对应的dll连接库及相关文件,编程时使用ZAux_Direct_Connframe和ZAux_Direct_Connreframe指令建立机器人连接。

CONNFRAME指令使得SCARA机械臂运动的实现在编程上变得简单、方便;运动过程中电机动作平稳、精准;客户对ZMC产品的性能和质量一致认可,正动科技也将满足不同客户的不同需求。定制特殊指令和控制器型号。

02 系统架构

01 SCARA机械手

SCARA机械手支持2-4轴,大关节轴+小关节轴【+Z轴】【+末端旋转轴】。

本系统应用于标准4轴SCARA机械手,有2个关节轴X、Y,上下Z轴,末端旋转轴R。控制器需要支持机器人功能。将编辑好的程序离线下载到控制器中(也可以使用PC实时监控或发送指令)。您可以使用触摸屏示教方式编辑所需的运动轨迹。

02 ZMC运动控制器

ZMC406总线控制器是正动科技推出的新一代网络6轴运动控制器(可通过扩展模块扩展轴数,最多支持32轴),带有6个脉冲轴接口。

支持RS232、RS485、以太网、U盘、CAN、EtherCAT通讯接口。 EtherCAT 刷新周期高达500us。通过EtherCAT总线,最多可扩展4096个隔离输入或输出端口。输出口的输出电流可达300mA,可直接驱动一些电磁阀。各轴输出脉冲频率可达10MHz。使用优化的网络通信协议可以实现实时运动控制。支持编码器位置测量,可配置为手轮输入方式。单台计算机最多支持同时连接256 个ZMC 控制器。

该运动控制器与PCI运动控制卡对比

它具有以下优点:

1 不使用插槽,稳定性更好;

2 可选择MINI电脑或ARM工控机,降低综合成本;

3 控制器直接作为接线板使用,节省空间;

4、程序可在控制器上并行运行,只需与PC机进行简单的交互,降低PC机软件的复杂度等优点。

ZMC控制器通过ZDevelop开发环境进行调试,这是一个非常方便的编程、编译和调试环境。 ZDevelop可以通过串口、485、USB或以太网连接到控制器。

可以使用VC、VB、VS、C++Builder、C#等软件开发应用程序。 ZDevelop软件在调试时可以同时连接控制器,程序运行时需要动态库zmotion.dll。

03 实施方案

该解决方案采用正向运动ZMC406模型控制器来实现SCARA机械臂的精确平滑运动。

在支持机械臂功能的控制平台上,通过指令建立机械臂实际关节轴与虚拟轴的连接,向虚拟轴发送运动控制指令,自动计算关节轴的运动路径通过机械臂算法来控制关节轴的运动。

将机械手上的关节轴依次连接到控制器的脉冲轴接口上。

01 与机器人相关的概念

1) 关节轴和虚拟轴

关节轴

关节轴是指实际机械结构中的旋转关节,程序中一般显示旋转角度(有些结构也是平移轴)。

由于电机与旋转关节之间会存在减速比,因此在设置UNITS时,应根据实际关节旋转情况进行设置。同时,在表中填写结构参数时,也应按旋转接头中心计算,而不是按电机轴中心计算。

虚拟轴

虚拟轴实际上并不存在,而是被抽象为世界坐标系的六个自由度,依次为X、Y、Z、RX、RY、RZ。可以理解为笛卡尔坐标系的三个直线轴和三个旋转轴,用于确定机械手的加工轨迹和末端工作点坐标。

2)正解运动和逆解运动

正确的

通过操作关节坐标,然后根据机械结构参数计算出末端位置在笛卡尔坐标系中的空间位置,这个过程称为正解运动。此时操作实际关节轴,虚拟轴自动计算坐标。

控制器使用CONNREFRAME指令建立正解模式。该指令作用于虚拟轴。此时只能操作关节轴。关节轴也可以进行各种运动,但实际的运动轨迹并不是直线或圆弧。正解模式一般用于手动操作。调整关节位置或将开机点归零。

逆解

给定笛卡尔坐标系中的空间位置,可以推导出每个关节轴的坐标。这个过程称为逆解运动。此时操作虚拟轴,实际关节轴自动解算坐标并移动。

控制器使用CONNFRAME指令建立逆解模式。该指令作用于关节轴。此时只能对虚拟轴进行操作,并向虚拟轴发送运动指令。它可以在笛卡尔坐标系下制作直线、圆弧、空间圆弧等。运动时,关节轴在CONNFRAME的作用下会自动运动到逆解后的位置。

02 机器人指令

执行命令:CONNFRAME--建立逆解连接

描述:将当前关节坐标系的目标位置与虚拟坐标系的位置关联起来;关节坐标系的最大移动速度受SPEED参数限制;当发生关节轴报警等错误时,该动作将被取消。

语法:CONNFRAME(frame, tablenum, viraxis0, viraxis1)

框架:坐标系类型,1-scara,(如需定制特殊机器人类型,请联系厂家)。

tablenum:存储转换参数的TABLE位置。当frame=1时,存储:第一关节轴长度、第二关节轴长度、第一关节轴一转脉冲数、第二关节轴一转脉冲数。数字。

viraxis0:虚拟坐标系的第一个轴

viraxis1:虚拟坐标系的第二轴

执行命令:CONNREFRAME--建立正解连接

描述:将虚拟轴的坐标与关节轴的坐标关联起来。关节轴移动后,虚拟轴自动移动到相应位置。

语法:CONNREFRAME(frame, tablenum, viraxis0, viraxis1)

frame: 坐标系类型,1-scara,(如果需要定制特殊机器人类型,请联系厂家)。

tablenum: 存储转换参数的TABLE 位置。当frame=1时,存储:第一关节轴长度、第二关节轴长度、第一关节轴一转脉冲数、第二关节轴一转脉冲数。

axis0:关节坐标系第一轴

axis1:关节坐标系的第二轴

FRAME说明:Frame=1,SCARA,如下图所示,旋转轴为关节轴,对应的终点位置为虚拟位置。

03 机器人使用操作步骤

1)确认电机转向是否正确。

定义了电机方向和角度范围。各关节电机的前进方向如下图蓝色箭头所示。

2) 确认机械手各关节轴与控制器命令参数的轴顺序对应。

选择各关节轴号及对应的虚拟轴号。

3) 设置表中机械结构的相关参数。

建立机器人连接时,需要按照以下顺序将机械结构参数填充到TABLE数组中。

4) 设置关节轴参数和虚拟轴参数

必须正确设置各轴的轴类型和脉冲当量。机械臂所有虚拟轴和关节轴的长度单位必须统一,一般以mm为单位。

虚拟轴的UNITS与实际发送的脉冲数无关。用于设置运动精度。一般建议虚拟轴每毫米脉冲数设置为1000,即精度为小数点后3位。

5) 将各关节轴移动到指定的零位。

建立机器人算法时,需要有零点位置作为参考,并且需要确定电机旋转。

当两个关节轴的零点指向虚拟X轴正方向时,SCARA的零点位置为一条直线。

坐标方向:当关节轴处于零点位置时,虚拟轴零点坐标为(L1+L2,0),上下伸缩轴的零点位置无特殊要求。

建立逆解连接后,虚拟轴的DPOS坐标自动修正为(L1+L2,0)。

6) 使用CONNREFARME指令建立正确的求解模式。

正确的解决方式:

BASE(Viraxis_x, Viraxis_y, [Viraxis_v] [,Viraxis_z])

CONNREFRAME(1,tablenum, Axis_a,Axis_b[, Axis_c][,Axis_d])

等待加载

建立成功后,虚拟轴MTYPE会显示为34,IDLE会显示为0。此时只能操作关节轴在关节坐标系中移动,虚拟轴会自动计算出关节轴的位置。笛卡尔坐标系中的终点工作点。

7)操作关节轴调整机械手的姿态,确认运动时不会出现干扰(有些结构只有一种姿态)。

从数学上讲,机械臂位姿是多组关节轴对同一组虚拟轴值的解。即当机械臂运动到直角坐标系中的某个坐标点A时,可以有多条运动轨迹,这些运动轨迹对应着不同的姿态。

SCARA机械手有两种姿势,左手姿势和右手姿势。关节轴只能在正解模式下选择。

通过FRAME_STATUS命令查询当前姿态。

在逆解模式下运行时,由于机械结构问题,可能会出现无法移动到某个位置或者刚体干扰等问题。这种情况下就需要调整姿势。

只有在正确的解算模式下操作关节轴才能调整机器人姿态。

8) 使用CONNFARME指令切换到逆解模式。

逆解方式:

BASE(Axis_a, Axis_b [,Axis_c] [,Axis_d])

CONNFRAME(1,tablenum, Viraxis_x, Viraxis_y, [Viraxis_v] [,Viraxis_z]) 等待加载

建立成功后,关节轴MTYPE会显示为33,IDLE会显示为0。此时只能操作虚拟轴在直角坐标系中移动,关节轴会自动计算如何联合在关节坐标系中移动。

9) 选择虚拟轴并发送运动指令以供使用。

BASE(Viraxis_x, Viraxis_y[,Viraxis_v] [,Viraxis_z])

移动(dis_x,dis_y [,dis_v] [,dis_z])

04 应用实例

例如,下图所示的工件是在自动焊接设备上加工的。 SCARA机械手的两个关节轴L1和L2的长度均为250。待焊接的轨迹为跑道型,1为初始零点。此时关节轴坐标为(0,0),虚拟轴坐标为(500,0)。

从零点移动到加工起始点时,需要在移动的第二段开始焊接。关节轴首先返回到起始位置,然后在Z 轴下降的同时移动到工件顶部。延迟50ms开启焊接IO(因为焊接液开启需要一定的时间,否则起点处会出现漏焊),然后按照轨迹运行。轨道焊接完成后,IO闭合,Z轴上升。

处理指令代码:

BASE(6,7,8) '启动反解连接后,使用运动指令控制虚拟轴运行

MOVEABS(300,0,20) '第一条直线从零点(500,0,0)移动到(300,0,20)

MOVE_OP(0,1) '打开焊接IO

MOVE_DELAY(50) '延迟50ms

MOVEABS(300,100,20) '第二条直线从焊接起始点(300,0,20)移动到(300,100,20)

MOVECIRCABS(200,100,250,100,0) '第三条弧,(300,100,20)移动到(200,100,20)

MOVEABS(200,-100,20) '第4 条直线从(200,100,20) 移动到(200,-100,20)

MOVECIRCABS(300,-100,250,-100,0) '第5条弧线,(200,-100,20)移动到(300,-100,20)

MOVEABS(300,0,20) '第6 条直线从(300,-100,20) 移动到(300,0,20)

MOVE_OP(0,0) '处理完成,关闭IO

MOVEABS(300,0,50) 'Z轴上升

示波器采样迹线:

SCARA机械臂应用例程如下:

'************电机及机械手参数定义************

DIM L1'大臂长

DIM L2'臂长

DIM L3 'X方向偏移

DIM ZDis '轴旋转一圈,z轴移动距离

L1=250

L2=250

L3=0

ZDis=0

DIM u_m1 '电机1一转的脉冲数

DIM u_m2 '电机2一转的脉冲数

DIM u_mz '电机z 一转的脉冲数

DIM u_mv '电机v一转的脉冲数

u_m1=3600

u_m2=3600

u_mz=3600

u_mv=3600

DIM i_1 '关节1传动比

DIM i_2 '关节2传动比

DIM i_z '关节z轴传动比

DIM i_v '关节v传动比

i_1=2

i_2=2

i_z=2

i_v=2

DIM u_j1 '关节1一转实际脉冲数

DIM u_j2 '关节2一转实际脉冲数

DIM u_jz '关节z一圈实际脉冲数

DIM u_jv '关节v一圈实际脉冲数

u_j1=u_m1*i_1

u_j2=u_m2*i_2

u_jz=u_mz*i_z

u_jv=u_mv*i_v

DIM p_z 'z轴节距

p_z=1.5

'********************关节轴设置********************

BASE(0,1,2,3) '选择关节轴号

ATYPE=1,1,1,1 '设置轴类型为脉冲轴

UNITS=u_j1/360,u_j2/360,u_jv/360,u_jz/p_z '将z轴单位设置为1mm的脉冲数,将其他轴设置为1的脉冲数

DPOS=0,0,0,0 '设置关节轴位置,根据实际情况修改。

SPEED=100,100,100,100 '速度参数设置

加速=1000,1000,1000,1000

减速=1000,1000,1000,1000

CLUTCH_RATE=0,0,0,0 '使用关节轴的速度和加速度限制

'****************虚拟轴设置****************

基地(6,7,8,9)

ATYPE=0,0,0,0 '设置为虚拟轴

TABLE(0,L1,L2,u_j1,u_j2,u_jv, L3,ZDis) '按照手册说明填写参数

UNITS=1000,1000,u_jv/360,1000 '运动精度必须提前设置,不能中途更改

SPEED=200,200,200,200 '速度参数设置

加速=1000,1000,1000,1000

减速=1000,1000,1000,1000

SRAMP=100,100,100,100'S曲线

MERGE=ON '启用连续插值

CORNER_MODE=2 '开始转角减速

DECEL_ANGLE=15*(PI/180) '起始减速角度15度

STOP_ANGLE=45*(PI/180)'减速到最低速度的角度为45度

'********************建立机器人连接********************

而1

IF SCAN_EVENT(IN(0))0 THEN '输入0上升沿触发

'建立正确的解并操作关节轴来调整机械手的姿态

BASE(6,7,8,9) '选择虚拟轴号

CONNREFRAME(1,0,0,1,2,3) '以第0/1轴为关节轴,开始正解连接。

WAIT LOADED '等待运动加载

?'正确的解决方案模式'

ELSEIF SCAN_EVENT(IN(0))0 THEN '输入0下降沿触发

'建立反解并操作虚拟轴运行加工程序

BASE(0,1,2,3) '选择关节轴号

CONNFRAME(1,0,6,7,8,9) '第6/7轴作为虚拟XY轴,开始逆解连接。

WAIT LOADED '等待运动加载,此时虚拟轴的位置将自动调整。

?'逆解模式'

BASE(6,7,8) '启动反解连接后,使用运动指令控制虚拟轴运行

扳机

MOVEABS(300,0,20) '第一条直线从零点(500,0,0)移动到(300,0,20)

MOVE_OP(0,1) '打开焊接IO

MOVE_DELAY(50) '延迟50ms

MOVEABS(300,100,20) '第二条直线从焊接起始点(300,0,20)移动到(300,100,20)

MOVECIRCABS(200,100,250,100,0) '第三条弧,(300,100,20)移动到(200,100,20)

MOVEABS(200,-100,20) '第4 条直线从(200,100,20) 移动到(200,-100,20)

MOVECIRCABS(300,-100,250,-100,0) '第5条弧线,(200,-100,20)移动到(300,-100,20)

MOVEABS(300,0,20) '第6 条直线从(300,-100,20) 移动到(300,0,20)

MOVE_OP(0,0) '处理完成,关闭IO

MOVEABS(300,0,50) 'Z轴上升

万一

温德

05 机器人仿真软件

将程序下载到控制器并运行。建立正向或反向解连接后,打开正向运动机械臂仿真软件ZRobotView。点击“连接”,弹出如下窗口,选择控制器IP。如果没有控制器,可以连接模拟器查看效果。

选择控制器IP并连接后,将显示以下机械手型号。此时可以运行运动指令或手动调试来检查机械手的运行情况。

“ZMC运动控制器SCARA机械臂应用快速入门指南”就到此为止。更多学习视频以及图文详细讲解,请关注我们的公众号“正运动助手”。

本文由正动科技原创。欢迎大家转载,共同学习,共同提高中国智能制造水平。文章版权归郑运动科技所有。如有转载,请注明文章出处。

最新资讯

推荐资讯