用于3D眼手协调的误差校正和补偿的系统和方法与流程

文档序号:32693726发布日期:2022-12-27 20:10阅读:123来源:国知局
用于3D眼手协调的误差校正和补偿的系统和方法与流程
用于3d眼手协调的误差校正和补偿的系统和方法
1.相关申请
2.本技术要求于2021年6月9日提交的标题为“system and method for correcting and compensating errors of 3d eye-to-hand coordination”、代理人案卷号为ebot21-1001psp的美国临时专利申请no.63/208,816以及于2021年6月11日提交的标题为“system and method for improving accuracy of 3d eye-to-hand coordination of a robotic system”、代理人案卷号为ebot21-1002psp的美国临时专利申请no.63/209,933的权益,它们的公开内容通过引用整体并入本文用于所有目的。
技术领域
3.本公开一般而言涉及用于机器人应用的计算机视觉系统。特别地,本发明涉及一种通过训练神经网络导出误差矩阵来对机器人系统的3d眼手协调进行误差校正和补偿的系统和方法。


背景技术:

4.机器人已在现代工业工厂中广泛采用和开发,从而代表了生产流程中特别重要的元素。对更高灵活性和快速可重构性的要求推动了机器人技术的进步。工业机器人的位置准确度和可重复性是实现灵活制造任务自动化所需的基本属性。机器人的位置准确度和可重复性在机器人工作空间内可能会有很大差异,并且引入了视觉引导机器人系统来提高机器人的灵活性和准确度。已经做了大量工作来提高机器视觉系统在机器人末端致动器方面的准确度,即所谓的眼手协调。实现高度准确的眼手协调是一项艰巨的任务,特别是在三维(3d)空间中。来自机器人臂和末端致动器的定位/移动误差、3d视觉的测量误差以及校准目标中包含的误差都会导致整体系统误差,从而限制机器人系统的操作准确度。对于6轴机器人而言,要在其整个工作空间中实现亚毫米级准确度可能具有挑战性。


技术实现要素:

5.一个实施例可以提供一种机器人系统。该系统可以包括机器视觉模块、包括末端致动器的机器人臂、被配置为控制机器人臂的移动的机器人控制器,以及误差补偿模块,该误差补偿模块被配置为通过确定与末端致动器的相机指示的姿态对应的控制器期望的姿态,使得当机器人控制器基于控制器期望的姿态控制机器人臂的移动时,末端致动器实现如由机器视觉模块观察到的相机指示的姿态来补偿机器人臂的姿态误差。误差补偿模块可以包括机器学习模型,该机器学习模型被配置为输出使相机指示的姿态与控制器期望的姿态关联的误差矩阵。
6.在该实施例的变体中,机器学习模型可以包括神经网络。
7.在还有的变体中,神经网络可以包括嵌入层和处理层,并且嵌入层和处理层中的每一层可以包括多层感知器。
8.在还有的变体中,嵌入层可以被配置为嵌入姿态的单独的平移分量和旋转分量。
9.在还有的变体中,嵌入层可以使用整流线性单元(relu)作为激活函数,并且处理层可以使用泄漏(leaky)relu作为激活函数。
10.在还有的变体中,该系统还可以包括模型训练模块,该模型训练模块被配置为通过收集训练样本来训练神经网络。在训练神经网络时,模型训练模块被配置为:使机器人控制器生成控制器期望的姿态样本;基于控制器期望的姿态样本控制机器人臂的移动;使用机器视觉模块确定末端致动器的实际姿态;以及基于控制器期望的姿态样本和实际姿态计算误差矩阵。
11.在还有的变体中,模型训练模块可以被配置为训练神经网络,直到机器学习模型产生的误差矩阵达到预定的准确度水平。
12.在本实施例的变体中,该系统还可以包括坐标变换模块,该坐标变换模块被配置为将由机器视觉模块确定的姿态从以相机为中心的坐标系变换到以机器人为中心的坐标系。
13.在还有的变体中,坐标变换模块还可以被配置为基于校准目标的预定数量的测量姿态来确定变换矩阵。
14.在还有的变体中,坐标变换模块还可以被配置为使由末端致动器保持的部件的姿态与末端致动器的对应姿态关联。
15.一个实施例可以提供一种计算机实现的方法。该方法可以包括由机器视觉模块确定用于完成组装任务的机器人臂的末端致动器的相机指示的姿态;由机器人控制器确定与末端致动器的相机指示的姿态对应的控制器期望的姿态,这包括应用机器学习模型来获得使相机指示的姿态与控制器期望的姿态关联的误差矩阵;以及基于控制器期望的姿态控制机器人臂的移动,从而促进末端致动器实现相机指示的姿态以便完成组装任务。
16.一个实施例可以提供一种计算机实现的方法。该方法可以包括使用神经网络对与机器人臂的末端致动器相关联的姿态误差进行建模;使用多个训练样本来训练神经网络,相应的训练样本包括末端致动器的相机指示的姿态和使末端致动器的相机指示的姿态与控制器期望的姿态关联的对应误差矩阵;以及应用经训练的神经网络来补偿机器人臂操作期间的姿态误差。
附图说明
17.图1图示了根据一个实施例的示例性机器人系统。
18.图2图示了根据一个实施例的示例性姿态误差检测神经网络。
19.图3呈现了流程图,该流程图图示了根据一个实施例的用于校准机器人系统和获得变换矩阵的示例性处理。
20.图4呈现了流程图,该流程图图示了根据一个实施例的用于训练姿态误差检测神经网络的示例性处理。
21.图5a呈现了流程图,该流程图图示了根据一个实施例的机器人系统的示例性操作处理。
22.图5b图示了根据一个实施例的柔性电缆被机器人臂的末端致动器拾取的场景。
23.图6图示了根据一个实施例的示例性机器人系统的框图。
24.图7图示了根据一个实施例的促进机器人系统中的误差检测和补偿的示例性计算
机系统。
25.在各图中,相同的附图标记指代相同的图元素。
具体实施方式
26.呈现以下描述以使本领域的任何技术人员能够制作和使用实施例,并且在特定应用及其要求的上下文中提供以下描述。对于本领域技术人员来说,对所公开的实施例的各种修改将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文定义的一般原理可以应用于其它实施例和应用。因此,本发明不限于所示的实施例,而是要符合与本文公开的原理和特征一致的最宽范围。
27.概述
28.本文描述的实施例解决了校正机器人系统的姿态误差的技术问题。更具体而言,可以训练机器学习模型(例如,神经网络)来学习误差矩阵,该误差矩阵表征机器人臂在机器人臂的工作空间内的每个位置处的姿态误差。训练机器学习模型可以包括监督训练处理。在训练期间,机器人臂的抓爪(gripper)可以移动并放置成预定的姿态,并且可以使用3d机器视觉系统测量抓爪的实际姿态。可以基于预定姿态和测量姿态之间的差异导出误差矩阵。一旦经过充分训练,机器学习模型就可以推断出与工作空间内的任何姿态对应的误差矩阵。在操作期间,可以基于推断出的误差矩阵对抓爪可能的姿态误差进行实时补偿。
29.误差矩阵
30.图1图示了根据一个实施例的示例性机器人系统。机器人系统100可以包括机器人臂102和3d机器视觉模块104。在一些实施例中,机器人臂102可以包括基部106、多个关节(例如,关节108和110)和抓爪112。多个关节的组合可以使机器人臂102能够具有广泛的移动范围并具有六个自由度(6dof)。图1示出了机器人控制器用于控制机器人臂102的姿态的笛卡尔坐标系(例如,x-y-z)。该坐标系被称为机器人基础坐标系。在图1中所示的示例中,机器人基础坐标系的原点位于机器人基部106处,因此该坐标系也被称为以机器人为中心的坐标系。
31.图1还示出了3d机器视觉模块104(其可以包括多个相机)被配置为捕获机器人臂102的图像,包括由抓爪112保持的校准目标114的图像。校准目标114通常包括预定义的图案,诸如目标114的放大视图中所示的点阵列。捕获校准目标114的图像允许3d机器视觉模块104确定抓爪112的确切地点。图1还示出了由3d机器视觉系统104用来跟踪机器人臂102的姿态的笛卡尔坐标系。该坐标系被称为相机坐标系或以相机为中心的坐标系。在图1中所示的示例中,相机坐标系的原点位于其中一个相机处。
32.机器人眼手协调是指将坐标从相机坐标系变换到机器人基础坐标系,使得可以使用机器视觉来引导机器人臂的移动。坐标系之间的变换可以被表达为:
[0033][0034]
其中bhc是变换矩阵,是机器人基础空间中的向量(即,它使用机器人基础坐标系中的坐标表示),是相机空间中的向量(即,它使用相机坐标系中的坐标表示)。方程(1)可以通过使用其x、y和z分量表达每个向量来展开,以获得:
[0035][0036]
其中xc,yc,zc是相机空间中的坐标;xr,yr,zr是机器人基础空间中的坐标;r
ij
是旋转系数,i=1,2,3并且j=1,2,3;以及t
x
,ty,tz是平移系数。
[0037]
可以通过执行眼手校准处理来获得变换矩阵。在校准处理期间,用户可以安全地安装机器人臂和3d机器视觉系统的相机,然后将校准目标(例如,图1中所示的目标114)附接到机器人臂的末端致动器g。机器人臂可以将末端致动器g移动到相机视野(fov)内的多个计划的姿态。机器人控制器将末端致动器g相对于机器人基部(即,相对于机器人基础坐标系的原点)的姿态记录为bhg,并且3d机器视觉系统将校准目标相对于相机(即,相对于相机坐标系的原点)的姿态记录为ch
t
。机器人基础空间和相机空间中的姿态满足以下方程:
[0038]
g(i)hbbhccht(i)

g(j)hbbhccht(j)
,
ꢀꢀꢀꢀ
(3)
[0039]
其中i和j对应于姿态,
g(i)
hb和
g(j)
hb是机器人基部相对于末端致动器g的姿态(其中
g(i)
hb=[bh
g(i)
]-1
并且
g(j)
hb=[bh
g(j)
]-1
;ch
t(i)
和ch
t(j)
是校准目标相对于相机空间中原点的姿态,并且bhc是相对于机器人基础空间的原点的相机姿态,其实际上是从相机空间到机器人基础空间的变换矩阵。换句话说,知道bhc,就可以将目标的相机观察姿态转换成末端致动器g的机器人控制器控制的姿态。可以重新排列方程(3)以获得:
[0040][0041]
已经开发了各种数值方法来求解方程(4),以便导出变换矩阵(bhc)。已经证明,求解方程(4)至少需要三个姿态(或两对姿态)。线性最小二乘技术或奇异向量分解(svd)可以用于导出变换矩阵。通过最小化欧几里得群上的距离度量,李(lie)理论也可以用来推导变换矩阵。更具体而言,可以引入最小二乘拟合来使用李群的规范坐标获得变换矩阵的解。附加方法可以包括使用四元数和非线性最小化来提高解决方案的鲁棒性,使用克罗内克(kronecker)积和向量化来提高小旋转角度情况下的鲁棒性,以及使用svd实现双四元数和旋转及平移的同时解来提高变换矩阵的准确度。
[0042]
虽然上述方法已被证明可以提高变换矩阵的准确度,但由于运动学的非线性和数值计算的固有性质,仍然可能存在误差。此外,来自机器人控制器和相机的输入数据也可能包含误差,这可能导致变换矩阵中不可避免的误差。例如,在当前的机器人系统中,旋转系数
△rij
的误差在10-3
以上。变换矩阵中的误差会导致机器人的定位/姿态误差。
[0043]
为了提高定位/姿态准确度,期望具有实时校正变换矩阵中的误差的能力。已经尝试了多种方法来校正定位和姿态误差,包括基于机器学习的方法。例如,一种方法训练神经网络以获得眼手协调来代替变换矩阵,并且另一种类似的方法将神经网络应用于眼手协调来代替变换矩阵,以及应用于眼关节协调而不是逆移动学。但是,这些方法仍可能导致数毫米范围内的定位准确度。另一种方法是构建特殊的神经网络来预测定位误差并补偿沿着规定的末端致动器路径的误差。虽然这种方法可以在补偿后将定位误差降低到不到一毫升,但它并没有解决与姿态误差相关联的问题。一般而言,现有的机器人系统无法满足制造消费者电子产品(例如,智能电话、平板计算机、可穿戴设备等)的准确度和可重复性要求。组
装消费者电子产品通常涉及在有限空间中处理许多小型(例如,毫米或更小范围中)的部件,并且需要机器人定位/姿态准确度达到亚毫米范围甚至更高(有时低至10-3
mm)。
[0044]
为了实时减少工作机器人在其整个工作空间中的定位/姿态误差,可以引入误差矩阵的概念。误差矩阵可以指示机器人末端致动器的控制器期望姿态(即,由机器人控制器编程的姿态)与末端致动器的实际姿态(其可以由相机捕获并使用变换矩阵从相机空间转换到机器人基础空间)之间的差异,并且可以随着工作空间中末端致动器位置的变化而改变。在一些实施例中,误差矩阵可以被表达为从指示的姿态到机器人基础空间中期望的姿态的变换:
[0045][0046]
其中h
td
是机器人基础空间中工具中心位置(tcp)的控制器期望姿态(或简称为期望姿态),h
ti
是使用变换矩阵从相机空间转换到机器人基础空间的实际姿态,并且被称为相机指示姿态(或简称为指示姿态),并且是误差矩阵,它是位置向量的函数。在一个示例中,机器人控制器可以发送命令以将末端致动器移动到期望的tcp姿态h
td
。但是,由于机器人系统中的误差(例如,关节和末端致动器的驱动误差),当控制器指示机器人臂实现这种姿态时,所得姿态通常与h
td
不同。由3d机器视觉模块测量并从相机空间变换到机器人基础空间的末端致动器的实际姿态可以是指示姿态h
ti
。因此,给定指示姿态(即,相机已知的姿态),如果误差矩阵已知,那么可以计算控制器可以使用,以指示机器人臂将末端致动器移动到指示姿态,从而实现眼(相机)手(机器人控制器)协调的期望姿态。
[0047]
实时误差检测和补偿
[0048]
虽然可以推导出但是给定机器人可以具有六个自由度(6dof)(意味着tcp姿态可以包括至少六个分量)并且误差矩阵是位置的非线性函数,这种任务在计算上会是密集的。tcp姿态可以被表达为[x,y,z,r
x
,ry,rz],其中[x,y,z]是平移分量,并且[r
x
,ry,rz]是姿态的旋转(例如,滚动、俯仰和偏航)分量。此外,误差的非线性性质也意味着误差矩阵可能具有无限的维度。为了减少推导误差矩阵所需的计算量,在本技术的一些实施例中,可以使用机器学习技术,其中可以使用经训练的机器学习模型(例如,神经网络)来学习误差矩阵。当学习到误差矩阵时,系统可以计算指示的tcp姿态以实现期望的tcp姿态。然后机器人控制器可以向机器人臂发送适当的姿态命令。
[0049]
在一些实施例中,误差检测机器学习模型可以包括神经网络(例如,深度学习神经网络)。模型的输入可以是指示姿态h
ti
,并且模型的输出可以是误差矩阵换句话说,给定指示姿态,模型可以预测误差,然后可以使用方程(5)计算期望姿态。控制器可以使用期望姿态来控制机器人的移动。神经网络可以被构建为包括嵌入层(其可以用于将离散变量(例如,tcp姿态)映射为连续向量)和处理层。在一些实施例中,为了降低嵌入复杂性并提高效率,平移分量(即,[x,y,z])并且旋转分量(即,[r
x
,ry,rz])可以被单独嵌入(例如,使用两个平行的嵌入层)。
[0050]
图2图示了根据一个实施例的示例性姿态误差检测神经网络。神经网络200可以包括嵌入层202和204、级联模块206和处理层208。嵌入层202可以用于嵌入姿态的旋转分量,并且嵌入层204可以用于嵌入姿态的平移分量。注意的是,取决于实际应用,输入到神经网
络200的姿态可以是期望姿态或指示姿态。例如,如果应用要基于指示姿态计算期望姿态,那么使用指示姿态作为输入。另一方面,如果应用要为给定的期望姿态确定指示姿态,那么期望姿态将用作输入。在以上两种情况中,误差矩阵的定义可以不同。但是,误差矩阵指示期望姿态和指示姿态之间的变换。级联模块206可以用于级联平移分量和旋转分量的嵌入以获得姿态的嵌入。在一些实施例中,每个嵌入层(层202或204)可以使用多层感知器(mlp)来实现,该多层感知器可以包括多个内部层(例如,输入层、隐藏层和输出层)。在进一步的实施例中,每个嵌入层可以使用整流线性单元(relu)作为每个节点处的激活函数。除了relu之外,嵌入层也可以使用其它类型的激活函数,诸如非线性激活函数。
[0051]
可以将级联的嵌入发送到处理层208,该处理层208学习姿态和误差矩阵之间的映射。在一些实施例中,处理层208也可以使用mlp来实现,并且在处理层208的每个节点处,泄漏relu可以用作激活函数。除了泄露relu之外,处理层208也可以使用其它类型的激活函数,诸如非线性激活函数。
[0052]
在训练姿态误差检测神经网络之前,需要对系统进行校准,并且需要导出变换矩阵。即使导出的变换矩阵很可能包含误差,这些误差也考虑神经网络学习的误差矩阵并且由其来校正。图3呈现了流程图,该流程图图示了根据一个实施例的用于校准机器人系统和获得变换矩阵的示例性处理。在操作期间,安装3d机器视觉系统(操作302)。3d机器视觉系统可以包括多个相机和结构化光投影仪。3d机器视觉系统可以安装并固定在被校准的机器人臂的末端致动器上方,其中相机的镜头和结构化光投影仪面向机器人臂的末端致动器。机器人操作员可以安装和固定6轴机器人臂,使得机器人臂的末端致动器可以自由移动到3d机器视觉系统的fov和景深(dov)内的所有可能姿态(操作304)。
[0053]
出于校准目的,校准目标(例如,图1中所示的目标114)可以附接到末端致动器(操作306)。校准目标上的预定图案可以促进3d机器视觉系统确定末端致动器的姿态(其不仅包括地点,而且还包括倾斜角度)。校准目标的表面积小于3d机器视觉系统的fov。
[0054]
机器人臂的控制器可以在机器人基础空间中生成多个预定姿态(操作308),并顺序地将末端致动器移动到这些姿态(操作310)。在每个姿态下,3d机器视觉系统可以捕捉校准目标的图像并确定校准目标在相机空间中的姿态(操作312)。然后可以基于机器人基础空间中生成的姿态和相机空间中机器视觉确定的姿态来导出变换矩阵(操作314)。可以使用各种技术来确定变换矩阵。例如,方程(4)可以基于机器人基础空间和相机空间中的预定姿态使用各种技术来求解,包括但不限于:线性最小二乘或svd技术、基于李理论的技术、基于四元数和非线性最小化或对偶四元数的技术、基于克罗内克(kronecker)积和向量化的技术等。
[0055]
图4呈现了流程图,该流程图图示了根据一个实施例的用于训练姿态误差检测神经网络的示例性处理。在一些实施例中,神经网络的训练可以包括监督训练处理。在训练期间,机器人操作员可以用抓爪替换校准目标并校准抓爪的工具中心点(tcp)(操作402)。机器人臂的控制器可以在机器人臂的工作空间内或在3d机器视觉系统的fov和dov内生成期望姿态(操作404)。期望姿态可以随机或遵循预定路径生成。在一些实施例中,可以将工作空间划分为具有预定数量的单元的3d网格,并且控制器可以为每个单元生成一个指示姿态。这样可以确保训练能够覆盖足够部分的工作空间。然后机器人控制器可以基于期望姿态移动抓爪(操作406)。例如,机器人控制器可以基于期望姿态生成运动命令,并将运动命
令发送到机器人臂上的各种电机,以便调整抓爪的tcp姿态。在替代实施例中,末端致动器可以移动到随机姿态,而不是让控制器生成随机姿态,并且可以通过读取机器人臂的编码器的值来确定抓爪tcp的期望姿态。
[0056]
在抓爪的移动停止之后,3d机器视觉模块可以测量抓爪tcp的姿态(操作408)。由于3d机器视觉的高准确度,测量的姿态可以被认为是抓爪的实际姿态。换句话说,来自3d机器视觉模块的任何测量误差都可以被认为是微不足道的并且可以忽略。注意的是,3d机器视觉模块的测量输出可以在相机空间中。然后可以使用先前确定的变换矩阵将相机空间中的测量姿态转换成机器人基础空间中的测量姿态以获得指示姿态(操作410)。基于在机器人基础空间中的测量姿态以及期望姿态(其也在机器人基础空间中),可以计算当前地点的误差矩阵(操作412)。例如,误差矩阵可以被计算为其中h
ti
是指示姿态并且h
td
是期望姿态。系统可以记录h
ti
和作为训练样本(操作414)并确定是否已经收集到预定数量的训练样本(操作416)。如果是,那么收集到的样本,包括在不同地点的对可以用于训练姿态误差检测神经网络(操作418);如果否,那么控制器可以生成附加姿态(操作404)。在一个实施例中,系统也可以在单个地点收集多个姿态样本。
[0057]
在一些实施例中,神经网络的训练可以在足够部分的工作空间(例如,50%)已经被覆盖时停止。例如,如果工作空间被划分为1000个单元的3d网格,并且已经随机选择超过50%的单元进行训练(即,机器人臂已移动到这些单元并收集了训练样本),那么可以停止训练。在替代实施例中,神经网络的训练可以在神经网络可以以高于预定阈值水平的准确度预测/检测误差之后停止。在这种情况下,在操作418的初始训练之后,控制器可以生成测试期望姿态(操作420)并根据测试期望姿态移动抓爪的tcp(操作422)。3d机器视觉模块测量相机空间中抓爪tcp的姿态(操作424)。可以使用变换矩阵将相机空间中的测量姿态转换到机器人基础空间以获得测试指示姿态(操作426)。神经网络可以预测/推断与测试指示姿态对应的误差矩阵(操作428)。此外,系统可以使用测试期望姿态和测试指示姿态来计算误差矩阵(操作430)。可以比较预测的误差矩阵和计算出的误差矩阵以确定差值是否小于预定阈值(操作432)。如果是,那么训练完成。如果不是,那么通过返回到操作404来收集附加的训练样本。阈值可以取决于机器人操作所需的定位准确度而改变。
[0058]
一旦姿态误差检测神经网络被充分训练,机器人系统就可以具有实时误差校正能力进行操作。例如,对于机器人臂的工作空间中的任何指示姿态,系统可以使用神经网络推断/预测对应的误差矩阵,然后通过将推断的误差矩阵与指示姿态相乘来确定抓爪的期望姿态。在一个示例中,可以通过使用3d机器视觉模块测量待组装部件在工作空间中的姿态来获得抓爪的指示姿态。因此,通过基于期望姿态h
td
生成命令,机器人控制器可以将抓爪移动到h
ti
以与部件对准,从而促进抓爪抓住部件。
[0059]
图5a呈现了流程图,该流程图图示了根据一个实施例的机器人系统的示例性操作处理。机器人系统可以包括机器人臂和3d机器视觉系统。在操作期间,操作员可以在机器人臂上安装抓爪并校准其tcp(操作502)。机器人控制器可以在3d机器视觉系统的引导下将抓爪移动到工作空间中待组装部件附近(操作504)。在这个阶段,3d机器视觉系统可以生成低分辨率图像(例如,使用具有大foc的相机)来引导抓爪的移动。
[0060]
3d机器视觉系统可以确定部件在相机空间中的姿态(操作506),然后使用变换矩阵将部件姿态从相机空间转换到机器人基础空间(操作508)。在这个示例中,假设抓爪的tcp姿态应与部件对准,以促进抓爪拾取部件。因此,转换后的部件姿态可以是抓爪tcp的指示姿态。姿态误差检测和补偿系统然后可以使用神经网络来推断指示姿态的误差矩阵(操作510)。基于指示姿态和误差矩阵,姿态误差检测和补偿系统可以确定抓爪的期望姿态,使得抓爪能够成功地抓住期望姿态的部件(操作512)。例如,可以通过将指示姿态与预测的误差矩阵相乘来计算期望姿态。机器人控制器可以基于期望姿态生成运动命令并将运动命令发送到机器人臂(操作514)。抓爪相应地移动以抓住部件(操作516)。
[0061]
当抓爪牢固地抓住部件时,机器人控制器可以在3d机器视觉系统(518)的引导下将带有部件的抓爪移动到部件的安装地点附近。如在操作504中,在操作518中,3d机器视觉系统可以以低分辨率操作。3d机器视觉系统可以确定安装地点在相机空间中的姿态(操作520)。例如,如果抓住的部件要与另一个部件配合,那么3d机器视觉系统可以确定该另一个部件的姿态。姿态误差检测和补偿系统可以类似地确定安装地点的期望姿态(操作522)。例如,3d机器视觉系统可以测量安装地点在相机空间中的姿态,并且姿态误差检测和补偿系统可以将相机空间中的测量姿态转换成机器人基础空间中的测量姿态,然后应用误差矩阵来获得安装地点的期望姿态。
[0062]
提供了期望姿态,机器人控制器可以生成运动命令(操作524)并将运动命令发送到机器人臂,以便移动抓爪与安装地点对准(操作526)。然后抓爪可以在安装地点安装和固定部件(操作528)。
[0063]
系统可以准确地推断/预测抓爪在工作空间内的任何可能姿态的误差矩阵,从而显著提高机器人的操作准确度并减少调整机器人移动所需的时间量。此外,姿态误差检测神经网络可以通过收集附加的样本来不断训练,以提高其准确度或重新校准。例如,在每次机器人移动之后,3d机器视觉系统可以测量并记录抓爪的实际姿态,并且这样的测量可以用来生成附加的训练样本。在一些实施例中,可以周期性地或根据需要执行训练处理(例如,图4中所示的处理)。例如,如果在机器人系统的正常操作期间检测到超过预定阈值的姿态误差,那么可以停止操作,并且可以重新训练神经网络。
[0064]
在某些情况下,机器人臂需要拾取和安装柔性部件。例如,机器人臂可以拾取rf电缆、将电缆连接器与插座对准,以及将电缆连接器插入到插座中。由于电缆是柔性的,因此每次机器人臂的末端致动器/抓爪抓住电缆时,末端致动器和电缆的相对位置会改变。此外,电缆的曲率可能在半空中变化,从而难以将电缆连接器与插座对准,即使进行了误差补偿也是这样。仅仅控制末端致动器的姿态可能不足以完成安装或连接电缆的任务。
[0065]
图5b图示了根据一个实施例的柔性电缆被机器人臂的末端致动器拾取的场景。在图5b中,机器人臂530的末端致动器532拾取柔性电缆534。末端致动器532的目标是将电缆534移动到期望地点,使得电缆534末端的连接器536可以与对应的连接器配合。由于电缆534的柔性性质,简单地控制末端致动器532的姿态可能无法保证这种电缆连接任务的成功。但是,可以将连接器536的姿态与末端致动器532的姿态关联,并且确定连接器536的期望姿态可以促进确定末端致动器532的期望姿态。
[0066]
在一些实施例中,系统可以使用附加的变换矩阵来将tcp从末端致动器的尖端延伸到连接器的中心,使得控制器期望的姿态可以参考rf连接器的中心。这个附加的变换矩
阵可以被称为部件变换矩阵tc,它将部件的姿态变换/关联到保持该部件的末端致动器的姿态(两个姿态都已转换到机器人基础空间)。更具体而言,给定末端致动器he的姿态,部件姿态hc可以使用以下方程来计算:
[0067]
hc=tc×
heꢀꢀꢀꢀ
(6)
[0068]
可以实时确定部件变换矩阵。在机器人臂的操作期间,末端致动器和部件(即,图5中所示的末端致动器532和连接器536)的姿态可以使用3d机器视觉系统来确定,并且部件变换矩阵然后可以使用以下方程来计算:
[0069]
tc=hc×he-1
ꢀꢀꢀꢀ
(7)
[0070]
通过将tcp扩展到部件,控制器期望的姿态可以被计算为:
[0071][0072]
其中h
td
是末端致动器的控制器期望的姿态,并且h
ci
是部件的相机指示的姿态。换句话说,一旦相机确定了部件的目标姿态,系统就可以计算控制器期望的姿态,该姿态可以用于生成用于移动末端致动器,使得可以将部件移动到其目标姿态运动命令。在一些实施例中,为了确保准确度,系统可以重复(例如,以短间隔)测量和计算部件变换矩阵,使得即使部件也可以相对于末端致动器移动,这种相对姿态的变化可以被捕获。例如,系统可以每300ms计算tc。最近的tc将用于计算控制器期望的姿态。
[0073]
图6图示了根据一个实施例的示例性机器人系统的框图。机器人系统600可以包括3d机器视觉模块602、六轴机器人臂604、机器人控制模块606、坐标变换模块608、姿态误差检测机器学习模型610、模型训练模块612和误差补偿模块614。
[0074]
3d机器视觉模块602可以使用3d机器视觉技术(例如,在结构化光照明下捕获图像、构建3d点云等)来确定对象(包括两个待组装部件和抓爪)在相机的fov和dov内的3d姿态。在一些实施例中,3d机器视觉模块602可以包括具有不同fov和dov的多个相机以及一个或多个结构化光投影仪。
[0075]
六轴机器人臂604可以具有多个关节和6dof。六轴机器人臂604的末端致动器可以在3d机器视觉模块602的相机的fov和dov中自由移动。在一些实施例中,机器人臂604可以包括多个区段,其中相邻区段经由旋转关节彼此耦合。每个旋转关节可以包括能够在特定平面内连续旋转的伺服电机。多个旋转关节的组合可以使机器人臂604能够以6dof具有广泛的移动范围。
[0076]
机器人控制模块606控制机器人臂604的移动。机器人控制模块606可以生成运动计划,该计划可以包括一系列运动命令,这些命令可以发送到机器人臂604中的每个单独的电机,以促进抓爪的移动来完成特定的组装任务,诸如拾取部件、将部件移动到期望的安装地点,以及安装部件。由于系统中包含的误差(例如,每个电机处的编码器误差),当机器人控制模块606指示抓爪移动到一个姿态时,抓爪可能最终移动到稍微不同的姿态。这样的定位误差可以得到补偿。
[0077]
坐标变换模块608可以负责将抓爪的姿态从相机空间转换到机器人基础空间。坐标变换模块608可以维护变换矩阵并使用变换矩阵将由3d机器视觉模块602在相机空间中观察到的姿态变换或关联到机器人基础空间中的姿态。可以通过测量校准目标的多个姿态的校准处理来获得变换矩阵。变换矩阵中包含的误差可以通过误差矩阵来考虑和补偿。在还有的实施例中,坐标变换模块608还可以维护部件变换矩阵,该矩阵可以使由末端致动器
保持的部件(例如,柔性电缆的末端)的姿态与末端致动器的姿态关联。
[0078]
姿态误差检测机器学习模型610应用机器学习技术来学习机器人臂604的工作空间中的所有姿态的误差矩阵。在一些实施例中,姿态误差检测机器学习模型610可以包括神经网络,该神经网络可以将由3d机器视觉模块602指示/看到的姿态作为输入,并输出可以用于计算机器人控制器的期望姿态以实现相机看到/指示的姿态的误差矩阵。神经网络可以包括嵌入层和处理层,这两个层都使用mlp实现。姿态的旋转分量和平移分量的嵌入可以单独完成,并且嵌入结果在被发送到处理层之前被级联。嵌入层中使用的激活函数包括relu,而泄漏relu用作处理层中的激活函数。模型训练模块612通过例如监督训练来训练神经网络。更具体而言,模型训练模块612通过指示机器人控制模块606生成姿态来收集训练样本,然后计算这些姿态的误差矩阵。
[0079]
误差补偿模块614可以补偿姿态误差。为此,对于期望姿态,误差补偿模块614可以通过应用姿态误差检测机器学习模型610来获得对应的误差矩阵。误差补偿模块614可以通过计算控制器期望的姿态来补偿姿态误差,以实现实际的或相机看到/指示的姿态。误差补偿模块614可以将控制器期望的姿态发送到机器人控制模块606以允许它生成适当的运动命令,以便将抓爪移动到期望姿态。
[0080]
图7图示了根据一个实施例的促进机器人系统中的误差检测和补偿的示例性计算机系统。计算机系统700包括处理器702、存储器704和存储设备706。此外,计算机系统700可以耦合到外围输入/输出(i/o)用户设备710,例如,显示设备712、键盘714和定点设备716。存储设备706可以存储操作系统720、误差检测和补偿系统722和数据740。
[0081]
误差检测和补偿系统722可以包括指令,该指令在由计算机系统700执行时,可以使计算机系统700或处理器702执行本公开中描述的方法和/或处理。具体而言,误差检测和补偿系统722可以包括用于控制3d机器视觉模块以测量抓爪的实际姿态的指令(机器视觉控制模块724)、用于控制机器人臂的移动以便将抓爪置于特定姿态的命令(机器人控制模块726)、用于将姿态从相机空间变换到机器人基础空间的指令(坐标变换模块728)、用于训练姿态误差检测机器学习模型的指令(模型训练模块730)、用于在机器人臂操作期间执行机器学习模型以推断与姿态相关联的误差矩阵的指令(模型执行模块732),以及用于基于推断出的误差矩阵误差补偿的指令(误差补偿模块734)。数据740可以包括收集到的训练样本742。
[0082]
一般而言,本发明的实施例可以提供用于实时检测和补偿机器人系统的姿态误差的系统和方法。该系统可以使用机器学习技术(例如,训练神经网络)来预测误差矩阵,该误差矩阵可以将相机看到的姿态(即,指示姿态)变换成控制器控制的姿态(即,期望姿态)。因此,为了将抓爪与相机视图中的部件对准,系统可以首先获得部件的相机看到的姿态,然后使用经训练的神经网络来预测误差矩阵。通过将相机看到的姿态与误差矩阵相乘,系统可以获得控制器控制的姿态。然后机器人控制器可以使用控制器控制的姿态将抓爪移动到期望姿态。
[0083]
具体实施方式部分中描述的方法和处理可以被实施为代码和/或数据,其可以存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行实施为数据结构和代码并存储在计算机可读存储介质内的方法和处理。
[0084]
此外,上述方法和处理可以包括在硬件模块或装置中。硬件模块或装置可以包括但不限于专用集成电路(asic)芯片、现场可编程门阵列(fpga)、在特定时间执行特定软件模块或一段代码的专用或共享处理器,以及现在已知或以后开发的其它可编程逻辑设备。当硬件模块或装置被激活时,它们执行其中包含的方法和处理。
[0085]
仅出于说明和描述的目的而呈现本发明的实施例的前述描述。它们并非旨在穷举或将本发明限制为所公开的形式。因此,对于本领域技术人员来说,许多修改和变化将是显而易见的。此外,上述公开并非旨在限制本发明。本发明的范围由所附权利要求限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1