机器人常见数据格式
笛卡尔空间位置数据格式
笛卡尔空间位置数据是机器人末端执行器在三维空间中位置和姿态的数学表示。各厂商采用不同的姿态表示方法,但通常都包含位置坐标(X、Y、Z)和姿态信息。
若不加以特别注明,则默认:
|
ABB
ABB机器人采用格式[X, Y, Z, q1, q2, q3, q4],其中. 位置使用毫米为单位,用单位四元数表示姿态。四元数中q1为实部,q2、q3、q4分别为xyz方向上的虚部。虽然在示教器上可以读取到ZYX欧拉角,但其内部的robtarget数据结构实际使用单位四元数来表示姿态。
ABB的robtarget数据类型包含以下组件:
组件名称 |
数据类型 |
说明 |
trans |
pos |
用mm来表示工具中心点的位置(X、Y、Z) |
rot |
orient |
以单位四元数形式表示工具方位(q1、q2、q3、q4) |
robconf |
confdata |
机器臂的轴配置(cf1、cf4、cf6和cfx) |
extax |
extjoint |
外部轴数据,用于控制外部轴的位置 |
FANUC
FANUC机器人使用格式[X, Y, Z, W, P, R]表示位置和姿态数据,其中(X, Y, Z)为位置坐标,(W, P, R)为姿态角度。采用xyz固定角表示姿态,也被称为RPY角。
系统中的位置和姿态数据通过用户坐标系和工具坐标系进行管理。用户坐标系允许用户定义工作区域的参考坐标系,而工具坐标系则定义了工具末端的位置和姿态。
KUKA
KUKA机器人使用[X, Y, Z, A, B, C]格式,用zyx欧拉角表示姿态。KUKA系统通过POSITION、XYZWPR、XYZWPREXT、JOINTPOS和PATH等数据类型来表示位置数据。
KUKA的POSITION数据类型包含以下组件:
组件类型 |
数量 |
单位 |
说明 |
REAL值(位置) |
3个 |
毫米 |
表示X、Y、Z位置坐标 |
REAL值(方向) |
3个 |
度 |
表示W、P、R方向角度 |
CONFIG数据类型 |
1个 |
由4个布尔值和3个整数组成,代表关节位置和转弯数的配置 |
ROKAE
ROKAE机器人采用[X, Y, Z, q1, q2, q3, q4]格式,用单位四元数表示姿态。其中q1为单位四元数实部,q2、q3、q4分别为xyz方向上的虚部,这与ABB的格式相似。
速度数据格式
机器人速度数据定义了机器人运动的快慢程度,包括关节空间速度和笛卡尔空间速度两种类型。不同厂商在速度数据的表示和控制方面采用了不同的策略。
ABB
ABB使用speeddata数据类型来定义机器人运动的速度参数。该数据类型包含四个主要组件:v_tcp(工具中心点速度,单位mm/s)、v_ori(TCP重新定位速度,以度/秒表示)、v_leax(线性外部轴速度,单位mm/s)和v_reax(旋转外部轴速度,以度/秒表示)。
ABB的speeddata数据类型包含以下组件:
组件名称 | 数据类型 | 单位 | 说明 |
---|---|---|---|
v_tcp |
num |
mm/s |
工具中心点的速率。如果使用固定工具或协调外轴,则规定相对于工件的速率 |
v_ori |
num |
°/s |
TCP的重新定位速率。如果使用固定工具或协调,则规定相对于工件的速度 |
v_leax |
num |
mm/s |
线性外轴的速率 |
v_reax |
num |
°/s |
旋转外轴的速率 |
系统预定义了用于移动机械臂和外轴的速度数据,具体如下:
名称 | TCP速度 | 方向 | 线性外轴 | 旋转外轴 |
---|---|---|---|---|
v5 |
5 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v10 |
10 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v20 |
20 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v30 |
30 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v40 |
40 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v50 |
50 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v60 |
60 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v80 |
80 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v100 |
100 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v150 |
150 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v200 |
200 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v300 |
300 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v400 |
400 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v500 |
500 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v600 |
600 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v800 |
800 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v1000 |
1000 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v1500 |
1500 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v2000 |
2000 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v2500 |
2500 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v3000 |
3000 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v4000 |
4000 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v5000 |
5000 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v6000 |
6000 mm/s |
500°/s |
5000 mm/s |
1000°/s |
v7000 |
7000 mm/s |
500°/s |
5000 mm/s |
1000°/s |
vmax |
取决于机器人型号 |
500°/s |
5000 mm/s |
1000°/s |
FANUC
移动速度控制:
FANUC支持多种移动速度控制方式,在移动中可对运行程序的关节插补和直线插补运动规定移动倍率。移动倍率范围值为1~100%。移动中也可以运行程序速度为设定值减慢处理。
移动速度有以下几种表示方法:
-
百分比表示(%):相对于最大速度的百分比,不需要位置变量,不使用辅助功能。
-
时间表示(秒):在0.1~3600秒范围内可用四位小数指定。移动时间包含加速和减速时间,在进行PTP移动时,所有关节同时移动指定时间。
-
速度表示(mm/sec):在0.1~32000mm/sec范围内可用直角坐标系速度指定。
-
进给速度表示(cm/min):在0.1~12000cm/min范围内可用进给速度指定。
运动类型控制:
FANUC提供了灵活的运动控制方式,支持关节插补运动和直线插补运动:
-
关节插补运动(JP):例如JP[1] 50% FINE表示50%速度精确定位
-
直线插补运动(LP):例如LP[1] 100mm/sec FINE表示线性运动100mm/s精确定位
-
圆弧插补运动(CP):用于圆弧轨迹运动控制
YASKAWA
YASKAWA机器人支持三种主要运动方式:MOVJ(关节插补)、MOVL(直线插补)、MOVC(圆弧插补),每种方式均有专属参数和速度单位。
MOVJ |
功能 |
以关节插补方式向示教位置移动。 |
|
附加项目 |
位置数据、基座轴位置数据、工装轴位置数据 |
画面中不显示 |
|
VJ=(再现速度) |
VJ:0.01~100.00% |
||
PL=(定位等级) |
PL:0~8 |
||
NWAIT |
|||
UNTIL 文 |
|||
ACC=(加速度调整比率) |
ACC:20~100% |
||
DEC=(减速度调整比率) |
DEC:20~100% |
||
使用例 |
MOVJ VJ=50.00 PL=2 NWAIT UNTIL IN#(16)=ON |
||
MOVL |
功能 |
以直线插补方式向示教位置移动。 |
|
附加项目 |
位置数据、基座轴数据、工装轴位置数据 |
画面中不显示 |
|
V=(再现速度)、 VR=(姿态的再现速度)、 VE=(外部轴的再现速度、 VMAX=(VMAX速度) |
V:0.1~1500.0 mm/秒+1~9000cm/分、 VR:0.1~360.0度/秒、 VE:0.01~100.00%、 VMAX:50~100% |
||
PL=(定位等级) |
PL:0~8 |
||
CR=(转角半径) |
CR:0.1~6563.5mm |
||
NWAIT |
|||
UNTIL 语句 |
|||
ACC=(加速度调整比率) |
ACC:20~100% |
||
DEC=(减速度调整比率) |
DEC:20~100% |
||
使用例 |
MOVL V=138 PL=0 NWAIT UNTIL IN#(16)=ON |
||
MOVC |
功能 |
以圆弧插补方式向示教位置移动。 |
|
附加项目 |
位置数据、基座轴数据、工装轴位置数据 |
画面中不显示。 |
|
V=(再现速度)、VR=(姿态角再现速度)、VE=(外部轴再现速度) |
与MOVL相同。 |
||
PL=(定位等级) |
PL:0~8 |
||
NWAIT |
|||
ACC=(加速度调整比率) |
ACC:20~100% |
||
DEC=(减速度调整比率) |
DEC:20~100% |
||
COORD=(圆弧姿势控制指定) |
COORD:0~1 |
||
FPT:圆弧终点指定 |
|||
使用例 |
MOVC V=138 PL=0 NWAIT |
目前我们将速度数据写在了D变量里,导致机器人运行速度和下图表示的实际不符。 |
KUKA
KUKA机器人支持三种主要运动类型:PTP(点到点运动)、LIN(直线运动)和CIRC(圆弧运动),每种运动类型都有相应的速度参数设置方式。
PTP:
PTP运动采用关节空间运动,通过控制各个轴的速度百分比实现精确定位。
参数类型 | 参数名称 | 取值范围 | 说明 |
---|---|---|---|
速度控制 |
$VEL_AXIS[x] |
1~100% |
控制各个轴的速度百分比 |
加速度控制 |
$ACC_AXIS[x] |
系统定义 |
针对每个轴的加速度控制 |
LIN/CIRC:
轨迹运动采用笛卡尔空间运动,速度参数更加丰富,支持线性速度和姿态速度的独立控制。
参数类型 | 参数名称 | 单位 | 说明 |
---|---|---|---|
速度控制 |
$VEL.CP |
m/s |
轨迹速度,控制TCP在空间中的线性运动速度 |
$VEL.ORI1 |
°/s |
回转速度,控制绕A和B轴的姿态旋转速度 |
|
$VEL.ORI2 |
°/s |
转速,控制绕C轴(工具X轴)的旋转速度 |
|
加速度控制 |
$ACC.CP |
m/s² |
轨迹加速度,控制线性运动的加减速 |
$ACC.ORI1 |
°/s² |
回转加速度,控制姿态变化的加减速 |
|
$ACC.ORI2 |
°/s² |
转速加速度,控制绕工具轴旋转的加减速 |
ROKAE
ROKAE机器人系统提供了统一的speed指令来控制机器人的运动速度,该指令定义机器人和外部轴的运动速度。
speed指令包含以下核心参数:
参数名 |
数据类型 |
参数说明 |
取值范围 |
per |
double |
关节速度百分比,用于指定关节运动时的运动速度,适用于MoveAbsJ和MoveJ等命令 |
1% ~ 100% |
tcp |
double |
TCP线速度,定义工具中心点的线速度 |
0.001 mm/s ~ 7000 mm/s |
ori |
double |
空间旋转速度,定义工具的旋转速度 |
0.001°/s ~ 500°/s |
exj_l |
double |
外部轴线速度,定义外部直线轴的运动速度 |
0 mm/s ~ 2000 mm/s |
exj_r |
double |
外部轴角速度,定义外部旋转轴的运动速度 |
0°/s ~ 300°/s |
系统预定义了常用的速度变量,具体如下:
名称 | 关节速度百分比 | TCP线速度 | 空间旋转速度 | 外部轴角速度 | 外部轴线速度 |
---|---|---|---|---|---|
v5 |
1% |
5 mm/s |
200°/s |
0°/s |
0 mm/s |
v10 |
3% |
10 mm/s |
200°/s |
0°/s |
0 mm/s |
v25 |
5% |
25 mm/s |
200°/s |
0°/s |
0 mm/s |
v30 |
5% |
30 mm/s |
200°/s |
0°/s |
0 mm/s |
v40 |
5% |
40 mm/s |
200°/s |
0°/s |
0 mm/s |
v50 |
5% |
50 mm/s |
200°/s |
0°/s |
0 mm/s |
v60 |
8% |
60 mm/s |
200°/s |
0°/s |
0 mm/s |
v80 |
8% |
80 mm/s |
200°/s |
0°/s |
0 mm/s |
v100 |
10% |
100 mm/s |
200°/s |
0°/s |
0 mm/s |
v150 |
15% |
150 mm/s |
200°/s |
0°/s |
0 mm/s |
v200 |
20% |
200 mm/s |
200°/s |
0°/s |
0 mm/s |
v300 |
30% |
300 mm/s |
200°/s |
0°/s |
0 mm/s |
v400 |
40% |
400 mm/s |
200°/s |
0°/s |
0 mm/s |
v500 |
50% |
500 mm/s |
200°/s |
0°/s |
0 mm/s |
v600 |
60% |
600 mm/s |
200°/s |
0°/s |
0 mm/s |
v800 |
70% |
800 mm/s |
200°/s |
0°/s |
0 mm/s |
v1000 |
100% |
1000 mm/s |
200°/s |
0°/s |
0 mm/s |
v1500 |
100% |
1500 mm/s |
200°/s |
0°/s |
0 mm/s |
v2000 |
100% |
2000 mm/s |
200°/s |
0°/s |
0 mm/s |
v3000 |
100% |
3000 mm/s |
200°/s |
0°/s |
0 mm/s |
v4000 |
100% |
4000 mm/s |
200°/s |
0°/s |
0 mm/s |
v5000 |
100% |
5000 mm/s |
200°/s |
0°/s |
0 mm/s |
v6000 |
100% |
6000 mm/s |
200°/s |
0°/s |
0 mm/s |
v7000 |
100% |
7000 mm/s |
200°/s |
0°/s |
0 mm/s |
转角区域数据
转角区域数据定义了机器人在路径点之间的平滑过渡方式,这对于实现连续、高效的机器人运动至关重要。不同厂商采用了不同的转角处理策略。
ABB
ABB机器人使用zonedata数据类型来定义转角区域参数,该数据类型决定了机器人在路径点处的运动行为。转角区域参数可以控制机器人是在目标位置完全停止(精确定位),还是以飞越点的形式平滑通过目标位置。

ABB的zonedata数据类型包含以下组件:
组件名称 |
数据类型 |
说明 |
finep |
bool |
规定运动是否随着停止点或飞越点而结束。TRUE表示运动随停止点而结束,且程序执行将不再继续,直至机械臂达到停止点。FALSE表示运动随飞越点而结束,且程序执行将继续进行。 |
pzone_tcp |
num |
TCP区域的半径(毫米),将扩展区域定义为区域的最小相对尺寸 |
pzone_ori |
num |
工具重新定位的区域半径(毫米),将半径定义为TCP距编程点的距离 |
pzone_eax |
num |
外轴的区域半径(毫米),将半径定义为TCP距编程点的距离 |
zone_ori |
num |
工具重新定位的区域半径(度),如果机械臂正夹持工件,则意味着有关工件的旋转角 |
zone_leax |
num |
线性外轴的区域半径(毫米) |
zone_reax |
num |
旋转外轴的区域半径(度) |
系统预定义了常用的的转角区域配置,具体如下:
路径区域 |
Zone |
|||||
名称 |
TCP路径 |
方向 |
外轴 |
方向 |
线性轴 |
旋转轴 |
fine |
0 mm |
0 mm |
0 mm |
0° |
0 mm |
0° |
z0 |
0.3 mm |
0.3 mm |
0.3 mm |
0.03° |
0.3 mm |
0.03° |
z1 |
1 mm |
1 mm |
1 mm |
0.1° |
1 mm |
0.1° |
z5 |
5 mm |
8 mm |
8 mm |
0.8° |
8 mm |
0.8° |
z10 |
10 mm |
15 mm |
15 mm |
1.5° |
15 mm |
1.5° |
z15 |
15 mm |
23 mm |
23 mm |
2.3° |
23 mm |
2.3° |
z20 |
20 mm |
30 mm |
30 mm |
3.0° |
30 mm |
3.0° |
z30 |
30 mm |
45 mm |
45 mm |
4.5° |
45 mm |
4.5° |
z40 |
40 mm |
60 mm |
60 mm |
6.0° |
60 mm |
6.0° |
z50 |
50 mm |
75 mm |
75 mm |
7.5° |
75 mm |
7.5° |
z60 |
60 mm |
90 mm |
90 mm |
9.0° |
90 mm |
9.0° |
z80 |
80 mm |
120 mm |
120 mm |
12° |
120 mm |
12° |
z100 |
100 mm |
150 mm |
150 mm |
15° |
150 mm |
15° |
z150 |
150 mm |
225 mm |
225 mm |
23° |
225 mm |
23° |
z200 |
200 mm |
300 mm |
300 mm |
30° |
300 mm |
30° |
转角区域数据的数据结构如下:
< data object of zonedata >
< finep of bool >
< pzone_tcp of num >
< pzone_ori of num >
< pzone_eax of num >
< zone_ori of num >
< zone_leax of num >
< zone_reax of num >
FANUC
FANUC系统提供了两种主要的定位类型:FINE(精确定位)和CNT(连续定位)。FINE定位类型要求机器人在目标位置完全停止后,才能移向下一个目标位置移动。CNT定位类型则允许机器人接近目标位置但不在该位置停止而在下一个位置运动作业。

YASKAWA
YASKAWA采用定位等级PL和转角半径CR来控制转角区域。系统提供了FINE定位类型(机器人在目标位置完全停止后,向着下一个目标位置移动)和CNT定位类型(机器人接近目标位置,但是不在该位置停止而在下一位置运动作业)。
KUKA
KUKA机器人使用多种轨迹逼近参数来控制转角行为,不同运动类型采用不同的逼近策略。系统支持PTP(点到点)、LIN(直线)和CIRC(圆弧)三种运动方式,每种运动方式都有相应的轨迹逼近配置。
运动方式与轨迹逼近参数:
运动方式 | 适用参数 | 说明 |
---|---|---|
PTP |
C_PTP |
仅用于PTP运动的轨迹逼近,使目标点被轨迹逼近。在PTP-PTP轨迹逼近中只需要C_PTP参数 |
PTP-CP |
C_DIS, C_ORI, C_VEL |
PTP到笛卡尔路径的轨迹逼近,可组合使用多个参数 |
LIN/CIRC |
C_DIS, C_ORI, C_VEL |
笛卡尔路径运动的轨迹逼近,支持距离、姿态和速度参数 |
轨迹逼近参数详解:
参数名称 | 适用运动 | 单位 | 参数说明 |
---|---|---|---|
C_PTP |
PTP |
% |
定义PTP运动的轨迹逼近百分比,控制在多大程度上逼近目标点 |
C_DIS |
LIN/CIRC/PTP-CP |
mm |
距离参数,轨迹逼近最早开始于与目标点的距离低于$APO.CDIS值时 |
C_ORI |
LIN/CIRC |
° |
姿态参数,轨迹逼近最早开始于主导姿态角低于$APO.CORI值时 |
C_VEL |
LIN/CIRC |
% |
速度参数,轨迹逼近最早开始于朝向目标点的减速阶段中速度低于$APO.CVEL值时 |
运动组合与参数使用:
-
PTP单独运动:仅使用C_PTP参数,通过$APO.CPTP设置逼近百分比
-
PTP-CP组合运动:可使用C_DIS、C_ORI、C_VEL参数,实现从点到点运动向笛卡尔路径的平滑过渡
-
LIN/CIRC运动:支持C_DIS、C_ORI、C_VEL三种参数的组合使用,实现精确的轨迹控制
在实际应用中:
|
ROKAE
ROKAE机器人提供了多种圆滑过渡距离的设置方式。zone变量用于定义某一运动间隔或者变量定义两条运动轨迹之间转弯区域的大小。当停止处理时,机器人将运动到目标点且到达目标点的速度为0,之后才会继续执行下一条指令。当过渡处理时,机器人不会运动到目标点,而是从距离目标点若干distance毫米的地方时,开始转向往下一个目标点运动。

ROKAE系统预定义了常用的转弯区域变量,其中笛卡尔空间转弯区域大小和转弯百分比有直接对应关系:
名称 |
笛卡尔空间转弯区大小 |
转弯百分比 |
fine |
0 mm |
0% |
z1 |
1 mm |
1% |
z5 |
5 mm |
3% |
z10 |
10 mm |
5% |
z15 |
15 mm |
8% |
z20 |
20 mm |
10% |
z30 |
30 mm |
15% |
z40 |
40 mm |
20% |
z50 |
50 mm |
25% |
z60 |
60 mm |
30% |
z80 |
80 mm |
40% |
z100 |
100 mm |
50% |
z150 |
150 mm |
75% |
z200 |
200 mm |
100% |
UR
UR机器人在路径规划中支持转角区域(Blend Region)功能,通过设置转角半径参数r(单位:m)来实现平滑的轨迹过渡。当为路径点设置转角半径时,机器人将不会在该点完全停止,而是以圆弧轨迹平滑过渡到下一段路径。
机器人在设置转角半径后,轨迹会在路径点附近形成圆弧过渡,避免急停急起的现象。圆弧的半径大小直接影响轨迹的平滑程度和偏离原始路径的距离。较小的转角半径能更接近原始路径点,但运动不够平滑;较大的转角半径运动更加流畅,但会偏离预期轨迹更多。
当相邻路径点的转角区域发生重叠时,情况会变得复杂。如果当前路径点的转角区域与前一个或后一个路径点的转角半径产生重叠,系统会跳过中间的路径点,直接连接到下一个有效点。
转角区域参数的设置与两个运动点之间的距离大小有直接关系,需要合理设置以确保机器人运动的平滑性和效率。 |
机械臂配置数据
机械臂配置数据对于机器人的正确运动控制至关重要,它定义了机器人关节的当前状态和运动约束。这个数据经常会因为设置不当而导致视觉点位不可达的问题。
ABB
ABB使用confdata数据类型来定义机器人的轴配置。通过使用直角坐标系,可以定义和储存机器臂的所有位置。当计算机器臂的解决方案时,通常可能存在两种或更多的解决方案,这些情况就是机器臂能够有多种不同的位置或配置。为明确表示可能配置之一,通过使用四个轴的值来定义机器人配置。
对于一个旋转轴,该值是义机器人轴的当前象限。将象限编号为0、1、2等等,其中亦为负,象限编号与轴的当前关系有关。对于6轴机器人,象限0为从零位开始到180°的第一个四分之一圆,即0°到90°;象限1为第二个四分之一圆,即90°到180°,以此类推。

对于7轴机器人,象限0是以零位为中心旋转的四分之一圆,即-45°到45°;象限1是正向旋转的第二个四分之一圆,即45°到135°,以此类推。

对于线性轴,该值说明有关机器人轴的问题来数。对于各个轴,值0意味着一个介于0到1米之间的位置,值1意味着一个介于1到2米之间的位置,对于负值,-1意味着一个介于-1到0米之间的位置,以此类推。

配置监督:
对于一些机器人种型而言,如果ConfL\On有以设置,则配置数据(confdata)亦用于对有关线性移动的编程点变监督。不使用ConfL\On执行配置监控,如进行Confl-接头移动期间控制配置。
在开始进行指定运动之前,进行验证,以查看是否能够实现编程配置。如果不可能,则停止程序,完成运动时(在区域或精点中),同时验证机器人已达到编程配置。用ConfL\On的配置监督将不同机器人有所不同。
机械臂类型 | 配置监督内容 |
---|---|
6轴机械臂 |
检查第1、4和6轴是否不会移动180度以上,且该有序移动无需更改cfx(cfx仅用于串行连接机器人,而不适用于并联连杆机器人) |
4轴机械臂 |
检查轴1和6是否不会移动180度以上 |
并联臂机器人(Delta型机器人) |
检查轴4是否不会移动180度以上 |
SCARA机器人 |
检查轴1和4不会移动超出180度,也会核实轴2的标志 |
7轴机械臂 |
检查轴1、4和6是否不会移动180度以上,且安排的移动无需改变cfx |
涂漆机械臂 |
未实施任何配置监督 |
机械臂配置数据:
-
含串行线的6轴机械臂
机器人工作范围内存在三个象界点,即cf1为轴1的象限编号、cf4为轴4的象限编号和cf6为轴6的象限编号。
cfx为用于从编号0到7的八种可能的机器人配置中选择一种。下表描述了有关如何相对于三个象界点来放置机器人的各种配置
cfx
相对于轴1的脑中心
相对于下臀的脑中心
轴5角
0
在前面
在前面
正
1
在前面
在前面
负
2
在前面
在后面
正
3
在前面
在后面
负
4
在后面
在前面
正
5
在后面
在前面
负
6
在后面
在后面
正
7
在后面
在后面
负
-
含平行杆的6轴机械臂:仅使用配置参数cf1、cf4和cf6。
-
4轴机械臂:仅使用配置参数cf6。
-
平行臂机械臂:仅使用配置参数cf4。
-
SCARA机器人:仅使用的三个配置参数cf1、cf4和cfx。采用cfx值来展示轴2角度的标志。如果轴2角度为负,那么,cfx为1,否则,cfx为0。
-
7轴机器人:运用四个配置参数,cf1、cf4和cf6分别用于关节1、4和6,cfx用于从8种可能的机器人配置中选择一种。方法同用于其他机器人时类似。
cfx
轴2角度
相对于下臂的腕中心
轴5角度
0
正
在前面
正
1
正
在前面
负
2
正
在后面
正
3
正
在后面
负
4
负
在前面
正
5
负
在前面
负
6
负
在后面
正
7
负
在后面
负
-
涂漆机械臂:使用全部四种配置参数。分别对接口1、4和6使用cf1、cf4、cf6,并针对接口5使用cfx。
-
IRB 5500:使用全部四种配置参数。分别针对接口1、4和6使用cf1、cf4、cf6,cfx参数包含接头5象限号以及有关轴2和轴3的四种可能的配置。
-
IRB 5350:机械臂有有两个旋转轴(臂1和臂2)和一个线性轴(臂3)。cf1用于接转轴1, cfx用于接转轴2,未使用cf4和cf6。
组件:
组件 | 数据类型 | 旋转轴 | 线性轴 |
---|---|---|---|
cf1 |
num |
轴1的当前象限,表示为一个正整数或负整数 |
轴1的当前间隔米数,表示为一个正整数或负整数 |
cf4 |
num |
轴4的当前象限,表示为一个正整数或负整数 |
轴4的当前间隔米数,表示为一个正整数或负整数 |
cf6 |
num |
轴6的当前象限,表示为一个正整数或负整数 |
轴6的当前间隔米数,表示为一个正整数或负整数 |
cfx |
num |
对于串行线机械臂和7轴机器人,当机械臂配置表示为0到7范围中的一个整数。 + 对于SCARA机器人,当机械臂配置表示为0到1范围中的一个整数。 + 对于涂漆机械臂,轴5的当前象限表示为一个正整数或负整数。 + 对于其他机械臂,使用轴2的当前象限,表示为一个正整数或负整数。 |
轴2的当前间隔米数,表示为一个正整数或负整数 |
FANUC
FANUC机器人使用形态来指定机器人各个关节的位置状态。形态是指机器人主体部分的姿势,对于给定的直角坐标值(X、Y、Z、W、P、R),通常存在多个满足条件的形态解。为了确定唯一的机器人位置,需要明确指定每个轴的关节配置和回转数。
FANUC系统将机器人的关节配置分为以下几种基本类型:
主要配置状态:
配置项 |
状态值 |
说明 |
FLIP/NOFLIP |
LEFT/RIGHT |
指示机器人手腕(J5轴)的翻转状态,决定了工具的朝向 |
UP/DOWN |
FRONT/BACK |
表示机器人手臂(J3轴)的上下配置,影响机器人的工作空间利用 |
肘关节状态 |
UPPER/LOWER |
描述机器人肘部(J2和J3轴组合)的配置状态 |

回转数范围定义:
FANUC系统使用回转数来处理旋转轴超过±180°的情况:
回转数值 |
角度范围 |
说明 |
1 |
180°~539° |
正向超过一圈的角度范围 |
0 |
-179°~179° |
标准角度范围,无回转 |
-1 |
-539°~-180° |
负向超过一圈的角度范围 |
FANUC系统使用专门的系统变量来管理和跟踪回转轴的状态:
回转轴状态变量:
系统变量 |
功能 |
应用说明 |
$SSCR_GRP[group].$TURN_AXIS[1] |
管理第1轴(基座旋转轴)的回转状态 |
记录J1轴的转数信息,用于区分多圈旋转位置 |
$SSCR_GRP[group].$TURN_AXIS[2] |
管理第2轴(肩部轴)的回转状态 |
记录J2轴的转数信息,影响手臂的配置 |
$SSCR_GRP[group].$TURN_AXIS[3] |
管理第3轴(肘部轴)的回转状态 |
记录J3轴的转数信息,决定肘部的上下配置 |
形态数据结构:
数据组件 |
数据类型 |
说明 |
关节位置 |
JOINTPOS |
所有关节的角度值,以度为单位 |
配置标志 |
CONFIG |
描述机器人当前的配置状态(FLIP、UP等) |
回转信息 |
TURN |
各轴的回转数,用于处理多圈旋转 |
有效性标志 |
STATUS |
指示该形态是否有效和可达 |
YASKAWA
YASKAWA机器人使用[fig_ctrl]来指向姿态信息的指针(输出)。语法为:
typedef unsigned int BITSTRING;
位 |
说明 |
D00 |
0:Front 1:Back |
D01 |
0:Upper arm 1:Lower arm |
D02 |
0:Fli p 1:No flip |
D03 |
0:R<180 1:R>=180 |
D04 |
0:T<180 1:T>=180 |
D05 |
0:S<180 1:S>=180 |
D06-D31 |
Reserved by manufacturer |
KUKA
KUKA机器人使用POSITION、XYZWPR、XYZWPREXT、JOINTPOS和PATH等数据类型来表示位置数据。POSITION数据类型包含三个REAL值表示以毫米为单位的X、Y、Z位值,三个REAL值表示以度为单位的W、P、R方向,一个CONFIG数据类型由4个布尔值和3个整数组成,代表关节位置和转弯数的配置。
KUKA机器人的配置数据通过STATUS和TURN组件来定义。TCP位置(X、Y、Z)和姿态(A、B、C)的数值不足于明确规定机器人的位置。因为当TCP相同,也确的位置仍可能有多个,状态和转弯方向用于从多个可能的轴位置中确定一个唯一的位置。

STATUS
位0:过顶区域检测
当轴1位于0°时,A1坐标系与$ROBROOT坐标系相同。当值不等于0°时,A1坐标系随轴1一起动。
位置 |
值 |
过顶区域 |
比特位0=1 |
基本区域 |
位0=0 |
当轴1位于0°时,A1坐标系与$ROBROOT坐标系相同,当值不等于0°时,A1坐标系随轴1一起动。

位1:给出轴3的位置
比特位1值改变时对应的角取决于机器人类型。对轴3和轴4相关的机器人,适用:
位置 |
值 |
A3≥0° |
位1 =1 |
A3<0° |
比特位1=0 |
对于轴3与轴4错开的机器人,比特位1改变时对应的角取决于偏移量的大小。

位2:给出轴5的位置
位置 |
值 |
A5>0 |
比特位2=1 |
A5≤0 |
比特位2=0 |
位3:未用,始终为0。
位4:驱动类型标识
说明是否用一台绝对精确的机器人对点进行示教。
说明 |
值 |
这点未用绝对精确的机器人示教 |
比特位4=0 |
这点已用一个绝对精确的机器人示教 |
比特位4=1 |