基于相机的控制并使用OpenCV库的工业机器人外文翻译资料

 2022-04-12 19:59:16

英语原文共 14 页,剩余内容已隐藏,支付完成后下载完整资料


基于相机的控制并使用OpenCV库的工业机器人

帕特里克答塞德尔和凯伯恩克

巴登 - 符腾堡州合作州立大学(DHBW)曼海姆,Coblitzweg 1-7,68163曼海姆

patrick.a.seidel@gmail.com海德堡应用科学大学kay.boehnke@gmail.com

摘要. 本文描述了一种工业机器人的控制系统,其反应基于对安装在机器人顶部的摄像机提供的图像的分析。 我们证明这样的控制系统可以用开源的图像处理库和廉价的硬件来设计和实现。 以一台特定的机器人为例,我们演示了在PC上运行的可能的控制算法的结构及其与机器人的交互。

关键词:机器人,控制,摄像机,OpenCV。

1简介

在过去的几年中,视觉对象识别和对象定位已成为许多领域研究和开发的一个巨大领域,特别是机器人自动化[1]。机器人和视觉对象本地化之间的联系并没有出现意料之外的情况:工厂自动化主要基于机器人,它几乎可以在没有任何外部输入或手动处理的情况下运行。工业自动化的最终目标之一是在人类智能和创造性不被需要的地方取代人力,但机器可以提供准确性,敏感性或可靠性。在所有这些方面,机器人领先于人类工作者。但是,今天的机器人化自动化面临着一个巨大的问题:就灵活性而言,它无法像人一样快速而灵活地作出反应。最轻微的情况变化可能会导致机器人无法继续其预期的行动。如今,机器人的设计并不是为了灵活地识别和应对新的情况。事实上,工业机器人制造商提供了一些解决方案。它们包括基于摄像头的控制,对象识别或对象质量检查。但是这些解决方案大多价格昂贵,专门针对一种类型的机器人。因此,其目标是为基于开源库的工业机器人创建一个控制和通信平台,这些平台可以很容易地进行修改,扩展或升级。

此外,它应该包括工业机器人控制的基本特征,包括能够准确地进行移动和其他动作,快速反应的能力以及保持某种准备状态的能力,等待任何指令。

A. Gottscheber,D.Obdržaacute;lek和C. Schmidt(编辑):EUROBOT 2009,CCIS 82,第144-157页,2010。

copy;Springer-Verlag柏林海德堡2010

所提出的控制系统能够通过软件来控制工业机器人,该软件可以分析和解释由相机制作的图案。由于其可能用于自动化,因此对这种控制有各种要求:

─精确控制机器人 - 这在机器人处理危险或敏感货物的情况下非常重要

─控制系统(即实施的软件)与机器人(硬件)之间的快速通信

─通过软件实现的非平常事件的灵活处理

无可否认,主要的问题仍然是根据照相机图案的评估确定机器人的极限位置。专业工业解决方案使用例如传送带跟踪或产品跟踪,使机器人/工业机器能够按照计划对产品执行任何操作。

本文描述了使用开源图像库进行图像处理(英特尔OpenCV)的工业机器人基于摄像头的控制的主要思想,实现和进一步扩展。在这种情况下,带有Motoman XRC控制单元的工业机器人安川SV3可以实现这一功能,但可以轻松应用于几乎任何其他带有个人计算机接口(例如EIA-232,USB或FireWire)的工业机器人。

本文件的概要如下:

首先,概述描述了符合这些想法可以实现的主要思想和基本原则。下一部分描述用于图像处理的算法。它们由来自英特尔OpenCV库的各种功能组成。进一步的实现是使用Motoman XRC工业机器人的例子。本节包含软件和接口实现。根据对实现的描述,得出结论和项目的相关性,包括可能的扩展或改进。

2概述

2.1主要观点

如何通过摄像头控制工业机器人的主要想法如下:请参见图1以了解可视化控制方案。

相机需要安装在机器人的中心位置。这可确保摄像机拍摄的视频流或图片尽可能接近机器人的视野。鉴于此,可以使用流/图片(以下称为图片)来分析机器人的环境并对该环境做出反应。

摄像机图像然后通过软件获取,使得软件能够访问摄像机。一旦收到图像数据,软件开始解释它。这一步包括分析收到的图片。分析中最重要的部分是对象识别,识别和本地化。第一步 - 对象识别 - 在这种情况下意味着软件识别图片上导致更改的任何对象。

图1.可视化控制方案

假设有一个物体,只有当物体的类型和特性及其位置建立时才能采取适当的反应。因此需要物体识别和物体定位。识别是基于识别对象与对象数据库的比较,其中所有已知对象都以其特定属性进行存储。

如果存在匹配对象,则在控制算法中定义的特定规则或动作完成。根据上面定义的参数(例如对象,位置等)设置主要机器人运动参数的设置点。这些是例如运动速度,绝对或轴位置。在算法执行之前,应该知道机器人的当前位置,以确保控制算法不会提出机器人由于奇点或轴限制而无法执行的任何动作。

如果识别的对象与存储在数据库中的对象之间不匹配,则需要特殊情况才能正确反应。控制算法的结果包括机器人的命令,包括新的位置,如何到达那里以及之后要做什么。如上所述,这些命令通过通用的PC接口传输给机器人。

必须监控机器人的实际运动情况,这符合位置监控。常数方差比较可以实现快速平稳的运动。因此,确保机器人尽可能快速和平稳地到达目的地。

2.2对象识别,识别和本地化

对象识别的主要原则是注册图片已经改变。一旦发生此事件,可以开始对象识别。有两种方法可以识别物体:

─提取特定于对象的特征,然后将这些特征与数据库中的对象特征进行比较

─将整个对象(必须首先定义)与存储在数据库中的一些模板进行即时比较

第二种方法不太可能找到匹配,但是,没有定义阈值来决定匹配是否仍然有效。

根据识别对象的类型,使用各种对象定位技术:

椭圆形物体(包括圆或球体)的位置由其中心的位置明确定义,因此搜索中心是适当的度量。

参考点的定义是多边形对象最常用的技术。该参考点(例如一侧的中点)使得软件能够将一个位置分配给物体,参考物体的其他点被描述。

2.3控制算法

控制算法表示机器人控制中实现的所有功能。根据这种算法,机器人根据其规则对“新”情况做出反应。

传递给算法的参数是类型,对象的位置和机器人的当前位置。对象的类型对于重要确定对象的处理(例如,如何挑选它,放置它的位置)。为确保低等待时间,控制算法必须很快处理。

最简单的实现是在追踪对象期间计算位置误差。请注意,在此示例中,使用了真实世界坐标(映射到3D笛卡尔坐标系中):

Delta;x xObjectPos.  xCurrentPos. (1)

Delta;y yObjectPos.  yCurrentPos (2)

. Delta;z zObjectPos.  zCurrentPos. (3)

2.4接口通信

机器人必须通过标准通信接口与控制软件进行通信。 因此,必须注意通信接口的正确选择,这会严重影响延迟时间。 尽可能避免延迟。

通信包含两种不同类型的消息:

1.命令消息

(运动)命令由控制算法发送给机器人

2.状态消息

带有状态报告的消息(基本上是位置数据)由机器人发送到控制算法,该算法在计算过程中考虑它们。

由于位置捕捉通常是通过绝对式编码器实现的,编码器记录的位置需要转换为机器人可以解释的数据,反之亦然。

2.5运动

由机器人根据来自控制算法的传输命令执行的所得移动被执行为机器人不同轴的圆周运动。 这意味着,如D中所述,必须将绝对位置转换成轴位置。 机器人正向运动学参数的计算[12]需要一段时间,在移动命令的接收和执行之间产生一定的等待时间。 因此,应该仔细选择迭代命令传输之间的最小时间间隔,以便延迟时间可以被旁路以执行先前处理的移动。

2.6数据库集成

数据库可以以不同的方式进行集成:

最简单的实现是将数据集完全包含在应用程序代码中。这导致了很多代码行,但避免了与外部数据库的接口,这使得这个实现很容易实现并且很快执行。缺点是对象属性或规则中的细微修改会导致代码更改。

另一种方法是将数据存储在可由应用程序通过接口访问的外部数据库中(例如Open Database Connectivity ODBC)。这允许修改属性或规则而无需更改代码。标准化界面的实施需要一些时间,但并不难。额外的接口在运行时很耗时,但当前的数据库实现非常高效。

2.7一般方法

有了这些先决条件,实现的一般方法如下:

─通过通用PC接口(例如EIA-232,USB或FireWire)编程一个能够在PC环境中控制机器人的软件应用程序,

─嵌入图像处理功能,使物体识别,识别和定位(使用英特尔的OpenCV库)。

─用基本对象属性和规则嵌入数据库。

─将主要功能,图像处理和数据库链接起来,以获得一个预先描述的控制机器人的应用程序。

3OpenCV图像处理

英特尔的OpenCV(开源计算机视觉)库以C / C 编写,为工业图像处理提供基本和熟练的功能。为了进行物体识别,识别和定位,本节介绍项目中使用的相关功能。有关更多详细信息,请参阅[2]。

3.1初步考虑

基本考虑因素取自[3]。在之前的测试中,已经发现了在对象识别和定位方面具有最佳结果的算法。因此,本项目使用[3]推荐的函数和算法。对象识别和跟踪的其他技术的一般概述显示[4]。

3.2可能的方法

对象跟踪最公认的功能之一是CamShift功能[5]。由于这是一个非常灵活的函数,可以在不考虑对象形式的情况下找到对象中心,因此可能会实现此功能的一个改进。

另一个有趣的方法是使用广义霍夫变换。霍夫变换能够在任何图像中找到预先指定的对象形式及其中心。这个众所周知的技术的使用和功能在[6]中描述。

3.3应用功能

正如[3]中所解释的,物体识别和定位的最佳结果是通过将相机图像与存储在数据库中的模板图像进行比较来实现的。 OpenCV函数cvMatchTemplate实现了这个功能。 它实现了一组用于查找与给定模板类似的图像区域的方法。 使用常用的数学近似方法,可以根据像素差的平方或归一化的平方像素差等相关原理计算两幅图像的相似度。 有关各种方法的更多信息,请参阅[2]。

这个项目中使用的原理是归一化的平方像素差分方法,根据:

在(4)中,S是模板和像素对(x,y)确定的特定点处的图像(高度h和宽度w)之间的相似度。 T是位置(x,y)中模板的像素值,而I是位置(x,y)中图像的像素值。 相似度函数的值在依赖于(x,y)的位置处的所谓结果图像中显示。 图2显示了cvMatchTemplate的结果图像,用红色圆圈作为模板执行。 这个结果可以用来确定被识别物体的中心,使用上面提到的霍夫变换或者在物体中心位置的大部分时间都可以理解的最大相似性值,因为这是具有最高数目的周围的地方 相似度值相对较高的点。

图2.结果图像cvMatchTemplate

这种本地化只是二维的。 如有必要,可以将第三维添加到定位算法中,方法是在对象属性中定义对象大小的标准值。 通过比较数据库中对象的大小和识别对象的大小,可以使用基础数学分别计算距离标准距离的距离(参见[7])。

图3.搭载Motoman XRC控制单元的安川SV3机器人控制系统流程图

4实现

以前描述的想法的实现是使用特定的工业机器人Yaskawa SV3 / Motoman XRC作为例子进行的。虽然通用性的要求仍然非常重要,证明该方法的可用性是第一步,在转换到其他机器人类型和平台可能面临之前。

安川SV3是一款可以独立控制的7轴工业机器人。由预定义的运动或动作组成的程序可以存储在内部存储器中。另外,机器人可以通过Motoman XRC机器人控制单元和附带的辅助设备手动控制。通过辅助设备和控制单元,用户可以选择内部存储的程序。通过使用EIA-232接口可以将控制单元连接到PC。这允许通过控制单元在PC和机器人之间进行通信,并因此通过PC控制机器人。用户和机器人之间的接口是名为ACL-Win的应用程序。 ACL-Win建立连接并提供通信服务。在PC和机器人之间的所有交互过程中,需要运行ACL-Win。

为了编程C / C - 具有与Motoman XRC通信能力的应用程序,制造商提供了易于包含在任何编程环境中的C / C 库。这些库使得编程过程变得很容易,因为有多个接口可以克服并且只与一个应用程序相结合,如图3所示。

事实上,控制应用程序需要连接非常不同的方面和接口。最重要的功能是与机器人的通信。如前所述,ACL-Win-headers提供了获取有用结果的基本功能,因此被使用。在图3所示的场景中,ACL-Win和控制单元仅仅用作通信信道。这些命令由控制应用程序发送。与机器人通信几乎同等重要的是摄像机图像的获取和解释。控制应用程序必须能够与连接的相机进行通信并调用包含OpenCV功能的图像处理功能。当控制算法被实现时,它可以被定义为一种自动模式,其中机器人自动地对外部事件作出反应。为了避免自动模式下的

全文共8947字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[14156],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。