기능
현재 로봇 엔드이펙터의 자세 정보와 주어진 위치 자세 간 차이의 상태를 확인합니다. 현재 자세와 주어진 자세 간의 차이는 알고리즘 내부에서 회전행렬로 변환되어 “AngleAxis” 기법으로 차이 값(rad 단위)을 리턴합니다. 차이가 + 값이면 true를, - 값이면 false를 리턴합니다. 현재 자세를 기준으로, 주어진 position보다 차이가 +인지 –인지 확인할 때 사용합니다. 사용 예로, 직접교시 position을 이용하여 현재 위치와 차이가 + 방향인지, - 방향인지를 판단한 후 orientation limit에 대한 조건을 만들 수 있습니다. 또한 while 또는 if 조건과 함께 사용하여 해당 조건을 반복 확인할 수 있습니다.
-
Min만 설정 시: 차이가 +이면 True, -이면 False
-
Min, Max 설정 시: min과의 차이가 -이고, max 차이가 +이면 True, 반대면 False
-
Max만 설정 시: max 차이가 -이면 True, +이면 False
인수
|
인수명 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
axis |
int |
- |
axis
|
|
min
|
posx |
- |
posx 또는 position list |
|
list (float[6]) |
|||
|
max
|
posx |
- |
posx 또는 position list |
|
list (float[6]) |
|||
|
ref |
int |
None |
reference coordinate
|
|
mod |
int |
DR_MV_MOD_ABS |
이동 기준
|
리턴
|
값 |
설명 |
|---|---|
|
True |
조건이 참 |
|
False |
조건이 거짓 |
예외
|
예외 |
설명 |
|---|---|
|
DR_Error (DR_ERROR_TYPE) |
인수들의 데이터형 오류 시 |
|
DR_Error (DR_ERROR_VALUE) |
인수의 값이 유효하지 않을 시 |
|
DR_Error (DR_ERROR_RUNTIME) |
C Extension 모듈 에러 발생 시 |
|
DR_Error (DR_ERROR_STOP) |
프로그램 강제 종료 시 |
예제
posx1 = posx(400,500,800,0,180,30)
posx2 = posx(400,500,500,0,180,60)
CON1= check_orientation_condition(DR_AXIS_C, min=posx1, max= posx2)
# 현재 Task 좌표가 posxc = posx(400,500,500,0,180,40)인 경우
# posx1 Rz=30 < posxc Rz=40 < posx2 Rz=60이므로 CON1=True 값이 됩니다.
CON2= check_orientation_condition(DR_AXIS_C, min=posx1)
# 현재 Task 좌표가 posxc = posx(400,500,500,0,180,15)인 경우
# posx1 Rz= 30 > posxc Rz=15이므로 CON2=False 값이 됩니다.
CON3= check_orientation_condition(DR_AXIS_C, max= posx2)
# 현재 Task 좌표가 posxc = posx(400,500,500,0,180,75)인 경우
# posx1 Rz= 75 > posxc Rz = 60이므로 CON2=False 값이 됩니다.