原文
CalibrationMQP_Report.pdf

4.1 系统概述

本节将简要介绍校准系统的主要程序。
我们针对两种类型的工件介绍两种校准方法。为了准确计算它们的真实坐标,我们首先要对测量工具进行校准:1)确定激光测距传感器测量工具(LRSMT)和法兰盘之间的准确相对位置。2)确定激光束的交叉点与机器人底座之间的准确位置。实现这些目标的细节将在4.3.1测量工具校准和4.4.1测量工具校准中讨论。
4.4.1 测量工具的校准,分别讨论。这两个目标是为了校准测量工具,这是做工作对象坐标校准的前提条件。
在这些从属目标实现后,这两种校准方法就可以高效、准确地工作。第一种方法,称为激光测距传感器校准法,可以校准规则形状物体的坐标,如铝锭。该方法的细节可以在第4.3.2节找到。第二种方法,称为U型传感器校准法,能够校准同轴和对称物体的坐标。这些类型的物体常见于许多工具中,如焊枪或钻头。该方法的细节可以在4.4.2节物体测量和校准中找到。

4.2 系统设计

4.2.1 处理单元

4.2.1.1 系统要求

校准算法的一个关键程序是使用相应的测量工具来捕捉瞬间位置。为了达到高度精确测量的目的,系统应该是反应灵敏和稳定的。因此,我们也需要尽量减少系统通信造成的延迟。除了在软件优化方面做出努力外,硬件的选择也很重要。
为了达到准确性和稳定性的要求,我们定义了系统的两个目的:1)从传感器的检测到处理器的计算的时间不超过10毫秒;2)时间的变化不超过±3毫秒。如果系统能达到其中一个目的或同时达到这两个目的,就意味着该系统有资格准确运行。因此,我们对处理单元的选择做了研究。

4.2.1.2 处理单元的选择

为了达到上述要求,我们需要一个能够与传感器和机器人控制器响应地进行通信并能够处理连续数据的处理单元。经过研究,我们发现下面列出的处理器可能是合适的:它们容易获得,预算低,并且包含用户友好的开发环境。对每个处理器的详细评估也显示在下面。
a) FPGA开发板
FPGA的明显优势是快速,因为使用逻辑门是达到合格的稳定性和处理速度的完美基础。然而,由于架构和开发环境过于低级,因此很难建立各种基于逻辑门的通信接口。
基于逻辑门的通信接口。因此,FPGA的使用并不友好。
b) 个人电脑(Windows操作系统)
PC处理的主要优势是可以使用ABB公司正式提供的RobotStudio SDK。它可以使用Visual Studio中的C#进行编程。因此,开发环境很友好,兼容性也很可靠。但是,经过我们的测试,系统的响应时间不能限制在±3毫秒之内;其变化是±10毫秒,取决于计算机的负载。经过研究,我们发现潜在的稳定性问题是Windows操作系统的固有属性。
c) Raspberry Pi (Linux)
Raspbian操作系统提供了一个用户友好的Python开发环境,而且可以从资源分布中访问和定制Linux核心。在我们正确设置并运行测试代码后,系统的响应时间从6ms变为8ms;其相对较快的响应和良好的稳定性最终达到了我们的要求。
在做了这些比较之后,我们发现Raspberry Pi是这三个设备中最合适的处理设备。因此,我们最后决定使用Raspberry Pi。

4.2.2 传感器

4.2.2.1 系统要求

a) 测距传感器的基本要求
知道我们的项目将使用测距传感器,下一件事就是找到合适的传感器。我们估计并确定了我们正在寻找的理想传感器的必要规格。
image.png

b) 对U型测量工具上的激光传感器的基本要求
对激光传感器的要求并不像选择测距传感器那样严格。我们最关心的是激光传感器的响应时间
image.png

4.2.2.2 接触式和非接触式传感器分析

基于我们的算法,我们需要线性位移传感器。有两种主要类型的位移传感器,即接触式位移传感器和非接触式位移传感器。
接触式位移传感器被称为探头。探头撞击目标,并根据目标表面的波动而上下移动。使用传感器的内部刻度检测运动量,以测量目标的位移量。
激光位移传感器的原理是三角测量法。当目标的位置发生波动时,激光接收元件上接收到的激光的位置就会移动。通过检测接收激光的移动量来测量目标的位移量。
接触式和非接触式传感器都适用于我们的项目,所以我们对这两种类型的传感器都做了深入的研究。下表显示了两种类型的传感器之间的比较。
image.png
image.png

在我们的研究中,激光传感器比探头更好。激光传感器具有更快的反应速度,更长的测量范围,并且没有对目标造成影响的风险。高精度的激光传感器也比探头贵。经过仔细考虑,我们选择使用激光位移传感器来完成我们的项目。

4.2.2.3 激光传感器分析

a) 测距传感器的选择。OPTEX CD33-85N-422
我们为项目选择的传感器是OPTEX CD33-85N-422激光测距传感器。它符合4.2.2.1系统要求中列出的所有要求。图8是该传感器的规格表的截图。虽然规格表中没有列出探测角度,但根据我们的测试,它的探测角度大约是60度。这个传感器的价格为800美元,在我们的预算之内。
如果有更好的传感器,我们会有一个更好的结果。我们选择这个传感器是因为它符合我们的基本要求。

laser.png
Figure 8. Specification sheet for OPTEX CD33-85N-422 laser range sensor

b) 激光传感器和它的放大器的选择。
我们的激光传感器的型号是Keyence LV-S71激光传感器和它的放大器LV-N11P。它符合4.2.2.1系统要求中列出的所有要求。我们选择这个传感器的原因主要是我们有这个传感器,所以我们不必再购买另一个。以下是LV-S71和LV-N11P的规格表的截图。

amplifer.png
Figure 9. Keyence LV-S71 Laser Sensor Specification Sheet
amplifer 2 .png
Figure 10. Keyence LV-N11P Laser Sensor Amplifier Specification Sheet.

4.2.3 通信设计

在我们的校准系统中,最基本的功能之一是让传感器、ABB控制器和处理单元之间相互通信。在对每个组件进行研究后,我们分析了每一个我们想要通信的对象,并找到了它们支持的通信方式,如表4所示。

表4. 校准系统中每个组件的可用通信端口。
image.png

image.png

4.2.3.1 Raspberry Pi和ABB控制器之间的TCP/IP通信

image.png
建立Raspberry Pi和ABB控制器之间的通信是非常必要的。机器人的法兰盘位置和姿势等信息需要从ABB控制器传输到Raspberry Pi。它们可以被用来计算校准结果,作为输入。另一方面,校准结果等信息需要从Raspberry Pi传输到ABB控制器,以便更新新的坐标系。这些信息包括许多浮点数字。由于这些信息很复杂,DeviceNet和ProfiNet等通信方式很难实现。此外,RobotStudio SDK环境很难在Linux系统上运行,因此我们应该找到替代方法,让Raspberry Pi与ABB控制器进行通信,以高频率采集机器人的当前数据。更简单有效的方法是在Raspberry Pi和ABB控制器中使用TCP/IP套接字,因为ABB RAPID有一个内部的TCP/IP套接字,而且Raspberry Pi中的Python已经很好地开发了一个TCP/IP套接字,如图12中的红色标签所示。另一个问题是,机器人的位置和姿势的信息应该在机器人运行移动命令时传输。为了做到这一点,我们需要在ABB控制器中进行特殊的程序设计来实现。有几种方法可以做到这一点。一种方法是使用ABB控制器中的多任务模块来处理通信数据,但不是所有的ABB控制器都有这种模块。第二种方法是在ABB控制器中启用一个定时中断来处理信息,但定时中断的最大频率低至10Hz。最后一种方法是使用ABB控制器中的I/O中断来处理信息。I/O中断的最大频率高达50Hz。我们最终使用I/O中断来发送机器人位置和姿势的信息给Raspberry Pi。
我们尝试用Windows和Linux系统来连接ABB控制器。它们都能成功运行。同样的Python代码可以在两个系统上运行,但唯一的区别是设置静态IP配置的程序。最后,我们通过安装Raspbian操作系统建立环境,然后在Raspbian操作系统上建立Python环境。Python环境使我们能够创建一个TCP/IP套接字,向控制器发送请求,接收机器人的位置数据,同时接收激光位移传感器的数据。此外,TCP/IP要求服务器(机器人控制器)和客户端(Raspberry Pi)都要有静态地址,这样协议才能进行。唯一有效的地址是任何公共局域网地址或控制器的服务端口地址192.168.125.1。因此,客户端的IP地址应该是192.168.125.X,其中X不能是1。因此,我们通过修改/etc/network/interfaces目录下的interface文件来设置IP地址,如图14所示,并将IP地址改为静态地址。在Windows上设置静态地址,如图13所示。如果ABB控制器被设置为服务器,端口号可以是任何小数字(从0到3000),如果ABB控制器被设置为客户端,端口号只能设置为5515。因此,我们在项目中把端口号设置为1025。
image.png
image.png
图15是我们在Raspberry Pi中编写的代码,用来创建一个客户端并接收来自ABB控制器的数据。最重要的是,客户端连接的IP地址只应该是’192.168.125.1’。这个程序应该在服务器建立后调用。
image.png
图16是我们在RobotStudio中编写的代码,用于创建服务器并向客户端发送当前位置和方向数据。最重要的是,在套接字发送后应使用ERR_SOCK_CLOSED的异常表达式,以便在客户端意外关闭时不会出现程序错误。此外,如前所述,RAPID程序和Python程序中的端口号应该相同。机器人当前位置和方向的数据被改成了字符串,并以逗号分割。
image.png

4.2.4终端效应器设计

这一部分介绍了末端效应器的设计。总的来说,我们对末端效应器的目标是它能稳定地固定在工具或物体上,包括激光测距传感器、我们要校准的工作物体和圆柱形工具。有很多方法可以设计末端效应器,只要设计能够实现我们的目标。
我们的末端效应器的设计显示在
图17,图18是详细的结构。当气动缸没有推到外侧的螺栓座时,球形螺栓可以自由调整;这意味着当我们想调整气缸工具时,它能够在位置和方向上产生一些随机变化。当气动控制器收到信号时,它将把内侧的螺栓座推出,并把球形螺栓推到外侧的螺栓座上。然后,由于球形螺栓和外部螺栓座之间的摩擦,球形螺栓根本无法移动。
image.png
image.png

4.3 激光测距传感器校准方法设计

Todo

4.3.1 测量工具校准

4.3.1.1 概述

在使用激光测距传感器校准物体之前,需要对其进行校准。激光的位置和相对于世界坐标的方向是未知的。为了使校准工作有更好的表现,需要对激光传感器的坐标系有较高的精度。只要我们知道传感器的坐标系,在使用激光测距传感器检测某个点的时候,我们就可以得到这个点相对于世界坐标的位置。从物体上多次获得点的位置,我们就可以用我们的算法来计算出物体相对于世界坐标的准确位置。
在本节中,我们将介绍边缘检测方法、四点算法、程序设计和延迟评估。

4.3.1.2 理论方法

这种校准方法的目的是确定激光传感器光束的TCP,也就是基于四元数表示法找到相对的线性位置[X, Y, Z]和旋转位置[Q1, Q2, Q3, Q4]。(请注意,四元数是表达旋转矩阵的一种简洁方式。旋转矩阵和四元数表示法的变换如公式(1)所示)。(ABB机器人公司,RAPID指令、功能和数据类型技术参考手册,2013年) 请注意,我们之所以选择四元数表示,而不是典型的3x3矩阵,是因为四元数是ABB公司RAPID程序中的默认表示。
image.png
为了找出传感器的TCP,我们需要使用一个圆柱形的校准器。通过将机器人移动到校准器的边缘上方,并记录它们之前的末端效应器的位置,我们可以确定物体中心的位置和相应的旋转位置。然后,当传感器测量中心点时,可以通过法兰盘的位置和方向来确定工具坐标。
以下步骤是程序的整个过程。
步骤1:如图19所示,带着激光传感器的机器人接近圆柱形校准器的边缘。在移动激光传感器的过程中,机器人不断记录传感器的末端效应器位置和与激光传感器的距离值。当激光在边缘的一个任意点上,标记为P1点时,机器人会标记即时的末端效应器位置(X1,Y1,Z1,Q1[4])和距离值(L1)。L1的值可以自定义。
image.png
步骤2:然后传感器移动到边缘上另一个任意确定的点(P2)。距离值被记录为L2。系统试图找到L2等于L1的位置,公差设定为0.02毫米。然后记录L2的位置(X2, Y2, Z2, Q2[4], L2)。注意,传感器的运动是纯线性的,方向不会改变,Q1[4]应该等于Q2[4]。
步骤3:重复步骤2,找到一个点P3(X3, Y3, Z3, Q3[4], L3),即Q1 = Q2 = Q3,L1 = L2 = L3。第2步和第3步的情况如图20所示。
image.png
步骤4:如图21所示,用传感器将末端效应器提升到一定高度,方向不变,然后重复步骤1-3,找到点P4(X4,Y4,Z4,Q4[4],L4),P5(X5,Y5,Z5,Q5[4],L5),P6(X6,Y6,Z6,Q6[4],L6)。Q4=Q5=Q6,而L4=L5=L6。
image.png
第五步:根据我们测量的六个关键点,我们可以定义两个圆的位置。
这两个圆圈形成平行板,校准板和激光测距传感器之间有不同的距离。然后我们可以得到两个圆心的矢量,如图22所示。新的刀具方向可以根据中心线的矢量来计算。
image.png
注意,该矢量的方向与TCP的旋转位置Q[4]相同。
第6步:切换末端效应器的方向三次,然后重复步骤1-3,找到P7-P9点。P10-P12,P13-P15,如图23所示。注意,两个方向之间的角度应在15度以内。否则,激光测距传感器在扫描边缘时将无法有读数。
image.png
第7步:从第6步,我们可以得到法兰盘的四个位置,当机器人以四个不同的方向接近PC时,相对于图24。其中一个方向显示在图24的第一张图片中,第二个方向显示在第二张图片中。
凸缘板的这些位置是四点法算法的输入。该算法将根据法兰盘的位置,输出中心点(PC)的工具位置。 传感器的方向已经在步骤5中计算出来了。
激光测距传感器的校准已经完成。
image.png

4.3.1.3 最小平方边缘检测法

激光测距传感器的探测角度有一个限制。为了让激光测距仪工作,接收器需要接收足够多的由探测面反射的激光束数据。如果反射的激光束信号太弱,激光测距传感器就不会有一个稳定的读数。在大多数情况下,它将有噪音。现在将讨论一个可能发生这种情况的例子。
在校准激光测距传感器的过程中,我们需要检测圆柱体形状校准器的圆形边缘。在这个过程中,激光传感器可能会意外地检测到圆面之外的东西。最有可能发生的一种情况如图25所示。因为校准器的位置和方向都是未知的,激光可能会遇到侧表面,这取决于光束的入射角,会造成噪音,影响我们的数据。例如,当校准器的圆形表面与激光测距传感器垂直或略微倾斜时,读数会很准确。这些是图18中的中间和左手的情况。将这些情况与校准器的圆形表面略微向激光束倾斜时形成对比。这就是图18中的右侧情况。虽然大部分反射的激光不会被激光测距传感器的接收器接收到,但还是会有少量的激光会影响数据。这就是前面提到的噪声。
image.png
图25. 激光传感器在三种不同姿势下扫描边缘的行为


为了帮助处理这个问题,我们在校准器中加入了一个45度的斜边,如图26所示。现在,校准器的圆形表面已经被分成了内圆和外圆。内圆和外圆之间的线被称为内边。外圆和侧面之间的线被称为外缘。image.png
图26. 校准器设计


图27显示了激光测距传感器在校准器表面移动扫描时的情况。在扫描校准器的侧面时,传感器仍然会收到噪音。但是,它现在也可以检测到内圆和外圆。
image.png
图27.激光传感器在三种不同姿势下扫描斜面边缘的行为


图28-23显示了在上述三种情况下传感器扫描校准器边缘时的读数。在第一张图中(图21),校准器表面垂直于激光束的位置,传感器在检测内圆和外圆时给出了完美的读数。在检测到外圆后,它有一个清晰的指示。你可以看到从内圆到外圆再到侧面的清晰转变。有两个转折点,分别代表内边缘和外边缘。
image.png


如图29所示,校准器的位置稍微向激光束倾斜。在检测内圆和外缘时,读数显示清晰。但是当激光束遇到校准器的侧面时,会产生大量的噪音,使我们的读数不稳定。在收集数据时,这种情况可能不会每次都发生,但它肯定会影响我们的计算。虽然外缘的位置可能不准确,但内缘的位置却清楚地显示出来。
image.png
图29. 扫描略微倾斜的校准器表面时的传感器读数 朝着激光束的方向


在图30中,校准器的位置略微偏离激光束。传感器在检测内圆和外圆时给出了完美的读数。在检测到外圆后,它有一个清晰的切口。因此,内边和外边的两个转折点被显示出来。
image.png
对于所有情况,激光测距传感器可以成功地检测到内圆和外圆。因此,可以检测到内圆和外圆的交点,即内圆,这就解决了问题。

4.3.1.4 四点式算法

image.png
在这一节中,将介绍一种算法来计算机器人的工具中心点(TCP)。图31是一个六轴机器人的侧视图。B部分是机器人底座坐标系,E部分是手腕坐标系。T是工具坐标系。

  • E和B的坐标之间的变换矩阵定义为[image.png]。
  • T和E之间的变换矩阵定义为[image.png],
  • 坐标T和B之间的变换矩阵定义为[image.png]。

三者之间的关系是:
image.png

image.png
image.png
image.png
image.png
当一个机器人的工具中心点面对某个固定的尖端时,它可以有各种姿势。
点,每个姿势都对应于TCP总方程的一个特定类型。如果机器人有N个姿势指向某个固定的尖端点,在TCP总方程中可以表示为N。图32是RAPID程序数据集,四个变量p1-p4对应于四个不同的姿势矩阵,导致机器人的工具接近一个固定的尖端点。这些变量将在后面的计算中转变为TCP总方程的形式。
image.png
图32: 四个ABB变量的例子:Robtargets用于4点法


每个姿势都可以表示为带有特定常数的TCP一般方程的形式。当姿势P2的TCP总方程减去姿势P1的TCP总方程时,我们得到公式( 6 )。
image.png
如果机器人以四个姿势接近一个固定的尖端点,每两个单独的姿势可以得到一个方程式(7)。根据二项式系数 [image.png] = 6,将有六个方程的实例
方程(7)的实例。然后,将它们合并为方程(8)(Hao Gu,2015)。
image.png

在方程(8)中,只有[image.png]是未知数,所以这个方程是不一致的inconsistent。它不能用非均质线性方程法直接求解。系数矩阵是不可倒置的,因为它不是一个方形矩阵。我们使用了矩阵形式的最小二乘法,将其概括为一个可倒置方程。最后,TCP位置向量可以用高斯消除法计算,如公式(9)所示。
image.png
注意,当我们实现该算法时,我们使用了名为NumPy的Python库,其中包括上述计算所需的矩阵操作。

4.3.1.5 误差的来源

在激光测距传感器的校准中,有几个因素会导致我们的结果出现误差。主要因素包括:1)传感器的响应时间;2)通信延迟。OPTEX CD33-85N-422在规格表上列出的响应时间是8微秒的延时。在激光测距传感器的校准中,我们让Raspberry Pi通过COM1端口接收传感器的读数,并通过TCP/IP接收ABB控制器的法兰盘位置。
可以测量Raspberry Pi和ABB控制器之间的通信延迟。让Raspberry Pi向ABB控制器发送一个信号,询问法兰盘的位置,同时记录发送数据和接收数据的时间差。这个时间差就是通信延迟的两倍。根据我们的测量,Raspberry Pi和ABB控制器之间的通信延迟是7毫秒。
激光测距传感器和树莓派之间的通信延迟不能以同样的方式测量,因为激光测距传感器不能接收树莓派发送的信息,但我们仍然可以估计。通信延迟将受到电缆长度和包装数据长度的影响。电缆的长度小于3米,数据大小为一比特数字。激光测距传感器和Raspberry Pi之间的通信应该在9毫秒之内。
在我们的应用中,机器人手臂将以每秒60毫米的速度移动。由激光响应延迟和通信延迟引起的偏移量主要取决于机器人的运动速度。当一个物体在U形工具上移动时,会发生微小的偏移,它们是朝着运动方向产生的。
我们对由延迟问题引起的偏移的解决方案是降低机器人手臂的速度。当激光测距传感器发现圆柱形校准器的边缘时,它再次扫描,以每秒10毫米的速度找到临界点。在第4.3.1.3节中讨论的边缘检测方法的帮助下,我们可以将偏移量降到最低。

4.3.1.6 程序设计

image.png
程序设计分为两部分。ABB程序和Python程序。ABB程序在ABB控制器上运行。ABB程序的主要目的是路径规划,因为只有ABB程序才能自动控制机器人。Python程序在Linux环境下的Raspberry Pi中运行。使用Python为我们的算法编程的主要目的是,Python有有用的库来支持算术运算,如矩阵运算。这些操作很难被整合到ABB程序中。Python程序的另一个优点是,许多来自算法计算的历史和数据集可以存储在Raspberry Pi中。它们可以被分析以优化算法。例如,在4.3.1.2理论方法中,当传感器扫描板的边缘时,数千个读数被记录在Raspberry Pi中。这些读数可以成为最小平方边缘检测算法的测试案例。我们可以用这些读数作为输入来优化算法中的参数。这就像机器学习中的数据训练。
如4.2.3所述,这两个程序是通过TCP/IP套接字连接的。
通信。图33是两个程序的流程图。在激光测距传感器测量校准中,ABB控制器是服务器,Raspberry Pi是客户端。当两个程序进行通信时,Python程序运行其有限状态机。Python程序的主要状态是收集传感器数据和机器人位置,并在传感器扫描板边缘时调用最小平方的边缘检测算法。由于需要处理数以千计的点,Raspberry Pi花了大约0.3秒完成计算。Python程序的其他状态是计算圆的中心点和四点算法。每个状态结束后,Python程序回到switch语句,等待ABB程序的下一个请求。另一方面,ABB程序根据理论方法遵循一个特定的程序。ABB程序的一般程序是以直线运动的方式开始扫描一个边缘。将传感器和板之间的距离调整到一个恒定值。再次扫描,在一个圆中找到三个临界点,并收集多个中心点。最后,将校准的结果更新为四点法算法的ABB内部程序数据。

4.3.2 物体测量和校准

4.3.2.1 概述

我们在本节中实现的方法被称为3平面法校准。这种方法主要是对至少有三个独立面或平面(不是平行面)的工作对象进行标定。在完成对激光测距传感器的校准后,我们可以用传感器来确定物体上某一点的位置。在传感器的读数范围内,我们可以得到该点的位置,而且精度非常高。然后我们可以应用我们的算法来获得物体的真实位置。
我们可以让物体被终端效应器拿着进行校准,或者让激光测距传感器被终端效应器拿着进行校准。这两种情况都取决于工作对象的状况。例如,由于物体的大小或重量,不能将其拿起。

4.3.2.2 传感器的检测点

在第4.3.1节测量工具校准中,我们对激光测距传感器进行了校准,我们需要知道检测点相对于世界坐标系的位置。我们已经计算了激光测距传感器的位置和激光的方向矢量。传感器的读数就是方向矢量的大小。我们使用公式(10)来计算基于从激光测距传感器收集的数据的面向量。在这个方程中,法兰盘的旋转矩阵表示为A部分,传感器点的位置表示为B部分,坐标系为图34中的E。法兰盘的位置是图34中的C部分,坐标系E。因此,我们可以计算出传感器点的世界位置,表示为D部分。
image.png
image.png
然后,我们使用公式( 11 )。p1是激光传感器的方向矢量,在图Y中显示为v1,在4.3.1节中找到。R0是凸缘板的旋转矩阵。两者都确定后,我们可以根据传感器的读数(幅度)计算出传感器检测点的世界位置(p0)。
image.png

4.3.2.3 理论方法

实现校准的程序如图35所示。在运行程序对工作对象进行标定之前,我们的工作对象模型已经导入RobotStudio中。第一步,我们需要在RobotStudio中每三个独立面上选择三个点。这些点相对于世界坐标的位置,可由RobotStudio告知。然后我们就可以很容易地找出每个面的理论法向量。知道了三个面的向量后,我们可以计算出三个面的理论交叉点。这些面不一定是物理上的交叉点。

然后,我们需要在RobotStudio中为该模型创建一个坐标系。RobotStudio还将显示理论矢量和坐标系的原点,相对于世界坐标。然后,我们可以计算出三个面的每个法向量与坐标系之间的角度。此外,我们还可以计算出理论交叉点与坐标系原点之间的关系。

image.png
其次,我们将让激光测距传感器去寻找我们在步骤1中挑选的点,在三个不同的面上共有九个点。我们有一个Python编程的轨迹生成器,它将根据这些点的位置,相对于世界坐标,自动生成机器人的轨迹。使用4.3.2.2的方法,我们可以找到它们相对于世界坐标的现实位置。使用步骤1的相同方法,我们可以计算出三个面的现实法向量和三个面的现实交叉点。
知道了每个面的向量与坐标系的角度,以及三个面的现实法向量,我们就可以计算出坐标系的现实向量。
知道了理论交叉点和坐标系原点之间的关系,以及三个面的现实交叉点,我们可以计算出坐标系的现实原点。
简而言之,我们可以先找到理论面和坐标系之间的关系。在此基础上,再利用从激光测距传感器得到的数据计算出现实面的向量,我们就可以找出现实的坐标系。
在制造过程中,物体有可能出现偏移,但大多数不会影响校准的结果。

4.3.2.3 错误的来源

在使用三平面法对工作对象进行校准时,误差的来源包括:1)工件的误差 2)激光测距传感器的重复精度 3)机械臂的重复精度 4)激光测距传感器校准结果的误差。因为传感器是以静止的姿势对物体上的每一个点进行数据采样,所以不管延迟和其他与运动有关的问题,都不会有误差。
工件的误差不是我们可以精确测量或评估的。我们只能自信地说,对于每个边缘和表面之间的距离,工件的误差都在0.02毫米以内。虽然表面粗糙度是我们感兴趣的另一个课题,但我们没有设备来测量或评估。激光测距传感器的重复精度是0.01毫米,如规格表上所列。机器人手臂的重复精度是0.02毫米。我们没有优化上面列出的任何误差,我们认为这些误差不会明显影响我们的结果。
激光测距传感器的校准结果的误差在0.15毫米以内。优化后的方案在4.3.1节测量工具校准中讨论。

4.3.2.4 程序设计

与其他校准方法不同,三平面法需要对物体的理论模型进行处理。机器人的标定轨迹会随着需要标定的物体的改变而改变。这意味着ABB程序必须是灵活的。然而,我们希望保持Raspberry Pi程序的不变。因此,我们使用Python创建了一个ABB程序生成器,如图36所示。ABB程序中的路径是由这个生成器根据理论数据的输入创建的,如九个选定点的位置和理论坐标系。输入的数据被存储在ABB程序中。在程序沟通后,它被发送到Raspberry Pi进行计算。在算法计算之后,树莓派将校准的结果送回ABB程序。
image.png

4.3.3 应用。搅拌器校准

4.3.3.1 概述

除了三平面法之外,我们还可以使用边缘来检测物体的坐标系。例如,图37所示的圆盘状物体,不适合使用平面来校准,但我们可以通过应用边缘检测方法来定义整个工件的内圆位置。关于整体解决方案的方法,以及边缘检测和可能的误差将在下一节讨论。

4.3.3.2 理论方法

经过校准的激光测距传感器将被用于这项任务。我们的目标是校准鱼叉,这意味着我们要知道鱼叉中心点的位置和法向量。
鱼叉有一个中心点,它也是内圆边缘的中心点,如图37所示的红圈。因此,我们可以通过找到内圆的边缘来获得鱼叉的中心点。在这项任务中要用到激光测距传感器。激光测距传感器被安装在机器人末端效应器上。
首先,激光测距传感器将遵循一个轨迹来检测边缘,从中心到外部。检测到的边缘点被称为内圆上的临界点,如图37所示。使用我们在4.3.2.3节理论方法中讨论的方法,我们将找出三个临界点的位置。
使用我们在第4.3.1.3节中讨论的相同方法,可以计算出中心点和法向量。但是,在这种情况下,我们要经历一次而不是三次的整个过程。而且,我们不需要改变激光的高度和方向。
image.png

4.3.3.3 最小平方的边缘检测法

a) 一般方法

为了确定圆盘物体的边缘,激光测距传感器需要从圆盘的中心向表面扫描,如图38所示。传感器将首先穿过工作台表面。在它的激光束遇到鱼盘的边缘后,它将跨越鱼盘表面进行扫描。
image.png
在收集数据后,我们得到三个图形,可以确定边缘的点。图39中显示了一个读数的例子。当传感器从盘子的中心向边缘移动时,传感器的读数从95毫米左右开始,这应该是桌子的信息。在这种情况下,传感器的探测范围大到足以探测到桌子。对于探测范围有限的传感器来说,它们可能没有任何有效的读数,只是显示出 “超出范围 “的信息。当传感器的激光束遇到边缘时,传感器的读数会下降到65毫米左右。
image.png
在算法中,我们可以通过设置一个阈值来消除表层的噪音。在本例中,我们将阈值设置为85毫米,这意味着任何超过这个数值的数据都会被忽略。 然后,我们可以找到垂直和水平线的斜率,用最小平方法得到交叉点,如图40所示。这样,我们就可以定义blisk workpiece的边缘了。
image.png

b) Blisk Surface的噪音消除
在某种情况下,当传感器的读数受到鱼盘表面的影响时,算法会选取最有效的数据进行计算。例如,我们的搅拌器工件有一个倾斜的表面,会影响我们的扫描结果,如图41所示。表面的倾斜度大于我们激光测距传感器的最大探测角度。
image.png
激光测距传感器在通过临界点后得到了一个不稳定的结果,临界点就是图42所示的圆盘的边缘。因此我们不能直接应用最小平方法来计算图形的临界点。解决的办法是找到第一段足够稳定的数据来表示平坦的表面。在寻找临界点时,任何偏离斜率的数据都不会被考虑,如图43所示。
image.png
image.png

4.3.3.4 误差的来源

在使用边缘检测方法对圆盘进行校准时,误差源主要是由

  • 1)传感器延迟,
  • 2)通信延迟和
  • 3)激光测距传感器的校准结果误差引起的。

工件的误差被认为对我们的结果不重要,所以我们不会讨论它。
传感器的延迟和通信延迟已经在4.3.1.5节的误差来源中讨论过了。激光测距传感器的校准结果的误差在0.15毫米以内。优化的解决方案在第4.3.1节测量工具校准中讨论。

4.4 U-Shape Sensor Calibration Method Design

4.4.1 Measurement Tool Calibration

4.4.1.1 Overview

image.png

在校准工作对象之前,需要校准U形校准工具传感器-支架组。校准工具的相对位置是未知的。为了拥有卓越的校准性能,需要校准工具的高精确度。 U形校准工具组包括一个U形铝制支架和两对LV-S71激光传感器。 在每个部分中,一个激光发射器和一个接收器被安装在每个角上,对角线方向。
为了保证测量的精确性,我们需要先对测量工具进行校准。这种校准需要一个校准测量工具和一个圆柱形的杆。在校准过程中,作为末端效应器安装的杆子将在U形测量工具内遵循一个新的多位置圆形路径。激光传感器将检测物体是否阻挡了激光束。然后,我们应用算法来获得精确的坐标系。

4.4.1.2 理论方法

在校准开始之前,我们需要先设置好U形校准工具。两个激光束应该是共面的,所以我们需要稍微调整激光发射器和接收器的位置(关于调整方法的更多细节,见4.4.1.3 测量工具的调整)。经过这个过程,校准工具的调整就成功设置了。
在校准中,将同轴对称的被校准物安装在末端效应器上。然后带着被校准物体的末端效应器接近U形工具,在其内部以圆形轨迹移动物体,如图45所示。在沿着轨迹移动时,物体阻挡和解除阻挡两道激光束四次。在一个循环中,系统总共可以接收到八个数字信号的中断,如图46所示。系统记录了法兰盘在每个关键时刻的即时位置。然后,它计算两个位置的平均值,这两个位置是工具开始黑化和疏通一个梁时的翼缘板位置,如图47所示。理论上说,这个平均值是工具轴线与其中一束激光相交时的法兰盘位置。
image.png
image.png
现在我们可以计算出当工具轴上的一个任意点P1处于激光器的交点时,法兰盘的瞬间线性位置,Pf1[x1, y1, z1],如图48所示。
下一步是将末端效应器垂直提升20毫米,记录位移,然后在U型工具中沿着另一条圆形轨迹移动物体。重复上述程序,系统又记录了八个关键位置。
image.png
之后,重复上面的计算,我们可以再次得到法兰盘Pf2的线性位置[x2, y2, z2],此时刀具点P2在激光的交点处,如图49所示。

image.png
由于提升末端效应器的动作改变了刀具的线性位置,而不是角度方向,所以从P1到P2的路径保持不变,以矢量ΔP表示,从Pf1到Pf2的路径以矢量ΔPf表示。然后可以计算出刀具在X轴和Y轴的方向。请注意,这种方法不能测量工具在Z轴上的坐标系,这就是为什么校准器要求是同轴和对称的。
下一步是找到刀具中心点的线性位置,也就是刀具的端点(图50中P3所示)。这个过程要求刀具改变其方向(在Δθx、Δθy和Δθz轴上),并遵循图45所示的圆形轨迹。用刀具的方向抬起末端效应器,即已知的[(θx+Δθx),(θy+Δθy),(θz+Δθz)],直到刀具中心点接近激光的交点,如图50。然后记录法兰盘的线性位置和角度方向。

image.png
最后一步是重复该程序四次,然后使用四点法(如4.3.1.4节中的四点算法)得到TCP的线性位置,如图51。注意,激光束的交点坐标也可以同时计算。结果数据用于校准工作对象的坐标(详见4.4.2对象测量和校准)。

image.png
4.4.1.3 测量工具的调整
为了获得准确的测量结果,应该调整两对激光器,直到两道对角线激光束(图52(a)中以红色和绿色标出)共面。因此,我们需要尽量减少偏移量(在图52(b)中以黑色标注)。

image.png

实施了一个小程序来测量偏移量。程序很简单:第一步如图53所示。带着U形测量工具校准器的机器人手臂接近U形测量工具的内部。然后它沿着一个圆形轨迹,计算每个交叉点在x轴和y轴上的位置,标记为[xn, yn]。总共有四个交叉点。在技术上,这一步与4.4.1.2理论方法中的第一步相同。
image.png
接下来的步骤如图54所示。通过接近每个交叉点来计算每个交叉点的z轴,然后垂直抬起U形工具校准器,直到它解除对激光的阻挡。在激光解除阻挡的那一刻,记录z轴的数值。
image.png
在知道这四个点的位置后,程序将计算出每一束激光的矢量方程。然后两个矢量之间的最短距离就是偏移量。
根据计算出的偏移量,我们可以通过调整螺母来稍微调整位置,然后重复上述程序,直到得到最小的偏移量。40微米。由于螺母的调整是手工进行的,40微米是我们可以接近的最接近的误差范围。
这种方法很平凡,也很耗时,但调整应该只被视为设置步骤的一部分,而不是校准步骤。因此,这个缺点可以忽略不计。

4.4.1.4 四点式算法

四点算法也是以U型测量工具校准的方式实现的,这在第4.3.1.4节四点算法中已经说明。

4.4.1.5 恢复

在这一节中,当使用U型传感器校准器的机器人以各种姿势接近固定的尖端点时,将采用恢复方法。图55显示了校准过程中的一个完美情况。有三个矢量。
矢量1是工具的中心轴。
向量2代表其中一个激光束,
向量3代表另一个激光束向量,与图中垂直。
在完美的情况下,向量2和向量3在同一个平面上,这意味着它们有一个横截面点。在一个关键位置,工具同时阻挡了两束激光。
image.png
但在实际应用中,工具的位置不可能是由两道激光束构成的平面的完美法线。当工具以不同的姿势接近点时,由于校准方法的要求,工具的方向必须改变。在图56中,我们想出了一个方法,在中心点有一个恢复的位移(用红色标注)。该工具被放置在与水平激光束成1角的位置。正如我们之前讨论的,有3个矢量。我们可以得到矢量1和矢量2的表达式,正如我们在4.4.1.2理论方法和4.4.1.3测量工具调整中分别讨论的那样。我们可以通过使用测量工具调整中提到的方法得到矢量2(见4.4.1.3测量工具调整)。知道了圆柱体校准工具的半径,我们可以用公式( 12 )找到恢复位移的大小。
image.png
在确定恢复的位移之前,每个姿势的校准中心点不在同一点上(见图57)。A、B、C三点代表不同的校准中心点。在我们计算了恢复的位移之后,A、B、C三点会在同一位置,如图58所示。这将提高我们校准的准确性。
image.png

4.4.1.6 误差的来源

在U型传感器的校准过程中,有几个因素可能导致我们的结果出现误差。主要因素包括:1)传感器的响应时间;2)仪器的滞后误差;3)通信延迟。

a) 激光器的响应时间

每个激光传感器的规格表上所列的响应时间是250微秒。仪器的滞后误差可以通过使用工具向不同方向靠近来测量:结果是50微米的差异。通信延迟将受到电缆长度和包装数据长度的影响。电缆的长度小于3米,信号是1位数字。正如我们根据情况所测量的,通信延迟小于50微秒。在我们的应用中,机械臂将在300毫米/秒至500毫米/秒的速度范围内移动。由激光响应延迟和通信延迟造成的偏移量主要取决于机器人的运动速度。当一个物体在U形工具上移动时,会出现小的偏移。它们是朝着移动方向产生的。下面将详细讨论这种偏移。

b) 由于偏移,结果中的误差是如何发生的

正如我们在4.4.1.2理论方法中所示,U形工具校准器在U形区域内的一个随机位置上沿着一个圆形路径。传感器记录了每次校准器阻挡和解除阻挡激光束时机器人的姿势,如图59所示。
image.png
然而,在实际应用中,由于杆子逆时针移动,激光器的响应时间和a)部分中讨论的其他因素将导致每次采集的数据发生偏移,如图43(b)所示。因此,导致激光器上的点的计算结果不准确,如图43(c)所示。因此,导致最终激光束相互作用的计算结果出现误差。
在模拟中,如果偏移量为2毫米,圆周路径的中心距离十字光束20毫米,那么结果就会与实际的十字光束位置相差1.9毫米。为了帮助解决这个问题,我们开发了一个优化的解决方案。
image.png

c) 优化的解决方案

从图61中,我们可以检查出所产生的误差是由圆形轨迹中心到激光束交叉点的偏差造成的。虽然这个偏差是不可避免的,但可以控制圆形轨迹的中心,使其最小化。优化的解决方案是使圆形轨迹的中心尽量接近激光束的交叉点,如图61(a)所示。
理论上,如果圆轨迹的中心与激光束的交点在同一位置,并且在收集数据时偏移量是恒定的,那么结果就不会有误差,如图61(d)所示。在模拟中,如果偏移量为2毫米,圆周路径的中心离横梁2毫米,结果将有0.5毫米的误差。
image.png
因此,在进行U型传感器的校准时,杆子将遵循一个随机的圆形路径,并试图找到交叉光束的位置。然后,杆子将再次进行校准,只是这次它遵循一个圆形轨迹,其中心在之前的结果。虽然这种方法不能减少偏移量,但它通过最小化圆轨迹中心和交叉光束之间的距离,在很大程度上减少了结果的误差。

4.4.1.7 程序设计

image.png

程序设计分为两部分。ABB程序和Python程序。这两个程序的目的与4.3.1.6节相同。这两个程序通过4.2.3节中提到的TCP/IP套接字连接。图62是这两个程序的流程图。 在U型测量工具校准中,ABB控制器是一个客户端,Raspberry Pi是一个服务器。它们在程序开始时就被连接起来。
当通信建立后,Python程序作为一个状态机服务器运行。每个状态都可以被视为一个数学运算。如果ABB程序需要一个数学运算,它将请求Python程序进行计算,通过TCP/IP套接字将所有输入发送到Python程序。在收到ABB控制器的请求后,Python程序根据不同的请求进入某个开关情况。例如,当开关情况等于1时,程序开始根据输入的三个边缘点计算圆的中心点。当开关情况等于2时,程序开始根据输入的向量计算一个方向。当切换情况等于3时,程序开始基于输入矢量和半径计算恢复。当切换情况等于4时,程序开始使用四点法算法计算TCP结果。由于Raspberry Pi是一个服务器,Python程序在键盘中断之前不会停止。
另一方面,ABB程序根据理论方法遵循一个特定的程序。在通信建立后,它将遵循圆形轨迹,通过I/O中断收集关键点。然后,重复不同高度和方向的圆形轨迹。中心点和物体的方向是由Python程序计算出来的。之后,ABB程序开始提升并做恢复,以获得四点法算法的所有输入。Python程序计算四点法算法并将结果传输给ABB程序。最后,校准后的结果被更新到ABB内部程序数据中。

4.4.2 Object Measurement and Calibration

4.4.2.1. 概述

本节的目的是解释如何使用U形测量工具(USMT)校准一个同轴和对称形状的物体。具体来说,我们将讨论获得物体和ABB底座之间的相对坐标系的方法。第4.4.1节 测量工具校准是校准物体前的准备部分。从这一部分,我们可以得到USMT相对于ABB底座的坐标系。在校准对象时,不能改变USMT的位置和方向。否则,就需要重新校准USMT。
使用USMT校准物体和使用圆柱体形状校准器(CSC)校准USMT的原理是基本相同的。它们都要求校准器/物体在USMT的探测范围内遵循一个圆形路径。4.4.1测量工具校准中讨论的许多算法和解决方案在第4.4.2节物体测量和校准中也有效。
主要的区别在于它们的目的之间。使用CSC来校准USMT是USMT安装后准备过程的一部分。它的校准结果将影响到以后物体校准的所有方面性能。因此,我们希望从USMT的校准中获得最准确的结果。另一方面,对于不同的物体,每次都需要进行物体校准,但只需要对USMT进行一次校准就可以了。因此,我们希望这个过程能够更快、更有效。
另一个区别是,我们不使用四点法(在4.3.1.4节四点算法中讨论)来校准物体。四点法需要一个恢复方案(在4.3.1.5节中讨论)作为优化方案。恢复方案需要知道CSC/物体的半径,才能发挥作用。在校准USMT的过程中,我们有一个已知半径的标准CSC。然而,各种物体的半径是未知的。如果不知道物体的半径,我们就不能恢复差异,这可能会大大影响我们的结果。因此,我们决定不在物体的校准中使用四点法及其恢复方案。另外,四点法的表现将需要30到40秒。绕过它将加快我们的校准速度。

4.4.2.2 理论方法

在这一部分,将介绍我们为物体校准所实施的方法。我们可以让末端效应器拿着物体进行校准,或者让末端效应器拿着USMT进行校准。这两种情况都取决于工作对象的状况。例如,由于某些原因,如物体的大小或重量,该物体可能无法拿起。在这里,我们将首先介绍物体持有的情况。
这种特殊的校准方法是为同轴和对称形状的物体设计的,这些物体也许会被安装在ABB机械臂端点上的末端效应器夹住。在这种情况下,USMT的校准将给我们提供两个激光束交叉点的世界位置。它将被用于方程(13)的D部分。
首先,物体将在U形校准工具内绕行一圈
一圈。然后抬起工具20毫米,再走一圈,并记录法兰盘的点。这一部分的细节在第4.4.1.3节测量工具的调整中说明。通过这样做,可以计算出物体的方向中心点,正如我们在同一章节中所说的那样。
其次,根据方向,机器人手臂的位置将被调整,以便物体的中心点将与图63所示的激光横梁垂直。在这个位置上,物体处于我们在第4.4.1.5节中讨论过的完美情况下恢复。采用这种校准方式的好处是,我们不必处理我们在恢复部分讨论的恢复距离问题。由于物体的半径或直径是未知的,所以使用恢复方法不能非常准确地计算恢复距离。另一方面,四点法将需要大量的时间来校准。通过这种方式的校准,我们将去U形校准工具至少四轮。根据情况和要求,回合数可以更多。
然后,该工具要在U形校准工具内再走一轮,高度为第一轮的高度。在这一轮中,使用第4.4.1.3节测量工具调整的方法,在激光束的交叉点上,工具的中心点将处于第一轮的高度。
第三,根据第4.4.1节测量工具校准中的交叉点平面和步骤1中的中心点方向,物体将沿着其中心点向上移动,如图64所示。在激光没有探测到任何东西的时候,物体的端点就在激光束的交叉点上。机器人将记录法兰盘的位置,在公式( 13 )中表示为C部分,以及法兰盘的方向,在公式( 13 )中表示为A部分。由于A、C和D部分都是前几步中已知的,通过使用方程(13),我们可以计算出工具端点的位置(结果),相对于B部分来说,这个校准将给我们提供物体端点的位置和相对于法兰盘的方向,这正是我们想要的。
image.pngimage.png
对于U型校准工具由机器人持有的情况,概念和程序基本上是相同的。不同的是,我们需要得到的变量矩阵是不同的。在这种情况下,A部分和C部分仍与我们之前讨论的相同。B部分可以从第4.4.1节测量工具校准中计算出来,即USMT的校准中横梁的世界位置。这一次,D部分是用公式( 13 )计算出的工具端点位置(结果)。这个校准将给我们提供物体端点位置和相对于世界的方向。

4.4.2.3 误差的来源

当使用U形校准工具时,有几种可能的偏移可能会导致我们的结果出现错误。USMT和工作对象的校准过程是相似的。它们都需要圆柱形校准器/工作对象在U形校准工具的区域内遵循一个任意的路径。因此,在校准USMT时,对这些偏移的分析和我们的解决方案是相同的。更多的细节,请参考第
4.4.1.6 误差的来源。

4.4.2.4 Program Design

image.png
U形物体校准的程序设计与第4.4.1.7节程序设计中的U形测量工具校准相似。其流程图如图65所示。在Python程序设计中,不同之处在于使用矩阵操作的TCP计算,而不是四点法算法。ABB程序设计的不同之处在于,机器人应完美地调整姿势以重复圆周轨迹。总的来说,在第4.4.1.7节程序设计中,U形物体校准的程序设计比U形测量工具校准的程序设计要简单。

Chapter V: 产品性能评估 Product Performance Evaluation

在这一章中,对我们的校准系统的性能进行了评估。我们同时考察了物理组件和算法。对于算法的评估,我们用模拟来比较我们的四点法算法和ABB的算法,如下一节所示。对于校准方法的评估,我们用表盘指示器来测试实验中的校准精度,如第5.2节U型传感器校准评估中所示。我们将提出一些概念,包括计算出的TCP的误差、TCP的精度、校准结果的可重复性和校准的精度,来解释评价结果。

5.1 四点法评估

5.1.1 概述

四点法在第4.3.1节测量工具校准和第4.4.1节测量工具校准中都被用来获取工具中心点。它是唯一一种基于机器人基座坐标或法兰厂坐标来获取空间位置的方法。U型测量工具和激光测距传感器测量工具从根本上说都是通过四点法进行标定的。因此,四点法算法的性能直接影响到这些测量工具在工作对象校准中的性能。评估四点法算法的性能可以帮助我们优化算法本身,最终提高校准的精度。另一方面,我们创建了自己的四点法算法,该算法与ABB的算法不同。通过比较我们的算法和ABB的算法的性能,我们可以更好地理解我们的算法。 在下面的部分,我们将通过计算TCP的误差和TCP的准确性来分析我们的四点法算法和ABB的算法的性能。在评估我们的四点法算法之前,先介绍这些概念。

5.1.2 计算的TCP的误差

公式(14)是TCP的一般方程,与4.3.1.3节中的公式(5)相同。 [image.png]是与基座坐标系有关的固定尖端点的位置。当四点法算法计算出TCP时,机器人的姿势和公式(14)左侧的TCP是已知的。四点法的输入对于校准来说并不完美。这意味着带着工具的机器人不能接近一个固定的尖端点的准确位置,所以[image.png]的值在每个姿势下都是不同的。
image.png
图66中显示了一个例子。P1的位置可以通过公式(14)计算。P2、P3和P4的位置也将用同样的方法计算。

image.png
然后可以通过公式( 15 )所示的P1、P2、P3和P4的位置向量的平均值来计算位置向量Pf。 Pf是图66中的固定尖端点
image.png
得到Pf的位置矢量后,Pf和Pi之间的距离di可以通过公式(16)计算出来。

在得到Pf和每个点Pi之间的距离后,计算出的TCP的平均误差是这些距离的平均值,如公式(17)所示。计算出的TCP的最大误差是这些距离的最大值,如公式(18)所示。一般来说,在完美的情况下,每个接近点的位置应该是一个精确的点,而计算出的TCP的误差就是来自这些接近点。计算出来的TCP的误差可以在每一个四点法计算中确定。这是了解校准性能的一种方法,因为四点法的输入数据错误可能会导致接近点位置的明显差异。例如,当机器人带着工具通过手动点动接近固定的尖端点时,其平均误差通常为0.4毫米左右。


计算出来的TCP的平均误差 =
image.png


image.png

5.1.3. TCP的精确性

TCP的精度是指计算出的TCP的位置与正确的TCP的位置之间的差异。与计算出的TCP误差相比,TCP的精度是了解四点法性能的一个更直接的方法,因为四点法的目标是找到最合适的TCP。在实际的校准应用中很难确定TCP的精度,因为没有办法得到真实的TCP位置。然而,我们可以在理论模型中假设一个正确的TCP,并在软件模拟中分析TCP的准确性。

5.1.4 ABB四点法算法与我们的算法比较

在这一部分,我们通过计算TCP测试的误差和TCP测试的准确性来分析我们的四点法算法和ABB的算法的性能。有几个步骤可以得到图67中计算出的TCP的准确性和误差。image.png
首先,假设TCP是[10, -20, 40],这意味着TCP位于
这意味着TCP位于距离安装法兰盘40毫米的直线上,沿手腕坐标系的X轴为10毫米,沿手腕坐标系的Y轴为-20毫米。
其次,每个姿势的信息可以通过机器人在工具定位模式下的点动来获得。
工具定位模式,可以获得每个姿势的信息。在每个姿势中,数据包括法兰盘的位置(在x轴、y轴和z轴)和工具的方向,以四元数形式(q1、q2、q3和q4)表示。这些数据是四点法算法的输入。表5是四个样本的例子。
第三,为了模拟一定范围内的任意误差,我们创建了一个程序,使用具有一定标准偏差的高斯分布生成随机误差,如图68所示。然后我们将随机误差加入到位置和方向矩阵中(四元数首先被转换为欧拉角)。
第四,我们在ABB程序和我们的Python程序之间建立一个TCP/IP套接字通信。我们调用ABB的内部四点法函数。然后,我们创建了5000个不同的机器人姿势集样本,每个样本包括四个机器人姿势,并产生误差。一个样本集的结构如图69所示。我们用同样的样本集来运行我们的四点法程序和ABB的内部四点法程序。之后,记录结果,包括输入数据集、精度和计算出来的TCP的平均误差。最后,我们用不同的误差标准差重复上述程序。
image.png
image.png
image.png
之后,我们创建了几个具有不同标准偏差误差的数据集。每一个都包括5,000个准确度值和5,000个来自计算TCP值的误差。我们用每个数据集作为输入,分别运行ABB的算法和我们的算法。从这两种算法中可以计算出平均值、最大值、最小值和标准偏差。
最后,数据被移入Matlab。图70显示了TCP精度和输入误差的标准偏差之间的关系。图71显示了计算出的TCP的平均误差和输入误差的标准偏差之间的关系。误差条用于反映Matlab中每个标准偏差的平均值、最大值和最小值。 根据该图的趋势,TCP的准确性和计算出的TCP的误差都与输入误差的标准差呈线性变化。最重要的是,从图70和图71中可以看出,我们的算法结果比ABB内部程序的精度更高。因此,我们的四点法算法的性能完全优于ABB的内部程序。
image.png
image.png

5.2 U型传感器校准评估

5.2.1 概述

在这一节中,我们用实验的方法来评估U型传感器的
校准。在评估U型传感器校准之前,我们介绍了重复性、精度和持续时间的概念。

5.2.2 校准结果的可重复性

我们定义,校准结果的可重复性是指校准结果的可重复性。以多次校准一个稳定状态的物体为例,如果校准结果接近,那么结果将显示出高度的可重复性。具体来说,在实验中,每次校准时没有任何变化。然后将每次校准的结果,即位置矢量记录为𝐏𝟏,𝐏𝟐,⋯𝐏𝐧。然后,平均位置矢量𝐏𝐟可以通过公式( 19 )计算。
image.png
在得到Pf的位置矢量后,校准的重复性,也就是标准偏差的结果,可以用公式( 20 )计算。
image.png
我们的校准系统的可重复性包括ABB机器人的重复精度、激光测距传感器的重复精度、通信延迟的可重复性以及传感器响应的可重复性。
机器人的重复精度,激光测距传感器的重复精度,通信延迟的重复精度,以及传感器响应的重复精度。其中一些部分在前面的章节中分析了误差的来源。在实验中,我们记录了六组数据。图72是实验中U型校准结果的重复性分布。图中的x轴、y轴和z轴是x、y和z位移的标准偏差。在计算中,x-位移的标准偏差是6.4微米。y-位移的标准偏差是4.4微米。z-位移的标准偏差是7.0微米。因此,校准结果的总体可重复性为10.5微米。这表明误差的可重复性很小,误差几乎不会影响校准结果的可重复性。
image.png

5.2.3 校准的精度

与校准结果的可重复性不同,我们定义的校准精度是机器人基于校准的坐标系移动到相同位置的可重复性。在实验中,我们使用表盘指示器来测试校准的精度。其程序如下所示
1)我们对机器人进行编程,让工件接触指示器,并记录该位置,该位置是基于校准后的坐标系,这样表盘指示器就有了读数,我们记录该读数。
2)然后我们随机地改变物体的位置和方向。
3)我们校准物体的新坐标系。
4)我们根据校准的坐标系使机器人走到相同的位置。再次记录表盘指示器的读数。
5) 然后,我们重复第二步至第四步的程序,以找到表盘指示器的下一个读数,共六次。
6)最后,这些读数的标准偏差被定义为校准的精度。请注意,可以使用多个表盘指示器来记录多个方向的校准精度。
许多方向的校准精度。
图73是实验中的六组读数记录。我们得到X、Y和Z位移的标准偏差分别为168.5微米、141.8微米和43.6微米。总的来说,距离的标准偏差是224.5微米。这个结果还不够好。因此,我们开始分析来自校准的误差来源。我们调整测量工具,并对4.4.1节中提到的U型测量工具校准进行恢复。在优化了我们的U型校准系统后,校准的精度总是在0.2mm以内,达到了我们的最终目标。
image.png

5.2.4 整个校准的持续时间

我们定义整个校准的持续时间是指从校准开始到结束的时间成本。在全速状态下,U型传感器校准的持续时间约为30秒。在手动模式下,U型传感器校准的持续时间约为2-3分钟。持续时间是有限的,因为机器人达到的速度越高,通信延迟带来的偏移就越大,这将在第4.4.1.6节错误来源中进行分析。这将影响校准的精度和可重复性,所以我们应该在持续时间和其他性能之间找到一个平衡点。

5.3 激光测距传感器校准评估

5.3.1 概述

在本节中,我们使用实验方法来评估激光测距传感器的校准。激光测距传感器的校准有两个部分。第一部分是关于三平面校准方法。第二部分是边缘检测校准方法。我们在第二部分中使用的具体案例是拂尘校准。由于时间和条件有限,我们无法评估其性能。
重复性、精度和持续时间的概念已经在上一节中介绍过了,所以下面几节直接是我们结果的细节。

5.3.2 校准结果的可重复性

对于三平面校准方法,校准结果的可重复性可以忽略不计,大约为12微米。这意味着误差的可重复性几乎不影响校准结果的可重复性。

5.3.3 校准的精确度

对于三平面校准方法,校准结果的精度在150微米以内,这比U型传感器校准的性能要好。

5.3.4 整个校准过程的时间

对于三平面校准方法,在全速状态下整个校准的持续时间约为10秒。在手动模式下,整个校准的持续时间约为30秒。该持续时间是有限的,因为机器人需要在不移动的情况下读取传感器读数。否则,由于机器人的振动,传感器的读数将不稳定。

对于边缘检测校准方法,在全速状态下整个校准的持续时间约为8秒,是所有校准中最快的。在手动模式下,整个校准的时间约为20秒。这个持续时间是有限的,因为机器人运动的速度越高,在扫描边缘时,传感器的读数就越少,这就降低了校准结果的分辨率。

Chapter VI: Conclusion

我们成功地设计了一个新的工作对象校准系统并建立了一个原型。根据原型机的性能,我们实现了以下要求。

  1. 该系统可以校准比市场上现有的更多类型的工件,如应用搅拌棒校准。
  2. 在该系统中,两种校准方法都达到了合格的精度,即0.2毫米。
    a. 激光测距传感器校准方法可以达到0.15毫米的精度。
    b. b. U型工具校准方法可以达到0.2毫米的精度。
  3. 校准系统的运行时间持续了一个合格的时间。
    a. 激光测距传感器校准的运行时间在全速模式下持续约10秒
    b. U形校准法的运行时间持续约30秒
    在实现上述目标之前,我们必须对这两种测量工具进行校准。我们的四点法算法的出色表现也导致了它的成功。通过测量和计算,我们得到了以下结果。
  4. 在激光传感器测量工具的校准中,其精度约为0.1毫米。
  5. 在U形测量工具的校准中,精度也在0.1毫米左右。
  6. 我们的四点法计算的TCP的精度比ABB的四点法算法计算的精度高10-15%。