Difference between revisions of "Conveyor Tracking Short/zh-hans"

From SoftMC-Wiki
Jump to: navigation, search
(Created page with "{{Languages}} =About this Document= This document presents a general overview of the softMC controller’s conveyor tracking feature. It does not provide detailed descriptio...")
 
(BackToTop button)
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Languages}}
+
{{Languages|Conveyor_Tracking_Short}}
  
 +
<div id="BackToTop"  class="noprint" style="background-color:; position:fixed; bottom:32px; left:95%; z-index:9999; padding:0; margin:0;">
 +
<span style="color:blue; font-size:8pt; font-face:verdana,sans-serif; border:0.2em outset:#ceebf7; padding:0.1em; font-weight:bolder; -moz-border-radius:8px; ">
 +
[[Image:TOP2.png|50px|link=#top]] </span></div>
 +
=关于本文档=
 +
本文档介绍了softMC控制器的传送带跟踪功能。 它不提供有关每个命令或属性的详细描述,但可以在softMC-wiki中找到。
 +
主要特点
 +
* 与移动物体进行直接的即时同步
 +
* 外源的隐含接合
 +
* 移动坐标系(移动物体)的相对运动
 +
* 与移动对象的动态重新同步
  
=About this Document=
+
=传送带跟踪概述=
This document presents a general overview of the softMC controller’s conveyor tracking feature. It does not provide detailed descriptions of every command or property, which can be found in the softMC-wiki.
+
传送带跟踪是softMC控制器主要用于包装应用中的的特征,其中机器人末端执行器需要与移动物体同步。
Main Features
+
传送带跟踪通常用于两种类型的任务。一种类型的任务是在位于移动的传送带上的容器中,将物品插入或从中提取物品。 机器人必须与传送带一起移动,使其相对于移动物体的运动为零,否则会撞击容器的侧面。另一种类型的任务在位于移动的传送带上拾取物体。 在这个任务中,机器人工具尖端(夹持器)需要与物体接触,只要需要通过机械方式或通过建立足够的吸入压力(真空)来完全抓取它。
* Direct, on-the-fly synchronization with the moving object
+
传送带有一个运动方向,称为流。上游位置是物体首先“出现”的位置,下游位置是物体不再在机器人范围内的位置。
* Implicit engagement of the outer source
+
物体的移动由外部位置变量('''MasterSource''')监视。 如果在softMC控制下传动装置由驱动器驱动,变量通常是轴位置指令('''pcmd''')或反馈('''pfb''')。 如果传送带没有被softMC轴的其中一个驱动,则使用轴(辅助编码器输入)的外部位置信号('''pext''')。
* Relative movement to the moving frame (the moving object)
+
传送带是一种移动坐标系,它是用于跟踪外部坐标源(如机器人或传送带)的通用数据类型。 因此,在MC-BASIC声明语句中使用移动坐标系。
* Dynamic re-synchronization with the moving object
 
  
=Conveyor Tracking Overview=
+
=典型的传送带跟踪设置=
Conveyor tracking is a feature of the softMC controller used mostly in packing applications in which the robot end effector needs to be synchronized with a moving object.
+
典型的传送带跟踪设置如图1所示。
Conveyor tracking is typically used for two types of tasks.
 
One type of task is inserting or extracting an item into/from a container that is located on a moving conveyor. The robot must move along with the conveyor so that its motion relative to the moving object is zero, otherwise it will impact the sides of the container.
 
The other type of task is picking up an object located on a moving conveyer. In this task the robot tool-tip (gripper) needs to be in contact with the object for as long as is needed to fully grasp it, either mechanically or by establishing a sufficient level of suction pressure (vacuum).
 
The conveyor has one direction of movement, called the stream. The upstream position is where the object first “appears”, and the downstream position is where the object is no longer within the robot’s reach.
 
Movement of the object is monitored by an external position variable ('''MasterSource'''). If the conveyor is actuated by the drive under softMC control, the variable is usually the axis position command ('''pcmd''') or feedback ('''pfb'''). If the conveyor is not actuated by one of the softMC’s axis, the external position signal ('''pext''') of an axis (secondary encoder input) is used.
 
Conveyors are a type of moving frame, which is a generalized data type used to track external coordinate sources such as robots or conveyors. Therefore moving frame is used in the MC-BASIC declaration statements.
 
 
 
=Typical Conveyor Tracking Setup=
 
A typical conveyor tracking setup is shown in Figure 1.
 
 
   
 
   
 
[[File:CNV_PIC1.PNG|700px| Figure 1. Typical conveyor tracking setup]]<br>
 
[[File:CNV_PIC1.PNG|700px| Figure 1. Typical conveyor tracking setup]]<br>
 
Figure 1. Typical conveyor tracking setup
 
Figure 1. Typical conveyor tracking setup
  
=Connecting a Vision System=
+
=连接视觉系统=
A conveyor tracking system with a vision system is shown in Figure 2.
+
具有视觉系统的传送带跟踪系统如图2所示。
 
   
 
   
 
[[File:CNV_PIC2.PNG | 700px | Figure 2. Conveyor tracking with vision system]]<br>
 
[[File:CNV_PIC2.PNG | 700px | Figure 2. Conveyor tracking with vision system]]<br>
Line 32: Line 32:
  
  
The conveyor tracking system includes a trigger position at which a moving object is detected by a sensor connected as an input probe to the conveyor drive. When the object moving on the conveyor is detected, its exact position is captured. Simultaneously the vision system takes a snapshot and computes the XYR coordinates of the object.
+
传送带跟踪系统包括触发位置,通过连接到传送带驱动器的输入探头的传感器来检测移动物体。 当检测到在传送带上移动的物体时,捕获其确切的位置。 同时,视觉系统拍摄快照并计算对象的XYR坐标。
By knowing the distance between the trigger position and the beginning of the working window (upstream position), the robot can be positioned to the conveyor (captured position + distance offset). Once the object enters the working window, the robot will move to it; once synchronized with the conveyor, the robot can perform an action upon the object.
+
通过知道触发位置与工作窗口开始之间的距离(上游位置),机器人可以定位到传送带(捕获位置+距离偏移)。 一旦物体进入工作窗口,机器人将移动到该位置; 一旦与传送带同步,机器人可以对物体执行动作。
  
=Defining the Conveyor as a System Variable=
+
=将传送带定义为系统变量=
A conveyor is defined as a global data type associated with the point type of the robot model; it is usually defined in the configuration file (CONFIG.PRG):<br>
+
传送带被定义为与机器人模型的点类型相关联的全局数据类型; 它通常在配置文件中定义(CONFIG.PRG):<br>
 
<pre>
 
<pre>
 
Common shared <Conveyor Name> as moving frame of <Point Type>
 
Common shared <Conveyor Name> as moving frame of <Point Type>
 
</pre>
 
</pre>
  
<Conveyor Name> is name of the new variable (object) representing the conveyor. Standard rules for naming apply.<br>
+
<Conveyor Name>是表示传送带的新变量(对象)的名称。 标准命名规则适用。<br>
<Point Type> is the type of the coordinate system the conveyor represents. It should be the same as the point type of the robot that is being used (e.g., XYZ, XYZR, XYZYPR).<br>
+
<Point Type> 是传送带代表的坐标系的类型。它应该与正在使用的机器人的点类型(例如,XYZ,XYZR,XYZYPR)相同。<br>
For example:<br>
+
例如:<br>
 
<pre>
 
<pre>
 
common shared Conv as moving frame of XYZYPR
 
common shared Conv as moving frame of XYZYPR
 
</pre>
 
</pre>
This defines Conv as a conveyor of type XYZYPR (X, Y, Z, Yaw, Pitch, Roll).
+
这将Conv定义为XYZYPR(X,Y,Z,Yaw,Pitch,Roll)类型的传送带。
  
Conveyors can be linear or rotary, which is defined by the type property:
+
传送带可以是线性或旋转,由类型属性定义:
 
<pre>
 
<pre>
 
<Conveyor Name>.type = n
 
<Conveyor Name>.type = n
 
</pre>
 
</pre>
Values:<br>
+
:<br>
0 – linear<br>
+
0 – 线性<br>
1 – rotary<br>
+
1 – 旋转<br>
2 – rotary decoupled<br>
+
2 – 非耦合旋转<br>
  
=Driving Variable of a Conveyor=
+
=传送带的驱动变量=
The variable driving a conveyor is its master source, which is defined by the MasterSource property, which defines the axis (or group) that moves the conveyor.
+
驱动传送带的变量是其主源,由MasterSource属性定义,它定义移动传送带的轴(或组)。
The variable can be a one-dimensional variable such as a position of an axis (e.g., position command, position feedback or external position). It can also be an array of independent axes’ positions, or a complete position vector of a group.  
+
该变量可以是诸如轴的位置(例如,位置指令,位置反馈或外部位置)的一维变量。 它也可以是一组独立轴的位置,或者一组完整的位置矢量。  
The number of independent position variables defines the conveyor property ndof, which represents the number of degrees of freedom of a conveyor.
+
独立位置变量的数量定义了传送带属性ndof,其表示传送带的自由度数。
For example:<br>
+
例如:<br>
 
<pre>
 
<pre>
 
Conv.Type = 1
 
Conv.Type = 1
Line 68: Line 68:
 
Conv.MasterSource = A1.Pext
 
Conv.MasterSource = A1.Pext
 
</pre>
 
</pre>
This example shows a declaration of a one-dimensional linear conveyor driven by an external position command of axis 1 (a1).
+
该示例表示了由轴1(a1)的外部位置命令驱动的一维线性传送带的声明。
If the conveyor is actuated by an external motor (that is, a motor not under control of softMC), its movement is measured by physically attaching an external encoder to the conveyor belt that is connected to an external position input (secondary encoder) of the drive ('''pext''').
+
如果传送带由外部电机(即不受softMC控制的电机)启动,则通过将外部编码器物理连接到连接到驱动器('''pext''')的外部位置输入(辅助编码器)的传送带来测量其运动。
  
=Linking the Conveyor to the Robot=
+
=将传送带连接到机器人=
Before starting conveyor tracking, the conveyor must be linked to the robot, by declaring, for example:<br>
+
在开始传送带跟踪之前,传送带必须通过声明来连接到机器人,例如:<br>
 
<pre>
 
<pre>
 
Puma.MasterFrame = conv
 
Puma.MasterFrame = conv
 
</pre>
 
</pre>
This command establishes a relationship (link) between the conveyor and the robot, and keeps conveyor and the robot positions independent. This command does not activate conveyor tracking. Actual conveyor tracking begins only when the property slave is set to 5.
+
该命令建立了传送带和机器人之间的关系(链接),并保持传送带和机器人位置的独立性。 此命令不会激活传送带跟踪。 仅当属性从属设置为5时,实际的传送带跟踪才会开始。
  
=Working Window of a Conveyor=
+
=传送带的工作窗口=
The area or range in which the robot can be synchronized with a conveyor is called the working window. For linear conveyors it is defined by upstream and downstream positions. For rotary conveyors the circular path is defined by an additional point (ArcPoint) that lies between the upstream and downstream positions.
+
机器人可以与传送带同步的区域或范围称为工作窗口。 对于线性传送带,它由上游和下游位置定义。 对于旋转传送带,圆形路径由位于上游和下游位置之间的附加点(ArcPoint)定义。 通过将它们的值分配给任何其他位置数据类型(作为表达式或常量)来定义这些点。例如:<br>
These points are defined by assigning them values as for any other location-data types, either as expressions or constants.
 
For example:<br>
 
 
<pre>
 
<pre>
 
Conv.UpStream[1] = #{100,0,0,0,0,0}
 
Conv.UpStream[1] = #{100,0,0,0,0,0}
 
Conv.DownStream[1] =  #{250,0,0,0,0,0}
 
Conv.DownStream[1] =  #{250,0,0,0,0,0}
 
</pre>
 
</pre>
In this example, a linear conveyor’s working window is defined along the line parallel with the X-coordinate, beginning at X=100 and ending at X = 250.<br>
+
在这个例子中,线性传送带的工作窗口沿着与X坐标平行的线定义,从X = 100开始,以X = 250结束。<br>
Note that the index [1] in the example indicates that the conveyor has been defined with one degree of freedom (ndof =1)<br>
+
注意,该示例中的索引[1]表示传送带已经被定义为一个自由度(nd = 1)<br>
To define conveyor movement, each point in the working window (Upstream, Downstream; and ArcPoint for rotary conveyors) needs to be assigned a master coordinate. The two conveyor properties, UpMaster[1] and DownMaster[1], set the values of the master axis and correspond to the UpStream and DownStream points. Thus, when the master axis is at UpMaster[1] position, the object on the conveyor is at UpStream point. These points are offset by the trigger position, which will be discussed later in this article.)
+
要定义传送带运动,需要为工作窗口(上游,下游和旋转传送带的ArcPoint)中的每个点分配主坐标。 两个传送带属性UpMaster[1]和DownMaster[1]设置主轴的值,并对应于UpStream和DownStream点。 因此,当主轴处于UpMaster[1]位置时,传送带上的物体处于UpStream点。 这些点被触发位置所抵消,这将在本文后面讨论。)
For example:<br>
+
例如:<br>
 
<pre>
 
<pre>
 
Conv.UpMaster[1] = 1000
 
Conv.UpMaster[1] = 1000
 
Conv.DownMaster[1] = 2000
 
Conv.DownMaster[1] = 2000
 
</pre>
 
</pre>
In this example (assuming the offset is 0), when the master axis (a1.pext) is at '''1000''' (a1.pext = 1000), the conveyor object is located at #{100,0,0,0,0,0}. When the master axis (a1.pext) is at '''2000''' (a1.pext = 1000), the conveyor object is located at #{250,0,0,0,0,0}. This also means there are '''1000/150 = 6.66''' units of master axis per '''1 mm''' of the conveyor.
+
在该示例中(假设偏移为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'''
 
   
 
   
 
[[File:CNV_PIC3.PNG | Figure 3. Catching the item on a rotary conveyor “MOVES CNV.ZERO”]]<br>
 
[[File:CNV_PIC3.PNG | Figure 3. Catching the item on a rotary conveyor “MOVES CNV.ZERO”]]<br>
 
Figure 3. Catching the item on a rotary conveyor “MOVES CNV.ZERO”
 
Figure 3. Catching the item on a rotary conveyor “MOVES CNV.ZERO”
  
=Cyclic Conveyor Position=
+
=传送带位置循环=
The conveyor is inherently cyclic. The master position of the conveyor is an endlessly increasing value. To obtain the periodicity of the conveyor, a trigger offset of the master axis position must be introduced. The offset value is issued by trigger command.
+
传送带内在的循环。传送带的主位置是不断增加的值,为了获得传送带的周期性,必须引入主轴位置的触发偏移。偏移值由触发命令发出。
For example:<br>
+
例如:<br>
 
<pre>
 
<pre>
 
Trigger puma Ndof = 1 Value = 300
 
Trigger puma Ndof = 1 Value = 300
 
</pre>
 
</pre>
In this example, the trigger command offsets the master position for 300 position units of the master. This means the next working window will be between 1300 and 2300 of the master position.
+
在此示例中,触发命令将主轴的主位置偏移300个位置单元。这意味着下一个工作窗口将在主站位置的1300到2300之间。触发器可以缓冲; 最多可以在系统中存储16个触发值。到目前为止输入的触发值的数量可以使用属性<conveyor> .noi进行查询。 每次启动传送带跟踪(slave=5)时,将一个值从触发缓冲区中取出。 每次传送带脱开时,跟踪被分离(slave=0),另一个值从缓冲器中取出。触发是启动跟踪的条件。 触发命令指定用作参考点的主位置。跟踪过程中的所有主位置相对于此点进行重新计算。如果在实际触发和位置更新之间存在延迟,则可以通过向触发命令指定的位置添加偏移来补偿差异。偏移量由用户决定。 触发命令中指定的值作为确定工作窗口的参考,如下例所示。
Triggers can be buffered; up to 16 trigger values can be stored in the system. The number of trigger values entered so far can be queried using the property <conveyor>.noi.
 
Each time conveyor tracking is started (slave=5), one value is taken out of the trigger buffer. Each time a conveyor is disengaged, tracking is disengaged (slave=0), and another value is taken from the buffer.
 
The trigger is the condition for starting the tracking. The trigger command specifies the master position that is used as a reference point. All master positions during the tracking process are recalculated relative to this point. If there is a delay between the actual trigger and the position update, the difference can be compensated for by adding an offset to the position specified by the trigger command. The value of the offset is determined by the user.
 
The value specified in the trigger command serves as a reference for determining the working window, as shown in the following example.
 
 
   
 
   
 
[[File:CNV_PIC4.PNG |Figure 4.  Master position values]]<br>
 
[[File:CNV_PIC4.PNG |Figure 4.  Master position values]]<br>
Line 115: Line 109:
  
  
A (UpMaster[1]) and B (DownMaster[1]) are the upper and lower master limit positions. <br>
+
A(UpMaster [1])和B(DownMaster [1])是上下限位置。 <br>
X is the value specified in the trigger command.  <br>
+
X是触发命令中指定的值。<br>
M is the current master position. Thus, the actual limits of the window are currently: <br>
+
M是当前的主位置。 因此,目前窗口的实际限制: <br>
Lower Limit: L = X + A <br>
+
下限: L = X + A <br>
Upper Limit: U = X + B  <br>
+
上限: U = X + B  <br>
IsInWindow = (L <= M) and (M <= U) <br>
+
IsInWindow = (L <= M) (M <= U) <br>
  
=Monitoring Variables=
+
=变量监控=
The following variables are used to monitor the conveyer-tracking process:
+
以下变量用于监测传送带跟踪过程:
<conveyor>.IIW  (Is In Window) (0 or 1) indicates whether or not the robot is within the working window.
+
<conveyor>.IIW  (Is In Window)(0或1)表示机器人是否在工作窗口内。
<robot>.IMFS  (Is Motion Frame Synchronized) (0 or 1) indicates whether or not the robot is completely in sync with the conveyor.
+
<robot>.IMFS  (Is Motion Frame Synchronized) (0或1)表示机器人是否与传送带完全同步。
<conveyor>.here  is the actual position of the moving object on the conveyor.
+
<conveyor>.here传送带上的运动物体的实际位置。
<conveyor>.zero  is the position within the working window at which the object appears after triggering.
+
<conveyor>.zero是触发后对象出现的工作窗口内的位置。
 
   
 
   
 
[[File:CNV_PIC5.PNG| Figure 5.  Working window and monitoring variables]]<br>
 
[[File:CNV_PIC5.PNG| Figure 5.  Working window and monitoring variables]]<br>
 
Figure 5.  Working window and monitoring variables
 
Figure 5.  Working window and monitoring variables
  
=Starting Conveyor Tracking=
+
=开始传送带跟踪=
Conveyor tracking is started by changing the slave property of the robot.
+
通过更改机器人的从属性来启动传送带跟踪。
For example:
+
例如:
 
Puma.slave = 5
 
Puma.slave = 5
This command initiates the synchronization process. If no other commands are in effect, the robot end effector will move in parallel with the conveyor from the point at which slave property was changed.
+
此命令启动同步过程。 如果没有其他命令生效,则机器人末端执行器将与从属性更改的位置平行移动。
There are three different phases of conveyor tracking:
+
在传送带跟踪中有三个不同的阶段:
 
 Synchronization
 
 Synchronization
 
 Tracking
 
 Tracking
Line 145: Line 139:
 
Figure 6. Synchronization – De-synchronization sequence during conveyor tracking
 
Figure 6. Synchronization – De-synchronization sequence during conveyor tracking
  
The first phase is synchronization. In this phase the robot tries to catch up with conveyor position movement. If the conveyor is too fast, the robot is unable to catch it.
+
第一个阶段是同步。在这个阶段中,机器人试着跟上传送带的位置运动。如果传送带速度太快,机器人不能跟上。
The kinematics parameters for robot synchronization are: <br>
+
机器人同步的运动学参数为: <br>
 
puma.velocitySyncTran <br>
 
puma.velocitySyncTran <br>
 
puma.accelerationSyncTran  <br>
 
puma.accelerationSyncTran  <br>
Line 155: Line 149:
 
puma.jerkSyncRot  <br>
 
puma.jerkSyncRot  <br>
  
These parameters all need to be set to be a slightly higher value than the standard parameters of the robot (vtran, …). As soon as the slave is changed from 0 to 5, synchronization begins. During synchronization, <robot>.imfs = 0. Once the robot is synchronized with the conveyor the <robot>.imfs flag is set to 1.
+
这些参数都需要设置为比机器人(vtran,...)的标准参数略高的值。 一旦从机从0变为5,同步开始。 在同步期间,<robot> .imfs = 0。一旦机器人与传送带同步,将<robot> .imfs标志设置为1.一旦从属状态改变,传送带上的物体就会开始移动。 这可以通过属性<Conveyor>.here来追踪,这返回传送带运动的位置。 如果物体退出工作窗口,则报告错误,并且传送带跟踪被分离。 一旦完成了移动传送带上的动作,机器人就脱离传送带。 此阶段称为去同步,在此期间<robot> .imfs = 1。去同步参数为: <br>
As soon as the slave state changes, the object on conveyor starts to move. This can be tracked by the property <Conveyor>.here, which returns the location of the conveyor movement. If the object exits the working window, an error is reported and conveyor tracking is disengaged.
 
Once the action upon the moving conveyor is completed, the robot is disengaged from the conveyor. This phase is called de-synchronization, during which <robot>.imfs = 1.
 
The de-synchronization parameters are: <br>
 
 
puma.velocityDeSyncTran <br>
 
puma.velocityDeSyncTran <br>
 
puma.accelerationDeSyncTran  <br>
 
puma.accelerationDeSyncTran  <br>
Line 166: Line 157:
 
puma.accelerationDeSyncRot <br>
 
puma.accelerationDeSyncRot <br>
 
puma.jerkDeSyncRot <br>
 
puma.jerkDeSyncRot <br>
It is crucial for the robot to be at least twice as fast as the conveyor. The maximum speed and other limitations of the conveyor are set by:
+
至关重要的是机器人至少要比传送带快两倍。传送带的最大速度和其他限制由以下设定:
 
Conv.VelocityMaxRot= … <br>
 
Conv.VelocityMaxRot= … <br>
 
Conv.AccelerationMaxRot = … <br>
 
Conv.AccelerationMaxRot = … <br>
 
Conv.JerkmaxRot= … <br>
 
Conv.JerkmaxRot= … <br>
These are monitoring values only. If any one is exceeded, an error is reported.
+
这些仅是监视值。 如果超过任何一个,报告错误。
  
=Position of the Object Origin on the Conveyor=
+
=传送带上物体原点的位置=
The position of the moving object when it appears in working window is obtained by the property <Conveyor>.zero which is a location data type. It represents the location of the object when the synchronization started; if the synchronization started before the master position became greater than <conveyor>.UpMaster[1], then the <conveyor>.UpStream[1] value is returned.
+
移动对象在工作窗口中出现的位置是通过属性<Conveyor> .zero获取的,该位置是位置数据类型。它表示同步开始时对象的位置; 如果在主位置变得大于<conveyor> .UpMaster [1]之前同步开始,则返回<transport> .UpStream [1]值。
  
=Absolute Movements during Conveyor Tracking =
+
=传送带跟踪期间的绝对运动 =
The "total robot position” is the Cartesian position of the robot translated into joint values, which are the coordinates that are actually sent to drives over the motion bus (EtherCAT).
+
"机器人总位置"是将机器人的笛卡尔位置转换成关节位置,实际上是发送到运动总线(EtherCAT)上的驱动器的坐标。
The total position during conveyor tracking is composed of two elements: robot motion and conveyor motion. Robot motion is the change in coordinates introduced by motion commands such as MOVE and MOVES. Conveyor motion is the motion of the conveyor in different phases (synchronization, tracking, de-synchronization).
+
传送带跟踪期间的总位置由机器人运动和传送带运动两部分组成。 机器人运动是运动命令(如MOVE和MOVES)引入的坐标变化。 传送带运动是传送带在不同阶段(同步,跟踪,去同步)的运动。 总机器人位置表示为:
Total robot position is expressed as:
 
 
Total = Robot + Conveyor  
 
Total = Robot + Conveyor  
The conveyor coordinates are: <br>
+
传送带坐标为: <br>
 
Conveyor(t) = CNV(t) - CNV(t0)<br>
 
Conveyor(t) = CNV(t) - CNV(t0)<br>
t0 is the moment at which "slave=5" is issued<br>
+
t0是发出 "slave=5" 的时刻<br>
  
For a linear conveyor, CNV is: <br>
+
对线性传送带,CNV是: <br>
 
CNV(t) = (DownStream - UpStream)*(Master(t) - Trigger)/ (DownMaster - UpMaster[1]) <br>
 
CNV(t) = (DownStream - UpStream)*(Master(t) - Trigger)/ (DownMaster - UpMaster[1]) <br>
Master(t) is the position of conveyor master axis at moment t. <br>
+
Master(t)是t时刻的传送带主轴的位置。 <br>
DownStream, Upstream, DownMaster, and UpMaster are  conveyor parameters. <br>
+
DownStream, Upstream, DownMaster, and UpMaster是传送带参数。<br>
  
The relationship to MC-BASIC variables: <br>
+
与MC-BASIC变量的关系: <br>
 
Conv.here = CNV(t) <br>
 
Conv.here = CNV(t) <br>
 
Conv.zero = CNV(0) <br>
 
Conv.zero = CNV(0) <br>
  
The idea behind this is that  the queried/commanded robot position is the same both when conveyor is moving and when the conveyor is standing still.
+
在这背后是,当传送带移动时和传送带静止时,查询/命令的机器人位置是相同的。因此,为了示教传送带上的点,只需停止传送带,并将机器人移动到皮带旁边的目标位置。机器人运动,即主方程中的机器人变量,是机器人在传送带跟踪过程中的绝对位置; 它等于作为运动命令的目标点输入的位置(例如,MOVES / CIRCLE)。
Thus, to teach points on the conveyor, just stop the conveyor and move the robot to its destination alongside the belt.
 
The robot motion, that is, the Robot variable in the main equation, is the robot’s absolute position during conveyor tracking; it is equal to the position entered as the target point of the motion commands (e.g., MOVES/CIRCLE).
 
 
 
 
 
== Detailed description ==
 
See: [[Conveyor_Tracking_General|Conveyor_Tracking]]
 
 
 
  
 +
== 详细说明 ==
 +
参考: [[Conveyor_Tracking_General|Conveyor_Tracking]]
 
[[Category:Motion:MovingFrame]]
 
[[Category:Motion:MovingFrame]]
 
[[Category:Motion Control|Conveyor Tracking]]
 
[[Category:Motion Control|Conveyor Tracking]]

Latest revision as of 06:16, 10 August 2017

语言: 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