align_axis(x1, x2, x3, pos, axis, ref)
기능
입력된 기준좌표계(ref) 기준의 3개의 포즈(x1,x2,x3)가 이루는 평면의 normal vector (get_normal(x1, x2, x3) 참조) 방향에 Tool좌표계의 지정축(axis)의 방향을 일치시킵니다. 이때 로봇 TCP 위치는 pos 위치로 이동합니다.
인수
|
인수명 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
x1 |
posx |
- |
posx 또는 position list |
|
list (float[6]) |
|||
|
x2 |
posx |
- |
posx 또는 position list |
|
list (float[6]) |
|||
|
x3 |
posx |
- |
posx 또는 position list |
|
list (float[6]) |
|||
|
pos |
posx |
- |
posx 또는 position list |
|
list (float[6]) |
|||
|
axis |
int |
- |
axis
|
|
ref |
int |
DR_BASE |
reference coordinate
|
알아두기
P시리즈의 경우,
-
x1, x2, x3의 z 값은 모두 동일해야 합니다.
-
axis는 DR_AXIS_Z 만 사용 가능하며, ref도 DR_BASE만 사용 가능합니다.
리턴
|
값 |
설명 |
|---|---|
|
0 |
성공 |
|
음수값 |
오류 |
예외
|
예외 |
설명 |
|---|---|
|
DR_Error (DR_ERROR_TYPE) |
인수들의 데이터형 오류 시 |
|
DR_Error (DR_ERROR_VALUE) |
인수의 값이 유효하지 않을 시 |
|
DR_Error (DR_ERROR_RUNTIME) |
C Extension 모듈 에러 발생 시 |
|
DR_Error (DR_ERROR_STOP) |
프로그램 강제 종료 시 |
예제
p0 = posj(0,0,45,0,90,0)
movej(p0, v=30, a=30)
x1 = posx(0, 500, 700, 30, 0, 0)
x2 = posx(500, 0, 700, 0, 0, 0)
x3 = posx(300, 100, 500, 0, 0, 0)
pos = posx(400, 400, 500, 0, 0, 0)
align_axis(x1, x2, x3, pos, DR_AXIS_X, DR_BASE)
#BASE좌표계 기준 x1,x2,x3로 이루어진 평면에 수직인 방향에 툴 X축 방향을, pos에 위치를 일치
#P시리즈의 경우
p0 = posj(0,0,45,0,90,0)
movej(p0, v=30, a=30)
x1 = posx(0, 500, 700, 30, 0, 0)
x2 = posx(500, 0, 700, 0, 0, 0)
x3 = posx(300, 100, 700, 0, 0, 0)
pos = posx(400, 400, 600, 0, 0, 0)
align_axis(x1, x2, x3, pos, DR_AXIS_Z, DR_BASE)
관련 명령어
align_axis(vect, pos, axis, ref)
기능
입력된 기준좌표계(ref) 기준의 벡터(vect) 방향에 Tool좌표계의 지정축(axis)의 방향을 일치시킵니다. 이때 로봇 TCP 위치는 pos 위치로 이동시킵니다.
인수
|
인수명 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
vect |
list (float[3]) |
- |
vector |
|
pos
|
posx |
- |
posx 또는 position list |
|
list (float[6]) |
|||
|
axis |
int |
- |
axis
|
|
ref |
int |
DR_BASE |
reference coordinate
|
알아두기
P시리즈의 경우,
-
vect는 z축에 대한 vector([0,0,±z]) 값만 적용 가능합니다. (z != 0)
-
axis는 DR_AXIS_Z 만 사용 가능하며, ref도 DR_BASE만 사용 가능합니다.
리턴
|
값 |
설명 |
|---|---|
|
0 |
성공 |
|
음수값 |
오류 |
예외
|
예외 |
설명 |
|---|---|
|
DR_Error (DR_ERROR_TYPE) |
인수들의 데이터형 오류 시 |
|
DR_Error (DR_ERROR_VALUE) |
인수의 값이 유효하지 않을 시 |
|
DR_Error (DR_ERROR_RUNTIME) |
C Extension 모듈 에러 발생 시 |
|
DR_Error (DR_ERROR_STOP) |
프로그램 강제 종료 시 |
예제
p0 = posj(0,0,45,0,90,0)
movej(p0, v=30, a=30)
vect = [10,20,30]
pos = posx(100, 500, 700, 45, 0, 0)
align_axis(vect, pos, DR_AXIS_X)
align_axis(vect, pos, DR_AXIS_X, DR_WORLD)
#WORLD좌표계 기준 [10,20,30]벡터 방향에 툴 X축 방향을, pos에 위치를 일치
#P시리즈의 경우
p0 = posj(0,0,45,0,90,0)
movej(p0, v=30, a=30)
vect = [0,0,-10]
pos = posx(100, 500, 700, 45, 0, 0)
align_axis(vect, pos, DR_AXIS_Z)
align_axis(vect, pos, DR_AXIS_Z, DR_BASE)