check_orientation_condition_abs
이 함수는 지정한 축에서 현재 툴 포즈와 목표 포즈 사이의 절대 자세 차이를 평가합니다. 각도 편차가 정의한 최소 임계값과 최대 임계값 사이에 있는지 판단합니다. 회전 차이는 각-축(Angle/Axis) 방식으로 계산하며, 회전 벡터는 현재 자세와 목표 자세 사이의 가장 짧은 각도 경로를 나타냅니다.
정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션
bool check_orientation_condition(FORCE_AXIS eForceAxis,
float fTargetMin[NUM_TASK],
float fTargetMax[NUM_TASK],
COORDINATE_SYSTEM eForceReference = COORDINATE_SYSTEM_TOOL) {
return _check_orientation_condition_abs(_rbtCtrl, eForceAxis, fTargetMin, fTargetMax, eForceReference);
};
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
eForceAxis |
평가할 회전축(예: Rx, Ry, Rz)입니다. |
||
fTargetMin |
float[6] |
하한 작업 공간 포즈(x, y, z는 mm, rx, ry, rz는 deg)입니다. 자세만 비교합니다. |
|
fTargetMax |
float[6] |
상한 작업 공간 포즈(x, y, z는 mm, rx, ry, rz는 deg)입니다. 자세만 비교합니다. |
|
eForceReference |
|
자세를 비교할 기준 좌표계(TOOL 또는 BASE)입니다. |
반환값
값 |
설명 |
|---|---|
1 |
조건이 True입니다(자세 제한 범위 안). |
0 |
조건이 False입니다(자세 제한 범위 밖). |
check_orientation_condition_abs
예제
// 사전 조건: 연결됨, 서보 온, 자동 모드 또는 수동 모드 활성
// Rx–Ry–Rz 축 기준 목표 자세 범위 정의
float minOri[6] = {0.f, 0.f, 0.f, -10.f, -10.f, -10.f};
float maxOri[6] = {0.f, 0.f, 0.f, 10.f, 10.f, 10.f};
// TOOL 좌표계에서 Rz축 기준 자세 편차 확인
bool cond = drfl.check_orientation_condition(FORCE_AXIS_Z, minOri, maxOri, COORDINATE_SYSTEM_TOOL);
printf("Orientation within range: %s\n", cond ? "TRUE" : "FALSE");
이 예제는 TOOL 좌표계에서 Z축(Rz)을 중심으로 현재 툴 자세가 목표 자세의 ±10° 안에 있는지 확인합니다.
팁
자동 모드와 수동 모드 모두에서 작업을 실행하기 전에 정렬 정확도를 확인할 때 사용하세요.
check_position_condition과 함께 사용하면 위치와 자세를 모두 6D로 검증할 수 있습니다.
각도의 단위는 도(degree)입니다.
펙인홀, 나사 삽입, 교시 보정 공정에 특히 유용합니다.