최신 버전 정보는 1.33.5에서 확인하세요.
check_position_condition_abs (수동 모드)
이 절에서는 수동(교시) 작업 중에 check_position_condition_abs로 특정 축의 절대 위치가 정의한 임계 범위 안에 있는지 확인하는 방법을 설명합니다.
주로 핸드가이딩이나 단계별 교시 중 안전 구역(Safety Zone) 검증, 교시점 확인, 위치에 따른 작업 로직에 사용합니다.
전체 API 정의와 매개변수 목록은 공통 API 섹션의 check_position_condition_abs를 참고하세요.
일반적인 사용법
로봇 TCP나 조인트 위치가 미리 정의한 안전 경계 안에 있는지 검증합니다.
다른 작업을 하기 전에 로봇이 원하는 위치 범위에 도달했는지 모니터링합니다.
while이나if문 안에서 사용해 조건부 이동 로직을 만듭니다.check_force_condition과 함께 사용해 위치-힘 하이브리드 제어 작업을 구성합니다.
참고
이 함수는 모션을 지령하지 않으며, 내부 피드백의 현재 위치 값만 확인합니다.
예제: 다음 단계 전에 위치 한계 확인
// 사전 조건:
// - 연결됨
// - 수동(교시) 모드 활성
// - 로봇이 목표 영역 근처에 위치
printf("Checking TCP Z-axis position within ±5 mm tolerance...\n");
// 1) BASE 좌표계에서 Z축 절대 위치 범위 모니터링
while (true) {
bool inZone = drfl.check_position_condition_abs(FORCE_AXIS_Z, -5.f, 5.f, COORDINATE_SYSTEM_BASE);
if (inZone) {
printf("Position condition met: Z-axis within ±5 mm.\n");
break;
} else {
printf("Z-axis out of range, adjusting manually...\n");
}
std::this_thread::sleep_for(std::chrono::milliseconds(300));
}
// 2) 선택 사항: 안전 또는 확인 점검
bool withinXY = drfl.check_position_condition_abs(FORCE_AXIS_X, -100.f, 100.f)
&& drfl.check_position_condition_abs(FORCE_AXIS_Y, -100.f, 100.f);
if (withinXY)
printf("Robot within safe XY workspace.\n");
else
printf("Outside safe XY zone. Adjust before proceeding.\n");
이 예제에서 로봇은 교시 중 Z축 TCP 위치가 기준 평면에서 ±5 mm 안에 있는지 계속 확인합니다. 안전 범위에 들어오면 조건이 TRUE(1)가 되어 작업자가 다음 명령을 안전하게 이어 갈 수 있습니다.
팁
이 함수로 교시 안전장치를 구현해 로봇이 안전 경계 안에 머물도록 하세요.
check_force_condition과 함께 사용해 위치 기반 접촉 검증을 하세요.
매끄러운 실시간 모니터링을 위해 이 함수를 주기적으로(예: 50–200 ms마다) 호출할 수 있습니다.
임계값 로직을 적용하기 전에 기준 좌표계(TOOL, BASE, WORLD)가 일관된지 항상 확인하세요.
상대 편차 확인에는 check_position_condition_rel을 사용하세요.