Robotstudio软件:ABB机器人机器视觉位姿引导虚拟仿真

news/2025/3/15 3:50:02/

本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注!

概述

近几年来机器视觉技术在工业生产中得到了广泛的应用,在工业机器人应用领域中,机器视觉被广泛应用于工件的特征检测,以及机器人的位姿引导。市面上大部分的机器人厂商也都在机器人控制器中开放了视觉集成接口,以便于机器人能够直接与智能相机进行数据交互。除了现实的机器视觉应用以外,在机器人仿真过程中也需要对机器视觉进行仿真。本期,就来为大家介绍一下,Robotstudio软件中使用机器视觉实现机器人位姿引导的操作方法。

机器人与视觉系统创建

在上一期创建的工件位置随机生成仿真环境中,添加一台IRB2600机器人,机器人工具与相机分别使用Robotstudio软件设备库中自带的焊枪AW_Gun_PSF_25、Integrated Vision camera Cam00X。同时使用“建模”菜单中的“圆锥体”建模工具创建一个圆锥体,并修改圆锥体透明度,作为相机光源。

将焊枪安装到机器人上,相机、相机光源分别放置到合适位置处,并创建机器人控制系统,机器人与视觉系统创建完成后,如下图所示。

机器人工件坐标系添加

对于机器人位置与姿态的视觉引导,大多数品牌的机器人都是基于工件坐标系实现的,ABB机器人也不例外,因此这里也需要添加一个工件坐标系。

“基本”菜单栏下,“其他”命令按钮的下拉菜单中,点击“创建工件坐标”,在弹出的创建工件坐标中,用户坐标框架下使用“取点创建框架”中的“三点”法,在工作台面中心点位置处,创建一个工件坐标系,坐标轴方向与大地坐标系保持一致。

工件坐标系创建完成后,使用“同步”功能将在仿真环境中创建的工件坐标系以及工具坐标系同步到机器人控制器中,同步时二者所属的模块均选择“Module1”。

机器人位置与姿态变量声明

在Robotstudio软件的“RAPID”菜单栏下,打开机器人程序模块Module1,然后在程序代码编辑窗口中声明机器人在X、Y轴上的位置偏移变量PosXY以及在Z轴上的旋转变量OrientRz,如下图所示。

完整变量声明代码如下。

    PERS pos PosXY:=[0,0,0];!声明机器人在X、Y轴上的位置偏移变量PERS orient OrientRz:=[0,0,0,0];!声明机器人在Z轴上的旋转变量

机器人视觉引导Smart组件创建

在上一期创建的工件位置随机生成仿真环境中的Smart组件中,添加2个RapidVariable子对象组件,其中一个用于向机器人发送视觉检测到的工件位置偏移数据、另一个用于向机器人发送视觉检测到的工件姿态偏移数据。

对两个RapidVariable子对象组件进行属性配置,以实现将视觉检测到的工件偏移数据分别发送到在机器人程序中声明的数据变量PosXY、OrientRz中。

对于相机的控制,这里使用2个LogicGate子对象组件、1个Show子对象组件、1个Hide子对象组件。

使用Show与Hide子对象组件对相机光源进行显示/隐藏操作,实现相机光源的闪烁仿真效果,二者属性参数配置如下。

用2个LogicGate子对象组件作为延时继电器,控制相机光源实现时间间隔为1s的闪烁,二者属性参数配置如下。

在Smart组件中删除之前创建的定时器子对象组件,添加1个脉冲信号输出子对象组件LogicSplit。然后再分别创建1个数字量输入信号di1与1个数字量输出信号do1,用来作为视觉引导Smart组件的控制与反馈信号。

对修改后的视觉引导Smart组件属性传递关系与信号控制逻辑分别进行设置,设置完成后,如下图所示。

机器人示教编程

在机器人控制器中分别创建1个数字量输入信号di1与1个数字量输出信号do1,可以是物理信号,也可以是虚拟信号,用于与Smart组件中的控制、反馈信号进行连接。

在Robotstudio软件的仿真环境中对机器人进行示教编程,机器人运行轨迹如下图所示,示教编程过程中除了Target10点以外,其他工作点全部使用创建的工件坐标系Workobject_1,工具全部使用焊枪工具。

将在仿真环境中示教完成的机器人程序同步到机器人控制器中,然后在“RAPID”菜单栏中将其打开,完整的程序代码如下图所示。

完整的程序代码如下所示。

MODULE Module1PERS tooldata AW_Gun:=[TRUE,[[119.5,0,352],[0.890213743,0,0.455543074,0]],[1,[0,0,100],[1,0,0,0],0,0,0]];TASK PERS wobjdata Workobject_1:=[FALSE,TRUE,"",[[935,0,830],[1,0,0,0]],[[-40.5511,-0.650765,0],[0.970459,0,0,0.241266]]];PERS pos PosXY:=[0,0,0];!声明机器人在X、Y轴上的位置偏移变量PERS orient OrientRz:=[0,0,0,0];!声明机器人在Z轴上的旋转变量CONST robtarget Target_10:=[[689.999962519,0,1034.999958384],[0.050592966,0,0.998719356,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_20:=[[-50.000031446,0,69.999996546],[0.050592981,0,0.998719355,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_30:=[[-50.000039757,-49.999997088,9.999981609],[0.050593041,-0.000000002,0.998719352,0],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_40:=[[49.999986089,-49.999997513,9.999975834],[0.050593071,-0.000000005,0.998719351,-0.000000003],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_50:=[[49.99998634,49.999993971,9.999986546],[0.050593101,-0.000000004,0.998719349,-0.000000008],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_60:=[[-50.000051431,49.999995421,9.999995587],[0.050593133,-0.000000004,0.998719347,-0.000000011],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];PROC main()MoveJ Target_10,v500,fine,AW_Gun\WObj:=wobj0;!机器人Home点WaitTime 1;!等待1sPulseDO\PLength:=0.2,do1;!向机器视觉引导Smart组件发送200ms的控制脉冲信号,启动视觉检测功能WaitDI di1,1;!等待视觉检测完成反馈信号WaitTime 2;!等待2sWorkobject_1.oframe.trans:=PosXY;!更新工件坐标系Workobject_1的位置数据Workobject_1.oframe.rot:=OrientRz;!更新工件坐标系Workobject_1的姿态数据MoveJ Target_20,v500,fine,AW_Gun\WObj:=Workobject_1;!机器人工作点程序MoveL Target_30,v500,fine,AW_Gun\WObj:=Workobject_1;MoveL Target_40,v500,fine,AW_Gun\WObj:=Workobject_1;MoveL Target_50,v500,fine,AW_Gun\WObj:=Workobject_1;MoveL Target_60,v500,fine,AW_Gun\WObj:=Workobject_1;MoveJ Target_20,v500,fine,AW_Gun\WObj:=Workobject_1;WaitTime 0.5;!等待0.5sMoveJ Target_10,v500,fine,AW_Gun\WObj:=wobj0;ENDPROC
ENDMODULE

机器人视觉引导工作站仿真运行

在“工作站逻辑”中,将视觉引导Smart组件的控制、反馈信号与机器人控制器的数字量输出信号、数字量输入信号互相连接。

在“仿真设定”中,同时勾选“视觉引导”smart组件、机器人控制器,并将机器人“运行模式”设置为“连续”。

对视觉引导机器人仿真工作站进行仿真运行,可以看到工件在工作台面上随机改变位姿,相机对工件拍照检测后,机器人按照引导数据移动到工件位置,对工件进行加工操作,仿真效果如下图所示。

The End


上一篇:Robotstudio软件:基于Random组件的工件位置随机生成


http://www.ppmy.cn/news/394846.html

相关文章

RobotStudio教程:ABB机器人TCP路径轨迹跟踪功能介绍与使用方法

目录 功能介绍 机器人工作站创建 TCP路径轨迹全局跟踪 基于事件管理器的TCP路径轨迹局部跟踪 基于Smart组件的TCP路径轨迹局部跟踪 仿真运行 功能介绍 干涉检查是虚拟仿真工作中非常重要的一个步骤,尤其是机器人工具与工件、工装夹具之间的碰撞干涉&#xff…

RobotStudio软件:ABB机器人喷涂虚拟仿真

目录 概述 喷涂机器人工作站创建 Smart组件添加 喷涂机器人示教编程 工作站获取虚拟控制器变量数据配置 Smart组件属性与信号连接 喷涂工作站I/O信号逻辑设定 喷涂机器人仿真运行 本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号&…

深度学习AI克隆人声模型

在过去的几年中,人工智能(AI)在音乐产业中的应用已经变得越来越普遍。在这篇博客中,我们将探索如何使用AI生成模型来复制人声,并使用这些复制的人声来唱歌。我会以尽可能详细的方式展示这个过程大纲,并提供相关代码。 1. 概述 我…

【哈佛积极心理学笔记】第20课 幸福与幽默

第20课 幸福与幽默 The vanguard of the positive psychology revolution: Our brain is basically a single processor, capable of consciouly choosing to devote resources either to the pain and suffering on one side, or viewing the world that lens of something l…

如何修改鼠标的颜色、大小、形状、其他

第一种方法: 打开笔记本设置(左下角win) 2.选择设备 3.选择鼠标 4.修改颜色、大小(最右边) 5.修改 第二种方法: 1.直接搜索 2.其他同上 若文章有错,欢迎私信告诉,有问题亦可私信提…

调整鼠标大小

windows 10 一、点击电脑左下角窗口形状的图标 二、点击”设置“ 三、点击”轻松使用“ 四、点击“鼠标指针” 五、在“更改指针大小和颜色”模块进行更改

计算机的配置鼠标,鼠标设置,教您鼠标设置在电脑的什么位置

鼠标是我们在使用电脑的时候不可缺少的设备,而为了让鼠标更好的操作,我们就需要通过鼠标设置来进行更改,但是很多用户并不知道鼠标设置在哪,又该怎么设置鼠标呢?下面,小编给大家介绍鼠标设置在电脑的什么位…

鼠标组件——可移动和可改变大小组件

示例代码下载:http://download.csdn.net/source/950979 本示例演示如何实现用鼠标移动控件位置,如何用鼠标改变控件的大小,这两种功能分别由两个组件实现,ResizableComponent和MovableComponent 本示例演示效果如下,在…