工业机器人用户坐标系是以机器人坐标系为参考,通过平移X、Y、Z生成用户坐标系原点,而后依次转动A、B、C三个轴得到。这里的机器人坐标系以底座为中心原点。

除了用户坐标系之外,工业机器人还有几个常见的直角坐标系:

  • 法兰坐标系:以法兰中心为原点,z轴垂直法兰面向外。
  • 工具坐标系:以法兰坐标系为参考,通过平移X、Y、Z生成工具坐标系的原点(Tool Center PointTCP), 而后依次转动A、B、C三个轴得到。

尽管从概念上讲,用户坐标系本身似乎和工具无关,但是用户坐标系却离不开工具坐标系。

首先,用户坐标系的建立需要指定TCP。这一点至关重要,根据前面的描述,用户坐标系是以机器人坐标系为参考平移原点后依次转动A、B、C三个轴得到,这就意味着当给A一个增量对用户坐标系整体偏转的时候,用户坐标系会绕着其自身的z轴进行转动。如果建立用户坐标系的时候不指定TCP,则会默认使用法兰中心(一般都会表示成tool0),而这也意味着,给A值施加一个角度增量,会导致用户坐标系是绕着建用户坐标系时的法兰中心进行旋转。

其次,建立完用户坐标系后,移动机器人到用户坐标系中的一个位置,也需要同时指出是机器人的哪个工具移动到该位置。这可以类比成,“把手臂放到产品的位置(50,100,80)上”这种描述并不够,我们需要更准确的描述:“把手臂的哪个指尖放到产品的位置(50,100,80)上”。这也是为什么很多机器人的运动编程指令需要指出工具和坐标系的原因。比如国产埃夫特机器人的点到点指令类似于:

MLin(
   Point1,  // 目标点坐标
   V500,    // 速度500
   Z50,     // 逼近区域50
   tool0,   // 工具:工具0
   Wobj0    // 坐标系:世界坐标系
)

用户坐标的含义

在用户坐标系中,(X,Y,Z,A,B,C)描述了工具的TCP在空间中的位置和姿态,初始情况下,假设TCP所代表的工具坐标系与特定的用户坐标系重合,然后平移得到新的原点、再绕轴旋转得到新的姿态:

  • (X,Y,Z):工具的位置,即 TCP在用户坐标系中的三维坐标点
  • (A,B,C):工具的姿态,即 TCP绕各个轴的旋转角度

注意:(A,B,C)所代表的含义,在不同机器人中会有所不同,在EFORT机器人中含义如下:

* A:绕 Z 轴旋转的角度(偏航 Yaw)。
* B:绕 Y 轴旋转的角度(俯仰 Pitch)。
* C:绕 X 轴旋转的角度(侧倾 Roll)

当涉及到3D情况,旋转的顺序非常关键,因为欧拉角的旋转是非交换的。通常在X-Y平面的2D视觉引导中,只需要转动A轴即可。

特别注意上述用户坐标分量的含义。我们可以推导出,对于用户坐标(X,Y,Z,A,B,C),如果持续给A角一个增量,那么就会观察到TCP点维持不动,但是绕着经过TCP点的虚拟轴进行旋转。例如,我们在EStun的6轴机器人中,新建tool9,并使用tool9建立一个用户坐标系uf9(下图中橙色线代表我们建立的用户坐标系):

UFrame-Origin.jpg

再其中建立三个位姿:

  • P21:P21-Coord.jpg
  • P22:P22-Coord.jpg
  • P23:P23-Coord.jpg

这三个位姿只有A角发生了变化,当我们使用MoveL在三个位姿间进行移动时,会观测到顶针点位置并没有发生变化、机器人轨迹形态的旋转中心在TCP上:

改变用户坐标系的位姿-480p.mp4

用户坐标系的整体偏转

在很多场景下,机器人的工作方式不是单点抓放、单点纠偏,而是需要进行轨迹运动,比如针对来料产品表明进行涂胶、涂油、焊接等。这时候,机器人针对基准来料产品,做一个用户坐标系,然后根据视觉检测结果,对用户坐标系的整体偏转,就可以在新的用户坐标系内重放原用户坐标系内的完整轨迹。

例如下图中 \(xOy\)代表机器人坐标系;蓝色边框包裹的淡黄色矩形代表来料产品,右侧产品代表基准来料,机器人的任务是沿着来料产品的左下角向右上角画一条线(绿色箭头),\(x^{'}O^{'}y^{'}\) 代表建立在基准产品表面的用户坐标系;左侧产品代表生产过程的产品姿态。显然,我们把基准用户坐标系 \(x^{'}O^{'}y^{'}\) 整体偏转到\(x^{"}O^{"}y^{"}\) 位置即可重放轨迹。

用户坐标系整体偏转.PNG

我们可以把上面这个示意图做成坐标纸:

用户坐标系整体偏转-坐标纸.PNG

然后按如下步骤进行实验:

  • 让机器人建立一个方便操作的TCP,比如顶针、枪尖等。
  • 用该TCP在右上方\(x^{'}O^{'}y^{'}\)位置建立用户坐标系uf1。其中uf1的原点用TCP来指出。
  • 让机器人在\(x^{"}O^{"}y^{"}\)内,用TCP在产品的左下角和右上角分别记录两个点P1、P2。这两点的直线运动形成轨迹 \(P1 \rightarrow P2 \)。
  • 建立另一个坐标系uf2(拷贝自uf1), 然后进行整体偏转

    // 拷贝uf1到uf2
    uf2.X = uf1.X; 
    uf2.Y = uf1.Y;
    uf2.Z = uf1.Z; 
    uf2.A = uf1.A;
    uf2.B = uf1.B;
    uf2.C = uf1.C;
    
    // 坐标系整体偏转
    uf2.X = uf1.X + 40; 
    uf2.Y = uf1.Y + 40;
    uf2.A = uf1.A + 90;

最后在uf2中,以该TCP重新运行轨迹 \(P1 \rightarrow P2 \), 可以观测到机器人沿着左侧\(x^{"}O^{"}y^{"}\) 中产品的对角线移动。

标签: 工业机器人, 用户坐标系, 视觉引导

已有 2 条评论

  1. 对生命本质的追问充满哲学思辨。

  2. 以终为始的思考方式为行业指明方向。

添加新评论