具有可变空间分辨率的3D计算机视觉系统
文献发布时间:2023-06-19 19:30:30
相关应用
本发明要求于2021年10月15日由发明人Zheng Xu和Sabarish Kuduwa Sivanath提交的标题为“3D Computer Vision with Variable Spatial Resolution”美国临时专利申请No.63/256,335,律师案卷No.EBOT21-1003PSP的权益,其公开内容通过引用整体并入本文以用于所有目的。
本公开涉及:
美国专利申请No.16/531,899(代理人案卷No.EBOT18-1004NP),标题为“A 3DMACHINE-VISION SYSTEM”,由发明人Zheng Xu、Kai C.Yung和MingDu Kang于2018年12月13日提交并于2021年8月24日作为美国专利No.11,102,459(以下简称“美国专利No.11,102,459”)发布,该申请要求以下专利申请的权益
美国临时专利申请No.62/718,174,代理人案卷No.EBOT18-1003PSP,标题为“Method to Improvement the Depth of Field(DOF)of Structured Light”,于2018年8月13日提交;以及美国临时专利申请No.62/723,139,代理人案卷No.EBOT18-1004PSP,标题为“A3D Machine Vision System”,于2018年8月27日提交;
美国申请No.17/751,228(代理人案卷No.EBOT21-1001NP),发明人SabarishKuduwa Sivanath和Zheng Xu于2022年5月23日提交,标题为“SYSTEM AND METHOD FORERROR CORRECTION AND COMPENSATION FOR 3D EYE-TO-HAND COORDINATION”的,该申请要求以下专利申请的权益
美国临时专利申请No.63/208,816,代理人案卷No.EBOT21-1001PSP,标题为“SYSTEM AND METHOD FOR CORRECTING AND COMPENSATING ERRORS OF 3D EYE-TO-HANDCOORDINATION”,由发明人Sabarish Kuduwa Sivanath和Zheng Xu于2021年6月9日提交;并且还与以下申请相关
美国申请No.17/751,348(代理人案卷No.EBOT21-1002NP),标题为“SYSTEM ANDMETHOD FOR IMPROVING ACCURACY OF 3D EYE-TO-HAND COORDINATION OF A ROBOTICSYSTEM”,由发明人Zheng Xu、Sabarish Kuduwa Sivanath和MingDu Kang于2022年5月23日提交,该申请要求以下专利申请的权益
美国临时专利申请No.63/209,933,代理人案卷No.EBOT21-1002PSP,标题为“SYSTEM AND METHOD FOR IMPROVING ACCURACY OF 3D EYE-TO-HAND COORDINATION OF AROBOTIC SYSTEM”,由发明人Zheng Xu、Sabarish Kuduwa Sivanath和MingDu Kang于2021年6月11日提交;
出于所有目的,它们的公开内容通过引用整体并入本文。
技术领域
本公开一般而言涉及用于机器人应用的三维(3D)计算机视觉系统。特别地,本发明涉及具有可变空间分辨率的3D计算机视觉系统。
背景技术
先进的机器人技术极大地改变了生产产品的方式并引发了第四次工业革命(也称为工业4.0)。通过允许计算机和机器人彼此连接和通信以最终在没有人参与的情况下做出决策,第四次工业革命改进了第三次工业革命期间开发的计算和自动化技术。信息物理系统、物联网(IoT)和系统互联网(IoS)的结合使工业4.0成为可能并使智能工厂成为现实。随着智能机器获得更多数据并学习新技能,它们会变得更智能,这可以带来更高效和更有生产力且更少浪费的工厂。最终,可以创建和共享信息的数字连接智能机器网络将导致真正的“无人值守制造”,其中无需人工监督。
实现工业4.0的关键组件之一是3D计算机视觉,其被用于引导机器人执行各种制造任务,诸如消费电子器件(例如,智能电话、数码相机、平板或膝上型计算机等)的制造。消费电子器件的紧凑设计意味着组装任务常常涉及以高精度处置微小组件。虽然具有窄视场(FOV)的高分辨率计算机视觉可以适于处理微小组件,但它们可能不足以处理较大组件。期望一种计算机视觉系统,它可以为各种组件提供准确的位置信息。
发明内容
一个实施例可以提供一种机器人系统。机器人系统可以包括具有末端执行器的机器人臂、被配置为控制机器人臂的移动的机器人控制器以及双分辨率计算机视觉系统。双分辨率计算机视觉系统可以包括具有宽视场(FOV)的低分辨率三维(3D)相机模块和高分辨率3D相机模块。低分辨率3D相机模块和高分辨率3D相机模块可以以如下方式布置,使得高分辨率3D相机模块的FOV位于低分辨率3D相机模块的FOV内,从而允许双分辨率计算机视觉系统在物体的至少一部分进入高分辨率相机模块的查看区域时以两种不同的分辨率提供与由末端执行器抓取的物体相关联的3D视觉信息。
在这个实施例的变体中,低分辨率3D相机模块的查看区域可以比高分辨率3D相机模块的查看区域大至少十倍。
在这个实施例的变体中,双分辨率计算机视觉系统还可以包括用于安装低分辨率3D相机模块和高分辨率3D相机模块的弧形支撑框架。
在这个实施例的变体中,高分辨率3D相机模块可以包括高分辨率结构光投影仪和具有固定焦距的一对高分辨率相机。
在进一步的变体中,高分辨率结构光投影仪可以包括激光源和远心透镜系统。
在这个实施例的变体中,低分辨率3D相机模块可以包括广角结构光投影仪和具有固定焦距的一个或多个广角和低分辨率相机。
在这个实施例的变体中,该系统还可以包括误差补偿模块,该误差补偿模块被配置为通过确定与末端执行器的相机指示的姿势对应的控制器期望的姿势来补偿机器人臂的姿势误差,使得当机器人控制器基于控制器期望的姿势控制机器人臂的移动时,末端执行器实现如双分辨率计算机视觉系统所观察到的相机指示的姿势。
在进一步的变体中,误差补偿模块可以包括机器学习模型,该机器学习模型被配置为输出将相机指示的姿势与控制器期望的姿势相关联的误差矩阵。
在这个实施例的变体中,该系统还可以包括坐标变换模块,该坐标变换模块被配置为将由双分辨率计算机视觉系统确定的姿势从以相机为中心的坐标系变换到以机器人为中心的坐标系。
在进一步的变体中,坐标变换模块可以被配置为将由末端执行器保持的组件的姿势与末端执行器的对应姿势相关联。
一个实施例可以提供一种用于控制包括末端执行器的机器人臂的移动的计算机实现的方法。该方法可以包括基于由低分辨率三维(3D)相机模块提供的视觉信息来确定末端执行器或由末端执行器抓取的大组件的初始姿势。低分辨率3D相机模块是包括低分辨率3D相机模块和高分辨率3D相机模块的双分辨率计算机视觉系统的一部分,并且低分辨率3D相机模块和高分辨率3D相机模块以如下方式布置,使得高分辨率3D相机模块的查看区域位于低分辨率3D相机模块的查看区域内。该方法还可以包括基于初始姿势和高分辨率3D相机模块的查看区域来确定末端执行器或大组件的中间姿势;控制机器人臂的移动以将末端执行器或大组件移动到中间姿势,使得由末端执行器保持的小组件或大组件上的小元件进入高分辨率3D相机模块的查看区域;基于由高分辨率3D相机模块提供的视觉信息,确定小组件或大组件上的小元件的姿势;基于小组件或大组件上的小元件的姿势确定末端执行器或大组件的最终姿势;以及控制机器人臂的移动以将末端执行器或大组件移动到最终姿势。
附图说明
图1图示了根据一个实施例的示例性双分辨率3D计算机视觉系统。
图2图示了根据一个实施例的示例性高分辨率3D相机模块。
图3图示了根据一个实施例的示例性低分辨率3D相机模块。
图4图示了根据一个实施例的双分辨率3D计算机视觉系统的示例性使用场景。
图5呈现了图示根据一个实施例的实现双分辨率3D计算机视觉系统的机器人系统的示例性操作过程的流程图。
图6示出了根据一个实施例的示例性机器人系统的框图。
图7图示了根据一个实施例的促进双分辨率计算机视觉系统的操作的示例性计算机系统。
在附图中,相同的附图标记指代相同的图元素。
具体实施方式
呈现以下描述以使本领域的任何技术人员能够制作和使用实施例,并且在特定应用及其要求的上下文中提供以下描述。对于本领域技术人员来说,对所公开的实施例的各种修改将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文定义的一般原理可以应用于其它实施例和应用。因此,本发明不限于所示的实施例,而是要符合与本文公开的原理和特征一致的最宽范围。
概述
本文描述的实施例解决了启用引导机器人臂的操作的3D计算机视觉系统的可变空间分辨率的技术问题。更具体而言,提供了一种双分辨率3D计算机视觉系统。双分辨率3D计算机视觉系统可以包括高分辨率3D相机模块和低分辨率3D相机模块。每个3D相机模块可以包括结构光投影仪和一个或多个相机。高分辨率3D相机模块可以包括具有远心透镜系统和基于激光的光源的高强度结构光投影仪,而低分辨率3D相机模块可以包括具有广角透镜系统和基于发光二极管(LED)的光源的低强度结构光投影仪。高分辨率3D相机模块还可以包括一对高分辨率相机,每个相机具有更小的视场(FOV)和更小的焦深(DOF)。低分辨率3D相机模块可以包括一个或多个低分辨率相机,每个相机具有更大的FOV和更大的DOF。两个3D相机模块的位置和朝向可以以如下方式布置,使得它们的查看区域(如由每个相机模块的FOV和DOF定义)重叠。在操作期间,由低分辨率3D相机模块提供的视觉信息可以引导机器人臂的移动,使得由末端执行器抓取的组件被移动到高分辨率3D相机的查看区域中。末端执行器和组件的姿势可以被同时确定,其中末端执行器的姿势由低分辨率视觉信息确定并且组件的姿势由高分辨率视觉信息确定。机器学习技术可以被用于补偿一个或多个变换矩阵中的误差,以提高机器人臂的定位准确性。
双分辨率3D计算机视觉系统
实现具有可变分辨率的3D计算机视觉的一种可能方法是使用具有可调焦距的变焦透镜。但是,虽然在摄影中使用必不可少的工具来改变相机的分辨率/放大倍率和FOV,但变焦透镜对于机器人应用来说并不是实际的选择,主要是因为变焦相机的校准过程会非常复杂和耗时,从而要求大量的数据。
校准变焦相机的复杂性来自于相机的内在参数(即,与相机的内部特点相关的参数)和外在参数(即,描述相机的位置和朝向的参数)都取决于变焦、对焦和孔径设置的事实。相比之下,具有固定焦距的静态相机只有一个变焦、对焦和光圈设置。假设变焦相机的变焦、对焦和孔径设置各有50个可能的值,如果校准静态相机要求10个数据集合,那么校准变焦相机将要求10×50×50×50=1,250,000个数据集合。
已经提出了各种技术来减少校准数据点的数量,并且同时生成有用的变焦相机模型。在一个示例中,可以通过以固定间隔对所需校准数据点进行采样来估计恒定孔径设置的内在和外在参数。随后,最多五度的多项式可以被用于以连续模式逼近其他变焦-对焦组合的相机参数。在另一个示例中,可以使用人工神经网络(ANN)来紧密逼近相机模型。这些方法仍然要求更多的数据并且无法达到精密制造所需的准确性和分辨率。
与变焦相机相比,具有固定焦距的静态相机可以被更容易校准并且可以提供更高的分辨率。为了利用这些好处,在本申请的一些实施例中,3D计算机视觉系统可以采用两个3D相机模块,每个3D相机模块是具有固定焦距的静态相机。两个3D相机模块都可以提供工作空间的3D信息,其中一个3D相机模块被配置为捕获高分辨率3D图像并且另一个3D相机模块被配置为捕获低分辨率3D图像。以这种方式,3D计算机视觉系统可以提供具有两个分辨率级别的3D视觉信息,而无需校准各种相机设置(例如,变焦、对焦和孔径)。当机器人系统需要视觉引导来操纵微小组件时(例如,将电缆连接器插入匹配的连接器),机器人系统可以使用高分辨率3D图像。当机器人系统需要视觉引导来操纵较大组件时(例如,拿起整条电缆或移动末端执行器),机器人系统可以使用低分辨率3D图像。
在一些实施例中,双分辨率3D计算机视觉系统可以包括支撑框架,并且两个3D相机模块可以安装在支撑框架上。图1图示了根据一个实施例的示例性双分辨率3D计算机视觉系统。双分辨率3D计算机视觉系统100可以包括支撑框架102、高分辨率3D相机模块104和低分辨率3D相机模块106,其中两个3D相机模块都安装在支撑框架102上。更具体而言,支撑框架102可以包括弧形槽108,两个3D相机模块(例如,模块104和106)安装在该弧形槽中。两个3D相机模块每个都可以沿着槽108滑动并且可以被布置为具有工作空间的不同视角。槽108的弧形(即,是圆的一部分)确保3D相机模块104和106的查看距离(即,相机模块和被观察物体之间的距离)基本相似,假设待查看物体位于圆心附近。在一些实施例中,两个3D相机模块的光轴之间的角度可以在15°和45°之间。在替代实施例中,3D相机模块104和106可以安装在分离的支撑结构上,而不是安装在同一个支撑框架上,并且两个3D相机模块可以具有不同的查看距离。
图1示出了高分辨率3D相机模块104具有查看区域(也称为高分辨率查看区域)110,这意味着放置在查看区域110内的物体可以由高分辨率3D相机模块104以预定的高分辨率查看,而查看区域110之外的物体将在高分辨率3D相机模块104的焦点之外。另一方面,低分辨率3D相机模块106具有查看区域(也称为低分辨率查看区域)112,其可以比高分辨率查看区域110大得多。放置在查看区域112内的物体可以由低分辨率3D相机模块106以预定的低分辨率查看,而查看区域112之外的物体将在低分辨率3D相机模块106的焦点之外。3D相机模块104和106可以以如下方式布置,使得高分辨率和低分辨率查看区域110和112重叠,而高分辨率查看区域110大致位于低分辨率查看区域112的中心处。在一个示例中,高分辨率3D相机模块104的预定高分辨率可以比低分辨率3D相机模块106的预定低分辨率至少高十倍。
具有不同分辨率的这两个重叠的查看区域可以使双分辨率3D计算机视觉系统100能够同时以两种分辨率查看工作空间,从而使3D计算机视觉系统100有可能以两个不同的分辨率级别为机器人臂提供定位引导。更具体而言,当机器人臂操纵相对大的组件时,它可以将较大组件放置在低分辨率查看区域112中;并且当机器人臂操纵相对小的组件时,它可以将小组件放置在高分辨率查看区域110中。当机器人臂在操纵相对大的组件以观察大组件上的某些细节特征时,具有细节特征的区域可以被放置在高分辨率查看区域中,而大组件的其余部分可以保持在低分辨率查看区域中。注意的是,现有的机器人系统有时可以依赖具有相对大FOV的二维(2D)相机来扫描工作空间以定位小组件,然后使用高分辨率3D相机获得组件的3D视觉信息。但是,这种2D-3D相机组合在某些情况下可能不够用,尤其是在操纵柔性组件(诸如电缆)时。这是因为需要深度信息才能准确定位柔性组件。而且,2D视觉信息可能不足以确定末端执行器或末端执行器持有的组件的姿势。
图2图示了根据一个实施例的示例性高分辨率3D相机模块。高分辨率3D相机模块200可以包括高分辨率结构光投影仪202和一对高分辨率相机204和206。更具体而言,高分辨率结构光投影仪202可以包括数字光处理(DLP)投影仪,其可以以高帧速率投影高分辨率编码图像(例如,光图案)。在一些实施例中,高分辨率结构光投影仪202可以包括基于多模激光器的光源和基于双远心透镜系统的扩束器,以将高强度平行光束投影到查看区域208中的物体上。高分辨率结构光投影仪202的速度可以在每秒10到20帧之间或更高(例如,高达每秒2500帧)。
在一些实施例中,高分辨率相机204和206的图像分辨率可以是亚毫米(例如,小于50微米)以提供它们视图中微小组件的详细视觉信息。高分辨率相机204和206可以定位在高分辨率结构光投影仪202的相对侧以减轻由遮挡和镜面反射引起的负面影响。每个高分辨率相机可以包括透镜和图像传感器。在一些实施例中,每个相机可以具有倾斜的图像传感器(即,图像传感器相对于透镜倾斜,使得图像平面与透镜平面不平行)。这种布置可以增加相机的有效景深(DOF)。高分辨率相机模块的更详细描述可以在发明人Zheng Xu、Kai CYung和MingDu Kang于2018年12月13日提交并于2021年8月24日作为美国专利No.11,102,459(下文中称为“美国专利No.11,102,459”)发布的标题为“A 3D MACHINE-VISIONSYSTEM”的美国专利申请No.16/531,899(代理人案卷No.EBOT18-1004NP)中找到,其公开内容通过引用并入本文。
图3图示了根据一个实施例的示例性低分辨率3D相机模块。低分辨率相机模块300可以包括广角低分辨率结构光投影仪302和一对广角低分辨率相机304和306。更具体而言,低分辨率结构光投影仪302可以包括基于LED的广角DLP投影仪,其可以将低强度广角光束投影到查看区域308中的物体上。低分辨率结构光投影仪302的投影的光束斑可以比图2中所示的高分辨率结构光投影仪202的光束斑大得多。类似地,低分辨率相机304和306的FOV和DOV可以分别比图2中所示的高分辨率相机204和206的FOV和DOV大得多。因此,低分辨率相机模块300的查看区域308可以具有比高分辨率相机模块200的查看区域208大得多的体积。根据相机的设置,在一些实施例中,低分辨率查看区域308的体积可以比高分辨率查看区域208的体积大至少十倍。高分辨率图像可以具有比低分辨率图像高至少十倍的分辨率。在一个示例中,高分辨率图像的分辨率可以是大约20微米,而低分辨率图像的分辨率可以超过200微米。
图4图示了根据一个实施例的双分辨率3D计算机视觉系统的示例性使用场景。图4示出了机器人臂的末端执行器402保持小组件404。图4还示出了具有较大的低分辨率查看区域408的低分辨率3D相机模块406和具有较小的高分辨率查看区域412的高分辨率3D相机模块410。3D相机模块406和410可以以如下方式布置,使得高分辨率查看区域412可以位于低分辨率查看区域408之内并且大致位于低分辨率查看区域408的中心处。如前面所讨论的,低分辨率查看区域408可以比高分辨率查看区域412大至少十倍。
当末端执行器402被放置在低分辨率查看区域408内(如图4中所示)时,由低分辨率3D相机模块406提供的低分辨率视觉信息(例如,图像)可以被用于确定末端执行器402的姿势(可以包括位置和朝向)。基于末端执行器402的所确定的姿势和高分辨率查看区域412的已知位置,可以计算末端执行器402的中间姿势,并且机器人臂可以将末端执行器402移动到其中间姿势,使得小组件404连同末端执行器402的一部分(例如,尖端)可以在高分辨率查看区域412内移动。一旦小组件404在高分辨率查看区域412内,高分辨率3D相机模块410就可以获取小组件404的高分辨率视觉信息(例如,图像),以允许确定小组件404的当前姿势。给定小组件404的当前姿势及其期望的安装姿势(可以基于要在其上安装小组件404的另一个组件的姿势来确定),可以计算末端执行器402的最终姿势。机器人臂然后可以将末端执行器402移动到其最终姿势,使得小组件404可以到达其期望的安装姿势,从而允许正确安装小组件404。
在不同的场景中,末端执行器402可以抓取相对大的组件(例如,超过10cm长的柔性电缆)。末端执行器402可以移动到初始姿势,使得整个大组件或大组件的主要部分处于低分辨率区域408中,从而允许低分辨率3D相机模块406获得关于大组件的低分辨率视觉信息。为了获得关于大组件上的小元件(例如,柔性电缆上的连接器)的高分辨率信息,末端执行器402可以移动到中间姿势,使得大组件上的小元件进入高分辨率查看区域412,但是大组件的主要部分保留在低分辨率查看区域408中。末端执行器402的最终姿势然后可以基于大组件上的小元件的被查看的姿势来确定。
注意的是,每个3D相机模块可以具有其自己的坐标系,其中每个坐标系的原点位于每个相机模块上。在图4中所示的示例中,低分辨率相机模块406具有以低分辨率相机模块406为中心的坐标系(称为低分辨率相机坐标系)414,并且高分辨率相机模块410具有以高分辨率相机模块410为中心的坐标系(称为高分辨率相机坐标系)416。当末端执行器402或组件404的姿势基于由3D相机模块提供的视觉信息来确定/计算时,常常使用对应相机坐标系的坐标来表示姿势。例如,末端执行器402的姿势是基于由低分辨率相机模块406提供的视觉信息确定的并且可以使用低分辨率相机坐标系414的坐标来表示,而小组件404的姿势是基于由高分辨率相机模块410提供的视觉信息确定的并且可以使用高分辨率相机坐标系416的坐标来表示。
两个3D相机模块的坐标系被用于表示末端执行器402和组件404的被查看的姿势。另一方面,当控制机器人臂的移动时,机器人控制器通常使用不同的坐标系(称为机器人-基座坐标系)418,其原点位于机器人臂的基座处。为了让机器人控制器知道将机器人臂移动到哪里,机器人控制器常常需要将坐标从以相机为中心的坐标系(例如,或者低分辨率相机坐标系414或者高分辨率相机坐标系416)变换到以机器人为中心的坐标系(即,机器人-基座坐标系418)。这种变换被称为机器人系统的手眼协调。
相机坐标系与机器人-基座坐标系之间的变换可以被表达为
在一些实施例中,为了提高机器人系统的定位准确性并实时校正变换矩阵中的误差,机器人控制器可以使用误差矩阵
在一些实施例中,可以使用机器学习技术来获得误差矩阵。更具体而言,可以使用预训练的错误检测机器学习模型(可以包括深度学习神经网络)来预测与指示的姿势对应的误差矩阵,这可以使用由3D相机模块提供的视觉信息来确定。然后可以通过将误差矩阵与指示的姿势相乘来计算期望的姿势。然后,机器人控制器可以根据期望的姿势向机器人臂发送命令,这会导致末端执行器到达指示的姿势。
因为双分辨率3D计算机视觉系统包括两个相机模块,所以需要训练两个机器学习模型(例如,两个神经网络),每个相机空间一个模型。更具体而言,可以训练第一机器学习模型以预测用于从由低分辨率相机模块提供的视觉信息导出的指示的姿势的误差矩阵,并且可以训练第二机器学习模型以预测用于从由高分辨率相机模块提供的视觉信息导出的指示的姿势的误差矩阵。用于训练误差检测机器学习模型的过程的详细描述可以在由发明人Sabarish Kuduwa Sivanath和Zheng Xu于2022年5月23日提交的标题为“SYSTEM ANDMETHOD FOR ERROR CORRECTION AND COMPENSATION FOR 3D EYE-手协调”的美国申请No.17/751,228(代理人案卷No.EBOT21-1001NP)中找到,其公开内容通过引用并入本文。
图5呈现了图示根据一个实施例的实现双分辨率3D计算机视觉系统的机器人系统的示例性操作过程的流程图。在执行组装任务之前,需要校准机器人系统以导出用于一个或两个相机模块/空间的变换矩阵(操作502)。导出变换矩阵可以涉及在机器人臂的末端执行器上安装校准目标,并在末端执行器移动到工作空间中的不同位置(或相机模块的查看区域内的不同位置)时通过两个相机模块捕获校准目标的图像。在校准之后,操作者可以在机器人臂上安装抓取器并校准其TCP(操作504)。注意的是,校准TCP是指确定TCP相对于机器人的基座的坐标的过程。
随后,可以执行机器学习训练过程(操作506)。在一些实施例中,可以为双分辨率3D计算机视觉系统中的两个相机模块执行训练过程。训练过程可以包括受监督的训练过程,并且机器学习模型可以包括深度学习神经网络。可以训练第一神经网络以促进低分辨率相机模块和机器人臂之间的手眼协调,并且可以训练第二神经网络以促进高分辨率相机模块和机器人臂之间的手眼协调。在替代实施例中,可以仅对高分辨率3D相机模块执行训练。这是因为低分辨率3D相机模块被用于引导机器人臂的粗略移动,并且在此类情况下可以忽略变换矩阵中的小误差。
一旦用于(一个或多个)相机模块的(一个或多个)姿势误差检测神经网络得到充分训练,机器人系统就可以用实时纠错或误差补偿能力进行操作。抓取器可以拾取待组装的组件,诸如柔性电缆(操作508)。机器人臂可以移动抓取器以进入低分辨率查看区域(操作510)。双分辨率3D计算机视觉系统可以基于低分辨率视觉信息确定抓取器在低分辨率相机空间中的姿势(操作512)。注意的是,低分辨率视觉信息可以由低分辨率3D相机模块提供,该模块可以类似于图3中所示的低分辨率3D相机模块300。更具体而言,低分辨率3D相机模块可以包括基于LED的广角DLP和一个或两个低分辨率相机。在一个实施例中,低分辨率3D相机模块可以仅包括一个低分辨率相机,这可以足以在基于广角LED的DLP投影的结构光的帮助下提供3D视觉信息。
双分辨率3D计算机视觉系统可以使用对应的变换矩阵将确定的抓取器姿势从低分辨率相机空间转换到机器人-基座空间(操作514)。注意的是,虽然低分辨率3D相机模块可以提供与抓取器或由抓取器抓取的大组件相关联的姿势信息,但它可能无法提供关于小组件的姿势或大组件的一部分的姿势的足够细节。例如,柔性电缆的长度可以超过十厘米,而其连接器的维度可以只有几毫米。低分辨率3D相机模块可以提供关于整体上柔性电缆的低分辨率视觉信息,但可能无法提供关于电缆连接器的姿势的信息。
基于确定的抓取器姿势和高分辨率查看区域的预定位置,机器人控制器可以计算抓取器的中间姿势(操作516)。确定中间姿势以确保抓取器尖端或被抓取器抓取的小组件可以移动到高分辨率查看区域中。注意的是,因为两个相机模块都是静态的,所以低分辨率和高分辨率查看区域都具有机器人控制器已知的固定位置。机器人控制器可以可选地将抓取器的中间姿势输入到第一神经网络以获得抓取器的期望中间姿势(操作518)。这个操作可以是可选的,因为此时抓取器的姿势不是关键任务。
机器人控制器随后可以基于中间姿势或期望的中间姿势生成运动命令并将其发送到机器人臂(操作520),并且机器人臂相应地将抓取器移动到其中间姿势(操作522)。然后,双分辨率3D计算机视觉系统可以基于高分辨率视觉信息确定组件的姿势(操作524)。注意的是,高分辨率视觉信息可以通过高分辨率3D相机模块获得,其可以类似于图2中所示的高分辨率3D相机模块200。更具体而言,高分辨率3D相机模块可以包括具有激光源和远心透镜系统的DLP以及两个高分辨率相机。除了确定组件姿势外,还可以使用由低分辨率3D相机模块获得的低分辨率视觉信息来核实抓取器的中间姿势。换句话说,在机器人臂将组件移动到高分辨率区域之后,末端执行器整体的姿势和末端执行器或组件的一部分(例如,尖端)的姿势可以使用不同分辨率的视觉信息同时确定。
双分辨率3D计算机视觉系统可以使用对应的变换矩阵将确定的组件姿势从高分辨率相机空间转换到机器人-基座空间(操作526)。双分辨率3D计算机视觉系统还可以基于高分辨率视觉信息确定组件的目标安装姿势,然后将目标安装姿势从高分辨率相机空间转换到机器人-基座空间(操作528)。注意的是,可以基于安装位置的姿势(例如,匹配的电缆连接器的姿势)来确定组件的安装姿势。在一些实施例中,还可以确定附加的变换矩阵(也称为分量变换矩阵T
机器人控制器随后可以基于抓取器的期望的最终姿势生成运动命令并将其发送到机器人臂(操作534),并且机器人臂可以相应地移动抓取器以安装和固定组件(操作536)。
在图5中所示的示例中,抓取器在一个步骤中从其初始姿势移动到其中间姿势。机器人控制器也有可能使用多个较小的步骤将抓取器从其初始姿势移动到其中间姿势。类似地,控制器也可以使用多个更小的步骤移动抓取器,而不是一步将抓取器从其中间姿势移动到其最终姿势。将较大的移动划分为一系列较小步骤的详细描述可以在由发明人ZhengXu、Sabarish Kuduwa Sivanath和MingDu Kang于2022年5月23日提交的标题为“SYSTEMAND METHOD FOR IMPROVING ACCURACY OF 3D EYE-TO-HAND COORDINATION OF A ROBOTICSYSTEM”的美国申请No.17/751,348(代理人案卷No.EBOT21-1002NP)中找到,该申请的公开内容通过引用并入本文。
图6示出了根据一个实施例的示例性机器人系统的框图。机器人系统600可以包括双分辨率3D计算机视觉系统602,其可以包括低分辨率3D相机模块604和高分辨率3D相机模块606。机器人系统600还可以包括六轴机器人臂608、机器人控制模块610、坐标变换模块612、误差补偿模块614、中间姿势确定模块616和最终姿势确定模块618。
低分辨率3D相机模块604可以包括低分辨率结构光投影仪和一个或两个低分辨率相机。高分辨率3D相机模块606可以包括高分辨率结构光投影仪和一对高分辨率相机。相机模块可以以如下方式布置,使得低分辨率3D相机模块604的查看区域涵盖高分辨率3D相机模块606的查看区域。每个相机模块可以包括相机控制模块和图像处理模块,在图6中没有示出。相机控制模块负责控制相机和结构光投影仪的操作,并且图像处理模块可以负责处理由相机捕获的视觉信息(例如,图像)。
六轴机器人臂608可以具有多个关节和六个自由度(6DoF)。六轴机器人臂608的末端执行器可以在低分辨率3D相机模块604和高分辨率3D相机模块606的查看区域中自由移动。在一些实施例中,机器人臂608可以包括多个区段,其中相邻区段经由旋转关节彼此耦合。每个旋转关节可以包括能够在特定平面内连续旋转的伺服马达。多个旋转关节的组合可以使机器人臂608能够以6DoF具有广泛的移动范围。
机器人控制模块610控制机器人臂608的移动。机器人控制模块610可以生成运动计划,该运动计划可以包括一系列运动命令,这些命令可以被发送到机器人臂608中的每个个体马达,以促进抓取器的移动以完成特定的组装任务,诸如拾取组件、将组件移动到期望的安装位置,并安装组件。
坐标变换模块612可以负责将抓取器或组件的姿势从(一个或多个)相机空间转换到机器人-基座空间并且负责将组件的姿势转换成末端执行器的姿势。坐标变换模块612可以为双分辨率3D计算机视觉系统602中的每个3D相机模块维护变换矩阵。坐标变换模块612可以使用变换矩阵将由双分辨率3D计算机视觉系统602中的3D相机模块看到的姿势从对应的相机空间变换为机器人-基座空间中的姿势。可以使用测量校准目标的多个姿势的校准过程来获得变换矩阵。坐标变换模块612还可以维护使组件的姿势和末端执行器的姿势相关的组件变换矩阵。
误差补偿模块614可以负责检测和补偿包括在一个或多个变换矩阵中的误差。在一些实施例中,误差补偿模块614可以应用机器学习技术来学习可以补偿相机查看到的姿势与控制器期望的姿势之间的差异的误差矩阵。
中间姿势确定模块616可以负责确定抓取器的中间姿势,使得由抓取器抓取的组件可以从低分辨率3D相机模块604的查看区域移动到高分辨率3D相机模块606的查看区域中。最终姿势确定模块618可以负责基于由高分辨率3D相机模块606提供的高分辨率视觉信息来确定抓取器的最终姿势。
图7图示了根据一个实施例的促进双分辨率计算机视觉系统的操作的示例性计算机系统。计算机系统700包括处理器702、存储器704和存储设备706。此外,计算机系统700可以耦合到外围输入/输出(I/O)用户设备710,例如显示设备712、键盘714和定点设备716。存储设备706可以存储操作系统720、计算机视觉控制系统722和数据740。
计算机视觉控制系统722可以包括指令,指令在由计算机系统700执行时可以使计算机系统700或处理器702执行本公开中描述的方法和/或过程。具体而言,计算机视觉控制系统722可以包括用于控制低分辨率3D相机模块以获得低分辨率视觉信息的指令(低分辨率视觉控制指令724)、用于控制高分辨率3D相机模块获得高分辨率视觉信息的指令(高分辨率视觉控制指令726)、用于控制机器人臂的移动的指令(机器人控制指令728)、用于将姿势从相机空间(高分辨率相机空间或低分辨率相机空间)变换到机器人-基座空间的指令(坐标变换指令730)、用于校正和补偿变换矩阵中的误差(例如,通过应用机器学习技术)的指令(误差补偿指令732)、用于估计抓取器的中间姿势的指令(中间姿势估计指令734),以及用于确定抓取器的最终姿势的指令(最终姿势确定指令736)。数据740可以包括收集的训练样本742。
一般而言,本发明的实施例可以提供用于确定和操纵机器人臂的末端执行器的姿势的系统和方法。该系统可以包括双分辨率计算机视觉系统,该系统包括低分辨率3D相机模块以及高分辨率3D相机模块。3D相机模块可以以如下方式布置,使得高分辨率3D相机模块的查看区域位于低分辨率3D相机模块的查看区域之内并且大致位于该查看区域的中心。在操作期间,机器人臂的末端执行器(例如,抓取器)可以拾取小组件。末端执行器的姿势可以使用由低分辨率相机模块获得的低分辨率信息来确定。基于所确定的末端执行器姿势和高分辨率查看区域的已知位置,可以确定末端执行器的中间姿势。将末端执行器移动到中间姿势会导致小组件移动到高分辨率3D相机的查看区域中。然后可以使用由高分辨率相机模块获得的高分辨率信息来确定小组件的姿势。在一些实施例中,为了进一步提高定位效率,系统可以使用机器学习技术(例如,训练神经网络)来预测误差矩阵,该误差矩阵可以将相机查看到的姿势(即,由或者低分辨率3D相机模块或者高分辨率3D相机模块查看到的末端执行器或组件的姿势)变换成控制器控制的或期望的姿势。
具体实施方式部分中描述的方法和处理可以被实施为代码和/或数据,其可以存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行实施为数据结构和代码并存储在计算机可读存储介质内的方法和处理。
此外,上述方法和处理可以包括在硬件模块或装置中。硬件模块或装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件模块或一段代码的专用或共享处理器,以及现在已知或以后开发的其它可编程逻辑设备。当硬件模块或装置被激活时,它们执行其中包含的方法和处理。
仅出于说明和描述的目的而呈现本发明的实施例的前述描述。它们并非旨在穷举或将本发明限制为所公开的形式。因此,对于本领域技术人员来说,许多修改和变化将是显而易见的。此外,上述公开并非旨在限制本发明。本发明的范围由所附权利要求限定。
- 一种具有多空间分辨率性能的分布式光纤传感装置及方法
- 用于以可变空间分辨率对晶片等对象进行2D/3D检测的共焦色差装置和方法
- 用于以可变空间分辨率对晶片等对象进行2D/3D检测的共焦色差装置和方法