首页/文章/ 详情

图像识别技术在数字孪生技术中的应用:以七巧板拼接为例

2年前浏览7518
来源:数字孪生DigitalTwin

摘 要:  

随着数字孪生技术的快速发展,数字孪生技术与其他技术的兼容性不断增强,正因为如此,图像识别技术在数字孪生技术中的应用才能够成为现实。然而,数字孪生技术中的关键点——虚实互控技术还不够成熟。


不仅如此,数字孪生技术中对于图像识别技术的应用也存在着坐标系维度变换的问题,而坐标系的维度变换问题正是图像识别技术与数字孪生技术融合的关键。因此,本文以七巧板拼接为例,提出了一种图像识别技术在数字孪生技术中的应用方案。

关键词数字孪生图像识别机械臂


1.方法介绍


1.1 硬件准备


硬件准备分别包括一套常规的七巧板组件、KUKA KR6机械臂及其配件(KUKA Robotics Co., LTD)、S7-1200型可编程逻辑控制器(PLC)(SIEMENS)、Windows系统电脑主机。七巧板组件包括两块40cm*40cm*3cm的纯黑色底板,由普通石材制成,分为左底板和右底板。右底板用于放置分散的七巧板组件,左底板用于放置拼接的七巧板组件。底板为黑色,以便于后期图像识别中的颜色处理。此外,还使用了一组传统的七巧板组件。七巧板组件的尺寸如图1所示。每块七巧板的中心位置用铅笔线标出,并指定初始旋转角度,以方便后期图像定位。


图1 七巧板组件


KUKA KR6 机械臂和组件包括KUKA KR6 机械臂(KUKA Robotics Co., LTD)有六个自由轴,每个轴的旋转角度都在 120° 以上,重复精度为 0.015mm 到 0.2mm,如图 2 所示。KUKA KR6机械臂第六轴安装二维工业相机(杭州海康威视数码科技有限公司)进行图像识别,相机周围安装圆形补光灯。在相机拍摄过程中,环形补光灯进行曝光补光,保证每次采集图像的一致性和可靠性。KUKA KR6机械臂的第六轴除了图像采集组件外,还配备了两个气动模块,分别连接两个五点二通电磁阀,以提供足够的吸力来吸食七巧板。气阀通过气管与第六轴相连,其前方装有弹性吸盘,防止机械臂过度伸长造成物理损伤。


图2 Kuka kr6机械臂及其组件


S7-1200 可编程逻辑控制器。控制系统采用SIEMENS S7-1200的PLC和16×24VDC输入输出模块,如图3所示。PLC选择配置1215DC/DC。S7-1200型PLC提供16个输入(I)口和16个输出(O)口,共32个I/O口。S7-1200型PLC还提供PROFINET通讯协议,用于建立虚拟I/O通道,将真实输出转换为模拟输出,控制KUKA KR6机械臂。本文采用PROFINET协议来减少PLC与KUKA KR6机械臂之间的通讯时间。这样就减少了电磁波对脉冲信号的影响,提高了实验的准确性。S7-1200 PLC作为本实验的中控系统,主要负责KUKA KR6机械臂数据的多维处理,以及KUKA KR6机械臂与仿真软件Demo3D之间的实时数据传输。


图3 PLC硬件及模态图


1.2 软件准备


在本实验中,上位机使用Windows系统,所有软件都支持Windows7/8/10系统。仿真软件采用Demo3D(2015)。Demo3D具有高保真的物流系统动画、仿真和控制平台,并适应各种类型的PLC。Demo3D通过OLE进行过程控制标准化协议(OPC)与PLC进行通信。


图4 OPC服务器


在本实验中,Demo3D软件也作为最终的验证软件,负责对KUKA KR6机械臂模型和七巧板组件模型的运动仿真。图像处理和下单软件为本团队亲自开发,在这其中设置了一个可拖动的图形用户界面(GUI),其中包含了所有的七巧板模型。并且可以使用鼠标拖动每一块七巧板并调整其位置和角度,如图5所示。切线模型在左上角GUI界面中的位置是最终实切线在左板上的实际位置。


图5 下单软件


2.实验目的


本实验旨在通过数字孪生软件和机械臂实现图像识别技术在数字孪生体中的应用。最后,通过将分散的拼图碎片组合成给定的形状,验证了实验结果。实验过程如下,如图6所示:


图6 实验流程图


构建模型:使用SolidWorks(2020)对所有实验相关组件进行比例建模。这里有一个固体作品的试用版。

https://www.solidworks.com/https://my.solidworks.com/try-solidworks?&lang=tw


建立空间坐标系:通过控制KUKA KR6机械臂,根据建立规则建立空间坐标系。https://www.cognex.com/products/machine-vision/vision-software/visionpro-software


图像识别:通过图像处理软件VisionPro和图像处理算法,对七巧板照片进行图像处理。


坐标系变换:通过分别在像素坐标系和空间坐标系中取点,建立像素与空间坐标系之间的变换关系。


虚拟实际相互控制:通过对不同软件使用的坐标系进行转换,实现了虚拟-实相互控制,减少了通信所需的时间。


在本实验中,PC和PLC分别作为主控制装置和上位机系统,如图7所示。PC作为用户的唯一界面,负责真实系统与虚拟模型之间的宏控制。PC还负责监控真实的系统,并实时显示模拟结果,同时读取用户的输入,并下载相应的程序到PLC。PLC作为本实验的控制装置,负责真实系统与虚拟模型之间的微控制,并通过OPC协议建立真实系统与虚拟模型之间的连接。


图7 控制结构示意图


3.实验过程


3.1 模型的建立和导入


通过Solidworks软件构建七巧板工作台、七巧板模型、KUKA KR6机械臂和模型的其他组件,并转换为IGS格式。然后将其导入到Demo3D中,并在Demo3D中选择适当的模型大小,如图8所示。


图8 模型导入


3.2 建立空间坐标系


图9通过操纵KUKA PAD移动KUKA KR6机械臂,校准空间坐标系,如图9所示。校准坐标系是建立一个基于KUKA KR6机械臂及其摄像机组件的空间坐标系。空间坐标系仅用于确定模型在软件中的实际位置。


图9 空间坐标系示意图 


在本实验中,以七巧板工作台左上顶点为坐标系原点,以七巧板工作台的边缘为x轴,通过坐标系原点并垂直于x轴的边缘为y轴。首先,通过KUKA PAD移动机械臂,寻找视觉采集点的最佳位置,并记录该位置。最好的视觉采集点位置是捕捉整个七巧板工作平台的位置。第二,将定位针安装在KUKA KR6机械臂的第六轴上,并控制KUKA PAD。


使用全局移动机械,使定位针指向黑色底板的左上角,然后切换为轴运动模式,沿Z轴方向向上移动一小段距离,记录该位置的原点。然后,根据所选择的原点,将相邻的两侧确定为X轴和Y轴,机械臂通过轴运动模式沿轴移动一定距离。然后,记录该位置。类似地,使用此方法在另一个边缘上进行操作,并记录其最终位置。根据上述四个点(坐标系的原点、底顶点、x轴上的点、y轴上的点),可以确定一个唯一的三维坐标系,即本实验的空间坐标系。


3.3 图像处理


坐标系建立后,将七巧板随机放置在右侧板上,通过KUKA PAD将机械臂移动到拍照的位置,采集图像。将图像发回主机后,进行曝光、RGB(红、绿、蓝)、无色、灰度调整和一些图像识别算法调整,使图像的整体色差更加明显。


由于七巧板底板颜色为黑色,处理后图像的背景色必须为黑色,上述处理后的七巧板必须为不同亮度的灰度。为了使灰度差异更加明显,在第一次图像处理之前,填充一层白色纸板,以增加灰度差异。灰度图如图10所示。然后,根据实际情况,选择不同亮度的灰**域,并给予每一个七巧板一个唯一的标签。


图10 七巧板灰度图


3.4 像素-空间坐标系变换


像素坐标系是图像坐标系。像素坐标系的单位是像素点,即每个像素点都是一个特定的位置。由于像素坐标系是二维坐标系,空间坐标系是三维坐标系,因此采用了通过映射扩展坐标系的透视投影法,实现了像素坐标系与空间坐标系之间的转换。透视投影的具体缩放关系如图11和图12所示。


图11 映射公式


图12 映射图


首先,选择七巧板的顶点和中心位置作为七巧板的位置信息点,其中中心位置是机械臂吸收七巧板的准确位置。所有的七巧板随机放置在工作台上,将机械臂移动到拍摄位置。然后,更换机械臂的附件,并安装定位针。然后,通过移动机械臂,将定位针分别移动到所有的位置信息点,以记录所有七巧板在空间坐标系中的具**置。


其次,从当前的灰度图像中选择相应的位置信息点并进行记录。最后,共记录7组数据(对应7个七巧板),包括X、Y轴参数、旋转和特殊情况下使用的参数,如高度或误差调整,并基于这7组数据建立旋转矩阵。具体的实现效果如图13所示。


图13 像素-空间坐标系变换


3.5 机械臂的虚实互控


机械臂的虚实互控主要涉及三个方面:第一个方面是PLC可以实时读取、处理和转发机械臂的位置信息,第二个方面是Demo3D可以实时控制机械模型的运动轨迹,第三个方面是PLC与Demo3D的实时通信。


在Demo3D中,Demo3D并非直接控制机械臂模型,而是使用嵌入式的快速逻辑编程模块来完成机械臂模型的运动控制。快速逻辑编程模块是机器人编程模块。QucikLogic编程模块封装了大量的底层函数,并以模块化的方式呈现这些函数,简化了机器人的整体运动控制过程。


PLC与Demo3D之间的信息通信采用地址映射。机械内存的每个轴由PLC内存和Demo3D内存中的唯一地址表示,机械内存的PLC内存地址和演示三维内存地址之间的映射关系是机械臂的实时虚拟实际相互控制的关键。机械臂地址的具体映射关系如图14所示。


图14 机械臂点表对应图


机械臂的虚实互控主要分为以下四个步骤,如图15所示。


图15 虚实互控过程示意图


1)PLC读取机械臂的位置:PLC和机械臂通过网线连接,通过proifnet协议进行信息交互,PLC通过读取机械臂对应的六个轴获得其当前位置。

2)PLC数据处理:PLC读回的机械臂位置信息为初始信息,其信息格式不符合快速逻辑模块的调用格式。因此,将初始信息的格式通过PLC的内置模块进行转换,使其符合QuickLogic模块的调用格式,并将处理后的数据存储在中间寄存器中。

3)快速逻辑模块调用数据:快速逻辑模块直接调用PLC中间寄存器中相应机械臂的位置信息,通过在快速逻辑模块中设置循环调用函数,每0.01s刷新并读取一次位置信息。程序代码如图16所示。

4)模型运动反馈:QucikLogic模块读取位置信息后,将位置信息反馈给Demo3D,然后再反馈给机械臂模型,最终使机械臂的运动和模型的运动呈现相同的状态。


图16 机械臂核心控制代码


3.6 七巧板的虚

实际相互控制


Demo3D中的每个七巧板都包含三个位置参数,即X轴、Y轴和旋转角α。七巧板对象的位置变量属于空间坐标系,而七巧板模型的位置变量属于像素坐标系。对于旋转角度,在初始模型匹配时,将七巧板的中心点和初始旋转角设置为0°。七巧板的点表信息如图17所示。


图17 七巧板点表


机械臂在视点位置的拍摄完成后,根据坐标系的变换,将七巧板模型放置到相应的位置。值得一提的是,每条七巧板的旋转角度是由旋转重叠的方式决定的。通过将中心点重叠并将角度旋转到初始旋转角度,得到七巧板的旋转角。


在实际结束时,经过图像处理后,机械臂移动到要移动的七巧板上方的位置,打开圆筒,绘制七巧板,然后将七巧板移到订单软件中的预设位置。在虚拟端,当圆柱体打开时,调用QucikLogic中的粘贴函数(STCIK函数是设置父子函数,设置的子单元将与父单元一起移动)。移动的七巧板被设置为机械臂模型的子项,并与机械臂一起移动。当钢瓶关闭时,还使用棒函数来抵消七巧板与机械臂之间的次级关系,从而完成虚拟七巧板的运动。七巧板的Stick函数调用如图18所示。


图18 七巧板Stick函数调用


通过本文的实验步骤,最终完成了七巧板项目的虚拟-实际相互控制,如图19所示。如图19所示,机械臂和机械臂模型、七巧板模型和七巧板模型处于相同的状态。


图19 七巧板拼接项目验证


4.结 论


本实验通过七巧板拼接项目将图像识别技术应用于数字双,扩展了数字双的应用领域,挖掘了多领域图像识别技术的可能性,为实现图像识别技术与数字双的融合提供了一条途径。


图像识别技术和数字孪生技术的无缝集成可以应用在许多领域,如快速排序在物流行业,产品筛选,甚至在教育领域为学生提供数字孪生技术实践培训课程。综上所述,数字孪生技术注定要进入历史阶段,其中图像识别技术发挥着非常关键的作用,而图像识别技术在数字孪生中的应用注定要成为下一个时代的趋势。

        

来源:数字孪生体实验室
SolidWorks通信机器人数字孪生物流控制PLCDemo3DVisionPro
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-07-29
最近编辑:2年前
数字孪生体实验室
围绕数字孪生技术的创新研发,推...
获赞 446粉丝 370文章 600课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈