在移动对象存在的情况下控制机器人的制作方法

文档序号:12167403阅读:157来源:国知局
在移动对象存在的情况下控制机器人的制作方法与工艺

机器人通常用于工业环境中的任务。例如,机器人可以被用于喷绘、移动零件、组装物件以及许多其他任务。然而,在运动中的机器人可对进入该机器人的工作空间的人类以及物体造成危害。已经实施了防止诸如机器人臂之类的移动机器人的损害的两种普遍的方法。这些方法包括将机器人臂置于笼中,使得其他对象不能进入操作场。另一普遍的方法是定义由LIDAR、压力垫或类似传感器覆盖的排他性区域,该传感器可被用来在排他性区域中在有对象存在时触发机器人上的停止状态。然而,这两种方法需要配置工作空间或者将机器人置于隔离位置的显著努力。



技术实现要素:

以下呈现了各个实施例的简易说明以便于提供对本文描述的一些方面的基本理解。发明内容并非要求保护的主题的详尽阐述。其并不旨在识别要求保护的主题的关键元件也不旨在描绘各个实施例的范围。其唯一的目的是以简单的形式呈现要求保护的主题的一些概念以作为之后呈现的更具体的描述的序言。

一个实施例提供了用于在移动对象存在的情况下控制机器人的方法。该方法包括从三维相机系统捕获多个帧并且分析帧以识别连接对象。该帧与之前的帧比较以识别移动连接对象(MCO)。如果非预期MCO在该帧中,机器人被指示采取动作。

另一实施例提供了用于在移动对象存在的情况下控制机器人的系统。该系统包括三维相机、处理器以及系统存储器。该系统存储器包括代码,该代码在由处理器执行时被配置为从三维相机收集多个帧,分析帧以识别连接对象,并且将该帧与之前的帧比较以识别移动连接对象(MCO)。该代码还被配置为确定MCO是否在非预期存在,且如果是,则向机器人控制器发送信号。

此外,另一实施例提供了用于储存计算机可读指令的一个或多个计算机可读储存介质。计算机可读指令提供用于在移动对象存在的情况下控制机器人的系统,该计算机可读指令包括代码,该代码被配置为从三维相机系统捕获多个帧,分析帧以识别连接对象,并且将该帧与之前的帧比较以识别移动连接对象(MCO)。该计算机可读指令还包括代码,该代码被配置为确定非预期MCO是否在该帧中,且如果是,则指示机器人采取动作。

以下的描述和附图具体地提出了要求保护的主题的某些说明性方面。然而,这些方面说明了其中各个实施方式的原理可以被采用的各种方式中的一些方式,并且要求保护的主题旨在包括所有这样的方面和它们的等同物。要求保护的主题的其他优点和新颖特征在结合附图考虑时从以下各个实施例的具体描述中将变得明显。

附图说明

图1是机器人臂的示意图,其中运动感应相机被置于工作场所之上以定义用于机器人臂的警告区和排除区;

图2是两单元系统的框图,该两单元系统用于在移动对象存在的情况下控制机器人的运动;

图3是包括控制系统的机器人的框图,该控制系统用于在移动对象存在的情况下控制运动;

图4是根据本文描述的实施例的计算系统的框图,该计算系统可以用来在移动对象存在的情况下控制机器人的运动;

图5是根据本文描述的实施例的机器人的框图,该计算系统可以在移动对象存在的情况下被使用;

图6是用于在移动对象存在的情况下控制机器人的方法的流程图;以及

图7是计算机可读储存介质的框图,该计算机可读储存介质储存适用于在移动对象存在的情况下控制机器人的代码。

具体实施方式

如上所述,运动的机器人可对接近该机器人的人类或对象造成危害。例如,在工业环境中使用的机器人臂可能是具有显著速度和动量的大的重型设备。虽然一些基于深度的方法已经被实施以用于控制机器人,这些方法主要关注的是复杂的碰撞避免计算。这些工具的非常高的复杂度可能使得其在工业环境中的使用成为问题。

相应地,针对设备存在可以可靠地控制机器人的运动而不向过程添加不必要的复杂度的需要。尽管诸如光幕和其他传感器之类的现有工具可以被用来形成围绕机器人的排除区域,所涉及的运动的复杂度可以向工作空间增加显著的限制。

因此,本文描述的实施例提供了使用三维相机对机器人的运动的控制,该三维相机被用来确定非预期移动连接对象(MCO)在围绕机器人的可动作区域中。非预期MCO的存在可被用来控制机器人的运动。如本文中使用的,移动连接对象是三维像素(在本文中称为体元)的群组,其被确定为基本上接近并且具有一致的运动向量,这指示它们是单个对象的经连接的部分。随着机器人在计算系统的控制下移动,其预期运动可以由机器人控制器识别并且从分析中移除。类似地,在危险区中的诸如传送带、自动载运车、组装线等的任何辅助设备的运动也可以从分析中移除。任何剩余的移动连接对象可以被识别为非预期的。取决于非预期的移动连接对象的位置,机器人的运动可以被控制,例如通过减缓或停止机器人的运动。

作为引文,附图中的一些描述了在一个或多个结构性元件(不同地被称为功能性)、模块、特征、元件等的环境下的概念。在附图中所示的各种元件可以以任何方式被实施,诸如经由软件、硬件(例如,分立逻辑元件)、固件或其任何组合。在一些实施例中,各种元件可以反映在实际实施方式中的对应元件的使用。在其他实施例中,在附图中所示的任何单个元件可以由多个实际元件被实施。在附图中任何两个或更多单独的元件的描绘可反映由单个实际元件执行的不同功能。如以下讨论的,图1提供了关于一个可以被用来实施附图中所示的功能的系统的细节。

其他附图以流程形式描述了概念。在该形式中,某些操作被描述为构成以某顺序执行的不同框。这样的实施方式是示例性的且是非限制性的。本文描述的某框可以被集合在一起并以单个操作被执行,某些框可以被拆开为复数组件框,并且某些框可以以与本文说明的顺序不同的顺序被执行(包括执行多个框的并行方式)。在流程中所示的框可以通过软件、硬件、固件、人工处理等被实施。如在本文中使用的,硬件可以包括计算机系统、分立逻辑元件,诸如特定用途集成电路(ASIC)等。

关于术语,词语“被配置为”和“被适配为”包含任何种类的功能性可以被构建以执行所识别的操作的任何方式。功能性可以被配置为(或适配为)例如使用软件、硬件、固件等执行操作。

术语“逻辑”包含用于执行任务的任何功能性。例如,在流程中所示的每个操作对应于用于执行该操作的逻辑。例如可以使用软件、硬件、固件等而执行操作。

如在本文中使用的,术语“元件”、“系统”等旨在涉及计算机相关的实体,是硬件、软件(例如,在执行中)或固件,或其任意组合。例如,元件可以是在处理器上运行的过程、对象、可执行文件、程序、功能、库、子程序、计算机、或者软件和硬件的组合。

通过说明的方式,在服务器上运行的应用和服务器两者都可以是部件。一个或多个部件可以处于过程内并且部件可以在一个计算机上被本地化和/或在两个或更多计算机之间分配。术语“处理器”通常被理解为指的是硬件部件,诸如计算机系统的处理单元。

此外,所要求保护的主题可以被实现为方法、装置或使用标准编程和/或工程技术以产生软件、固件、硬件、或其任何组合的制造物品以控制计算机来实现所公开的主题。本文使用的术语“制造物品”旨在涵盖能够由任何计算机可读储存设备或媒体访问的计算机程序。

计算机可读储存介质可以包括但不限于:磁储存设备(例如,硬盘、软盘、磁条等)、光盘(例如,压缩光盘(CD)和数字通用盘(DVD)等)、智能卡、以及快闪存储器设备(例如,卡、棒和键驱动等)。相对地,计算机可读介质(即,非储存介质)通常可以附加地包括诸如用于无线信号的传输介质之类的通信介质。

图1是具有机器人臂102和深度感应相机104的机器人系统100的示意图,该深度感应相机104被置于工作空间106之上以限定围绕机器人臂102的警告区108和危险区110。在该实施例中,深度感应相机104被置于工作空间106之上,给出了围绕机器人臂102的清晰视场。在其他实施例中,深度感应相机104可以被置于机器人的侧面,例如在工作空间106的入口处。在一个实施例中,深度感应相机104可以被置于机器人本身上,例如在机器人臂102的外壳的前表面上且直接在机器人臂102的下方。

深度感应相机104可以是RGB-D型相机,诸如用于MicrosoftTM公司的XboxTM视频游戏的KinectTM相机。然而,本文中描述的技术并不限于该相机,因为任何数目的其他系统也可以被用来识别工作场所106内的移动连接对象(MCO)。这样的相机可以包括从Mesa Imaging AG、SoftKinetic以及其他公司可得的深度感应相机。这些相机中的许多相机使用红外(IR)或近IR激光器来将光投影到场景上,并且使用已知的飞行时间(TOF)算法来从检测到的反射的光计算深度图。除了基于TOF的系统之外或用于替代基于TOF的系统,可以使用其他类型的系统。例如,可以使用从ImagingSource或Stereo Vision Imaging,Inc.可得的立体相机。这些相机使用两个或更多偏置相机来收集每一帧,并且通过与对象关联的每一帧的位置偏移而计算在帧内的每个对象的位置。

使用这些系统中的任何系统,当诸如人之类的对象112进入检测空间时,深度感应相机104确定具有彼此相近位置的一组体元114在所收集的帧内。该组体元114被识别为连接对象。用来形成连接对象的体元的分组可以通过之前确定的误差范围而被控制。因而,即使由深度感应相机104检测到的体元并不填充连接对象的所有的空间,分组也可以进行。该分组针对下一帧被重复,形成了在该帧内的连接对象。在下一帧中连接对象的位置与在前一帧中连接对象的位置相比较以确定针对体元的运动向量。具有不一致的运动向量的体元可以被消除,并且剩余的该组体元114可以被识别为移动连接对象(MCO)。

如果机器人臂102正在移动则也可以被检测为MCO。然而,机器人臂102的运动可以由机器人控制器的控制序列被确定。相应地,当机器人臂102正在移动时,从预期的MCO检测到的体元,其可以不被考虑。诸如传送带、自动载运车之类的在工作空间106内的对象的任何附加的预期运动也可以不被考虑为预期MCO。该检测可以包括在每个收集到的帧处的MCO的简单计数,其中预期MCO从该计数中被减去。如果一旦所有的预期MCO被移除后计数仍保持在零以上,则进一步的动作可以被触发。

如果非预期MCO(诸如对象112)在工作场所106内被检测到,取决于人112接近于机器人臂102,多个不同动作可以发生。例如,如果对象112在警告区108内,可听警告系统116、视觉警告系统118或其两者可以被激活。此外,如果对象112更加接近,机器人臂102的运动可以被减缓以允许休止。除了任何警告系统116和118的激活之外,如果对象112被检测到在危险区110内,机器人臂102可以被停止。这可以包括被机器人臂102使用来操作的任何辅助设备,诸如传送带、自动载运车、喷绘系统、压缩器等。诸如减缓机器人臂102及将其移动到接近于对象112的位置的例如用于与对象112相互作用的其他动作也可以被执行。

图1并不限于所示的物件,也可以包括任何数目的并未示出的其他物件。例如,工作空间106可以包括以上提及的辅助设备。此外,物件的配置可以与所示的不同。例如,机器人并不必须是机器人臂102,也可以是自动起重机、自动载运车、或任何数目的其他物件。在一些实施例中,多个深度感应相机可以被置于诸如载运车路径之类的细长工作空间之上以警示工人。在该情况下,警告区108和危险区110可以被定义为围绕每个移动车辆,其将被识别为预期MCO。视觉警告系统118和可听警告系统116随后可以被安装在移动车辆本身上。图1的系统100被示出为具有通过信号线120耦合到机器人臂102的深度感应相机104的单个单元系统。然而,各实施例并不限于该配置,并且可以包括如本文所述的适合用于改造当前系统的单独的单元。

图2是两单元系统200的框图,该两单元系统用于在移动对象存在的情况下控制机器人的运动。在两单元系统200中,检测模块202与机器人204通过信号线206连通地耦合。检测模块202还可以通过信号线209被连通地耦合到警告系统208。

检测模块202包括深度传感器210,诸如以上讨论的RGB-D相机。深度传感器210被用来通过视觉模块212捕获帧。视觉模块212可以使用各种技术来确定在该帧中经连接的体元的群组,并且与相继的帧比较以确定在图像中运动的区域。这些区域随后可以被识别为MCO。在每一帧处,MCO 216的数目被报告至控制模块214。

除了由视觉模块212报告的MCO 216的数目之外,控制模块214在信号线206上接收来自机器人控制器218的输入。来自机器人控制器218的信息可以简单地是机器人是否处于运动中的信号或者可以包括关于机器人状态的更多具体信息。如果机器人处于运动中,若多于两个MCO由视觉模块212所指示,停止命令可以被发送到机器人控制器218。如果机器人现在不处于运动中,若任何MCO(即,非预期MCO)由视觉模块所报告,停止命令可以被发送到机器人控制器218。来自视觉模块212的运动的报告可以在多个帧上被过滤以防止误报。在一个实施例中,MCO的预期数目可以在多个帧上被观察。

可以注意到的是,该实施方式并不需要针对MCO(包括机器人)的复杂识别或定位数据,而仅需要存在多少非预期MCO的计数。在其他实施例中,围绕工作空间可以定义多个区具有不同的警告级别。

图3是根据本文描述的实施例的包括单个单元的计算系统300的框图,该计算系统可以用来在移动对象存在的情况下控制机器人的运动。计算系统300可以包括被适配为执行储存的指令的例如为中央处理单元(CPU)的处理器302以及储存能够由处理器302执行的指令的存储器设备304。这样的指令可以被用来检测在由机器人占据的工作空间中的MCO,并且控制该机器人的运动。处理器302可以是单核处理器、多核处理器、计算群集器、或任何数量的其他配置。存储器设备304可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他合适的存储器系统。

处理器302可以通过总线306被连接到储存设备308,其被适配为储存帧捕获及分析模块310、移动连接对象模块312、以及位置警报模块314。储存设备308可以是硬盘驱动器、光盘驱动器、指状驱动器、驱动器的阵列、或它们的任意组合。网络接口控制器315可以被适配为通过总线406将处理器302连接到网络316。通过网络316,控制信号可以被发送到机器人控制器318以用于当有非预期MCO存在时减缓或停止运动,并且用于当围绕机器人的区域没有非预期MCO时重新开始运动。

处理器302可以通过总线306被链接到显示接口320,其被适配为将系统300连接到显示设备322。显示设备322可以包括计算机监视器、相机、电视机、投影机、虚拟现实显示器、三维(3D)显示器、或移动设备等。在计算系统300内的人机接口324可以将处理器302连接到键盘326和定点设备328。定点设备328可以包括鼠标、轨迹球、触摸板、操纵杆、指点杆、手写笔、或触摸屏等。

处理器302还可以通过总线306被链接到输入/输出接口330,其被适配为将计算系统300连接到任何数目的输入/输出设备。例如,输入/输出接口330可以将计算系统300连接到IR相机332以及一个或多个IR激光器334。在一些实施例中,IR相机332和IR激光器334可以被包括在单个成像设备336内。成像设备336可以是3D相机、游戏系统、RGB-D相机、计算机等。此外,成像设备336并不需要基于IR激光器等,但可以包括立体显示技术。在其他实施例中,IR激光器334的所有或一部分可以被外部地连接到包括IR相机332的成像设备。此外,在一些实施例中,计算系统300可以是成像设备。在这样的实施例中,IR相机332和IR激光器334可以驻留在计算系统300内,而不是经由输入/输出接口330外部地连接到计算系统300。

此外,计算系统300可以包括图形处理单元(GPU)338。GPU 338可以通过总线306链接到计算系统300的处理器302、存储器设备304、储存设备308、输入/输出接口330、以及任何数量的其他部件。在各个实施例中,GPU 338被适配为执行指令,诸如储存在存储器304(不论是与处理器302结合还是独立于处理器302)中的指令。例如,GPU 338可以执行被用来实施用于分析帧数据从而确定MCO在一系列帧中存在的方法的指令的所有或一部分。例如,在一些实施例中,处理器302和GPU 338可以被并行使用以用于重构在所捕获的图像中的帧数据。在这样的实施例中,帧数据可以以至少约20帧每秒(fps)的速率被重构,提供了用于控制机器人的运动的快速动作。取决于所使用的处理器302和GPU 338,更高的或更低的帧重构可以被实现。当机器人与非预期MCO相互作用时(例如,从自动载运车移除零件),诸如30fps、40fps或更高的更重构速率可以是有用的。例如在被用来基于非预期MCO的位置减缓或停止机器人的系统中,诸如20fps、10fps或更低的更低重构速率可以以较低成本提供足够的覆盖。

通过网络316,计算系统300可以被耦合到警告系统340,其可以包括诸如闪光灯之类的可视警告系统342以及诸如警笛或电喇叭之类的可听警报系统344。可以理解的是,警告系统340可以例如通过输入/输出接口330被直接耦合到计算系统300。

在该实施例中,机器人控制器318可以包括网络接口卡346以用于与计算系统300在网络316上通信。机器人控制器318还可以包括与计算系统300类似的单元。例如机器人控制器318可以包括被适配为执行储存的指令的例如为中央处理单元(CPU)的处理器348以及储存能够由处理器348执行的指令的存储器设备350。这样的指令可以包括用于机器人的操作代码,诸如用来控制机器人的运动的代码。处理器348可以是单核处理器、多核处理器、计算群集器、或任何数量的其他配置。此外,处理器348可以是微控制器、分布式控制系统(DCS)、可编程逻辑控制器(PLC)或其他类型的车间控制系统的部分。存储器设备350可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他合适的存储器系统。

处理器348可以通过总线352被连接到被适配用来储存运动模块356、传感器或位置检测模块358和操作模块360(例如,包括机器人特定的操作程序)的储存设备354。储存设备354可以包括硬盘驱动器、光盘驱动器、指状驱动器、驱动器的阵列、或它们的任意组合。

网络接口控制器346可以被适配为通过总线352将处理器348连接到网络316。通过网络316,控制信号可以被发送到机器人控制器318以用于当有非预期MCO存在时减缓或停止运动,并且用于当围绕机器人的区域没有非预期MCO时重新开始运动。

处理器348可以通过总线352被链接到显示接口362,其被适配为将机器人控制器318连接到显示设备364。显示设备364可以包括LCD屏幕、计算机监视器、或移动设备等。在机器人控制器318内的人机接口366可以将处理器348连接到键盘368、定点设备370或训练垂饰372。定点设备370可以包括鼠标、轨迹球、触摸板、操纵杆、指点杆、手写笔、或触摸屏等。训练垂饰372可以被用来通过训练机器人的移动而将操作程序输入操作模块360。在训练期间,视觉模块可以被禁用以允许执行训练。

处理器348还可以通过总线352被链接到电动机控制器374,其被适配为将机器人控制器318连接到任何数目的电动机376以控制机器人的运动。例如,电动机控制器374可以控制用于机器人臂的电动机,这允许机器人臂在基底上竖直地旋转,从该基底延伸出去,打开及关闭夹持器或其他操作器等。

处理器348还可以通过总线352被链接到位置传感器接口378。位置传感器接口378可以将机器人控制器318链接到可使机器人控制器318得知机器人的当前位置的多个位置传感器380。例如,机器人臂可以在每个关节处包括光学传感器以使机器人控制器318得知机器人臂在该关节的位置。

图3的框图并不意在指示计算系统300要包括图3中所示的所有部件。此外,取决于特定实施方式的细节,计算系统300可以包括未在图3中所示的任何数目的附加部件。例如,如以上所述的用于辅助设备的控制器可以被耦合到网络,并且与计算系统300和机器人控制器318连通。如上提及的,系统并不被限制为两个单元,但可以具有在单个装置中的功能。

图4是包括视觉系统的机器人400的框图,该视觉系统用于在移动对象存在的情况下控制运动。相同编号的物件如在以上所描述的。在图4中所示的实施例中,机器人控制器402被直接耦合到用于检测在工作空间中的非预期MCO的深度传感器210。如相对于图5讨论的,这将两个单独单元的功能结合在单个机器人控制器402中。在该实施例中,人机接口设备(HMI)404可以包括显示器、定点设备、键盘或训练垂饰,如以上所述。此外,机器人控制器402还可以与线路控制406相互作用,该线路控制406可以控制诸如传送带之类的辅助设备。

图5是根据本文描述的实施例的机器人500的框图,该计算系统可以在移动对象存在的情况下被使用。相同编号的物件如在以上所描述的。在该实施例中,相对于图3描述的两单元系统的所有的功能已经被结合到机器人控制502中。此外,警报系统控制器504可以被用来控制警告设备342和344。

图6是用于在移动对象存在的情况下控制机器人的方法600的流程图。方法600在捕获工作空间的帧或图像的框602处开始。这可以使用深度相机(RGB-D)或立体相机而被执行,如上所述。在框604处,框数据被分析用来识别连接对象。这可以如相对于图1所描述般被执行。在框606处,帧数据与之前的帧比较以识别运动。显示运动的任何连接对象可以被识别为移动连接对象(MCO)。MCO的总计数针对工作空间的边界内的对象而被做出。

在框608处,来自机器人控制器的数据可以被用来确定运动是否针对机器人、辅助设备或其两者被期待。如果运动是被期待的,在框610处,可以从计数中移除每个运动被期待的MCO。

流程继续到框612以确定是否有非预期MCO存在,例如若MCO的计数在所有预期的MCO已经被移除之后保持在一或更大。如果不是,流程返回到框602以继续。

如果在框612处有非预期MCO存在,流程可以继续到框614以将该非预期MCO定位在例如危险区(H)、警告区(W)中。在一些实施例中,框612可以被排除并且流程可以直接去往框616。

如果该非预期MCO处于危险区中,流程可以继续到框616。在框616处,可听警告、视觉警告或其两者被激活。在框618处,机器人的运动被停止。流程随后在框602处继续。可以注意到的是,当非预期MCO的计数返回零时,警报可以被停止并且运动自动地重新开始。在一些实施例中,运动可以继续被停止,直到操作员允许运动继续为止。

如果该非预期MCO处于警告区中,流程继续到框620。在框620处,可听警告、视觉警告或其两者被激活。在框622处,机器人的运动被减缓。流程随后在框602处继续。可以注意到的是,当非预期MCO的计数返回零时,警报可以被停止并且机器人可以被允许自动地返回全速。

方法600并不被限于所示的框。例如,框可以被添加以至少部分地基于检测到非预期MCO而控制辅助设备。机器人的运动可以包括其他动作,诸如以缓慢速度移动机器人接近非预期MCO从而允许非预期MCO与机器人的相互作用。此外,如前所述,不是所有的框都必须呈现。如果仅使用一个区,框614可以被排除。

图7是计算机可读储存介质700的框图,该计算机可读储存介质700储存适用于在移动对象存在的情况下控制机器人的代码。该代码能够由处理器702在总线704上访问。计算机可读储存介质可以包括硬盘驱动器、指状驱动器、随机存取存储器驱动器、或任何数目的其他单元,如相对于图2所描述的。该代码例如可以包括帧捕获模块706,其配置为捕获来自深度感应相机的帧。移动连接对象模块708可以被用来分析当前帧并且将结果与针对过往帧的结果进行比较以识别帧中的MCO。机器人运动控制模块710可以被用来例如基于来自移动连接对象模块708和机器人控制器的数据而保持追踪在工作空间中的非预期MCO的数目。位置警报模块712随后可以被用来指示机器人减缓或停止运动。

虽然本主题已经以特定于结构特征和/或方法动作的语言进行了描述,但是应当理解,在所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作被公开作为实现权利要求的示例形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1