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

FORCE_AXIS

평가할 회전축(예: 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

COORDINATE_SYSTEM

COORDINATE_SYSTEM_TOOL

자세를 비교할 기준 좌표계(TOOL 또는 BASE)입니다.

반환값

값

설명

1

조건이 True입니다(자세 제한 범위 안).

0

조건이 False입니다(자세 제한 범위 밖).

check_orientation_condition_abs

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)입니다.

  • 펙인홀, 나사 삽입, 교시 보정 공정에 특히 유용합니다.