기능
현재 로봇 엔드이펙터의 자세 정보와 회전각 범위 차이에 대한 상태를 확인한다. 현재 자세와 회전각 범위에 대한 차이는 알고리즘 내부에서 회전행렬로 변환되어 “AngleAxis” 기법으로 차이 값(rad 단위)을 리턴한다. 차이가 + 값이면 true를, -값이면 false를 리턴한다. 현재 자세를 기준으로, 주어진 position과 회전각 범위 차이가 +인지 –인지 확인할 때 사용한다. 사용 예로, 어떤 기준이 되는 position에서 min, max로 회전각 범위를 설정하여, 현재 위치와 차이가 + 방향인지, - 방향인지 판단한 후 orientation limit에 대한 조건을 만들 수 있다. 또한 while 또는 if 조건과 함께 사용하여 해당 조건을 반복 확인할 수 있다.
-
Min만 설정 시: 차이가 +이면 True, -이면 False
-
Min, Max 설정 시: min과의 차이가 -이고, max 차이가 +이면 True, 그 반대이면 False
-
Max만 설정 시: max 차이가 -이면 True, +이면 False
회전각 범위: 주어진 position에서 설정된 axis를 기준으로, 상대적인 각도 범위(min, max)를 말한다. 인자 ref에 따라 주어진 position의 기준 좌표계가 정해진다.
인수
|
인수명 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
eForceAxis |
enum.FORCE_AXIS |
- |
축 방향 |
|
fTargetMin |
float |
- |
최소값 |
|
fTargetMax |
float |
- |
최대값 |
|
fTargetPos |
float[6] |
- |
6개의 Task Space 정보 |
|
eForceReference |
enum.COORDINATE_SYSTEM |
COORDINATE_SYSTEM_TOOL |
상수 및 열거형 정의 참조 |
리턴
|
값 |
설명 |
|---|---|
|
1 |
조건이 참 |
|
0 |
조건이 거짓 |
예제
float posx1[6] = {400, 500, 800, 0, 180, 30};
bool con1 = Drfl.check_orientation_condition(FORCE_AXIS_C, 0, 5, posx1);