技术论文
RTX64:强大,灵活的工业视觉控制系统平台
发布05/24/2016
Microsoft Windows,结合多核实时性能和巨大的共享内存为机器视觉系统创建了一种使用非专业化硬件的机器视觉系统,但功能易于编程和维护,并且保持灵活和可配置。
机器视觉的新环境
从在制造过程中对破碎的玻璃碎片进行分类,到在拥挤的街道上辨认出重罪犯的脸,数字视觉系统正渗透到整个行业,甚至整个社会。之所以会出现这种情况,部分原因是这种系统模仿了人类与物体互动的方式,也因为所需技术的电力和成本正变得越来越容易获得。
它的应用范围非常广泛,从检测到机器人装配,到生物识别,再到医疗设备,再到汽车系统和机器人仓库,等等。在速度、分辨率、图像处理的深度和细节,以及它们所驱动的控制系统的速度、准确性和复杂性方面,对机器视觉系统的要求与应用程序一样多样。
在过去,视觉系统通常由两部分组成:视觉捕获和处理系统和控制系统。如今,越来越多的人需要将这些系统整合到一个统一的集成环境中,以降低成本,并使系统更容易配置(主要是通过软件),以适应不断变化的应用程序。
RTX64系统从IntervalZero汇集了多核SMP环境中的实时性能,共享内存使并行性能与实时控制一起速度进行速度图像捕获和处理。这与Windows用户环境相结合,可以通过标准接口轻松容纳最新的相机技术并链接到现代设备。这样的平台可以快速实现和配置应用特异性机器视觉(ASMV)解决方案,该解决方案可以使用基本上相同的硬件平台来重新定位。
这为实现具有广泛功能的视觉系统提供了一个强大而灵活的环境,其中之一将是视觉定向运动,也称为视觉伺服。一些这类功能已经被所谓的“智能相机”抵消了。这些相机本质上具有强大的处理能力,可以以允许快速捕获和高带宽的速度完全或部分处理图像,这是传统控制系统无法处理的。这种过程卸载只允许将需要的视觉数据传递给系统,从而减少了系统必须直接处理的信息量。
然而,在相机的成本方面,这种相机的价格以非常陡峭的价格提供,这用于限制使用视觉的系统类型。使用RTX64和GigE vision,所有这些捕获和处理都可以由系统本身处理,减少对智能摄像机的需求及其急剧成本。结果是,可以获得整合愿景的应用程序数量可以以增加的速度增长并扼杀创新的火灾。
机器视觉解决方案的要求
机器视觉首先是通过摄像机捕捉一些场景或物体的图像。在嵌入式视觉系统的情况下,这几乎总是一个数码相机,将获得的图像可以处理和理解的某种方式。但除此之外,还需要更多的定义。仅仅因为一幅图像落在视网膜上并不意味着我们在“看”。大脑必须处理和理解图像,而身体必须对其信息做出反应。
通过同样的令牌,机器视觉系统必须做点什么。在这种系统的能力上,“某些东西”可以很简单,例如识别和分类质量,大小或其他属性的零件。或者它可以是非常复杂的,例如机器人臂操纵物体到3D空间中的组件中。所以要被视为机器愿景,系统必须汇集三个基本组件:图像捕获以获取基于系统功能的可视数据;图像处理以提取和/或应用系统目标所需的相关数据和信息;和一个控制循环执行实际功能。
控制循环可以是简单甚至非物理的,例如简单地记录来自图像捕获和图像处理的对象的数据。它可以添加一个非常简单的物理控制机制,例如空气或一些执行器,以便将不合标准的零件从皮带上推开以进行质量控制。当然,它可以包括一个复杂的控制回路,其将操纵武器和仪器,以实现通过与控制程序和用于机械子系统的指令的其他预定义数据协作地处理视觉数据的一些任务。
从简单到复杂的范围也适用于用于首先捕获数据的摄像机。随着时间的推移,各种具有不同分辨率的相机,颜色功能和速度以及相应的硬件接口标准的相机。此外,这些硬件接口标准具有不同的数据速率,电缆和连接器。其中一个重要的名称是它们中的一些,例如icamerink,icalinkhs和coaxpress,必须连接到帧抓取硬件,而其他一些则包括遗留IEEE1394和USB 2.0以及更新,更强大的标准,如GigE VieN和USB 3.0 Vision,直接连接到PC。
虽然上面的相机,电缆和接口选择确实提供了广泛而看似的功能的能力,但好消息是,有一个较少数量的软件标准,可以确保所有这些系统组件之间的互操作性和用于定义驱动程序的所有这些组件从各种供应商提供,作为软件开发套件的一部分。Genicam和IIDC2将基本传输层和库的映射映射到通用API中。这也使得更换连接到系统的摄像机,以满足不同的应用要求,而无需大量的低级重新编程。
综合机器视觉和运动控制的好处
如上所述,如果可以减少成本和复杂性,机器视觉具有巨大的潜力,可以延长越来越多的自动化和控制应用,如果可以更灵活,并且更容易适应改变应用需求,因此可以更加灵活,并且更容易适应。传统上,视觉控制系统包括单独的视觉和图像处理单元,其与诸如焊工,钻头或机器人臂的单独和专用的控制单元连通。将这些组件在单个硬件/软件系统中一起带来实际控制设备(钻,焊机等),如标准外围设备,以太网,以太网或PCIe接口可以大大降低更广泛应用的障碍和更低的成本。
考虑一个直观的焊接或钻孔操作的例子。例如,视觉系统将捕捉到两个将要连接的部分或将要焊接的金属片的图像。它将使用图像处理算法来识别物体的一些关键特征,要么是根据物体的固有形状,要么是根据物体上的标记。然后,它将使用边缘识别或其他模式匹配算法等功能,将已知模式应用到图像上,以精确对应工件上所需的位置。工具的控制将由应用模式上的路线运行指导,由于它是准确地在工件上的位置,焊接,钻孔或其他操作也将准确地放置。
这种类型的情景具有许多直接优势,其中一个即将被称为“合作机器人”。在这里,愿景定向的动作与人类运营商一起使用,他们将工件放在位置,但不操作该工具,该工具是在视觉系统的控制下。在件的放置时可能有轻微的缺陷,因为它们被图案的放置补偿。这在触摸和压力传感器和执行器方面可以节省大量成本和复杂性,以定位和握住该件,以及为此相同目的的专用夹具的制备。如果将该策略应用于许多不同的应用,则传感器和定位设备的潜在节省可能是巨大的。它还利用了更大的灵活性,因为可以用不同的软件来执行完全不同的操作,并且通过将不同的工具插入基本上是同一块设备。
如果所有这些功能也可以放在一个通用的、多核的pc类系统上,并且大部分是在软件中实现的,那么节省和灵活性将是显著的。该系统以RTX64为基础,以Microsoft Windows为人机界面,在多核并行实时核的PC机上实现,可连接Internet等外部网络,并使用Microsoft Visual Studio进行编程。其他基于pc的视觉和图像处理工具的例子包括MathWorks的MatLab, Wolfram Research的Mathematica, matrix等公司的程序库,以及可以在几个核心上并行运行例程的实时控制程序。不同内核上的线程访问共享内存的能力进一步增强了并行性,减少了抖动或重复数据的可能性。
RTX64在一个硬件平台中介绍窗户和专门的实时操作系统
IntervalZero的RTX64将Windows转换为全功能实时操作系统,完全在X64多核硬件上运行。它还提供对128 GB的非分页内存,具体取决于实际映射物理RAM大小。总体而言,Windows'512 GBytes物理内存DWARFS 32位窗口的4 GBETE物理内存限制。这种大量可用内存打开了实质上强大的机器视觉系统的门,这可以适应在系统上运行的所有核心同样可用的大量图像数据。
最重要的是,RTX64以Multicore X64设备的形式提供单个商品硬件环境。这使得单一的软件环境可以容纳具有丰富的用户界面,可用应用程序和开发环境的Windows。Windows无缝连接到全功能,实时对称多处理(SMP)RTX64环境,可从1到63个核心缩放。
应用程序编译为单个代码库,无需FPGA或DSP基于必须单独编译和与主应用程序链接的不同代码执行逻辑。一组硬件,一个操作系统环境,一组工具和一个基础代码。这转换为一个可以共同沟通和工作的团队,并产生高性能,可扩展的应用,同时急剧缩短上市时间。
RTX64有一个不同于Windows HAL的硬件抽象层(HAL),但它与Windows一起运行,不需要修改Windows。这两个系统肩并肩地运行,并通过现有机制进行通信。RTX64 HAL可以提供确定性的实时性能,并将时间降至1 μs(取决于硬件支持)。调度程序驻留在RTX64实时子系统(RTSS)中,可以将线程分配到内核,从而实现对称多处理(SMP),而无需依赖虚拟化或复杂的进程间通信。
在没有内存分区的情况下,所有内核都可以使用巨大的内存空间。这对机器视觉应用和先进的工业控制系统来说是一个巨大的优势,这些系统不仅必须向用户呈现视觉数据,而且还必须对其进行实时处理,以驱动工具的运动控制,并对过程中产生的零件进行检测。
具有这种高性能通用硬件平台可用的大量存储空间允许OEM开发专用软件,该软件可以执行具有否则需要专门的硬件组件的特殊功能。缩放这样的系统只带来了增加的复杂性,每个不同的额外硬件都具有自己的接口和独特的软件需求。
IntervalZero的RTX64已将世界开放到基于Windows的实时系统,具有高端视觉,可视化和丰富的用户界面。它通过使开发人员通过利用底层多核处理硬件的功率来使开发人员能够将硬件组件的功能转换为软件组件。对于OEM,没有任何物品,可以无限制地复制零件。对于软件团队,无需专门了解DSP和FPGA等硬件知识。代码存在于统一的代码库中,可以这样管理。
RTX64主持强大的视觉系统
RTX64系统的高性能和通用性质使得可以实现主要在软件中定义的强大和多功能的视觉伺服系统。然后,主要的硬件选择是选择相机和要控制的特定设备,例如机器人臂,钻,焊接设备,铣削装置或类似于空气流的东西,以从传送带中除去被拒绝的部分。
有很多内部功能的相机可供选择,从基本的VGA到多个百万像素的高分辨率;帧速率的选择;当然,如果应用程序认为有必要,还需要不同程度的内部处理能力。如前所述,如此广泛的选择也带来了广泛的相关成本。考虑到多核RTX64系统的高处理能力,仔细考虑相机特性和成本是一个重要步骤。RTX64系统可用的处理能力所能容纳的任务可以大大降低所需相机的成本。
出于这个原因,金际建议Gige Vision全球摄像机接口标准,它允许使用低成本,标准以太网电缆和连接器的快速图像传输,该连接器能够使用光纤电缆长度长达100米甚至5,000米。由于Gige Vision直接使用以太网连接,因此它不依赖于任何专用硬件,例如帧抓取卡,将其图像数据传输到应用程序。此外,它可以使用具有自己的IP地址的每个摄像机在同一网络上支持多个摄像机。
此外,在通用接口的精神下,GigE Vision依赖于摄像机通用接口(generalinterface for Cameras,简称GenICam)。GenICam能够与任何硬件接口技术一起工作,因此可以容纳任何通过GigE Vision以太网或EtherCAT电缆连接到RTX64系统的摄像头。它提供了几个模块,包括通用的控制协议、命名约定、API和传输层,这些模块可以很容易地进行调整,以适应不同的相机/应用程序组合,因为不同的或升级的应用程序的需求。
如在相机端,控制回路端也利用EtherCAT的多功能性,这可以将此类传统现场总线组件集成为Profibus或CANopen。EtherCAT在RTX64下运行软件,无需插入系统总线的任何专门的EtherCAT卡。在一个或多个处理器内核上运行,EtherCAT直接与系统中使用的网络接口芯片(NIC)通信。可以在EtherCAT配置期间选择各个设备。当然,如果需要,也可以轻松且不廉价地集成其他标准接口,例如USB或PCI Express,例如USB或PCI Express。优点是连接到这些接口的机器或设备由在RTX64下运行的控制回路软件运行,这本身由在同一系统上运行的视觉处理来控制。
因此,在这里不被视为由独立视觉系统驱动的一些独立功能的运动。相反,视觉和运动是单个系统的组成部分。然而,同时,由于RTX64的多芯性质,控制/运动功能是模块化的,可以通过RTX64环境提供的共享存储器与视觉系统进行通信。因此,如果要使用同一钻头或焊工在不同的工件上进行一些不同的操作,可以通过简单地升级软件的一部分来改变应用程序 - 例如,视觉处理 - 这将根据该工具驱动工具不同的图像,模式和指示。或者,如果需要,可以更改整个应用程序并选择不同的工具,但它仍然会使用相同的RTX64基于Windows的硬件/操作系统环境。
同样,RTX64系统的多核特性允许不同函数之间的并行性,这样它们就不会相互干扰。因此,用于控制循环的中断将不会影响在不同核心上运行的图像处理。数据采集和运行在Windows下的人机界面功能良好。根据系统中包含的64位核心的数量,即使是一些在其他环境中可能需要使用和专门编程fpga的视觉处理,也可以使用熟悉的软件方法和工具在选定的几个核心中进行分区。使用Windows作为人机界面,还可以访问互联网、其他应用程序,甚至调出视觉系统正在处理的图像。
基于Microsoft Visual Studio环境,软件开发可以在Windows下进行,使用强大的工具,如C和c++,以及一套强大的编辑器、调试器和分析工具。此外,还有一些专门针对图像处理的软件库,具有边缘检测、目标识别、特征检测、提取等功能。IntervalZero目前正在与一些供应商合作,将他们的库移植到RTX64。
这种多功能系统的灵活性和节省延伸超出了平台的可配置性。视觉伺服系统的性质是它不需要依赖于传感器和定位机制,其参数必须独立于运行该工具的组件精确定义。例如,保持部分的阶段需要一个专门定义的夹具,以便在确切位置加载并保持该部分。必须单独编程钻头以基于部分的位置满足确切的位置。然后,对于不同的部分和/或操作,必须重新定义定位和控制,也许是不同的机械组件。