로봇 일반 데이터 포맷
직교 좌표계 위치 데이터 포맷
직교 좌표계 위치 데이터는 로봇 말단 실행기의 3차원 공간에서의 위치와 자세에 대한 수학적 표현입니다. 각 제조업체는 서로 다른 자세 표현 방법을 채택하지만, 일반적으로 모두 위치 좌표(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의 포맷과 유사합니다.
UR
UR 로봇은 [X, Y, Z, Rx, Ry, Rz] 포맷을 사용하며, 회전 벡터로 자세를 표현합니다. UR 시스템에서 [X, Y, Z] 단위는 미터이고, [Rx, Ry, Rz] 단위는 라디안입니다.
티칭 펜던트에서 xyz 고정각을 읽을 수 있지만, UR 내부의 pose 데이터는 회전 벡터를 사용하여 자세를 표현합니다. 따라서 로봇에 전송하는 데이터 포맷은 [X, Y, Z, Rx, Ry, Rz]가 가장 좋습니다.
기타 브랜드 포맷
EFORT와 ESTUN 로봇 모두 [X, Y, Z, A, B, C] 포맷을 사용하며, zyx 오일러 각으로 자세를 표현합니다.
ELITE 로봇은 [X, Y, Z, Rx, Ry, Rz] 포맷을 사용하며, xyz 고정각으로 자세를 표현합니다.
|
일반적으로 사용되는 로봇 자세 표현 방법에는 3x3 회전 행렬, 고정각(XYZ 고정각/RPY), 오일러 각(ZYX 오일러 각), 단위 쿼터니언, 회전 벡터, 등가 축각이 포함됩니다. 고정각과 오일러 각의 차이점은 좌곱(절대 변환)과 우곱(상대 변환)에 있으므로, XYZ 고정각(RPY)은 ZYX 오일러 각과 동일합니다. |
속도 데이터 포맷
로봇 속도 데이터는 로봇 운동의 빠르기를 정의하며, 관절 공간 속도와 직교 좌표계 공간 속도 두 가지 타입을 포함합니다. 서로 다른 제조업체는 속도 데이터의 표현과 제어 측면에서 다른 전략을 채택했습니다.
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초 범위 내에서 소수점 4자리까지 지정할 수 있습니다. 이동 시간에는 가속과 감속 시간이 포함되며, 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°까지의 첫 번째 1/4원, 즉 0°에서 90°까지이고, 사분면 1은 두 번째 1/4원, 즉 90°에서 180°까지이며, 이런 식으로 계속됩니다.
7축 로봇의 경우, 사분면 0은 영점을 중심으로 회전하는 1/4원, 즉 -45°에서 45°까지이고, 사분면 1은 정방향 회전의 두 번째 1/4원, 즉 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까지 번호가 매겨진 8가지 가능한 로봇 구성 중 하나를 선택하는 데 사용됩니다. 다음 표는 세 경계점을 기준으로 로봇을 배치하는 다양한 구성에 대해 설명합니다.
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:Flip 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 |
제조업체에 의해 예약됨 |
KUKA
KUKA 로봇은 POSITION, XYZWPR, XYZWPREXT, JOINTPOS, PATH 등의 데이터 타입을 사용하여 위치 데이터를 표현합니다. POSITION 데이터 타입은 밀리미터 단위의 X, Y, Z 위치값을 나타내는 세 개의 REAL값, 도 단위의 W, P, R 방향을 나타내는 세 개의 REAL값, 관절 위치와 회전수의 구성을 나타내는 4개의 부울값과 3개의 정수로 구성된 하나의 CONFIG 데이터 타입을 포함합니다.
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 |