一种由人演示的机器人示教的制作方法

文档序号:26947328发布日期:2021-10-12 19:51阅读:153来源:国知局
一种由人演示的机器人示教的制作方法

1.本发明涉及工业机器人编程领域,更具体地,涉及一种用于对机器人进行编程以执行工件拾取、移动和放置操作的方法,包括示教阶段,其中单个相机检测抓持和移动工件的人手,确定等同于人手的姿态的夹持器姿态,并且根据计算的夹持器姿态生成机器人编程命令。


背景技术:

2.使用工业机器人重复地执行各种各样的制造、组装和材料移动操作是众所周知的。然而,使用传统方法示教机器人执行甚至相当简单的操作

诸如拾取在传送机上的处于随机位置和取向的工件并且将工件移动到集装箱或第二传送机

是非直观、耗时和/或昂贵的。
3.传统上,由人类操作员使用示教器示教机器人以执行上述类型的拾取和放置操作。示教器由操作员使用,以指示机器人进行增量移动

例如"在x方向慢进"或"绕局部z轴旋转夹持器",直到机器人及其夹持器处于正确的位置和取向以抓持工件。然后,机器人控制器记录机器人配置以及工件位置和姿态,以用于"拾取"操作。然后使用类似的示教器命令来限定"移动"和"放置"操作。然而,经常发现使用示教器对机器人进行编程是非直观的、容易出错的和耗时的,尤其是对于非专业操作员。
4.另一种已知的示教机器人以执行拾取和放置操作的技术是使用运动捕捉系统。一种运动捕捉系统包括多个相机,这些相机布置在工作单元周围,以在人类操作员操纵工件时记录操作员和工件的位置和取向。操作员和/或工件可以具有附加的可唯一识别的标记点,以便在执行操作时更精确地检测相机图像中操作员和工件上的关键位置。然而,这种类型的运动捕捉系统是昂贵的,并且精确设置和配置以使得所记录的位置准确是困难且耗时的。
5.鉴于上述情况,需要一种改进的机器人示教技术,其对于人类操作员来说执行起来简单且直观。


技术实现要素:

6.根据本公开的教导,描述和示出了一种用于基于人类演示利用来自单个相机的图像来示教和控制机器人以执行操作的方法。该方法包括示教阶段,其中单个相机检测抓持和移动工件的人手,并且分析人手和工件的图像以确定机器人夹持器姿态和位置,该机器人夹持器姿态和位置等同于人手的姿态和位置以及工件的对应姿态和位置。公开了用于使用2d相机或3d相机的技术。然后,根据计算出的相对于工件姿态和位置的夹持器姿态和位置,生成机器人编程命令。在重现阶段,相机识别工件姿态和位置,并且编程命令使机器人如由人手所演示的那样移动夹持器以拾取、移动和放置工件。还公开了一种远程操作模式,其中人手的相机图像用于实时控制机器人的移动。
7.结合附图,根据以下描述和所附权利要求,当前公开的装置和方法的附加特征将
变得显而易见。
附图说明
8.图1是根据本公开的实施例的如何分析人手的图像以确定指型机器人夹持器的对应位置和取向的示意图;
9.图2是根据本公开的实施例的如何分析人手的图像以确定磁性或吸盘式机器人夹持器的对应位置和取向的示意图;
10.图3是根据本公开的实施例的用于使用人手的相机图像来示教机器人以执行拾取和放置操作的系统和步骤的示意图;
11.图4是根据本公开的实施例的用于使用人手和工件的相机图像来示教机器人以执行拾取和放置操作的方法的流程图;
12.图5a至5d是根据本公开的实施例的用于从2d相机图像检测人手姿态、确定人手尺寸的第一步骤的四个部分的示意图;
13.图6a和6b是根据本公开的实施例的用于使用在第一步骤中确定的人手尺寸数据从2d相机图像检测人手姿态的第二步骤的各部分的示意图;
14.图7是根据本公开的实施例的用于使用工件的相机图像和先前由人手图像示教的编程来使机器人执行拾取和放置操作的系统和步骤的示意图;
15.图8是根据本公开的实施例的用于使用工件的相机图像和先前由人手图像示教的编程来使机器人执行拾取和放置操作的方法的流程图;
16.图9是根据本公开的实施例的使用人手的相机图像和经由人眼的视觉反馈的机器人的远程操作的系统和步骤的示意图;以及
17.图10是根据本公开的实施例的使用人手的相机图像和经由人眼的视觉反馈的机器人的远程操作的方法的流程图。
具体实施方式
18.以下对涉及使用单个相机通过人类演示来示教机器人的本公开的实施例的讨论本质上仅是示例性的,并且决不旨在限制所公开的设备和技术或它们的应用或使用。
19.使用工业机器人进行各种制造、组装和材料移动操作是众所周知的。一种已知类型的机器人操作有时被称为"拾取、移动和放置",其中机器人从第一位置拾取零件或工件,移动零件并将其放置在第二位置。第一位置通常是传送带,其中随机取向的零件是流动的,例如刚刚从模具取出的零件。第二位置可以是引导至不同操作的另一传送器,或者可以是装运集装箱,但是在任一情况下,零件需要放置在特定位置处并且在第二位置处以特定姿态取向。
20.为了执行上述类型的拾取、移动和放置操作,通常使用相机来确定到来零件的位置和取向,并且必须示教机器人使用指型夹持器或磁性或吸盘夹持器以特定方式抓持零件。传统上,示教机器人如何根据零件的取向来抓持零件是由人类操作员使用示教器来完成的。示教器由操作员使用,以指示机器人进行增量移动

例如"在x方向慢进"或"绕局部z轴旋转夹持器"

直到机器人及其夹持器处于正确的位置和取向以抓持工件。然后,机器人控制器记录机器人配置以及工件位置和姿态,以用于"拾取"操作。然后,使用类似的示教器
命令限定"移动"和"放置"操作。然而,经常发现使用示教器对机器人进行编程是非直观的、容易出错的和耗时的,尤其是对于非专业操作员。
21.另一种已知的示教机器人以执行拾取、移动和放置操作的技术是使用运动捕捉系统。一种运动捕捉系统包括多个相机,这些相机布置在工作单元周围,以在人类操作员操纵工件时记录操作员和工件的位置和取向。操作员和/或工件可以具有附加的可唯一识别的标记点,以便在执行操作时更精确地检测相机图像中操作员和工件上的关键位置。然而,这种类型的运动捕捉系统是昂贵的,并且精确设置和配置以使得所记录的位置准确是困难且耗时的。
22.本公开通过提供一种技术克服了现有机器人示教方法的限制,该技术使用单个相机来捕获人类执行自然零件抓持和移动动作的图像,其中分析人手的图像及其相对于零件的位置以生成机器人编程命令。
23.图1是根据本公开的实施例的如何分析人手的图像以确定指型机器人夹持器的对应位置和取向的示意图。人手110具有被限定为附接到其上的人手坐标系120。人手110包括具有拇指尖114的拇指112和具有食指尖118的食指116。拇指112和食指116上的其他点也可以在相机图像中被识别,诸如拇指112和食指116的基部的位置以及拇指112和食指116的第一指节的位置等。
24.点122位于拇指112的基部和食指116的基部之间的中间,其中点122被限定为人手坐标系120的原点。人手坐标系120的取向可以使用适于与机器人夹持器取向相关的任何惯例来限定。例如,人手坐标系120的y轴可以被限定为与拇指112和食指116的平面(该平面由点114、118和122限定)垂直。因此,x和z轴位于拇指112和食指116的平面内。此外,z轴可以被限定为平分拇指112和食指116所成的角度(角度114

122

118)。然后,x轴取向可以由右手规则从已知的y和z轴找到。如上所述,这里限定的惯例仅仅是示例性的,并且可以替代地使用其他坐标系取向。要点在于,可以基于人手上的关键可识别点来限定坐标系位置和取向,并且该坐标系位置和取向可以与机器人夹持器位置和取向相关。
25.相机(图1中未示出,稍后讨论)可以用于提供人手110的图像,其中图像然后可以被分析以确定包括拇指尖114和食指尖118以及指关节的拇指112和食指116的(诸如在工作单元坐标系中的)空间位置,并且因此确定原点位置122和人手参考系120的取向。在图1中,人手参考系120的位置和取向与附接到机器人160的夹持器150的夹持器坐标系140相关。夹持器坐标系140具有对应于人手参考系120的原点122的原点142,以及分别对应于食指尖118和拇指尖114的点144和146。因此,指型夹持器150的两个手指处于夹持器坐标系140的x

z平面中,其中z轴平分角度146

142

144。
26.夹持器坐标系140的原点142也被限定为机器人160的工具中心点。工具中心点是其位置和取向对于机器人控制器已知的点,其中控制器可以向机器人160提供命令信号以将工具中心点及其相关联的坐标系(夹持器坐标系140)移动到限定的位置和取向。
27.图2是根据本公开的实施例的如何分析人手的图像以确定磁性或吸盘式机器人夹持器的对应位置和取向的示意图。图1示出了人手姿态如何与具有可移动手指的机械夹持器的取向相关联,而图2示出了人手姿态如何与扁平夹持器(例如圆形的)相关联,该扁平夹持器通过吸力或磁力由零件的扁平表面拾取零件。
28.人手210也包括拇指212和食指216。点214位于拇指212与零件220接触的位置。点
218位于食指216与零件220接触的位置。点230被限定为存在于点214和218之间的中间,其中点230对应于机器人260上的表面夹持器250的工具中心点(tcp)240。在图2所示的表面夹持器250的情况下,基于指关节和指尖的检测,夹持器250的平面可被限定为包含线214

218并且与拇指212和食指216的平面垂直的平面。如上所述,夹持器250的工具中心点240对应于点230。这完全限定了表面夹持器250的与人手210的位置和姿态相对应的位置和取向。
29.图3是根据本公开的实施例的用于使用人手的相机图像来示教机器人以执行拾取和放置操作的系统300和步骤的示意图。图3中所示的示教阶段在工作单元302中执行。工作单元302包括用于拍摄示教步骤的图像的相机310。相机310可以是三维(3d)相机或二维(2d)相机,只要它能够识别人手的例如前面讨论的指尖、拇指尖和指关节之类的特定点和特征的坐标。下面讨论使用3d相机进行人手姿态检测的技术,以及使用2d相机进行人手姿态检测的不同技术。相机310被配置为提供工作单元302的发生零件移动活动的部分的图像(下面讨论的所有步骤
①‑③
)。
30.相机310与机器人控制器320通信。控制器320分析示教步骤的图像,并且如下所述生成机器人编程命令,其中机器人编程命令用于控制在重现阶段期间执行拾取和放置操作的机器人的运动。在相机310和控制器320之间还可以提供单独的计算机,其中该单独的计算机将分析相机图像并将夹持器位置传送到控制器320。图3的示教阶段由三个步骤组成:在拾取步骤(步骤

)中,确定工件的位置和姿态(姿态是用于取向的可互换术语),并且确定抓持工件的人手的位置和姿态;在移动步骤(步骤

)中,当工件从拾取位置移动到放置位置时,跟踪工件和人手的位置;在放置步骤(步骤

)中,当工件被放置在其目的(放置)位置时,确定工件的位置和姿态。下面详细讨论这三个步骤。
31.在步骤

(拾取)中,使用相机图像来识别工件330的位置和姿态。如果工件在传送机上流入,则根据传送机位置索引来跟踪工件330的位置的一个坐标(例如z)。图3中所示的工件330是简单的立方体;然而,可以从相机图像识别工件330的任何类型或形状。例如,如果已知工件330是特定的注塑模制零件,并且可以在传送带上具有任意随机的取向和位置,则可以分析来自相机310的图像以识别工件330的关键特征,并且根据这些特征确定工件坐标系332的位置和取向。
32.仍然在步骤

(拾取)中,当人手340抓持工件330时,相机图像也用于识别人手340的位置和姿态。以上面关于图1所讨论的和下面详细描述的方式(两种不同的技术),分析人手340的图像以确定人手坐标系342的位置和取向。人手340沿箭头344所示的方向接近工件330。当拇指尖如所示在点350处接触工件330并且指尖接触工件330(该接触点不可见)时,控制器320存储来自该特定图像的所有数据作为拾取数据。拾取数据包括由工件坐标系332限定的工件330的位置和姿态,以及由其人手坐标系342限定的人手340的位置和姿态。
33.在步骤

(移动)中,当工件330和人手340沿路径360移动时,使用相机图像来跟踪它们的位置。记录工件330和人手340的多个图像以限定路径360,该路径可以不是直线。例如,路径360可以包括长的扫描曲线,或者路径360可以包括将工件330向上移动并越过某种障碍物。在任何情况下,路径360包括在移动步骤期间限定工件330和人手340的位置(以及可选地取向)的多个点。使用先前讨论的相同技术来从相机图像识别工件坐标系332的位置和姿态以及人手坐标系342的位置和姿态。人手姿态确定技术也在下面详细讨论。
34.在步骤

(放置)中,在工件330被放置在如箭头370所示的其目的位置之后,使用
相机图像来识别其的最终位置和姿态(如其工件坐标系332所限定的)。先前讨论的相同技术用于从相机图像识别工件坐标系332的位置和姿态。当拇指尖和指尖与工件330断开接触时,控制器320存储来自该特定图像的工件坐标系数据作为放置数据。该放置数据也可以基于工件330已经停止移动(即,工件坐标系332处于完全相同的位置和姿态一段时间(例如1

2秒))而被记录和存储。
35.图4是根据本公开的实施例的用于使用人手和工件的相机图像来示教机器人以执行拾取和放置操作的方法的流程图400。流程图400布置成三个垂直列,对应于如图3所示的拾取步骤(在右侧)、移动步骤(中心)和放置步骤(在左侧)。拾取步骤在开始框402处开始。在框404处,在来自相机310的图像中检测工件330和人手340。图像的分析在控制器320或与控制器320通信的单独的计算机中执行。工件坐标系332的位置和取向根据工件330的图像分析来确定,而人手坐标系342的位置和取向根据人手340的图像分析来确定。
36.在判决菱形框406处,确定指尖(图1的拇指尖114和食指尖118)是否已经接触工件330。这是根据相机图像确定的。当各个指尖已经接触工件330时,在框408处,由控制器320记录工件330和人手340的抓持姿态和位置。重要的是,识别人手340相对于工件330的姿态和位置;即,必须相对于诸如工作单元坐标系之类的某全局固定参考系来限定人手坐标系342和工件坐标系332的位置和取向。这允许控制器320确定如何定位夹持器以在稍后的重现阶段中抓持工件,如下所述。
37.在框408处控制器320记录工件330和人手340的抓持姿态和位置之后,拾取步骤在结束框410处结束。然后,该过程继续进行到移动步骤,其在框422处开始。在框424处,在相机图像中检测工件330。在判决菱形框426处,如果在相机图像中没有检测到工件330,则过程循环回到框424以拍摄另一图像。当在相机图像中检测到工件330时,在框428处,控制器320记录工件位置(以及可选地姿态)。
38.在框434处,在相机图像中检测人手340。在判决菱形框436处,如果在相机图像中没有检测到人手340,则过程循环回到框434以拍摄另一图像。当在相机图像中检测到人手340时,在框438处,控制器320记录人手位置(以及可选地姿态)。当从同一相机图像检测并记录(来自框428的)工件位置和(来自框438的)人手位置两者时,在框440处组合并记录人手位置和工件位置。人手位置和工件位置的组合可以通过简单地取两者的平均值来实现;例如,如果拇指尖114和食指指尖118之间的中点应当与工件330的中心/原点重合,则可以计算中点和工件中心之间的平均位置。
39.优选地,通过重复从开始移动框422到组合人手和工件位置框440的活动,记录沿移动步骤的多个位置,以限定平滑移动路径。在框440处组合和记录人手位置和工件位置,并且不再需要移动步骤位置之后,移动步骤在结束框442处结束。然后,该过程进行到放置步骤,其在框462开始。
40.在框464处,在来自相机310的图像中检测工件330的位置。与所有图像分析步骤一样,在框464处的图像分析在控制器320中执行,或者在附接到控制器320的图形处理器上执行,或者如果需要的话在中间计算机上执行。在判决菱形框466处,确定是否在相机图像中发现工件330以及工件330是否静止。或者,可以确定指尖是否已经与工件330断开接触。当工件330被确定为静止和/或指尖已经与工件330断开接触时,在框468处,工件330的目的姿态和位置被控制器320记录。放置步骤和示教阶段的整个过程在结束框470结束。
41.在图1

4的整个前述讨论中,已经对从相机图像检测人手姿态(拇指和食指上的关键点的位置)并从其限定人手坐标系的概念进行了许多参考。为了限定人手坐标系(例如图1的人手坐标系120)的原点和轴取向,必须确定人手的关键点的三维(x、y和z)坐标。在以下讨论中描述了用于确定人手的关键点的3d坐标的两种不同技术。这些人手姿态检测技术中的任何一种都可以用在用于从人工演示进行机器人示教的总体方法中。
42.在人手姿态检测的一个实施例中,使用三维(3d)相机来直接检测人手的关键点的3d坐标。3d相机(其可以是图3的相机310)不仅能够提供其中可以在图像平面中识别关键点的图像,而且能够检测关键点处的深度(在垂直于图像平面的方向上的距离)。一些3d相机使用两个或更多个透镜或单个位置移动的透镜,以记录多个视点,其中两个视角的组合使得深度感知成为可能。其它3d相机使用范围成像来确定从相机透镜到图像中的各个点的范围(距离)。范围成像可以使用飞行时间测量或其它技术来完成。
43.使用直接从3d相机可获得的数据,可以确定人手上的关键点(诸如图1的点112和118等)的x/y/z坐标。如前所述,从人手上的关键点的x/y/z坐标,可以完全计算人手坐标系的原点和取向。然后,如前所述,可以基于人手坐标系和夹持器坐标系之间的对应关系来限定机器人运动命令。
44.在人手姿态检测的另一实施例中,可使用二维(2d)相机来使用两步过程检测人手的关键点的3d坐标。因为2d相机比3d相机更广泛地可用且更便宜,且因为2d相机具有快得多的图像帧速率,所以在一些应用中,将2d相机用于通过人类演示进行机器人示教可能是有利的。
45.用于从2d图像确定人手上的关键点的x/y/z坐标的现有技术可能是不可靠的。这些现有方法通常依赖于使用包含真实和合成的人手图像的数据库的深度学习图像分析技术。然而,因为人手尺寸在人与人之间有很大不同,所以这些现有方法可能导致低准确度。
46.为了克服现有方法的限制,这里公开了一种用于从2d相机图像检测人手姿态的新技术,其中执行测量人手尺寸的一次性预备步骤,然后可以针对人手上的关键点的3d坐标来准确地分析机器人示教期间的2d相机图像。
47.图5a是根据本公开的实施例的用于从2d相机图像检测人手姿态的第一步骤的第一部分的示意图。在第一步骤的第一部分(将被称为步骤1a)中,相机510用于捕获操作员的人手520的图像,该操作员稍后将经由人类演示来示教机器人程序。相机520可以与图3的相机310相同,人手520被放置在aruco标记的网格530上,并且在步骤1a中拍摄照片(数字图像)。用于相机校准的传统棋盘是可以用于代替aruco标记的另一个选项。在步骤1的剩余部分中分析数字图像以确定人手520的各个单元或部分的尺寸。步骤1对于单个操作员的人手仅执行一次。步骤2(机器人路径和通过人手演示示教的过程)可以对人手520执行多次,而不必重复步骤1。
48.步骤1过程基于寻找真实/物理环境中的点与其2d图像投影之间的对应关系。为了促进该步骤,采用合成或基准的标记。一种方法是使用二元正方形基准标记,例如aruco标记。这些标记的主要益处在于单个标记提供足够的对应关系(其四个角)以获得相对于标记的平面的相机姿态。在网格530中使用许多标记提供了足够的数据来确定人手520的各个手指部分的真实尺寸。
49.aruco标记是正方形的可视标记,其包括宽的黑色边界和确定其标识符的内部二
元矩阵。黑色边界有助于其在图像中的快速检测,并且二元编码允许其识别以及错误检测和校正技术的应用。图5a的网格530包括5
×
7aruco标记阵列,其包括单独的标记532、534和536。网格530中的每个aruco标记是唯一的。网格530中使用的该5
×
7阵列尺寸设计为便于人手的视觉测量,并且仅仅是示例性的。使用aruco标记的网格530以便在数字图像中提供足够的信息"带宽",以使得能够针对标记平面来校准图像平面,并且确定人手520上的多个关键点在标记平面中的坐标,如下所述。
50.将来自步骤1a的人手520平放在网格530上的图像提供给步骤1b(图5b)和步骤1c(图5c),在这两个步骤中执行两种不同类型的图像分析。
51.图5b是根据本公开的实施例的用于从2d相机图像检测人手姿态的第一步骤的第二部分的示意图。在框540中,图5b描绘了人手尺寸确定过程的步骤1b。在步骤1b中,执行对来自步骤1a的图像的分析,以便确定从图像(虚拟)坐标到标记(物理)坐标的旋转和平移变换。限定网格530或任何单独的标记(532、534等)具有标记坐标系538,其中局部x和y轴在标记的平面中,而局部z轴沿着所示的向上方向垂直于标记。
52.相机510(来自图5a)具有被限定为固定到其上的相机坐标系518,其中局部x和y轴在屏幕或图像的平面中,而局部z轴垂直于屏幕并且沿着相机视场的方向(朝向标记网格530)定向。注意,在该技术中,相机不必精确地与平行于标记平面的相机图像平面对准。变换计算将处理任何旋转和平移失准。在相机坐标系518中的理想化图像中的点具有坐标(x
c
,y
c
)。从标记坐标系538到相机坐标系518的变换由旋转矢量r和平移矢量t限定。
53.实际观察到的图像坐标系548被限定为在实际观察到的图像的平面中具有局部x和y轴,其中局部z轴是不相关的,因为图像是二维的。由于图像失真,实际观察到的图像坐标系548不同于相机坐标系518。实际观察图像坐标系548中的实际图像中的点具有坐标(x
d
,y
d
)。从相机坐标系518到实际观察到的图像坐标系548的变换由固有相机参数矩阵k限定。相机固有参数包括焦距、图像传感器格式和主点。
54.图5c是根据本公开的实施例的用于从2d相机图像检测人手姿态的第一步骤的第三部分的示意图。在框550中,图5c描绘了人手尺寸确定过程的步骤1c。在步骤1c中,执行对来自步骤1a的图像的分析,以便在图像中定位人手520的关键点。
55.卷积层560用于分析图像,并且识别和定位人手520的关键点。卷积层是一类通常应用于分析视觉图像的深度神经网络,如本领域所公知的。卷积层560被特别训练成基于已知的人手解剖结构和比例、诸如在关节处的弯曲和凸出的视觉线索和其它因素来识别人手的结构拓扑。特别地,卷积层560可以识别和定位图像中的点,包括指尖和指关节。
56.卷积层560的输出在框570处示出。人手520和aruco标记的网格530在框570中的图像中是可见的。叠加在图像上还可看到的是人手520的拓扑结构,其包括人手520中的骨骼和骨骼之间的表示为点的关节。例如,拇指的指尖被识别为点572,并且食指的指尖被识别为点574。点572和574以及框570中的拓扑中所示的所有关键点具有在图像坐标中,特别是在实际观察的图像坐标帧548的坐标中,已知的位置。这是因为卷积层560应用于来自步骤1a的图像,该图像还没有以任何方式被调整或变换。
57.图5d是根据本公开的实施例的用于从2d相机图像检测人手姿态的第一步骤的第四部分的示意图。来自步骤1b(图5b)的变换参数k、r和t以及来自步骤1c(图5c)的图像坐标中的人手520的关键点都被提供给步骤1d,在那里执行计算以确定人手520的关键点之间的
真实距离。
58.被执行以产生真实世界/标记坐标系中的人手520的拓扑的计算被限定为:x
d
=k[rt]x
w
ꢀꢀꢀ
(1)其中x
d
是来自步骤1b的实际图像坐标中的人手关键点的集合,x
w
是当前正在被计算的世界/标记坐标系中的人手关键点的集合,k、r和t如上限定。使用等式(1),计算人手关键点x
w
的集合。在步骤1d的框580中示出的人手关键点x
w
在世界坐标中,并且已经由相同坐标系中的多个aruco标记校准。因此,点582(拇指尖)和点584(最靠近拇指尖的指节)之间的真实距离可计算为点582和584的坐标差的各平方和的平方根。该距离在590处示出,并且是拇指的外侧部分(骨)的真实长度。同样地,点586与点588之间的距离可如592处所示而计算,且为食指的外侧部分的真实长度。可以以这种方式计算人手520中的每个骨骼(每根手指的每个部分)的真实长度。
[0059]
如上所述,用于从2d相机图像检测人手姿态的方法的步骤1提供了人手520中的每根手指的每个部分的真实长度。此后,根据下面讨论的方法的步骤2,人手520可以用于机器人示教,其中来自2d相机的图像被分析以确定关键点的3d位置。
[0060]
图6a是根据本公开的实施例的用于从2d相机图像检测人手姿态的第二步骤的第一部分的示意图。在第二步骤的该第一部分中,分析处于诸如在机器人示教会话期间抓持物体之类的任意姿态的人手520的相机图像以识别上述关键点。在框610中,提供人手520的图像。图像可以由相机510或不同的相机提供。在框620,以上述方式,使用神经网络卷积层执行图像分析以识别人手520上的关键点。人手通常将不会平放在来自框610的图像中的表面上,因此人手的一些部分可能被遮挡(在图像中不可见)。此外,来自框610的图像中的各个手指的各个部分通常将不在真实长度位置中;这将在后面说明。
[0061]
在框630,人手520上的所有可识别关键点用它们在屏幕坐标中的位置来识别。例如,可以通过找到接近拇指的手指的中心尖端来识别食指的尖端处的关键点632。食指的外侧指节关节处的关键点634可以被识别为在图像中可识别的指节关节侧点636和638之间。神经网络卷积层基于其过去的训练例如通过在手指的图像中寻找凸出和弯曲来识别点。类似地识别其它可识别的关键点,例如在食指的中间指节关节处的在侧点642和644之间的关键点640。
[0062]
然后可以确定人手520中的每个手指部分(各个骨骼)的屏幕坐标。在来自框610的图像的屏幕坐标中,食指外侧部分652被确定为从关键点632到关键点634的直线。同样地,食指中间部分654被确定为从关键点634到关键点640的直线,而食指内侧部分656被确定为从关键点640到关键点646的直线。
[0063]
框630中的图描绘了处于平坦位置的人手520,仅仅为了清楚地示出如果它们在来自框610的图像中可见则可以被识别的所有不同的关键点。实际上,框630包括人手520的各个关键点在一个图像中的标识和位置,该图像看上去就像框610处的图像(例如,处于抓持姿态)。人手520没有以任何方式从框610处的相机图像展平或变换到框630处的关键点标识。
[0064]
人手520的所有可见和可识别的关键点和手指部分(手指骨骼)的屏幕坐标位置和标识被提供给图6b中的附加分析步骤,其中人手520的3d姿态将最终被确定。
[0065]
图6b是根据本公开的实施例的用于从2d相机图像检测人手姿态的第二步骤的第
二部分的示意图。在框660处,作为输入提供来自步骤1(图5d)的人手尺寸。具体地,提供了人手520中的每个骨骼(每个手指的每个部分)的真实长度,如上文详细讨论的。此外,在左侧作为输入提供来自图6a的框630的处于某一姿态的人手520中的每个可识别关键点的在屏幕坐标系中的标识和位置。使用这些输入,执行一组透视n点计算,如在662处所示。
[0066]
透视n点(pnp)是在给定世界中的一组n个3d点及其在图像中的对应2d投影的情况下估计经校准的相机的姿态的问题。相机姿态由6个自由度(dof)组成,这些自由度由相机相对于"世界"或工作单元坐标系的旋转(滚动、俯仰和偏航)和3d平移组成。对于n=3,存在称为p3p的对该问题的常用解,并且对于n≥3的一般情况,存在许多解。因为在食指和拇指的每个部分上的至少4

6个关键点将在图6a的框630中标识(可能与其它人手指上的若干其它骨骼一起),所以存在多于足够数量的点用于在662处的pnp计算。
[0067]
如图所示,从图6a的框630提供了食指外侧部分652上的关键点在屏幕坐标系中的标识和位置。同样,还提供了食指中间部分654和食指内侧部分656上的关键点在屏幕坐标系中的标识和位置。从框660提供各个手指部分(652、654、656)的每一个的真实长度。对于各个手指部分(652、654、656)的每一个,然后在664处指示的各个框中求解pnp问题。求解pnp问题产生了相机510相对于人手520的每个手指部分的姿态。因为相机510在世界或工作单元坐标系中的姿态是已知的,所以可以计算人手520的各个手指部分在世界或工作单元坐标系中的姿态。以这种方式,在666处所示的各个框中获得人手各个手指部分(652、654、656)的3d姿态。在框668处,组合各个各个部分652、654和656的3d姿态以获得整个食指的3d姿态。
[0068]
在框672处,从图6a的框630提供拇指的各个部分和其它任何可见手指部分上的关键点在屏幕坐标系中的标识和位置。在框674处,如上所述,使用每个单独的手指部分的关键点屏幕坐标和真实长度作为输入,对该手指部分求解pnp问题。在框676处,获得在来自框610的图像中可见的每个手指部分的3d姿态。在框678处组合拇指的各个部分以获得整个拇指的3d姿态,以及类似地获得其它可见手指的3d姿态。
[0069]
在框680处,组合来自框668和678的各个手指和拇指的3d姿态以获得整个人手520的3d姿态。在框690处,示出了步骤2方法和计算的最终输出,包括被表示为金字塔形692的相机510的位置和取向,以及被表示为线框694的人手520的姿态。人手520的姿态包括人手520上的每个可识别的手指部分(骨骼)在世界坐标系(或工作单元坐标系)中的3d位置,只要拇指和食指被定位,该位置就足以限定如图1所示的人手坐标系120。
[0070]
在通过人类演示来进行机器人示教的整个过程期间,重复且连续地执行上文关于图6a和6b所讨论的用于从2d相机图像检测人手姿态的方法的第二步骤。即,再次参考图3和4,当2d相机用于检测抓持和移动工件的人手520时,使用图6a和6b的步骤2序列来确定沿途的每个位置处的人手姿态。相反,在用于机器人示教的人手姿态检测之前,仅执行一次确定人手尺寸(每个手指部分的真实长度;图5a

5d)的步骤1。
[0071]
确定人手尺寸(图5a

5d)和根据人手关键点的3d坐标确定人手姿态(图6a和6b)的2d相机图像分析步骤可以在诸如图3的控制器320之类的机器人控制器上执行,或者在与控制器320通信的单独的计算机上执行。
[0072]
图7是根据本公开的实施例的使用工件的相机图像和先前由人手图像示教的程序使机器人来执行拾取和放置操作的系统700和步骤的示意图。系统700位于工作单元702中,
包括与控制器720通信的相机740。这些部件可以与前面图3所示的工作单元302、相机310和控制器320相同或不同。除了相机740和控制器720之外,工作单元702还包括通常通过物理电缆712与控制器720通信的机器人710。
[0073]
系统700被设计成"重现"由系统300中的人类操作员示教的拾取、移动和放置操作。记录在流程图400的拾取、移动和放置步骤中的人手和工件数据用于产生如下所述的机器人编程指令。机器人710将夹持器720安置在初始位置,如本领域技术人员所知的。相机740识别正乘坐在入站传送机上的新工件730的位置和取向。从拾取步骤的框408,控制器320(图3)知道人手340相对于工件730的位置和取向(并且因此从图1知道夹持器720的位置和取向),以正确地抓持工件730。路径1被计算为将夹持器720从初始位置移动到拾取位置的路径,该路径已经基于工件730的位置和取向被计算。拾取操作发生在路径1的末端。夹持器720a被示出为沿着路径1接近拾取位置,并且工件730a被示出为在拾取位置。
[0074]
从移动步骤的框440(图4),控制器320知道工件330(以及因此工件730)在沿着移动路径的多个位置中的所处位置。路径2被计算为从拾取位置沿着移动路径移动夹持器720a和工件730a的路径。在图7中,沿移动路径的各个中间位置中的一个示出了夹持器720b。
[0075]
路径2在框468处记录的放置位置处结束。这包括对应于工件730c的工件330的位置和姿态(取向)两者。在夹持器720将工件730c放置在放置位置和取向之后,夹持器720释放工件730c并经由路径3返回初始位置。
[0076]
图8是根据本公开的实施例的使用工件的相机图像和先前由人手图像示教的程序使机器人执行拾取和放置操作的方法的流程图800。在框802处,来自拾取和放置操作的人类演示的数据被提供给机器人控制器720,如上文详细讨论的。该数据可以来自2d或3d相机,并且包括由人手示教的拾取、移动和放置运动命令。在框804处,来自相机740的图像由控制器720分析以识别工件730的位置和取向(位置和姿态)。在框806处,控制器720提供动作指令至机器人710,以使抓持部720从机器人初始位置移动,以抓持工件730。控制器720根据从框806处的相机图像分析中得知的工件730的位置和姿态以及从拾取操作的人类演示中得知的夹持器720相对于工件730的相对位置和姿态(图3和4)来计算运动命令。
[0077]
在框808处,机器人710响应于控制器指令,沿着如在人类演示期间所示教的移动路径移动保持工件730的夹持器720。移动路径可以包括拾取位置和放置位置之间的一个或多个中间点,使得移动路径可以跟踪任何三维曲线。在框810处,机器人710将工件730放置在放置操作的人类演示期间示教的位置和姿态。工件放置位置和姿态是从放置操作的人类演示中得知的,而夹持器720相对于工件730的相对位置和姿态是从拾取操作的人类演示中得知的。在框812处,机器人710返回到机器人初始位置,以准备接收拾取下一工件的指令。
[0078]
下面是通过上面已经详细描述的人类演示的机器人编程的公开技术的概述:

用人手演示抓持、移动和放置工件

基于人手上的关键点,分析人手和工件的相机图像以确定机器人夹持器相对于工件的正确姿态和位置

人手上的关键点可以根据来自3d相机的图像或者根据来自2d相机的图像利用人手尺寸确定的准备步骤来确定

基于在重现阶段中新工件的相机图像使用机器人夹持器相对于工件的正确姿
态和位置来生成机器人运动命令

这包括最初抓持新工件,然后基于在人类演示期间捕捉的移动和放置数据来移动和放置新工件
[0079]
前面的讨论描述了通过人类演示进行机器人示教的实施例,其中,预先执行示教阶段,并且在重现阶段期间人类不再处于循环中,在重现阶段中,机器人使用入站工件的相机图像在实际生产环境中执行操作。上述拾取和放置操作仅仅是通过人类演示的机器人示教的一个示例;可以以相同的方式示教其它机器人操作,其中人手的相机图像用于确定夹持器或其它工具相对于工件的相对位置。下面公开了另一个实施例,其中在生产操作期间人类保持在循环中,但是不需要入站工件的相机图像。
[0080]
图9是根据本公开的实施例的用于使用人手的相机图像和经由人眼的视觉反馈来远程操作机器人的系统900和步骤的示意图。人类操作员910处于相机920可以捕获操作员的人手的图像的位置。相机920可以是2d或3d相机。相机920将图像提供给计算机930,该计算机分析图像以识别人手的关键特征,如参考图1和2以及图5和6(对于2d相机实施例)详细描述的。根据对图像的分析,可以确定人手坐标系的位置和取向,并因此确定夹持器坐标系的位置和取向。将夹持器坐标系的位置和取向提供给机器人控制器940。在该实施例的微小变形中,可以去除计算机930,并且控制器940可以执行图像分析功能以确定夹持器坐标系的位置和取向。
[0081]
控制器940与机器人950通信。控制器940计算机器人运动命令以使机器人950将其夹持器960移动到从图像识别的夹持器坐标系的位置和取向。机器人950响应于来自控制器940的命令移动夹持器960,这又响应于来自相机图像的人手的位置。换位可以可选地包括在人手姿态和夹持器姿态之间,例如使得夹持器姿态和移动成为人手姿态和移动的镜像。图9的情况是夹持器960要抓持工件970并对工件970执行一些操作,例如将工件970移动到不同的位置和/或姿态。夹持器960示出为指型夹持器,但可以替代地为如前所述的吸盘式或磁性表面夹持器。
[0082]
人类操作员910处于他或她可以看到机器人950、夹持器960和工件970的位置。操作员910可以与机器人950处于相同的工作单元中,或者可以处于由具有窗户的墙壁分开的单独的房间中。操作员910甚至可以远离机器人950或者以其他方式在视觉上被阻挡看不到机器人950,在这种情况下,机器人950、夹持器960和工件970的实时视频馈送将被提供给操作员910,作为视觉反馈的手段。
[0083]
在系统900中,没有使用相机来提供工件970的图像。相反,操作员910观察夹持器960的运动并移动他或她的人手以使夹持器960对工件970执行操作。在一个可能的情况中,操作员910将他/她的手在食指和拇指张开的情况下向工件970移动,继续移动人手以使夹持器960从期望的方向接近工件970,将他/她的人手的食指和拇指捏在一起以抓持工件970,然后在抓持工件970的同时将工件970移动到不同的位置和/或姿态。
[0084]
在系统700中,操作员910基于夹持器/工件场景的视觉反馈来移动人手,相机920提供人手的连续图像,并且控制器940基于如相机图像中分析的人手的移动来移动夹持器960。
[0085]
图10是根据本公开的实施例的使用人手的相机图像和经由人眼的视觉反馈来远程操作机器人的方法的流程图1000。图10的方法使用图9的系统900。该方法开始于开始框
1002。在框1004处,在相机图像中检测人手。在判决菱形框1006处,如果没有检测到人手,则过程循环回到框1004以继续拍摄图像。在框1008处,当在相机图像中正确地检测到人手时,计算机930基于通过识别人手上的关键点而确定的人手位置和姿态来计算夹持器960的位置和姿态。
[0086]
在框1010处,夹持器位置和姿态从计算机930被传送到控制器940。或者,夹持器位置和姿态的图像分析和计算可以直接在控制器940上执行,在这种情况下,框1010被去除。在框1012处,控制器940基于最近分析的人手的图像向机器人950提供运动命令以将夹持器960移动到新的位置和姿态。在框1014处,人类操作员910视觉地检查夹持器位置和姿态。在判决菱形框1016处,操作员910确定是否已达到夹持器960的目标位置。如果未达到,则在框1018处,操作员910移动人手,使得夹持器960经由对新的相机图像的闭环反馈进行相应的移动。当达到目标位置时,该过程在终点1020处结束。
[0087]
在实际实践中,操作员910可以做出连续的人手运动序列以经由远程操作来控制机器人。例如,操作员910可以移动他/她的人手以使夹持器960接近工件970、抓持工件970、将工件970移动到目的位置、放置和释放工件970、以及将夹持器960移动回到开始位置以接近新的工件。
[0088]
在整个前述讨论中,描述并暗示了各种计算机和控制器。应当理解,这些计算机和控制器的软件应用和模块在具有处理器和存储器模块的一个或多个计算设备上执行。特别地,这包括上面讨论的机器人控制器320、720和940以及计算机930中的处理器。具体地,控制器320、720和940以及计算机930中的处理器被配置为以上述方式经由人类演示来执行机器人示教。
[0089]
如上所述,所公开的用于通过人类演示来进行机器人示教的技术使得机器人运动编程比先前的技术更快、更容易和更直观,同时提供了仅需要单个相机的简单性。
[0090]
虽然上面已经讨论了通过人类演示来进行机器人示教的多个示例性方面和实施例,但是本领域技术人员将认识到其修改、置换、添加和子组合。因此,下面所附权利要求和此后引入的权利要求旨在被解释为包括在其真实精神和范围内的所有这些修改、置换、添加和子组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1