成员自1994年以来

了解更多

AMT创造性地解决了机器人自动化的挑战。我们提供完整的工程解决方案与才华横溢,经验丰富的工程师和没有产品或硬件议程。这使我们能够提供独特和公正的自动化解决方案,满足您的机器人自动化需求,无论规模大小。我们提供AMT优势,使我们脱颖而出。我们有超过25年的全服务自动化解决方案集成商经验,拥有独特的能力,可以在制造商生产过程的任何阶段与他们合作。“我们从未打算仅仅成为另一家自动化机器人和工程公司。我们在应用制造技术方面的经验和技能在业内是无人能及的。”在AMT,我们已经成功地在一个屋檐下建立了一个拥有相关自动化机器人技术的公司,拥有深度的知识和经验,存在的唯一目的是为我们的客户的性能增加价值。让我们向您展示如何从我们的经验中获益。

下内容提交:

工业:
航空航天和汽车航空航天,汽车,汽车,消费品/电器,电子/电气组件,金属加工,医疗设备,金属,纸,制药和橡胶

应用程序:
装配,装配和材料处理装配,装配,材料搬运,点焊

查看更多

减少变量:从不准确的机器人得到准确的运动

发布10/08/2019

大卫·麦克米兰高级应用工程师David McMillan的博客文章。大卫已经在机器人行业工作了20多年,他是AMT研究新技术或不寻常技术的得力助手之一。欲了解更多关于AMT在机器人应用方面的专业知识,请访问www.appliedmfg.com。

如果你愿意,请允许我讲一个"老屁"的故事。当我得到我的第一个航空航天行业的任务时,我是一个非常有经验的机器人应用工程师,在汽车工业生产方面有丰富的经验。我可以诚实地说,我知道我在做什么。

我不知道我不知道什么。(借用一句短语,就是“未知的未知”。)

在汽车行业,重复性就是一切。几十年来,该行业的生产实践不断发展,以发挥他们使用的机器人的优点,避免其缺点。但是航天事业还在继续精度与机器人技术没有这样的历史关系。

为了智能地讨论这个话题,我们首先需要定义我们的术语(因为它们与机器人相关):

Accuracy-Precision图

准确性:在限定的公差范围内,从任何随机起点,在任何条件下到达空间中任何随机点的能力。

可重复性(有时称为精度):不断到达的能力相同同一起点,相同/相似条件下,在规定公差范围内的空间点,即使这个观点并不准确

机器人非常擅长以同样的方式做同样的事情,每次都是,基本上永远都是。即使他们正在这么做错误的,他们就会做错相同的方式每一次。这意味着,在历史上,机器人编程是由多次测试运行中调整编程位置组成的,直到机器人到达空间中的正确点。机器人的位置认为它可能不符合图纸,但只要焊接在正确的位置,谁在乎呢?

从历史上看,工业机器人趋向于图1插图的左上角。在检查张贴的各种机器人的制造商规格,我在接下来的几年里使用(定义在ISO 9283),我发现重复性值的范围从50-150 μ m,但精度同样的机器人的数值将从500到1500 μ m。根据我的经验,这是一个合理的经验法则:对于任何给定的标准工业6轴机器人,重复性和准确性之间的关系大约是10倍——一个数量级。

最近,“离线”生成机器人程序的趋势非常强烈,这意味着使用模拟程序来创建程序,将它们下载到机器人上,然后点击GO。在生产设施中没有混乱的、长时间的尝试-失败循环。这种推动力来自非传统客户,他们在生产中刚刚使用工业机器人,航空航天就是一个特别有力的例子。在我第一次涉足航空航天领域,使用汽车用机器人时,工业机器人的精度和可重复性之间的关键主要差异第一次成为我的真正问题(而不是理论问题)。水也多,比我想象的还要深刻

强烈反对

我有一项任务看起来很简单:使用机器视觉系统,将一个反沉切割器引导到一个已经钻好的孔中。我需要实现精度相对于孔,50 μ m (0.05 mm,或约0.002”)或更好。这比我以前做过的任何东西都要紧得多,但视觉系统可以测量到小于1 μ m,这应该给了我一个奢侈的裕度。我只是移动,测量,重复,直到我击中目标。

相反,我发现达到50 μ m的耐受性是一种运气;机器人会一直尝试,直到视觉系统报告我们在容忍范围内,但这可能需要五次,或五百次。当我深入研究这个问题时,我发现我正在尝试修正比机器人运动控制中的“噪音”更小的地方。

任何开过需要调整转向的汽车的人都能直观地理解什么是“反弹”。工业机器人(尽管被吹捧使用“零反弹”驱动机制)有很多反弹,而且是多种类型的。所有这些因素的组合的正式术语是“失稳运动”。这种失去的运动不容易建模,它会根据机器人的位置、方向、有效载荷甚至环境温度发生巨大变化。这使得它很难预测,或从数学上进行修正。

在这种情况下,当我的机器人接近目标时,它必须不断做出越来越小的修正——某种程度上芝诺悖论如果你愿意的话。最终,修正量比机器人失去的运动量要小。结果是,当被命令做一个微小的动作时,机器人可能根本不动,或者朝着某个随机的方向移动。

寻找解决方案

在试图解决这个问题时,我尝试了一个简单的测试。我把机器人放在一个目标的上方,用视觉系统测量它的位置。然后我沿着固定的方向移动10 μ m,每移动一次就停下来测量一次。我的发现很有启发性:在最初的几个增量中,机器人的移动是随机的(或者根本不移动),但在一个一致的方向上移动会使我达到一个点,在10 μ m的增量中机器人会可靠地移动,这是由视觉系统验证的。结果很明显,在向一个固定的方向移动足够长的距离后,机器人将“占据所有轴的松弛”,机器人的运动(至少在短距离内)将变得更加精确。但是,当我想搬进去的时候其他方向,所有失去的运动的“松弛”将重新发挥作用,直到我沿着新的方向移动足够远,再次“采取它”。

回到画板!

所以我需要找到一种可靠的方法来“填补空缺”。对于这个应用程序,我们不需要制造机器人准确的尽管我们需要一种方法来保持所有丢失的动作一致。如果我们能够找到一种方法将每个轴“拉”到一边或另一边,而不是在失去运动范围的中间随机漂浮在死带周围,那就足够了。

在外人看来,头脑风暴会很滑稽;他们认真地提出了一些方案,比如在每个轴上都安装大弹簧,或者将机器人安装在斜楔上以“偏移”重力。甚至有人建议再加一个机器人,它唯一的工作就是按一致的方向拉一根连接在主机器人末端执行器上的蹦极绳(别笑,这可能会奏效)。但这些想法都不太实际。幸运的是,没有一个是必要的。

令人惊讶的是简单的解决方案?

和大多数优秀的工程解决方案一样,最终的解决方案几乎非常简单。它是加一个深思熟虑的在一个固定的方向上,每个纠正动作都有额外的运动(技术上是两个)。我们称之为“反反弹”动议。

它的工作原理是这样的:我们工具的z轴与我们使用的钻头的轴对齐。我们从沿z轴计算的一个对峙位置最终接近程序设定的目标。然后,一旦我们到达编程的目标位置,我们将进行视觉测量,这提供了工具轴X, Y, Z, Rx和Ry的校正值(Rz显然与钻头无关)。但是,该程序并不是简单地按照这些校正值移动,而是沿着Z轴“向后拉”几毫米,这足以完全超过任何潜在的运动损失效应。这是反反弹运动的第一步。第二步是计算并执行包含视觉校正的运动而且和第一个反反弹动作完全相反。

在实践中,它看起来有点滑稽(像一只“喝水的鸟”),但它运行得非常好。我们的移动-测量-正确迭代从几十次增加到相当一致的3次(通常在2到5次之间)。对抗回调偏移量的实验很快向我们展示了最小值的位置——低于某个点,校正迭代的次数将急剧增加。

这种克服迷失运动的方法并不是什么秘密;New River Kinematics公司的产品使用计量设备来引导机器人(坦白说,其精确度令人震惊),使用了非常类似的方法。任何曾经使用过破旧的手动车床或铣床的老派机械师都学会了如何补偿手动曲柄的回冲,通常是当他们需要从不精确的机器中挤出精度时,故意只从一个方向进行切割。这是克服关节机器人失去运动效果的最基本元素之一,可能是任何必须与此问题作斗争的人的关键“工具箱项目”。

当然,这个应用程序在很多方面都很容易实现。我们的目标是表面上的一个孔,机器人的视觉很容易看到,要获得相对于目标的足够精度是一个简单的测量和校正问题,直到我们最终达到公差。但如果是更复杂的情况呢?例如,如果我们需要在一个表面上精确地钻一些孔呢没有这样简单的目标?那是我的团队失败的项目的一部分另一个兔子洞。

在地标之间导航(“不应该在阿尔布开克左拐”)

发那科机器人钻在这种情况下,任务是钻几千个孔,分布在飞机机身的整个表面,精度很高。

每当有人要求你达到某种精确度时,你的第一个问题应该是“精确度”相对于什么这是我们非常痛苦地得到的教训,但我就不讲那些血腥的细节了。

在汽车领域,精确度是通过消除几乎所有变量的简单权术来实现的——零件和装零件的工具被制作得比机器人更具有可重复性。不受控制的影响,如热膨胀,通常可以忽略不计。

然而,对于大型航空结构,这并不成立。航空结构零件的关键公差不在于零件的可重复性,而在于它们的配合程度。这似乎是一种没有区别的区别,但事实并非如此。

此外,对于非常大的结构,如机身,它是简单的太大让所有东西都像汽车零件一样可重复。即使零件是100%可重复的完美的对于CAD模型,重力等简单的效果会使结构在支撑点之间轻微凹陷,这意味着您不能简单地将CAD模型位置导出到机器人并点击GO。

相反,我们依赖于所谓的“局部相对精度”。回想一下,我之前的项目示例显示,一旦丢失的运动得到了处理,机器人就可以精确地执行纠正运动更好的至少在短距离内是这样的。

以这架大型客机机身为例,飞机的“蒙皮”面板已经附着在机身的“骨架”上——当机身到达机器人工作区域时,大约20000个紧固件中的10%已经安装好。每个“钉”紧固件都被非常仔细地放置,以满足客户的公差规格。所以,我们可以通过简单地“连接点”完成机身。

几乎。当然,实际情况比这要复杂得多。

发那科机器人客机机身在我们进行研发工作的过程中,我们发现,利用我们的反弹补偿技术,机器人可以在一定距离内保持足够的精度。然而,这个距离是以联合空间(即机器人轴的运动),而不仅仅是笛卡尔空间。这意味着,与两个相距相同但定位相似的点相比,钻孔两个相距仅20毫米、末端执行器方向非常不同的点的精度非常低。我们还发现了某些“禁止”区域,即某些机器人轴太接近拐点而无法保持精度。例如,想象一下大多数六轴机器人的“肩膀”关节——当手臂连接是垂直的,重力可能会“倾斜”它向前或向后越过中心。这个轴通常也有某种形式的平衡。这就引入了一个需要避免的随机因素。

我们的解决方案在概念上很简单,尽管在应用上相当复杂。基本的想法是将整个机身皮肤划分成棋盘式网格的工作区域。每个区域都使用几个标准来定义:总体大小、平坦度或曲率,以及地标的可用性(预先存在的钉扣)。

尺寸和曲率是相互依存的。曲线越紧,区域越小,反之亦然。如果一个区域包含一些需要机器人做额外扭曲才能到达的狭窄区域,那么这些狭窄区域可能会成为它们自己的单独区域。这意味着选区的形状通常很奇怪,并且以奇怪的方式重叠(“不公正划分选区”一词被半讽刺地抛出)。

地标的可用性是最关键的因素。地标必须是可见的,准确的放置,并通过机器视觉定位。对于一个可行的区域,它必须有足够多的地标满足这些标准,而且地标必须充分包围该区域。

对于仅仅是“连接点”的区域,在两个已经存在的紧固件之间的直线上钻孔,两个地标就足够了(尽管为了冗余,通常会选择更多)。但要让这样一个简单的两个地标区域发挥作用,我们只能在这些地标之间的线上钻孔——当我们远离这条线时,精确度会急剧下降。

对于二维区域,从技术上讲,三个地标就足够了(在小学几何中,三个点定义一个平面,就像两点定义一条线一样)。但这会造成一个“精度三角形”——移动到三个地标定义的三角形之外会导致准确度迅速下降。类似地,如果三角形中的两点靠得太近,它们在笛卡尔空间中的精确区域看起来更像一条线。

对于我们模糊的方形工作区,我们通常坚持在角落至少有四个好的目标,最好更多。作为一个一般规则,我们通常可以在由地标定义的多边形内部获得精度,相对于那些地标。

做到这一点的诀窍是,再一次,消除尽可能多的变量。为了在工作区域精确钻孔,机器人首先移动到每个地标,进行移动-测量-校正循环(带间隙补偿),直到与地标几乎完全对齐,并记录机器人在那一刻的位置。将对区内所有地标重复这一步骤。然后,利用每个地标所在位置之间的差异进行六自由度(6DOF)计算预期以及它实际的位置.这导致了一个6自由度的转换,可以应用到区域内的所有目标点。

为了做到这一点,每一个地标都要测量,每一个洞都要钻相同的方向末端执行器(回想一下我之前说过的关节空间和轴空间的运动)在弯曲的机身上,这显然不是100%可能的,这导致了曲率和区域大小之间的权衡。通常,我们会看到区域变成矩形,长轴与曲率轴平行。当加工过程转移到具有复合曲率或更小半径的机身区域时,工作区域将不得不缩小以补偿。

有时,我们会遇到某些几何图形,在同一区域的某些目标需要完全不同的末端执行器方向——否则它们根本无法到达。在这种情况下,我们通常会将相同的物理区域分割成独立的虚拟区域,从不同的方向对相同的目标进行视觉测量,选择与目标集的方向相匹配的方向。我们有时会以占用相同物理区域的“虚拟”区域结束,或者与其他区域重叠。将整个机身划分为可操作区域的过程是在模拟环境(如process simulation或Catia V5)中进行的—-所有相关内容的完整详细的3D模型至关重要的

保质期(“除了时间,什么都可以问我!”)

到目前为止,我已经讨论了克服变量空间——包括位置和方向。这是任何试图从六轴工业机器人中榨取精度的人将会遇到的第一个“减速带”。但还有另一个不太明显的变量:时间

简单地说,当你测量你的工件和当你应用这种测量对你的机器人来说是一种位置校正,就有更多的机会在不被察觉的情况下发生变化。现在,希望控制系统能够检测到是否有人打开/关闭了固定夹,或者是否有部件被移除或更换。刀具应该足够坚固,使工件不会在没有人为干预或某种机械碰撞的情况下滑倒。但在我们所谈论的机械精度水平上,还有另一个更隐蔽的因素可以突破你的容忍极限:热膨胀。

如果模拟出机器人的体积误差是极其困难的,那么模拟出热膨胀对机器人定位精度的影响是…这么说吧,在近期内我看不到这个问题的解决方案。我的团队进行的测试表明,即使在环境温度控制良好的环境中,随着时间的推移,机器人自身的伺服废热也会缓慢地通过手臂的身体元素传播。有一个明显的滞后,当绘制精度误差随时间的变化曲线时,会产生一个s曲线——当热量“爬行”穿过机器人外壳时,误差会增加,但一旦热分布稳定下来,精度误差也会增加。

各种处理方法他们尝试了一些问题,其中最基本的是在自动化系统中增加环境温度传感器,以检测温度波动大到需要重新测量的程度。在机器人上增加热传感器是考虑过的,但因为不切实际而放弃了。最后,我们采用了最简单的解决方案:将我们的测量周期和我们对测量结果的纠正应用之间的时间最小化。因此,对于机身被划分的每一个区域,测量周期都是在该区域的实际钻孔过程之前立即进行的。如果工艺周期因任何原因中断,测量周期将被重复,然后才能恢复工艺周期的其余部分。这在周期时间上有成本,但它是相当小的,并且应用程序在任何情况下都重视精度高于速度。

我们探索的另一个选项(但在这种情况下不需要实现)是在每个度量周期上设置一个过期时间,并且强制中断流程周期以重复度量周期,如果该时间在流程周期进行时由于任何原因过期的话。在实践中,我们的区域通常很小,如果没有其他类型的流程中断,时间漂移就不会成为一个因素,但一些生产流程可能有其他问题(例如,人工操作人员交互),这些问题可能会不可预测地引入足够长的延迟,使时间漂移变得非常重要。

总结(TL;DR)

底线是,工业机器人在重复性方面比准确性要好得多。但如果你能减少机器人定位中涉及的变量的数量,你就可以通过“欺骗”来达到更大的目标有效的准确性。

重要的是要充分把握所有可能影响你的准确性的不同因素,尤其是那些影响不明显或不一致的因素。

总而言之,我试图向大家传递一些总结出来的经验教训在几个机器人项目的过程中,这些项目要求精确度接近或在某些情况下超过机器人固有的重复性。这是一个非常深奥的课题,对于我们这些习惯了“经典”工业机器人的人来说,这是非常违反直觉的,比如汽车行业已经使用机器人自动化几十年了。但是,有了产品设计和自动化设计之间的适当互动,以及对什么是可实现的和实现它需要什么的良好把握,我们可以利用汽车机器人实现航空航天公差。

我希望其他深入研究这些问题的人会发现我的回忆是有用的。如果您有关于特定应用程序的问题,请联系我们。