Conveyor Tracking Short/zh-hans

From SoftMC-Wiki
Jump to: navigation, search
语言: English  • 中文(简体)‎

TOP2.png

关于本文档

本文档介绍了softMC控制器的传送带跟踪功能。 它不提供有关每个命令或属性的详细描述,但可以在softMC-wiki中找到。 主要特点

  • 与移动物体进行直接的即时同步
  • 外源的隐含接合
  • 移动坐标系(移动物体)的相对运动
  • 与移动对象的动态重新同步

传送带跟踪概述

传送带跟踪是softMC控制器主要用于包装应用中的的特征,其中机器人末端执行器需要与移动物体同步。 传送带跟踪通常用于两种类型的任务。一种类型的任务是在位于移动的传送带上的容器中,将物品插入或从中提取物品。 机器人必须与传送带一起移动,使其相对于移动物体的运动为零,否则会撞击容器的侧面。另一种类型的任务在位于移动的传送带上拾取物体。 在这个任务中,机器人工具尖端(夹持器)需要与物体接触,只要需要通过机械方式或通过建立足够的吸入压力(真空)来完全抓取它。 传送带有一个运动方向,称为流。上游位置是物体首先“出现”的位置,下游位置是物体不再在机器人范围内的位置。 物体的移动由外部位置变量(MasterSource)监视。 如果在softMC控制下传动装置由驱动器驱动,变量通常是轴位置指令(pcmd)或反馈(pfb)。 如果传送带没有被softMC轴的其中一个驱动,则使用轴(辅助编码器输入)的外部位置信号(pext)。 传送带是一种移动坐标系,它是用于跟踪外部坐标源(如机器人或传送带)的通用数据类型。 因此,在MC-BASIC声明语句中使用移动坐标系。

典型的传送带跟踪设置

典型的传送带跟踪设置如图1所示。

Figure 1. Typical conveyor tracking setup
Figure 1. Typical conveyor tracking setup

连接视觉系统

具有视觉系统的传送带跟踪系统如图2所示。

Figure 2. Conveyor tracking with vision system
Figure 2. Conveyor tracking with vision system


传送带跟踪系统包括触发位置,通过连接到传送带驱动器的输入探头的传感器来检测移动物体。 当检测到在传送带上移动的物体时,捕获其确切的位置。 同时,视觉系统拍摄快照并计算对象的XYR坐标。 通过知道触发位置与工作窗口开始之间的距离(上游位置),机器人可以定位到传送带(捕获位置+距离偏移)。 一旦物体进入工作窗口,机器人将移动到该位置; 一旦与传送带同步,机器人可以对物体执行动作。

将传送带定义为系统变量

传送带被定义为与机器人模型的点类型相关联的全局数据类型; 它通常在配置文件中定义(CONFIG.PRG):

Common shared <Conveyor Name> as moving frame of <Point Type>

<Conveyor Name>是表示传送带的新变量(对象)的名称。 标准命名规则适用。
<Point Type> 是传送带代表的坐标系的类型。它应该与正在使用的机器人的点类型(例如,XYZ,XYZR,XYZYPR)相同。
例如:

common shared Conv as moving frame of XYZYPR

这将Conv定义为XYZYPR(X,Y,Z,Yaw,Pitch,Roll)类型的传送带。

传送带可以是线性或旋转,由类型属性定义:

<Conveyor Name>.type = n

值:
0 – 线性
1 – 旋转
2 – 非耦合旋转

传送带的驱动变量

驱动传送带的变量是其主源,由MasterSource属性定义,它定义移动传送带的轴(或组)。 该变量可以是诸如轴的位置(例如,位置指令,位置反馈或外部位置)的一维变量。 它也可以是一组独立轴的位置,或者一组完整的位置矢量。 独立位置变量的数量定义了传送带属性ndof,其表示传送带的自由度数。 例如:

Conv.Type = 1
Conv.Ndof = 1
Conv.MasterSource = A1.Pext

该示例表示了由轴1(a1)的外部位置命令驱动的一维线性传送带的声明。 如果传送带由外部电机(即不受softMC控制的电机)启动,则通过将外部编码器物理连接到连接到驱动器(pext)的外部位置输入(辅助编码器)的传送带来测量其运动。

将传送带连接到机器人

在开始传送带跟踪之前,传送带必须通过声明来连接到机器人,例如:

Puma.MasterFrame = conv

该命令建立了传送带和机器人之间的关系(链接),并保持传送带和机器人位置的独立性。 此命令不会激活传送带跟踪。 仅当属性从属设置为5时,实际的传送带跟踪才会开始。

传送带的工作窗口

机器人可以与传送带同步的区域或范围称为工作窗口。 对于线性传送带,它由上游和下游位置定义。 对于旋转传送带,圆形路径由位于上游和下游位置之间的附加点(ArcPoint)定义。 通过将它们的值分配给任何其他位置数据类型(作为表达式或常量)来定义这些点。例如:

Conv.UpStream[1] = #{100,0,0,0,0,0}
Conv.DownStream[1] =  #{250,0,0,0,0,0}

在这个例子中,线性传送带的工作窗口沿着与X坐标平行的线定义,从X = 100开始,以X = 250结束。
注意,该示例中的索引[1]表示传送带已经被定义为一个自由度(nd = 1)
要定义传送带运动,需要为工作窗口(上游,下游和旋转传送带的ArcPoint)中的每个点分配主坐标。 两个传送带属性UpMaster[1]和DownMaster[1]设置主轴的值,并对应于UpStream和DownStream点。 因此,当主轴处于UpMaster[1]位置时,传送带上的物体处于UpStream点。 这些点被触发位置所抵消,这将在本文后面讨论。) 例如:

Conv.UpMaster[1] = 1000
Conv.DownMaster[1] = 2000

在该示例中(假设偏移为0),当主轴(a1.pext)为1000 (a1.pext = 1000)时,传送带对象位于#{100,0,0,0,0,0}。 当主轴(a1.pext)为2000 (a1.pext = 1000)时,传送带物体位于#{250,0,0,0,0,0}处。这也意味着传送带每1 mm 的主轴单位为1000/150 = 6.66

Figure 3. Catching the item on a rotary conveyor “MOVES CNV.ZERO”
Figure 3. Catching the item on a rotary conveyor “MOVES CNV.ZERO”

传送带位置循环

传送带内在的循环。传送带的主位置是不断增加的值,为了获得传送带的周期性,必须引入主轴位置的触发偏移。偏移值由触发命令发出。 例如:

Trigger puma Ndof = 1 Value = 300

在此示例中,触发命令将主轴的主位置偏移300个位置单元。这意味着下一个工作窗口将在主站位置的1300到2300之间。触发器可以缓冲; 最多可以在系统中存储16个触发值。到目前为止输入的触发值的数量可以使用属性<conveyor> .noi进行查询。 每次启动传送带跟踪(slave=5)时,将一个值从触发缓冲区中取出。 每次传送带脱开时,跟踪被分离(slave=0),另一个值从缓冲器中取出。触发是启动跟踪的条件。 触发命令指定用作参考点的主位置。跟踪过程中的所有主位置相对于此点进行重新计算。如果在实际触发和位置更新之间存在延迟,则可以通过向触发命令指定的位置添加偏移来补偿差异。偏移量由用户决定。 触发命令中指定的值作为确定工作窗口的参考,如下例所示。

Figure 4.  Master position values
Figure 4. Master position values


A(UpMaster [1])和B(DownMaster [1])是上下限位置。
X是触发命令中指定的值。
M是当前的主位置。 因此,目前窗口的实际限制:
下限: L = X + A
上限: U = X + B
IsInWindow = (L <= M) 和 (M <= U)

变量监控

以下变量用于监测传送带跟踪过程: <conveyor>.IIW (Is In Window)(0或1)表示机器人是否在工作窗口内。 <robot>.IMFS (Is Motion Frame Synchronized) (0或1)表示机器人是否与传送带完全同步。 <conveyor>.here传送带上的运动物体的实际位置。 <conveyor>.zero是触发后对象出现的工作窗口内的位置。

Figure 5.  Working window and monitoring variables
Figure 5. Working window and monitoring variables

开始传送带跟踪

通过更改机器人的从属性来启动传送带跟踪。 例如: Puma.slave = 5 此命令启动同步过程。 如果没有其他命令生效,则机器人末端执行器将与从属性更改的位置平行移动。 在传送带跟踪中有三个不同的阶段:  Synchronization  Tracking  De-synchronization

Figure 6. Synchronization – De-synchronization sequence during conveyor tracking
Figure 6. Synchronization – De-synchronization sequence during conveyor tracking

第一个阶段是同步。在这个阶段中,机器人试着跟上传送带的位置运动。如果传送带速度太快,机器人不能跟上。 机器人同步的运动学参数为:
puma.velocitySyncTran
puma.accelerationSyncTran
puma.jerkSyncTran

puma.velocitySyncRot
puma.accelerationSyncRot
puma.jerkSyncRot

这些参数都需要设置为比机器人(vtran,...)的标准参数略高的值。 一旦从机从0变为5,同步开始。 在同步期间,<robot> .imfs = 0。一旦机器人与传送带同步,将<robot> .imfs标志设置为1.一旦从属状态改变,传送带上的物体就会开始移动。 这可以通过属性<Conveyor>.here来追踪,这返回传送带运动的位置。 如果物体退出工作窗口,则报告错误,并且传送带跟踪被分离。 一旦完成了移动传送带上的动作,机器人就脱离传送带。 此阶段称为去同步,在此期间<robot> .imfs = 1。去同步参数为:
puma.velocityDeSyncTran
puma.accelerationDeSyncTran
puma.jerkDeSyncTran

puma.velocityDeSyncRot
puma.accelerationDeSyncRot
puma.jerkDeSyncRot
至关重要的是机器人至少要比传送带快两倍。传送带的最大速度和其他限制由以下设定: Conv.VelocityMaxRot= …
Conv.AccelerationMaxRot = …
Conv.JerkmaxRot= …
这些仅是监视值。 如果超过任何一个,报告错误。

传送带上物体原点的位置

移动对象在工作窗口中出现的位置是通过属性<Conveyor> .zero获取的,该位置是位置数据类型。它表示同步开始时对象的位置; 如果在主位置变得大于<conveyor> .UpMaster [1]之前同步开始,则返回<transport> .UpStream [1]值。

传送带跟踪期间的绝对运动

"机器人总位置"是将机器人的笛卡尔位置转换成关节位置,实际上是发送到运动总线(EtherCAT)上的驱动器的坐标。 传送带跟踪期间的总位置由机器人运动和传送带运动两部分组成。 机器人运动是运动命令(如MOVE和MOVES)引入的坐标变化。 传送带运动是传送带在不同阶段(同步,跟踪,去同步)的运动。 总机器人位置表示为: Total = Robot + Conveyor 传送带坐标为:
Conveyor(t) = CNV(t) - CNV(t0)
t0是发出 "slave=5" 的时刻

对线性传送带,CNV是:
CNV(t) = (DownStream - UpStream)*(Master(t) - Trigger)/ (DownMaster - UpMaster[1])
Master(t)是t时刻的传送带主轴的位置。
DownStream, Upstream, DownMaster, and UpMaster是传送带参数。

与MC-BASIC变量的关系:
Conv.here = CNV(t)
Conv.zero = CNV(0)

在这背后是,当传送带移动时和传送带静止时,查询/命令的机器人位置是相同的。因此,为了示教传送带上的点,只需停止传送带,并将机器人移动到皮带旁边的目标位置。机器人运动,即主方程中的机器人变量,是机器人在传送带跟踪过程中的绝对位置; 它等于作为运动命令的目标点输入的位置(例如,MOVES / CIRCLE)。

详细说明

参考: Conveyor_Tracking