工业机器人坐标系详解(基于六轴串联机器人和SCARA机器人)

发布时间 2023-07-31 10:13:02作者: 一瓶没有脾气的汽水

工业机器人的坐标系

机器人的坐标系是重中之重,它是理解机器人运动的基础。机器人所有运动的点位都是建立在坐标系的基础之上,所以如果坐标系不理解,那么就很难真实了解机器人是如何运动的。

什么是坐标系?

我们需要移动机器人来工作,但是如何让机器人移动?当然我们可以单独控制机器人的每根轴来动作,但是这样很难完成任务。

所以我们为了让机器人在空间内更方便的移动,在机器人所在空间中建立不同的坐标系来方便控制机器人。有了坐标系就可以方便地命令机器人朝前后左右移动。

如下表,每个控制系统品牌都有自己的坐标系划分方式。

品牌 坐标系划分
ABB 基坐标、工件坐标、工具坐标、大地坐标、用户坐标
KUKA 轴坐标、世界坐标、基坐标、工具坐标
安川 关节坐标、圆柱坐标、工具坐标、用户坐标

所以对于坐标系的划分是根据方便用户操作和控制系统本身功能的需求来划分的,并没有一个完全统一的标准。

纳博特控制系统将坐标系划分为了关节坐标、直角坐标、工具坐标、用户坐标共四种坐标系

关节坐标系

关节坐标系就是以机器人的关节为轴的坐标系。如六轴机器人,关节坐标系共 6 轴,分别为 J1-J6,就是机器人本体的第 1-6 轴。

:::note ?怎么动?
使用关节坐标系时移动的是机器人每根关节轴。
:::

零点位置

要理解坐标系,首先要知道每个坐标系总有一个所有轴都为 0 的点,也就是坐标系原点。

但是对于关节坐标系来说,这个点叫做零点位置。也就是机器人的第 1-6 轴的数值均为 0 的位置。

在纳博特控制系统中对于同一个种类的机器人,它的零点位置是固定的,不论机器人的大小。

下图为六轴机器人的零点位置和正方向标示图。

六轴机器人零点

下图为 SCARA 机器人的零点位置和正方向标示图。

SCARA机器人零点

:::caution 不是所有轴为 0 的点就叫零点!
零点位置是专用于机器人关节位置数值为 0 的名词。

直角、工具、用户等其它坐标系轴数值为 0 的点均不叫零点位置!
:::

:::tip 要保证零点正确
当机器人发生剧烈碰撞或其他故障后,零点位置可能会丢失,需要重新设置!

若零点位置有问题,会导致机器人精度丧失,无法正常运动。
:::

轴的值

关节坐标系的 J1 轴值为 30,表示机器人的第 1 轴相对于零点位置向着正方向旋转了 30 度。J1 轴为-30,则表示机器人的第 1 轴相对于零点位置向负方向旋转了 30 度。

轴的方向

六轴机器人正方向

对于一个类型的机器人来说,每一根轴的正方向和负方向也是固定了的,也就是说当操作机器人的某根轴正方向旋转时,它必须按照预定的方向旋转,否则会造成机器人无法走到正确的位置。

如六轴机器人和 SCARA 机器人,每一根轴的正方向如上面的零点位置和正方向标示图中箭头方向所示,在纳博特控制系统中设置其它类型的机器人时也会有类似的标示图。

直角坐标系

直角坐标系是以机器人基座中心为原点,机器人正前方为 X 轴正方向,正上方为 Z 轴正方向,面向机器人时右方为 Y 轴正方向的空间坐标系。直角坐标系的 XYZ 轴的数值均为机器人末端相对于原点的偏移值,单位为 mm。

直角坐标系1

直角坐标系2

:::note 举个例子
例如直角坐标中 XYZ 的值为 X:100,Y:50,Z:1000

说明机器人的末端点(法兰中心)相对于基座中心在 X 轴正方向偏移量为 100mm,Y 轴负方向也就是面向机器人时的左方偏移量为 50mm,Z 轴正方向的偏移量为 1000mm。
:::

除 XYZ 偏移量外,直角坐标系根据机器人的类型不同,一般还会有姿态轴,如六轴机器人分为 ABC 三个姿态轴,SCARA 机器人只有一个 U 姿态轴,三轴直角坐标机器人则没有姿态。

六轴机器人的 A 姿态轴是以末端为中心,机器人绕 X 轴旋转;B 姿态轴是绕 Y 轴旋转;C 姿态轴是绕 Z 轴旋转。值为旋转的弧度值。

SCARA 机器人的 U 姿态轴就是以丝杆末端为中心,机器人绕 Z 轴进行旋转。

工具坐标系

机器人工作必须要携带工具,为了方便工具的使用,我们需要建立工具坐标系 TCS(Tool Coordinate System)。

抓东西

如上图我们机器人的末端安装了一个抓手,我们需要在不同的平面抓取工件。当工件位于水平面时,我们可以方便地调整夹爪的姿态垂直朝下,然后使用直角坐标系的 Z 轴向下移动即可抓取。

那么如果像图二一样,工件位于斜面,需要夹爪垂直于工件抓取,使用直角坐标系就很困难了。此时我们需要让机器人能够沿着夹爪的方向移动,按下 Z 轴,夹爪就会朝着工件运动,那么这时候就需要工具坐标系了。

工具坐标系轴的值

直角坐标系中各轴的值是机器人末端相对于基座中心的偏移量。工具坐标系是将末端从机器人的法兰中心移动到了工具末端,所以对于工具坐标系来说,各轴的值是工具末端相对于机器人基座中心的偏移量。

工具坐标系轴的方向

工具坐标系定义

如上图是我们对工具坐标系的定义,工具的末端中心点称为 TCP(Tool Center Point)点。沿着工具末端朝前的方向为 工具 Z 轴正方向。工具 X 轴垂直于工具 Z 轴,具体方向根据设定的工具坐标系参数而定,再根据右手法则即可得出 Y 轴的方向。

工具坐标系同样也有姿态轴,由于将末端点移动到了 TCP 点,所以旋转姿态轴是以 TCP 点为中心,分别绕工具 XYZ 来旋转的。

工具坐标系各个轴是绑定在工具末端的,也就是说它们的方向会随着工具末端姿态的变化而变化。

具体的工具坐标系定义方式将在参数设定部分讲解。

:::note TCP
当机器人没有携带工具时,TCP 点即为机器人本体的末端,也就是在法兰中心的位置。

此时法兰盘中心指向法兰盘定位孔方向为工具 X 轴正方向,垂直法兰向外为工具 Z 轴正方向,最后根据右手法则即可判定 工具 Y 轴方向。如下图。

无工具
:::

切换到工具坐标系后,我们操作机器人时,机器人的末端就会按照工具坐标系各轴的方向移动了。

用户坐标系

用户坐标系是在机器人之外由用户自己定义的坐标系。例如现在有两个相同的工作台 A 和 B,我们希望在这两个工作台进行相同的加工动作。如果按照常规的方式,需要分别在两个工作台上编写加工程序,非常麻烦,而且随着工作台的增加,操作人员的工作量也随之剧增。

工作台AB

那么有没有一个简单的方式,让我们仅需要在 A 工作台上编写好程序后,仅需简单修改参数就可以让机器人在其它的工作台执行相同的动作?这就是用户坐标系的主要用处。

我们仅需要在 A 工作台设定一个用户坐标系,然后在用户坐标系下编写机器人的作业程序,此时机器人所有运动的位置均是基于这个用户坐标系的。我们只需偏移用户坐标系从 A 工作台到 B 工作台的相同位置,机器人就会到 B 工作台执行相同的动作。

工作台A坐标系

偏移坐标系

偏移结果

用户坐标系轴的值

用户坐标系中所有位置点的值均是相对于用户坐标系原点的偏差值。当用户坐标系整体偏移或旋转,所有的位置点也会随之偏移和旋转。

用户坐标系原点位置是由用户自行设定的。

点A偏移

:::note 没有设定过的用户坐标系
当一个用户坐标系还没有进行设定时,该用户坐标系与直角坐标系是重合的。
:::

用户坐标系轴的方向

用户坐标系各轴的方向均由用户自行设定。

:::caution 遵循右手法则
无论用户如何设定用户坐标系各轴的方向,必须遵循右手法则
:::

用户坐标系原点位置和轴的方向设定方法会在后面参数设定的部分详细讲解。

位姿

机器人在空间中的位置和姿态。

总结 ?

坐标系 运动方式 数值为 0 的位置 轴的数值
关节坐标系 机器人本体的轴单独旋转 零点位置 轴转动的角度
直角坐标系 机器人末端(法兰中心)沿着直角坐标轴方向移动 基座中心 机器人末端相对于基座中心各轴的距离
工具坐标系 工具末端(TCP)沿着设定的工具各轴方向移动 基座中心 TCP 点相对于基座中心各轴的距离
用户坐标系 工具末端沿着用户设定的 XYZ 方向移动 用户自定义原点 TCP 点相对于用户自定义原点各轴的距离