快速启动:Vision Guide 8.0教程
教程概述
本章的目的是带领您领略简单的视觉应用,以便向您介绍Vision Guide 8.0的一些基本使用概念,并向您展示它的使用是多么简单。在许多情况下,我们将仅仅对需要遵循的步骤进行说明,但不会介绍每个步骤的细节。您可在后续的章节中了解这些细节。
本教程将不会使用真实的零件,作为代替,我们将使用对象的简单图纸,因此您可以对图纸进行复制,并将其放在相机下,以学习本教程。
这样做将会保证在实践本教程时,每个人都会得到相同的结果。本教程将向您展示如何创建一个简单的应用,以利用视觉系统寻找零件,并使机器人向零件移动。就本教程而言,假设您的机器人为SCARA型,并且在机器人第二个臂杆的端部安装有相机。
本章将包括以下几个小节:
- 本教程所需的物品
- 相机镜头配置。
- 创建一个新的Epson RC+ 8.0项目。
- 新建一个视觉序列。
- 利用Blob对象来寻找零件。
- 编写一个SPEL+程序来与视觉序列交互。
- 用相机来校准机器人。
- 利用视觉系统指示机器人向零件移动。
- 找到并移动到多个相似零件。
在本章后面的 本教程所需的物品 中,您将看到有两个页面,上面印有本视觉教程当中将使用的目标。这些页面的使用将贯穿整个教程。
跟在目标页面后面的是标题为“启动Epson RC+ 8.0并创建一个新项目”的章节。我们将从此开始实际的教程。
本教程所需的物品
本教程将通过Epson机器人与Vision Guide 8.0的联用来对您进行指导。我们假定您能够欣然接受Epson RC+ 8.0与Epson机器人的联用。如果您还不确定如何使用Epson RC+ 8.0,您可能想在开始本教程之前花一点时间进行回顾。本教程将需要以下物品:
- 必须将Epson RC+ 8.0安装在您的电脑上。
- 必须为Vision Guide 7.0安装一台相机并保证相机正常工作。
- 将Epson机器人安装在底座上,该底座需有一个工作表面,并且该工作表面应连接在机器人正面,以便机器人能够使用此工作表面。
- 如果机器人是SCARA机器人,应将相机连接到机器人第二个臂杆的端部。如果机器人是6轴机器人,则应将相机连接到机器人的第6机械臂法兰。可以从Epson读取您所使用的特定机器人的相机安装支架。请镜头朝下安装相机。
要点
连接计算机、相机和控制器到以太网交换机时,确保计算机的主电源、控制器电源和相机电源已经关闭。未关闭电源可能造成损害。
- 呈现目标零件图纸的页面的副本应当能够放在相机下。(目标零件图纸见紧接本列表之后的小节。)
- 必须选定可以满足40mm×30mm左右视野要求的相机镜头。在我们的测试中,我们一直使用带有16mm镜头的Vision Guide 7.0可移动式相机(带NET 1044BU相机的CV1),相机距离工作表面大约210mm。然而,为得到合适的焦距,需要做一些调整。我们将指导您完成这些调整。
- 在本教程中我们不会拾取任何零件。但是我们会将机器人移动到我们画在靶纸上的零件位置。您需要将一个夹具或连杆连接到Z轴上。直接连接在Z轴中心下方的连杆将会很好地完成工作。在校准过程中,以及在向目标页面上目标零件移动的过程中,将用到该夹具或连杆。
教程所用的单个目标特征(图纸上画的是一个垫圈)
教程所用的多个目标特征(多个垫圈)
启动Epson RC+ 8.0并创建一个新项目
- 开启您的控制器。
- 双击Windows桌面上的[Epson RC8.0]图标来启动 Epson RC8.0。
- 点击Epson RC8.0菜单栏上的Project菜单。
- 点击Project项目菜单的New Project菜单条目,会显示New Project对话框。
- 键入新项目的名称。我们推荐您使用自己的名字,并在后面附上字母"tut"。以便试用本教程的每个人都能够为其项目建立一个独特的名称。我们此处的项目将会用到名称“vgtut”。您在名称字段键入了名称之后,点击[OK]按钮。至此,您已创建了一个名叫xxxxtut的新项目。
新建一个视觉序列
- 一旦您创建了新的Epson RC8.0项目,您将会注意到许多的工具栏图标都启用了(不再呈灰色)。找到 [Vision]工具栏按钮。点击视觉工具栏按钮以打开Vision Guide窗口。
- 我们在使用Vision Guide 7.0窗口之前,必须首先创建一个视觉序列。通过点击 [New Sequence]工具栏按钮来完成新视觉序列的创建。(该工具栏按钮位于Vision Guide窗口工具栏上,而不是在Epson RC8.0主工具栏上。)此时将出现[New Sequence]的对话框。
- 输入新视觉序列的名称“blobtut”并点击OK键。之后我们在Epson RC8.0的代码中将使用名称“blobtut”,因此须确保按照以上的拼写准确键入该名称,不带引号。现在我们已经创建了一个名为“blobtut”的新视觉序列,并且从现在起我们将围绕该视觉序列进行操作。
教程的相机镜头配置
在上述阐述中,教程里的目标视野约为40mm×30mm左右,WD(工作距离)约为210mm。可以得出结论,16mm镜头和1mm伸缩管匹配的焦点WD为167mm到240mm之间。因此,本教程中使用16mm镜头和1mm伸缩管。
如果您没有为您的相机安装镜头,并且尝试给镜头对焦,此时这样做不失为一个好办法。在安装章节中有关于如何确定使用哪个镜头和如何对焦的说明。如果您不熟悉如何选择相机镜头以及如何在相机和您的零件间对焦,在进行下一步之前您可能想回顾一下本信息。
为了检查您的对焦情况,很明显您需要通过Vision Guide 8.0来观察图像。由于我们已经打开了Vision Guide窗口,现在我们只需要确保我们能够准确看到靶纸上的目标特征。其完成步骤在下一章节中有所描述。
在靶纸上定位可移动式相机并调整镜头的焦距
- 拿到您之前复制的靶纸。选择中心印有单独垫圈图样的靶纸并将它放在工作表面的适当位置,以便机器人能够很轻易地将相机放在上面。最好的位置通常为机器人的正前方。
- 现在移动机器人,以便相机位于垫圈图片的上方。您应能手动移动机器人,而无需打开伺服电源。
- 您应该能在Vision Guide窗口的图像显示区域看到目标特征(垫圈)。通过调整相机镜头焦距来使目标特征准确对焦。如果您不能看到目标特征或无法将其正确对焦,查看 安装 一章中名为 正确焦距的检查和调整 的小节。此节将详细说明相机镜头的选择和对焦。
现在,相机应位于画在靶纸上的目标特征的正上方。您应该能在Vision Guide窗口的图像显示区域清楚地看到目标特征。现在Vision Guide窗口应如下图所示。注意,目标特征(垫圈)显示在Vision Guide窗口的图像显示区域的中心处。
在图像显示区域中心显示目标特征的Vision Guide窗口
利用Blob对象来寻找零件
既然目标特征(垫圈)位于Vision Guide窗口图像显示区域的中心,我们便可以创建一个Blob对象来找到垫圈。创建Blob对象、对其进行配置然后通过其找到垫圈的步骤如下所示。
第1步:创建一个新的Blob对象
- 点击Vision Guide工具栏中的[All Tools] - [Blob]按钮。点击了[Blob]按钮后,请松开鼠标左键。
- 现在将鼠标向下移到图像显示区域中心的垫圈图像上。离开Vision Guide工具栏后,鼠标指针将变为Blob对象图标。
- 继续将鼠标移动到图像显示区域的中心,然后点击鼠标左键。以上操作将完成新Blob对象在图像显示区域中的定位。
此时屏幕显示如下。
显示新Blob对象“Blob01”的Vision Guide窗口
第2步:确定Blob对象位置及尺寸
现在我们需要为Blob对象的搜索窗口进行定位并规定其尺寸。
Blob对象“Blob01”的搜索窗口为下图中垫圈左边的框。我们将搜索窗口放大,以便能够在几乎整个视野内搜索垫圈。
- 把鼠标移动到Blob对象的名称标签上,并按下鼠标左键。在持续按住鼠标左键的同时,将Blob对象拖到图像显示区域的左上角,使得搜索窗口的左上角几乎接触到图像显示区域的左上角。
- 将鼠标移动到Blob01搜索窗口的右下尺寸柄上,并按下鼠标左键。在持续按下鼠标左键的同时,将右下尺寸手柄拖动到图像显示区域的右下角。现在Blob对象的搜索窗口应该覆盖整个图像显示区域。这使我们能够找到所有位于相机视野以内的二进制对象。
下面的画面截图显示了重新定位和确立尺寸的Blob对象“Blob01”的搜索窗口,此时其覆盖整个图像显示区域。
搜索窗口放大后的Blob对象“Blob01”
第3步:设置属性并运行Blob对象
现在搜索窗口已经大到能够看到搜索窗口中的垫圈。现在我们准备好来测试Blob对象,以确保能够找到垫圈。
点击位于Vision Guide窗口右上侧树中的Blob01对象。此举将显示Blob01对象的属性和结果。
查看属性列表并查找Name属性。双击Name属性的Value字段以突出显示当前的名称。现在输入名称“washer”。我们就将Blob对象的名称改成了“washer”。查看Name下拉菜单中[Jog]选项卡顶部以及搜索窗口上的名称标签,您会发现两处的名称都更改了。
Blob对象的属性在您查看Properties列表时,您可能也想检查Polarity属性。由于我们刚刚创建了一个新的二进制对象,Polarity的默认值为DarkOnLight,表示在浅色背景上找到了一个深色二进制对象。我们也可以将该属性更改为LightOnDark。但是由于我们希望在浅色背景上找到一个深色二进制对象(垫圈),因此保持Polarity属性不变。
现在我们准备好运行Blob对象“washer”。
为运行该对象,点击位于运行面板右下方的Run按钮。此举将会执行Blob对象“washer”,并且在这种情况下,Blob对象将会找到一个看起来像垫圈的二进制对象。
您可在运行了Blob对象之后,通过检查搜索窗口的颜色,确定已经找到了Blob。如果找到了Blob,则搜索窗口呈绿色;如果没有找到则呈红色。
(您也可以通过检查Results列表来查看是否找到了Blob接下来有更多内容)现在试着轻微移动印有目标垫圈的纸张,然后再次点击Run按钮。
确保垫圈保持在您创建的搜索窗口中。您可以看见二进制对象的新位置已经找到并在图像显示窗口中用绿色加亮。
(如果您移动纸张使得垫圈位于搜索窗口边界以外,则Blob对象将找不到垫圈,您会发现这一情况是因为在没有找到对象时,搜索窗口将变成红色。)
第4步:检验结果
既然您已经运行了名为“washer”的Blob,您可以检验该对象的返回结果。结果显示在Results列表中,正好处于属性列表之下。
- 在Results列表中找出名为Found的结果。这时,Found结果的值应为True,因为我们刚刚找到了二进制对象。如果没有找到二进制对象,Found结果将显示为False。
- 您也可以参见Results列表顶部的Area结果。此处显示了找到的二进制对象的面积。
- 使用滚动条将结果列表移动到底部。在Blob结果列表的底部您可以看到Time结果。该结果告诉我们找到此二进制对象花了多少时间。
结果列表向下滚动以显示Time结果
注意
周围照明和外部设备噪音可能会影响视觉序列的图像和结果。当受到周围照明和外部设备噪音的影响,拍摄的图像可能会损坏,并且检测到的位置可能是对象搜索区域中的任何位置。请尽量缩小搜索区域,并在创建图像处理序列时,考虑到检测错误的情况。
第5步:保存您的视觉序列
此时我们可能需要保存我们所做的工作。同所有应用一样,经常定期地保存您的工作是一个不错的办法。Epson RC+ 8.0的Project Management功能使与该项目相关的每个事项都能立刻进行保存。可以通过下面的一个步骤轻松完成:
点击[Save]工具栏按钮。此按钮位于Epson RC+ 8.0主工具栏的左侧。
现在我们已经成功创建了新的Blob对象,正确设置了搜索窗口及其尺寸,并且运行Blob对象序列来寻找二进制对象。
让我们进入下一步,并编写一个简单程序,以通过SPEL+语言来运行视觉序列,并对我们的应用中将用到的一些结果进行检索。
编写一个SPEL+程序来与视觉序列联用
Vision Guide 8.0最有力的功能之一是任何通过点击建立的视觉序列都可以通过SPEL+语言进行应用。这表明视觉序列为Epson RC+视觉应用的核心部分,而不仅仅是之后必须用SPEL+进行重写的原型设计工具。视觉序列和SPEL+语言集成在一起,为您提供两者的最佳组合:
视觉开发点击环境的轻松使用,以及一种语言所提供的力量和灵活性。让我们快速编写一个程序来了解是否找到了二进制对象,检查二进制对象的面积,然后打印出提供此信息的那条消息。
打开名为MAIN.PRG的程序文件
因为您已熟悉了Epson RC+ 8.0的环境,所以您应该已经知道如何打开main.prg程序文件。然而,我们还是列入了以下基本步骤,以防您不知道如何打开文件:
点击[Open File]工具栏按钮。此按钮位于Epson RC+ 8.0主工具栏的左侧。您将会看到以下[Open File]对话框:
Epson RC+ Open File对话框正如您在[Open File]对话框中看见的,因为您还没有创建任何其他项目,所以main.prg程序文件为突出显示状态。继续并点击对话框左下的[Open]按钮以便打开main.prg程序文件。
创建一个SPEL+程序来与视觉序列联用
以下为示例程序,该程序将运行视觉序列“blobtut”,并检查其中一些与名为“washer”的Blob对象相关的属性。
例如我们会检查是否找到了二进制对象。检出时,将显示一条“The washer was found!”的消息以及二进制对象的区域。未检出时,将显示一条“The washer was not found!”的消息。
现在您应看到在标题栏上显示有MAIN.PRG的编辑窗口。光标将位于编辑窗口中第一行的开始部分。(开始键入程序的最佳位置。)继续操作,将以下程序输入编辑窗口。不用担心字母的大小写。编辑器将会自动把所有关键词切换为大写。
Function main
Real area
Boolean found
VRun blobtut
VGet blobtut.washer.Found, found
If found = True Then
VGet blobtut.washer.Area, area
Print "The washer was found!"
Print "The washer area is: ", area, "Pixels"
Else
Print "The washer was not found!"
EndIf
Fend
运行主要功能
您应熟悉Epson RC+ 8.0的Run窗口。我们将使用Run窗口来运行前一节中创建的示例程序。完成这一任务的步骤如下所示:
点击Epson RC+ 8.0主工具栏上的 [Run]工具栏按钮。随后将出现Run窗口。注意下图中,Run窗口分为两部分。Run窗口的左半部分为图像显示区域(注意中间显示的垫圈),Run窗口的右半部分为文本区域,用于显示文本消息。
要点
如果Run窗口只显示了文本区域,而没有同时出现图像显示区域和文本区域,则点击Run窗口上的Display Video检查框。
有图像显示区域和文本区域的Run窗口
点击位于Run窗口左下角的Start按钮。此举会使名为“main”的功能运行。
通过运行“main”功能,您可以在步骤(4)的图中看到示例结果。注意,找到了二进制对象以后,二进制对象在Run窗口左侧的图像显示区域中用绿色突出显示。Run窗口右侧的文本说明二进制对象已被找到,同时还说明二进制对象的面积。
双击位于Run窗口左上角的Run窗口Control菜单框。随后将关闭Run窗口。
运行“main”之后的Run窗口示例
校准机器人相机
本节将介绍,如何通过将可移动式相机,安装在水平多关节机器人的第2机械臂上,来校准机器人。
进行校准后,视觉系统可以自动计算机器人坐标系和相机坐标系,并执行坐标转换。完成校准后,可以使用视觉系统,检测出机器人将取放的工件的位置。
在使用可移动式相机,进行机器人校准之前,需要先做好机器人的准备工作,如打开点击和设置工具的值等。
第1步:开启电机
- 点击Epson RC+ 8.0主工具栏上的 [Robot Manager]工具栏按钮。您会看到出现以下画面。
- 点击画面上方的[Motor: Off]按钮。
- 消息框上会出现询问您是否“准备好打开机器人电机”的消息。点击[Yes]按钮。开启机器人的电机。
第2步:利用Tool Setting来创建一个新工具
为了将带有视觉系统的机器人用于指导应用,需要精确地测量工具或安装在臂端的夹具的位置。一些工具偏离于Z-轴法兰的中心,而其它工具的安装则与Z-轴的中心对准。在安装机器人工装时,不论我们多么仔细,也几乎可以肯定有偏离Z-轴的情况存在。因此我们必须使用SPEL+的Tools功能来进行补偿。
要使用Vision Guide来引导机器人,必须对工具有深入的理解。我们将使用Tool Wizard(工具向导)功能来创建一个工具,为我们的校准杆(夹具)所用。
- 点击[Tools]选项卡。
- 点击[Tool Wizard]按钮。
- 对于Tool Wizard中的第一参考点\1,对机器人进行步进示教,使夹具准确位于垫圈(纸上的垫圈位置)的中心。您需要向下步进机器人,以便您能够十分靠近靶纸,但又没有接触到靶纸。靶纸上方5-10mm空间内的任何位置都可以。您只需按要求尽可能地靠近靶纸,以便能够很好地看到杆(或夹具),然后步进至垫圈的中心。
- 对于Tool Wizard中的第二参考点\2,将U轴步进大约180º后,对机器人进行步进示教,使机器人或夹具位于垫圈的中心。
- 点击[Finish]按钮以确定新工具并退出Tool Wizard。至此,我们已经确定了Tool1的参数。
教程中Tool1的新工具值将如下图所示。
[Tools]选项卡(用于定义工具)
第3步:测试新工具
选择[Jog&Teach]选项。由于此时还没有步进机器人,所以夹具应该位于目标位置(垫圈中心的上方)。
- 为防止产生干涉,先将夹具远离工作表面。点击(+Z)的步进按钮,将第3轴(J3)沿着Z方向步进10~15mm。
- 点击Jogging窗口的[Tool]按钮,然后点击向下箭头。
- 点击“1”,选择工具1。(这是在步骤(4)中示教的工具。)
- 点击(+U)或(-U)的步进按钮,确认U axis第4轴(J4)旋转时,夹具也不会偏移。(这种情况经常出现在第3轴(J3)中心偏移工具中。如果夹具从第3轴(J3)垂直向下,可能会很难察觉到这个现象。)
- 当第4轴(J4)移动时,会看见夹具从目标位置稍微移动了一些,但当完成步进执行后,夹具会回到目标位置。
- 如果发现工具并没有正常动作,请返回步骤2重新调试。
- 关闭机器人管理器。完成定义并测试工具。
第4步:启动相机校准程序
现在我们已准备好用可移动式相机来对机器人进行校准。
- 点击Epson RC+ 8.0工具栏上的 [Vision]工具栏按钮,使视觉开发窗口回到屏幕前方。
- 点击Vision Guide窗口中的 [New calibration]工具栏按钮。将打开[New Calibration]对话框。
- 输入名称“downcal”,并点击OK按钮。
- 在[Calibration]窗口的属性列表中将CameraOrientation属性设为“Mobile J2”。
- 将RobotTool属性更改为1, 这样一来便将在示教校准基准点时选用Tool 1。
- 将TargetSequence属性设置为blobtut。该序列将用于在校准过程中寻找零件。
第5步:示教校准点
- 点击位于视频显示下方的[Teach Points]按钮。
- 如下图所示,Vision Guide窗口切换到Teach Points模式。请注意,在Vision Guide窗口顶部将看见一则消息,要求您“Jog to top left camera position”,如下图所示。这表示将机器人(和相机)步进至能在Vision Guide窗口图像显示区域左上角看见垫圈的位置。下图显示了通过步进方式使机器人到达的大致位置。如图所示,此为需要校准的9个相机位置中的第一个位置。
示教需校准的相机位置 - 示教第一个相机位置:步进机器人,以便使相机位于能够在Vision Guide窗口图像显示区域左上角看见垫圈的位置。
- 点击Vision Guide窗口上的Teach按钮。
- 示教第二个相机位置:步进机器人至第一个相机位置的右边,以便使相机位于能够在Vision Guide窗口图像显示区域顶部中间看见垫圈的位置。
- 点击Vision Guide窗口上的Teach按钮。
- 示教第三个相机位置:步进机器人至第二个相机位置的右边,以便使相机位于能够在Vision Guide窗口图像显示区域顶部右侧看见垫圈的位置。
- 点击Vision Guide窗口上的Teach按钮。
- 示教第四个相机位置:从第三个相机位置向下步进机器人,以便使相机位于能够在Vision Guide窗口图像显示区域中间偏右处看见垫圈的位置。当您按顺序参考所有的相机位置时,该位置将在第3个相机位置之下,这个位置为Z字型图案的起点。
- 点击Vision Guide窗口上的Teach按钮。
- 示教第五至第九个相机位置:继续根据Vision Guide窗口底部的指示,针对第五到第九个相机位置,步进机器人和示教点。Vision Guide窗口将会显示针对每个相机位置需要移动的位置。相机位置5到9描述如下:
5 - center
6 - left center
7 - bottom left
8 - bottom center
9 - bottom right - 接下来窗口顶部显示的消息为“Jog to fixed reference”。这表示要步进机器人,以便夹具(杆)居于校准目标零件(这里指垫圈)的中心位置。此时您可以忽略视频显示,因为我们正在将机器人夹具同校准目标对准。继续并步进机器人,以便夹具位于垫圈的中心。其定位十分重要,因为您需要将机器人向下步进至靠近垫圈的位置,以实现良好对准。
- 一旦您将机器人夹具定位在了垫圈的中心,点击位于Vision Guide窗口底部的[Teach]按钮。
- 将Z轴向上步进至足够高的位置,使夹具在校准过程中远离工作表面,并排除任何因机器人夹具太低而撞击到其它对象的可能性。在我们示教9个校准点中每个校准点时,均使用此Z高度。
- 在示教了最后一个相机位置以后,会出现一个对话框,说明“所有校准点已经完成了示教”。点击Finish按钮继续。
校准所需的点已经完成示教。
第6步:运行相机校准
以下显示了完成相机校准程序的最后步骤:
- 点击Vision Guide窗口[Calibration]选项卡底部的[Calibrate]按钮。
- 将出现一个消息框,显示“注意,机器人在校准过程中将以速度10和加速度10移动,是否继续?”点击[Yes]按钮以继续校准。
在校准过程中,机器人将通过全部9个校准点,共两遍。如果在机器人正在移动时您需要中止校准,点击[Calibration Cycle]对话框底部的[Abort]按钮。
3.校准周期完成以后,出现[Calibration Complete]对话框并显示校准结果数据。检查数据然后点击[OK]按钮。 - 注意,校准结果显示在[Calibration]窗口的Results列表中。
第7步:将“downcal”校准分配至blobtut序列
既然已经创建了“downcal”校准,我们就需要将该校准分配到我们的视觉序列 (blobtut) 中。这将使blobtut序列能够计算机器人坐标值或相机坐标值中的结果。
- 从[Vision Guide]窗口的序列目录树中点击视觉序列:“blobtut”,将[Sequence]窗口置于前面。
- 通过点击Calibration属性的值字段,将Calibration属性设置为“downcal”,然后点击向下箭头,最后点击所显示的名为“downcal”的校准。此为我们刚刚完成创建的校准。
- 点击序列和校准目录树右侧显示的[Jog]按钮显示[Jog]选项卡。
- 使用步进按钮在垫圈上方定位相机,以便您可以在图像显示区域内看到垫圈。
- 从序列目录树中点击“washer”对象,将[Object]窗口置于前面。
- 点击[Run Object]按钮以运行“washer”对象。当找到零件时,查看Result列表。您将看到CameraX、CameraY、RobotX、RobotY和RobotU的结果不再显示“nocal”结果。现在您可以看见关于机器人和相机坐标系的坐标位置数据。
示教在视觉引导中使用的点
现在我们必须示教一些点来确定垫圈拾取位置的Z高度、相机将为垫圈拍照的位置、以及本教程中作为起点位置的一个安全位置。
第1步:确定“camshot”位置
机器人必须朝零件移动,直到屏幕上图像显示区域中能够看到垫圈。有一个好方法,即定位机器人,以便垫圈位于图像显示区域的中间位置并且不靠近搜索窗口的任何一侧。由于我们刚刚完成了垫圈对象的运行,所以相机应处于获取呈现垫圈的图像的最佳位置。
- 点击Epson RC+ 8.0主工具栏上的[Tool] - [Robot Manager]按钮,然后点击[Jog & Teach]选项卡。
- 由于我们想利用工具1来示教相机拍摄位置,所以需检查标为Tool的下拉列表框确保其设置为1。如果没有设置为1,继续点击下拉列表框上的箭头,从而将Tool设置为1。
- 验证当前Point #字段中的点是否为P0。如果不是点P0,则在点#字段中选定为P0。
- 点击[Jog & Teach]窗口上的[Teach]按钮。您将得到一个标签提示。输入名称“camshot”。随后将示教“camshot”位置。
第2步:确定一个远离垫圈的安全位置
我们将需要一个远离垫圈的已示教点,将其位置作为安全位置,并在程序开始时移动到该位置。
- 在点字段中选择P1。
- 将机器人的Z轴向上步进,然后沿X和Y方向步进,从而将机器人定位在一个安全的位置。这就好比您的程序的起始位置。机器人在移动到垫圈之前总是先移动到这一位置。
- 点击[Jog & Teach]页面上的[Teach]按钮。为标签输入“safept”。随后将示教“safept”位置。
第3步:计算垫圈拾取位置的Z高度
如果我们是在实际情况下拾取真实的垫圈,而非移向垫圈的草图,我们将需要设置垫圈拾取位置的Z高度。让我们为垫圈位置寻找一个合适的Z高度。在此,假设夹爪被安装在第3轴(J3)上。
注意
确保仔细地设置了机器人动作的Z高度。如果计算出的Z高度不正确,则可能导致系统故障和/或安全问题。
- 点击Epson RC+ 8.0主工具栏上的[Tool] - [Robot Manager]按钮。然后点击[Jog & Teach]页面。
- 使用步进按钮来将机器人的夹具固定在垫圈上方5-10mm的位置。请小心不要使夹爪撞到垫圈。
- 当机器人夹具位于垫圈正上方时,记下当前的Z坐标值。在我们的程序中,随后将用到该Z坐标,目的是将机器人移动到这一高度。
- 在点字段中选择P2。
- 点击[Jog & Teach]窗口上的
按钮。输入标签名称“washpos”。此举将示教我们最初的“washpos”位置。(然而,视觉系统将用于计算新的X和Y位置,然后移动到该点。根据当前的Z坐标位置,我们也将在程序中设置一个固定的Z高度。)
使用视觉系统让机器人移向零件
现在只剩下修改我们的程序来使视觉系统和机器人联用,以便找到垫圈的位置并移动到该位置。
第1步:修改SPEL+程序
点击Epson RC+ 8.0工具栏上的- [Open File]工具栏按钮。
因为您还没有创建任何其它程序,所以MAIN.PRG程序文件已经为突出显示状态。点击对话框左下方的[Open]按钮以便打开MAIN.PRG程序文件。您将会看到我们先前在本教程中运行的程序,如下所示。
Function main Real area Boolean found VRun blobtut VGet blobtut.washer.found, found If found = True Then VGet blobtut.washer.area, area Print "The washer was found!" Print "The washer area is:", area, "Pixels" Else Print "The washer was not found!" EndIf Fend
现在修改程序,使其如下一页所示。
要点
请记住,SPEL+语言使用单引号 ' 来表示注解。单引号后面的所有字符均视为注解,并不是需要程序来执行的。(这表示您可以忽略单引号后面直至单引号所在行末尾的所有字符。)
Function main '*********************************************** ' 以下是重要声明: * ' 请使用在“示教在视觉引导中使用的点”中, * ' 第3步中获得的Z坐标值。 * ' 使用Z坐标值替换下面程序中“XX”(负数)的部分。 * '*********************************************** #define ZHeight -xx Real area, x, y, u Boolean found Integer answer String msg$, answer$ Power Low '低速运行机器人并加速 Tool 1 '使用工具1进行定位 Jump safept '移动机器人至安全起始位置 Do '在传送带停止前循环执行 Jump camshot '移动机器人并拍照 VRun blobtut '运行视觉序列blobtut VGet blobtut.washer.RobotXYU, found, x, y, u If found = True Then VGet blobtut.washer.area, area Print "The washer was found!" Print "The washer area is: ", area, "Pixels" washpos = XY(x, y, ZHeight, u) 'Set pos to move to Jump washpos msg$ = "The washer was found!" Else msg$ = "The washer was not found!" EndIf msg$ = msg$ + CRLF + "Run another cycle(Y/N)?" Print msg$ Input answer$ If Ucase$(answer$)<> "Y" Then Exit Do EndIf Loop Fend
第2步:运行程序以找到垫圈并移动至垫圈
- 点击Epson RC+ 8.0主工具栏上的- [Run]工具栏按钮。这将导致程序进行编辑,然后开启Run窗口。
- 点击Run窗口上的[Start]按钮。
- 现在您的程序将找到垫圈并将机器人移动至垫圈。在您成功找到垫圈以后,试着轻微移动垫圈,然后在对话框询问您是否运行另一个周期时,点击对话框中的[Yes]按钮。
如果没有找到垫圈,将会出现一个不同的对话框,询问您是否想要重试。
在任何一种对话框中点击[No]将导致程序停止运行。