帮助机器人定位的制作方法

文档序号:16806588发布日期:2019-02-10 13:05阅读:217来源:国知局
帮助机器人定位的制作方法

当前的机器人扫描和定位系统使用测量的机器人位置或图像配准方法来估计相对相机视图位置,以便配准(通常称为“拼接”)各个相机视图。每种方法都有优点和缺点,但是一些问题对于两者是共同的。例如,两种方法都需要校准相机到机器人的关系,并且由于机器人标称运动学的使用而具有精确度问题。



技术实现要素:

提供通过如下一种方法而克服现有技术的缺点并且提供附加的优点,该方法包括:对于第一采样时间表的多个时间的每个时间,获得机器人的相机系统的姿态相对于参考坐标系的相应指示,该相机系统的姿态的相应指示基于环境场景的多个三维图像的比较,该获得提供相机系统的姿态的多个指示;对于第二采样时间表的多个时间的每个时间,获得机器人姿态的相应指示,该获得提供机器人姿态的多个指示;以及使用相机系统的姿态的多个指示和机器人姿态的多个指示,来确定参考坐标系的指示和相机系统的参考点相对于机器人姿态的指示。

此外,公开一种被配置为执行方法的计算机系统,该方法包括:对于第一采样时间表的多个时间的每个时间,获得机器人的相机系统的姿态相对于参考坐标系的相应指示,该相机系统的姿态的相应指示基于环境场景的多个三维图像的比较,该获得提供相机系统的姿态的多个指示;对于第二采样时间表的多个时间的每个时间,获得机器人姿态的相应指示,该获得提供机器人姿态的多个指示;以及使用相机系统的姿态的多个指示和机器人姿态的多个指示,来确定参考坐标系的指示和相机系统的参考点相对于机器人姿态的指示。

此外,还提供一种用于执行方法的计算机程序产品,该计算机程序产品包括可由处理器读取的并存储用于由处理器执行的指令的计算机可读存储介质,该方法包括:对于第一采样时间表的多个时间的每个时间,获得机器人的相机系统的姿态相对于参考坐标系的相应指示,该相机系统的姿态的相应指示基于环境场景的多个三维图像的比较,该获得提供相机系统的姿态的多个指示;对于第二采样时间表的多个时间的每个时间,获得机器人姿态的相应指示,该获得提供机器人姿态的多个指示;以及使用相机系统的姿态的多个指示和机器人姿态的多个指示,来确定参考坐标系的指示和相机系统的参考点相对于机器人姿态的指示。

附加的特征和优点通过本文描述的概念来实现。

附图说明

本发明的各方面被特别指出并在权利要求中清楚地作为示例被要求保护,权利要求随附在说明书中。通过以下结合附图的详细描述,本发明的前述和其他目的、特征和优点是显而易见的,其中:

图1描绘了机器人在未知特征的壁上执行工作的示例环境;

图2描绘了根据本文描述的方面的跨多个扫描区域的示例性分段扫描路径;

图3描绘了根据本文描述的方面的帮助机器人定位的示例过程;

图4描绘了合并和使用本文描述的方面的系统的示例;

图5描绘了合并和使用本文描述的方面的计算机系统的示例;以及

图6描绘了计算机程序产品的一个实施例。

具体实施方式

本文描述的方面一般地涉及机器人三维扫描和机器人定位,例如,与工业机器人系统一起被使用,该工业机器人系统使用机器人安装的三维相机来扫描环境中的场景,然后将机器人定位到/于扫描的场景中的特征以执行预期的操作。更具体地,用于帮助精确机器人定位的方法被公开。作为示例,提供一种传感器融合方法,其将机器人位置测量(“机器人测距法”)与图像配准方法(“视觉测距法”)相结合,其可以被用来自动执行相机到机器人校准并提高机器人定位的精确度。这对于对象的位置或特征特性是未知的区域中的机器人应用特别有用。

一种这样的应用通过示例而非限制在图1中被描绘,其具体描述了机器人在未知特征的壁上进行工作的示例环境。在环境100中,机器人102包括经由机器人臂106a、106b和106c被联接到机器人安装法兰108的机器人基座104。机器人安装法兰108具有被安装在其上的工具,即相机110和夹具112。机器人102与壁114相邻。机器人102对壁114的特征上工作。在该示例中,壁114是岩石壁,其特征是岩石中的孔116,并且机器人的任务是用爆炸性材料填充每个孔116。该工作的一个应用是在采矿作业中,由于结构风险、光照条件差和其他原因,其中工作环境极其危险。

低成本和快速三维(3d)相机的出现,诸如由美国华盛顿州雷蒙德市的微软公司(kinect是其商标)提供的系列产品,使得可以以合理的精确度实时扫描未知场景。通常以点云或网格模型的形式表示的场景的扫描的模型,可以容易地被导入计算机辅助设计(cad)环境或其他类型的计算机程序中以供进一步处理。对于工业应用,该处理可以是感兴趣的特征的识别和局部化,使得机器人可以移动到特征以执行特殊操作。附加地或备选地,处理可以是生成运动路径,机器人可以沿着运动路径执行操作,例如涂漆或涂胶。

三维扫描是指多个相机视图(图像)的拼接以覆盖整个场景。拼接使用视图之间的相对相机位置的测量,其可以由诸如gps和编码器的运动传感器提供,或者由视觉数据本身提供。

本文描述的方面克服了用于机器人扫描和定位的当前方法中的问题。当前设置使用测量的机器人位置(“机器人测距法”)或图像配准方法(“视觉测距法”)来估计相对相机视图位置,以便配准/拼接各个相机视图。测距法指的是相对于已知方位的位置跟踪,通常是起始位置。示例机器人测距法可以基于从编码器接收的数据来确定,该编码器指示机器人或其组件中的一些移动。示例视觉测距法是图像配准,其中连续的相机图像被分析以跟踪位置和距离。

这两种方法都依赖于相机到机器人关系的校准,并且由于机器人标称运动学的使用,每种方法都存在精确度问题。另一方面,每种测距法都有其优点和缺点。

扫描系统使用里程表来估计相对视图位置,以便例如将各个相机视图拼接在一起。传统上,视觉即时定位与地图构建(slam)的3d扫描系统仅依赖于所获取的视觉数据(视觉测距法)以使用高级配准方法来构建模型。由微软公司开发的kinectfusion就是视觉slam的一个这样的例子。视觉测距法使用先进的计算机算法,诸如icp(迭代最近点)或surf(加速稳健特征),结合ransac(随机抽样和共识)来对齐相机视图上的重叠特征,以便确定相机的相对位置。视觉测距法在配准特征丰富的视图时可以很好地运行。然而,当扫描无特征或特征稀疏场景时,视觉测距法具有精确度问题。附加地,因为它是基于相对测量的,所以如果扫描路径没有返回到先前访问的方位,则它会受到距离漂移的影响。距离漂移是指相对长距程扫描中的误差累积。

对于包括机器人安装的3d相机的扫描系统,机器人本身是位置传感器并且可以用作针对该扫描的里程表。在该设置中,相机工具中心点(tcp)被精确地校准,以在机器人空间中获得正确的相机位置。低成本的3d相机往往噪声大。因此,实现精确的相机tcp校准可能具有挑战性。对于实时快速扫描应用,如果相机图像获取和机器人位置读取之间的时间同步以高精度被确保,则是有帮助的。然而,机器人位置读取和相机图像获取之间的实时同步并不简单并且需要调谐。如果对于相机和对于机器人控制器没有内置的时间同步设施,这不是一项简单的任务。即使时间完全被同步并且相机tcp精确已知,大型场景的拼接仍然具有挑战性,因为机器人在利用标称运动学计算的3d空间中不精确。结果,扫描的模型上的特征可能会失真并变得难以检测。

因此,虽然基于机器人测距法或视觉测距法的机器人扫描和定位系统与彼此比较具有各自的优点和缺点,但它们存在共同的问题。

本文描述的方面可以自动执行校准步骤并且在移动到扫描的三维模型上的特征时增加机器人定位精确度。基于机器人的测距法和视觉测距法均可以被用来自动执行机器人到相机的校准。如下面详细解释的,来自图像配准的相机位置坐标和来自机器人控制器的机器人位置坐标与其时间戳一起,以快速采样率被记录并在扫描过程中被存储。场景可以主要利用图像配准方法来拼接,但是当无特征区域被遇到时,基于机器人的测距法可以被使用。在这方面,并且作为示例,图像配准方法可以输出一个索引,显示配准方法的工作情况,该索引告知场景是特征丰富还是特征贫乏。3d扫描的模型上的特征位置可以在场景空间中被检测。当机器人被需要移动到该特征时,基于记录的、相机位置坐标和机器人位置坐标的密集对(densepair),场景空间中的特征坐标可以被转换到机器人空间。这可以通过估计相机tcp和场景的工作对象来完成。

附加地,相机获取和机器人位置读取之间的时间延迟还可以使用记录的时间戳信息来估计。对于提高准确度的另一种可能性是在不同扫描区域上估计和使用不同的相机tcp和场景工作对象。

通过具体示例,并且参考图1,任务是找到壁114中的孔116的位置,然后将机器人102驱动到每个孔116,使得机器人安装的夹具112可以被插入孔116中。3d相机110与夹具工具112一样被安装在机器人安装法兰108上。存在与机器人基座104、机器人安装法兰108、夹具112、相机110和壁114中的每一个相关联的相应坐标系。

对象的“姿态”是指相对于一些坐标系的位置和取向。姿态可以具有许多不同但相当的数学表示。例如,六分量矢量[x,y,z,翻滚,俯仰,偏航]可以表示x、y、z中的平移以及翻滚、俯仰、偏航中的取向。在本文描述的示例中,为了简单起见,4乘4(4×4)矩阵仅通过特定示例被使用,但是任何适当的姿态表示都是合适的。

通常,机器人的姿态被表达为其安装法兰(to)的姿态,并且可以从其关节测量θ被计算为:

τo=k(6,μ)(1),

其中m是机器人运动学模型参数,包括臂(106)链接长度、初始关节位置和其他因素。

如果m的标称值被使用,则方程(1)提供“标称运动学”。否则,如果因素的值被精确地测量或识别,则等式(1)提供绝对精确的运动学。标称运动学在确定机器人姿态时具有较低精确度。在示例中,关节测量θ和机器人位置to可以以非常快的采样率直接从机器人控制器读取,例如每4ms左右,取决于系统能力。

一旦机器人to的姿态(例如,如由安装法兰的姿态所指示的)已知,相机和夹具的姿态可以使用其tcp值来确定为:

tc=t0*tcpc

tg=t0*tcpg(2),

其中,tc和tg分别是相机110和夹具112相对于机器人基座104的姿态。所谓的tcp或工具中心点定义了对象相对于机器人安装法兰的相对姿态。这里,相机的工具中心点,即相机系统相对于机器人安装法兰的参考点,由tcpc表示,并且夹具的工具中心点,即夹具相对于机器人安装法兰的参考点,由tcpg表示。

为了能够获得工具姿态,首先工具的tcp被校准。对于机械工具,诸如夹具,其tcp可以使用通常已知的四点法来校准,其中工具尖端被移动以从四个不同角度触摸固定点。对于相机,相机坐标系被定义为针对其获取的图像的参考坐标系,并且通常是不可见的。用于校准的常用方法是手动校准或自动的“手眼”校准。

因此,图像空间中任何特征的位置可以使用以下方程式被转换到机器人空间:

hr=tc*hc=t0*tcpc*hc(3),

其中,hc是相机空间中的特征姿态(相对于相机坐标系),并且hr是机器人空间中的特征姿态(相对于机器人基座)。以上的方程式(3)是用于手动校准的基础,其中在机器人空间中具有已知位置的特征图案被放置在相机的视图中并且图像空间中的特征被检测。

一旦机器人空间中的特征姿态已知,用于达到该特征的工具(例如夹具)的机器人位置t0'可以使用方程式(2)来找到:

t0'*tcpg=hr(4)。

使用3d相机进行扫描需要拍摄多张图像并将它们合并到一个场景中。该场景具有参考坐标系w,其相对于机器人基座坐标系的姿态被称为场景的“工作对象”。它通常被定义为在第一摄像(shot)处相机坐标系相对于机器人基座坐标系的姿态。对摄像的拼接依赖于这些摄像的相对相机姿态。图像配准可以使用先进视觉算法产生这些相对姿态,而相反,基于机器人的测距法(测量的机器人位置)通过使用方程式(2)来提供这些相对姿态。假设相机系统的姿态tv(t)是在时刻t参考w(例如第一相机姿态)由视觉测距法生成的相对相机姿态。以这种方式,相机系统相对于参考坐标系w的姿态基于环境场景的多个三维图像的比较来确定。注意到,姿态可以在缺乏场景特征的特性(诸如这些特征之间的距离)的已有知识的情况下被确定,并且因此不同于其中已知特性的测试配置或校准图案是被扫描的项的情况。

图像配准与测量的机器人位置之间的关系可以被写为:

tc(t)=w*tv(t)=t0(t)*tcpc(5)

图2描绘了根据本文描述的方面的跨多个扫描区域的示例分段扫描路径。相机的扫描路径被分成段218a、218b、218c,并且是相机坐标系的原点相对于壁的轨迹。当相机移动时,它以帧速率获得壁的三维图像,该图像是特征216的图像。这些3d图像将如图所示重叠。在时间t1获得的图像220与在时间t2获得的图像222重叠以定义重叠区域224。该示例中的扫描路径由三个段218a、218b、218c组成。为了提高精确度,对于根据本文描述的方面的每个段,相应的相机tcp和壁工作对象w被确定。

如果图像获取和机器人位置读取以相同的采样率ts被同步,那么当机器人移动时,一系列tv(k*ts)和t0(k*ts)被获得,其中k=1..n。方程式(5)然后变成方程集:

w*tv(k)=t0(k)*tcpc,k=l..n(6),

并且如前所述,以上每个术语可以被表示为4x4矩阵,并且'*'运算符指的是乘法。tv(k)是tv(k*ts)的简写,而t0(k)是t0(k*ts)的简写。

以上的方程式(6)产生n个方程(k=1,…,n)。这n个方程可以例如使用最小二乘算法被有效地求解,以确定w和tcpc。一旦w已知,机器人空间中相对于机器人基座坐标系的特征(例如孔)的位置可以通过下式来找到:

hr=w*hw(7),

其中hw是场景空间中的特征位置(相对于场景帧w),通常通过使用先进视觉算法来获得。

再次,利用机器人空间中的已知特征位置,方程(4)可用于确定适合于利用工具针对特征(例如,将夹具112插入孔116中)的机器人位置at’o。

在实际情况中,图像获取和机器人位置读取可能在不同的计算设备上运行并使用不同的采样率。因此,它们的获取定时不太可能同步(即,tv和to将对于共同时间t被确定)。因此,将指示为tv的时刻,并且将指示为t0的时刻。从扫描中,我们获得对应于不同采样时间表的时间戳数据:

以及

假设图像获取和机器人读取之间的延迟已知为d。则:

通常,机器人位置可以比图像获取快得多地被读取。这为机器人位置创建了比为视觉测距法更密集的数据点(m>>n)。对于每个我们可以在时间内插t0。通过上面的方程式(5),我们现在有n个方程来求解w和tcpc(例如,再次使用最小二乘法):

其中~指示该值是被内插的。

如果时间延迟d未知,则在对方程(10)执行最小二乘拟合之前,它被首先校准。校准此时间延迟的一种方法是对于网络测量和控制系统实施用于精确时钟同步协议的ieee-1588标准。

备选地,d可以与w和tcpc同时被求解。非线性优化算法,诸如由(由美国马萨诸塞州内蒂克的mathworks公司开发,其中matlab是商标)提供的一种算法,可以被应用于这种目标。

为了提高精确度,在一些实施例中,在不同场景区域期间,多个tcp和w可以被确定并被用于相机。方程式(10)因此可以对于不同扫描区域被求解。例如,如图2所示,场景被分成三个区域,每个区域由相应的段218a、218b、218c来定义。以下方程式对于每个扫描区域可以被构建:

区域1:

区域2:

区域3:

附加地或备选地,精确度可以进一步被提高,通过将方程式(1)插入方程式(10)来添加m作为方程式(10)中的另一组未知数,

在方程式(12)中,关节测量被用于代替机器人法兰位置。该方程现在具有四组未知参数(w,tcpc,d,m),其可以使用例如非线性优化算法来求解。

从本文描述的方面,组合图像配准方法和机器人位置可以消除对相机tcp和场景工作对象执行单独和离散校准步骤的需要。如果扫描的场景具有足够的特征以提供足够的图像配准,则相机tcp和场景工作对象作为扫描过程的副产品被自动获取。

附加地或备选地,本文描述的方面可以与无特征场景一起被使用(或者那些缺少使得图像配准有效的足够特征的场景)。在这种情况下,本文描述的方面可以被用作校准相机tcp的校准步骤,其中出于校准的目的,特征丰富的场景作为单独的人工场景可以被提供,或者初始无特征场景通过有目的地添加特征来改变。

更进一步,本文描述的方面可以被用于具有特征丰富区域和特征贫乏区域的混合的场景。扫描可以最初在特征丰富区域上被执行,以确定相机tcp和场景工作对象,作为该区域扫描的副产品。当机器人扫描特征贫乏区域时,它可以切换到基于机器人的测距法以进行拼接,因为现在相机tcp已知。在特征贫乏区域被首先扫描的情况下,缓冲器可以被用来保存图像和相应的机器人位置测量,直到相机tcp基于扫描特征丰富区域在稍后阶段被找到。在相机tcp被找到之后,对于特征贫乏区域,拼接可以在缓冲器上重新开始。

相应地,本文描述的方面可以自动执行校准步骤,否则该校准步骤被执行以确定相机tcp和场景工作对象。在扫描之前,不需要无关的相机到机器人校准步骤。附加地,本文描述的方面可以通过在不同的场景区域使用多个场景工作对象和相机tcp来提高机器人定位精确度。

除了上述之外,先前在整个场景上严格顺序被执行的动作现在可以一起被执行。更具体地,代替扫描、局部化、然后对于整个场景以逐步方式定位,系统可以针对场景的不同区域混合扫描、局部化和定位操作。在这种混合操作的一个示例中,机器人系统扫描区域、搜索当前扫描区域(或当前相机坐标系)中的特征、局部化特征、然后移动到特征以执行操作。当对当前扫描区域中的特征的工作被完成时,机器人移动到下一个扫描区域并开始扫描、局部化和定位该区域。另一示例是机器人扫描第一扫描区域并局部化特征。然后它移动到第二扫描区域并局部化特征。此后,它执行针对两个扫描区域的定位操作。又一示例是,其特别适用于两个或更多个机器人被使用的情况,一个机器人在一个扫描区域中执行扫描和局部化,并且另一个机器人,可选地同时在另一个扫描区域中并行地执行定位。在这种情况下,第一机器人可以携带相机,而第二机器人可以携带夹具/工具。可以理解,对于混合操作有许多不同的变化。以上示例不以任何方式限制适用的使用场景。

图3描绘了根据本文描述的方面的帮助机器人定位的示例过程。该过程开始于机器人获得环境场景的图像(302)。基于获得图像,对于第一采样时间表的多个时间的每个时间,机器人相机系统姿态(tv(t))相对于参考坐标系(w)的指示被获得(304)。获得相机系统的姿态的指示提供了相机系统的姿态的多个指示(即,对于每个t=ti,...,tn的tv(t))。相机系统的姿态的指示可以基于环境场景的多个三维图像的比较。在缺乏场景特征之间的距离(即,在未知场景上,而不是例如用于校准的测试或预先定义的场景)的知识的情况下,比较可以被执行。作为具体示例,场景可以包括未知特性的特征。

该过程通过获得对于第二采样时间表的多个时间的每个时间机器人的姿态(to(t'))的指示(306)而继续,该获得提供机器人姿态的多个指示。获得机器人的姿态的指示提供了机器人的姿态的多个指示(即,对于每个t'=ti',...,tn'的to(t'))。机器人的姿态可以由机器人的安装法兰的姿态、由机器人的联合测量或任何其他期望的表示来表示。使用相机系统的姿态的多个指示和机器人的姿态的多个指示,场景的参考坐标系的指示被确定,以及相机系统的参考点(tcpc)相对于机器人的姿态的指示被确定(308)。通过该确定,所确定的相机系统的参考点的指示用作针对相机系统的参考点的自动校准。

在一些示例中,使用相机系统的姿态的多个指示和机器人姿态的多个指示包括,构建将跨第一采样时间表的相机系统的多个姿态与跨第二采样时间表的机器人的多个姿态相关联的多个方程。该关联可以是场景的参考坐标系和相机系统相对于机器人姿态的参考点的函数(例如,方程式6)。在这种情况下,确定场景的参考坐标系的指示和相机系统的参考点的指示包括,找到多个方程的解,以确定场景的参考坐标系的指示和相机系统的参考点的指示。

在构建多个方程的具体示例中,对于相机系统的多个姿态指示中的相机系统的姿态的每个指示,机器人的相应对应姿态被识别,并且基于所获得的机器人姿态的多个指示的机器人姿态的一个或多个指示。第一采样时间表和第二采样时间表可以相差时间偏移(d)。因此,对于相机系统的姿态的指示,所识别的机器人的相应对应姿态可以包括机器人的内插的姿态,基于机器人姿态的一个或多个指示被内插,其中机器人的内插的姿态是在一个时间的机器人的姿态,该时间与获得机器人姿态的多个指示中的一个的时间相差等于时间偏移的时间量。换言之,并且作为示例,假设时间t(tv(t)的)和时间t'(t0(t')的)之间的时间偏移是3ms(即t=t'+d)。机器人的内插的姿态可以基于在时间t'获得的to(t')以及可能的其他获得的to值来内插。机器人的内插的姿态将是用于时间t(与tv(t)配对),并且因此,机器人的内插的姿态用于时间(t),其与t'(获得t0(t')的时间)相差时间偏移d。

时间偏移最初可能是未知的。在这种情况下,找到多个方程的解可以包括:利用找到针对多个方程的解以确定场景的参考坐标系的指示和相机系统的参考点的指示来找到针对时间偏移的解;或者首先找到针对时间偏移的解,然后使用该针对时间偏移的解,以找到针对多个方程的解。

在任何情况下,返回图3,该过程然后使用图像配准方法和/或使用测量的机器人位置和所确定的相机系统参考点的指示将环境的至少一部分场景的图像拼接在一起(310)。

基于识别由机器人(312)成像的场景的场景空间中的特征的位置,(i)所确定的参考坐标系(w)的指示以及(ii)所确定的参考坐标系的指示与所识别的场景空间中的特征的位置(hw)之间的关系被用来识别机器人空间(hr)中的特征的位置(314)。机器人空间中的特征的被识别的位置然后可以被提供以通知机器人的定位(316),例如,指示一个方位,机器人将移动到该方位以在特征处、在特征上、对特征等执行期望任务。

在一些示例中,图3的方面对于多个扫描区域被执行,例如以提高机器人定位的整体精确度。因此,获得相机系统的多个姿态指示(304)和获得机器人姿态的多个指示(306),可以与机器人运动和机器人操作的环境的第一扫描区域的成像相关联。该确定(308)因此确定参考坐标系的指示和用于第一扫描区域的相机系统的参考点的指示。该过程可以对于其他扫描区域重复(318)此过程。因此,该过程可以循环(图3中未示出)回去以重复(i)获得相机系统姿态的多个指示,和(ii)与机器人运动和环境的至少一个其他扫描区域的成像相关联地获得机器人姿态的多个指示,然后重复(iii)确定以为至少一个其他扫描区域确定参考坐标系的指示和相机系统的参考点的指示。扫描被完成后,流程结束。

图3的过程可以由一个或多个计算机系统执行,并且一些方面可以由一组计算机系统执行,而其他方面可以由另一组计算机系统执行,可能在稍后的时间。例如,一个计算机系统可以执行获得场景的图像(302),并且另一计算机系统可以执行获得(304)、获得(306)和确定(308)。在一些示例中,该确定的结果可以由相同的计算机系统使用或者被传递到另一个计算机系统以执行拼接(310)。此外,一个或多个前述计算机系统或其他计算机系统可以执行识别(312、314)和提供(316)。

图4描绘了合并和使用本文描述的方面的示例系统。系统400包括机器人402、机器人控制器450、操作员计算机系统470和后端计算机系统460,它们都经由通信链路440a-440d被耦合。这些组件相对于彼此的物理方位可以变化。例如,它们可以如隔几英尺地靠近在一起或者如数千英里或更多地相距很远。

组件之间的通信链路440a-440d可以通过各种无线和/或有线技术(例如,不同类型的数据协议和数据协议层上的光纤/无线电/电缆)中的任何一种来实现。在一些实施例中,一个或多个这样的通信链路包括现有的基础结构,诸如在一个或多个局域网或广域网上运行的现有以太网装置。附加通信链路技术的非限制性列表包括无线lan(wlan)、蓝牙、zigbee、近场、或其他无线链路、点对点无线电系统或激光光学系统以及卫星通信链路,作为示例。

机器人402可以是任何类型的机器人,诸如由美国密歇根州奥本山的abb公司提供的工业机器人,作为示例。示例机器人具有几个(通常为4、5、6或7)自由度,使得它们能够执行通常以对象的移动和/或操纵为特征的任何各种任务。在这方面,机器人在其最广泛的意义上指的是具有多个自由度的组件。

机器人功能由不同的且通常是专用的组件提供,其中一些组件被描绘为图4的示例机器人402的一部分。应当理解,为了方便起见,机器人402包括从图4中被省略的附加组件,并且进一步,合并/使用本文描述的方面的机器人不一定包括图4中描绘的每个组件。

相机系统404提供成像功能,使得机器人能够“看到”其环境中的物理对象。相机系统404可以通过提供二维、三维和/或深度感测成像能力的专有和/或专用成像设备或商业现货(cots)产品来实现。cots产品的示例是由微软公司提供的运动控制器。视觉辅助系统406是另一种类型的传感器系统,其为机器人提供视觉能力。它还可以包括用于成像环境对象的成像设备,以辅助接近或其他空间确定。在一些实施例中,相机系统404被安装在机器人上在其“头部”处或其“头部”附近,提供机器人活动的大致第一人称视角,而视觉辅助系统406包括安装在机器人402周围并对机器人402及其周围环境成像的多个相机,以提供机器人活动相对于周围对象的第三人称视角。

其他传感器/传感器设备408被包括,以提供附加的感测能力。特定的附加传感器可以取决于机器人在操作时将执行的任务的类型。附加传感器的非限制性列表是传声器、位置传感器、接近传感器和力/压力传感器,作为示例。一些传感器设备可以包括数据处理能力。所谓的智能传感器通常(但不总是)经由通信链路被直接连接到机器人控制器450。缺少处理捕获的数据的机载数据处理能力的其他类型的传感器,可以向单独的数据处理设备提供数据(诸如机器人控制器450、后端计算机系统460、操作员计算机系统470和/或另一个未被示出的计算机系统),以处理传感器设备输出。

一些传感器可以在机器人402或机器人控制器450的本地或远程。远程传感器设备可以向机器人控制器450提供输入信号,机器人控制器450使用该输入信号来控制机器人402执行本文所述的工作。

一些被安装在机器人402上或其他方位的传感器,可以检测或提供处理以检测进入机器人402的工作空间或以其他方式出现在机器人402的工作空间中的障碍物的数据。针对位置和其他几何信息,包括关于检测到的障碍物的数据的传感器信息可以由机器人控制器450处理和使用。关于智能传感器,其数据处理能力可以完全或部分地处理传感器信息,并且仅将关于障碍物的相关数据传送到机器人控制器450。在缺乏数据处理能力的其他类型的传感器中,传感器信息可以由如上所述的另一数据处理设备处理并提供给机器人控制器450。

机器人402还可以包括被合并到机器人402中、被安装到机器人402或紧邻机器人402的致动器或其他设备(被统称为致动设备410),以提供用于操纵或移动对象的对象操纵能力。示例致动设备410包括夹具、爪、固定装置、抽吸设备、传送器、扭转机构、软管和/或丝供给器机构、以及专用装备,例如医疗工具、焊枪或喷枪。许多致动设备通常被称为机器人“末端执行器”。

机器人控制器450向机器人402提供运动数据以控制其动作。运动数据包括作为示例的命令,其被发送到机器人的组件并由机器人的组件接收,这些命令使组件驱动机器人动作,移动到其他方位以及其他活动。相应地,机器人控制器450可以是具有程序(即指令,程序代码)的计算机系统,其执行以向机器人402提供运动数据以控制机器人402执行工作的运动。例如,机器人402可以保持被用于在静止或移动的工件(也未示出)上执行工作的工具(未示出),或者可以保持工件以由适当的工具对其执行工作,作为示例。作为进一步的示例,机器人402可以包括供给器组件,以将软管或其他对象供给到孔或其他空间中以完成诸如放置爆炸性材料的任务。供给器组件可以包括扭转机构,该扭转机构被配置成扭转软管或其他对象,以便更可靠地到达期望的位置。

直接或间接地被提供给机器人控制器450(诸如经由数据处理组件来处理传感器数据)的传感器信息,可以被用来生成机器人402可以在其中工作的安全区。当障碍物基于重新定位障碍物或机器人而进入机器人402的工作空间时,地图可以被构建以通知机器人控制器450安全区。附加地,来自传感器或其它组件的信息,诸如组件404、406和/或408,可以被机器人控制器使用来构建距离图和/或2/3维地图。在一些示例中,原始传感器信息被处理以构建地图。

机器人控制器450与被用于控制和/或观察机器人行为的操作员计算机系统470通信。操作员计算机系统470可以在其显示器上显示关于机器人运动和附加过程的实际数据,例如,相机图像、声学反馈和传感器值。附加地,操作员计算机系统470可以充当用于传感器信息的数据处理设备,并且可以在两个方向上处理数据(即,到/来自传感器的数据)。操作员计算机系统470可以由所需的任何计算机系统实现,例如,诸如工业个人计算机或可编程逻辑控制器之类的。

一些实施例可以以由操作员计算机系统470对机器人402的至少部分控制为特征。操作员计算机系统470可以在向机器人402和/或机器人控制器450口述、选择、构建和/或提供命令或其他信号中起作用,以使得机器人402执行动作。在一些示例中,操作员计算机系统470具有至少一个遥操作输入设备,诸如操纵杆或触控笔型设备,操作员可以使用它们来产生连续的运动信号(位置和/或速度信号),连续运动信号可以直接或经由机器人控制器450被提供给机器人402。一些遥操作输入设备可以基于例如来自机器人402的传感器的输入向操作员提供反馈。反馈可以是可以由操作员感知的任何类型的反馈。一个示例是触觉反馈或力反馈,其导致操纵杆或触控笔中的振动。

操作员计算机系统还可以包括安全使能设备,诸如三位开关,以为操作者提供对机器人402和/或系统400的其他组件启用或禁用电源的能力。

后端计算机系统460可以提供附加的本地或远程计算资源以支持机器人控制器、操作员计算机系统470和/或机器人402。在这方面,机器人402的控制和/或支持机器人任务的其他过程可能比可以由前端系统处理的要求更高。本地或远程后端设施可以由后端计算机系统460提供,并且前端组件可以将工作卸载到后端计算机系统460。通过具体示例,图像数据的处理,特别是3维图像数据,可能对机器人402、其传感器和/或机器人控制器450造成很大的负担。图像数据可以部分或全部被提供给后端计算机系统460以进行处理,并且结果可以被提供回机器人控制器450或另一个组件以用于机器人过程。

如前所述,系统400的组件不需要彼此相邻。后端计算机系统460可以位于现场或非现场,例如作为提供基于网络的数据处理解决方案的基于远程云的计算设施。

系统400的一个或多个前述组件可以被前述组件中的一个或多个其他组件包含,或者被包括在前述组件中的一个或多个其他组件中。类似地,给定组件的以上所述功能可以被合并到前述组件的不同组件中。由后端计算机系统460提供的后端计算资源,例如可以被包括在机器人控制器450或操作员计算机系统470中,反之亦然。在一些实施例中,机器人控制器450和/或操作员计算机系统460的功能被合并到后端计算机系统460中。

本文描述的过程可以由一个或多个计算机系统或其他处理设备执行。参考图5,合并和使用本文描述的方面的示例计算机系统被描绘和描述。计算机系统500包括一个或多个处理器502、存储器504和一个或多个i/o设备506,它们可以通过总线和其他电子硬件元件(未被示出)彼此耦合。处理器502包括能够实现功能的任何适当的硬件组件,例如执行从存储器504获取的指令(有时备选地被称为代码、固件和/或软件)。指令的执行使计算机系统500执行诸如本文所述的支持机器人的控制和/或操作的过程、功能等。

在一些示例中,本文描述的方面由被协调以共同执行过程、功能等的多个同构或异构计算机系统执行,诸如本文描述的那些支持机器人的控制和/或操作的过程、功能等。

存储器504包括用于存储数据(诸如用于执行的指令程序和其他数据)的硬件组件或其他存储设备。存储设备可以是磁性的,光学的和/或基于电的,作为示例。硬盘驱动器、现场可编程门阵列(fpga)、磁介质、光盘(cd)、数字通用盘(dvd)和闪存是示例存储设备。相应地,存储器504可以是易失性的,非易失性的或两者的组合。作为特定示例,存储器504包括一个或多个硬盘驱动器和一个或多个随机存取存储器(ram)设备,分别用于非易失性和易失性数据存储。由存储器存储的示例程序包括在操作系统上运行的操作系统和应用程序,诸如执行本文描述的功能的专用应用程序。

i/o设备506包括支持向/从计算机系统500输入和输出数据的硬件和/或软件组件。i/o设备506包括物理或无线连接到计算机系统和/或集成到计算机系统中的物理组件,诸如键盘、鼠标、显示设备、操纵杆、相机设备、光盘、拇指驱动器、打印机、全球定位系统(gps)设备、陀螺仪、磁力计、光传感器、接近传感器、传声器、扬声器或加速度计,作为示例。i/o设备506还包括但不限于i/o控制器以及支持与前述组件(诸如网络、图形和/或音频控制器)的数据通信的硬件和软件。示例i/o设备506是用于在计算机系统500和另一个组件之间进行数据通信的网络适配器,诸如跨越通信链路的另一个计算机系统。示例包括以太网、电缆和/或基于光纤的通信链路,在计算机系统500和跨越一个或多个网络(诸如因特网)的其他系统之间传递数据分组。其他示例i/o设备506包括通用串行总线(usb)、外围组件互连(pci)、以及被配置为耦合到它们各自类型的设备的串行适配器/接口。

示例计算机系统的非限制性列表包括:个人计算机(pc)、笔记本电脑、工作站、服务器、大型机、网络设备、虚拟化设备、计算终端、个人数字助理、蜂窝电话和智能手机、可穿戴设备(“可穿戴设备”)、平板计算机以及传感器(诸如相机或相机系统)。

相应地,本文描述的方面可以采用一个或多个系统、方法/过程和/或计算机程序产品的形式。计算机程序产品可以是存储指令的计算机可读、有形存储介质或设备。在一些实施例中,计算机程序产品是非暂时性计算机可读存储介质。参考图6,示例计算机程序产品600被描绘,其包括例如一个或多个计算机可读存储介质602,以在其上存储计算机可读程序代码部件、逻辑和/或指令604以提供和帮助本文描述的一个或多个实施例。

作为示例,计算机可读存储介质可以是电子的,磁性的,电磁的,光学的和/或基于半导体的。示例包括但不限于:随机存取存储器、只读存储器、计算机磁盘、闪存以及诸如压缩盘(cd)或数字通用盘(dvd)的光学存储介质。如本文具体使用的,计算机可读存储介质本身不包括暂时信号,诸如无线电波或其他传播信号。

被包含或存储在计算机可读存储介质中/上的程序代码可以由计算机系统(计算机、处理系统、数据处理系统等,包括其组件)和/或其他设备获得并执行,以使得计算机系统,其组件和/或其他设备以特定方式运转/运行。程序代码可以使用任何适当的介质来传送,包括(但不限于)无线、有线、光纤和/或射频。用于执行操作(该操作执行、实现或帮助本文描述的方面)的程序代码可以用一种或多种编程语言来编写。在一些实施例中,编程语言包括面向对象和/或过程编程语言,如c、c++、c#、java等。程序代码可以完全或部分地在计算机系统,远程计算机系统或部分地在计算机系统上和部分在远程计算机系统上的组合上执行。

程序代码可以包括由处理器执行而获得的程序指令。计算机程序指令可以被提供给例如计算机系统的处理器以生产机器,以便程序指令在由处理器执行时,执行、实现或帮助本文描述的方面,诸如本文描述的流程图和/或框图中描述的动作、过程或功能。因此,本文描绘和描述的流程图图示和/或框图的每个框或框的组合,在一些实施例中,可以通过计算机程序指令来实现。由一个或多个框指定或执行的行为/功能可以以与所描绘的和/或所描述的不同的顺序发生,或者可以与一个或多个其他框同时发生,或者与一个或多个其他框部分/完全同时发生。

本文所使用的术语仅用于描述特定实施例的目的,而不是对本发明的限制。如本文所用,单数形式“一”,“一个”和“该”也包括复数形式,除非上下文另有明确说明。进一步将理解,术语“包括”(以及任何形式的包括,诸如“包括”和“包括”)、“具有”(以及任何形式的具有,诸如“具有”和“具有”)、“包括”(以及任何形式的包括,例如“包括”和“包括”)和“包含”(以及任何形式包含,例如“包含”和“包含”)是开放式的连接动词。结果,“包含”、“具有”、“包括”或“包含”一个或多个步骤或元素的方法或设备拥有那些一个或多个步骤或元素,但不仅限于拥有那些一个或多个步骤或元素。同样地,“包括”、“具有”、“包括”或“包含”一个或多个特征的设备的方法或元素的步骤拥有那些一个或多个特征,但不限于仅拥有那些一个或多个特征。此外,以某种方式被配置的设备或结构至少以这种方式被配置,但是也可以以未被呈现的方式被配置。

以下权利要求中的所有部件或步骤加功能元件的相应结构、材料、动作和等同物(如果有的话)旨在包括用于执行该功能的任何结构、材料或动作以及具体要求保护的其他要求保护的元素。一个或多个实施例的描述已经出于说明和描述的目的被给出,但是并不旨在穷举或限制于所公开的形式。许多修改和变化对于本领域普通技术人员来说是显而易见的。该实施例被选择并描述,以便最好地解释各个方面和实际应用,并且使得本领域普通技术人员能够理解适合于预期的特定用途的各种修改的各种实施例。

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