check_position_condition_rel (수동 모드)

이 절에서는 수동(교시) 작업 중에 check_position_condition_rel로 특정 축의 상대 위치가 주어진 목표 위치에 비해 정의한 범위 안에 있는지 확인하는 방법을 설명합니다.

주로 기준점을 기준으로 로봇 위치를 수동으로 안내하거나 교시할 때 미세 정렬, 접근 검증, 조립 정밀도 확인에 사용합니다.

전체 API 정의와 매개변수 목록은 공통 API 섹션의 check_position_condition_rel을 참고하세요.

일반적인 사용법

  • 로봇 TCP가 미리 정의한 목표 포즈로부터 상대 거리에 도달했는지 평가합니다.

  • 조립 작업에서 삽입 미세 조정이나 접근 거리에 사용합니다.

  • while이나 if 루프에서 동적으로 모니터링해 위치 기반 이벤트를 트리거합니다.

  • check_force_condition과 함께 사용해 힘-위치 하이브리드 로직을 구성합니다.

참고

  • 이 함수는 로봇을 움직이지 않으며, 피드백으로 위치 조건만 확인합니다.

예제: 목표 포즈로부터의 위치 오프셋 확인

// 사전 조건:
// - 연결됨
// - 수동(교시) 모드 활성
// - 로봇이 목표 포즈 근처에 위치

// 1) 목표 위치 정의(예: 미리 교시한 TCP 포즈)
float targetPos[6] = {400.f, 500.f, 600.f, 0.f, 180.f, 0.f};

printf("Checking if TCP X-axis is within ±5 mm from target...\n");

// 2) 현재 위치와 목표 위치 사이의 상대 오프셋 모니터링
while (true) {
    bool inRange = drfl.check_position_condition_rel(FORCE_AXIS_X, -5.f, 5.f, targetPos, COORDINATE_SYSTEM_BASE);

    if (inRange) {
        printf("Relative position condition met: X-axis offset within ±5 mm.\n");
        break;
    } else {
        printf("Not yet within target range, adjusting position...\n");
    }

    std::this_thread::sleep_for(std::chrono::milliseconds(300));
}

printf("Position alignment complete.\n");

이 예제에서 로봇은 X축 위치가 미리 정의한 목표 포즈에서 ±5 mm 안에 있는지 계속 확인합니다. 상대 오프셋 조건을 만족하면 루프를 빠져나오므로, 작업자가 교시 과정의 다음 단계로 넘어갈 수 있습니다.

팁

  • 수동 조립이나 접촉 캘리브레이션 중 미세 위치 정렬을 확인할 때 사용하세요.

  • TOOL 기준 오프셋을 확인할 때는 fTargetPos를 BASE 좌표로 정의하세요.

  • 연속 제어 작업에서는 모션 루프 안에서 이 함수를 주기적으로(50–200 ms) 호출하세요.

  • check_force_condition과 함께 사용하면 정확하고 안정적인 힘-위치 하이브리드 애플리케이션을 만들 수 있습니다.

  • 정적인 위치 확인에는 check_position_condition_abs를 사용하세요.