최신 버전 정보는 1.33.5에서 확인하세요.
check_position_condition_rel (자동 모드)
이 절에서는 자동(실행) 운전 중에 check_position_condition_rel로 특정 축의 상대 위치가 주어진 목표 위치를 기준으로 정의한 범위 안에 있는지 확인하는 방법을 설명합니다.
반복문이나 조건문(while 또는 if)에 넣어 실시간 위치 한계를 모니터링할 수 있습니다. 이 함수는 접근 공차, 정렬 확인, 모션 완료를 검증할 때 특히 유용합니다.
일반적인 사용법
다음 작업으로 넘어가기 전에 로봇의 TCP가 정의한 상대 위치 범위 안에 있는지 확인합니다.
자동 작업 중에 위치 편차를 모니터링해 로봇이 안전 한계 안에 머물도록 합니다.
check_force_condition과 함께 사용해 제어 루프에 위치-힘 복합 로직을 구현합니다.
삽입, 조립, 표면 추종 같은 공정에 유용합니다.
참고
이 함수는 주어진 축(eForceAxis)을 따라 현재 위치(TCP)가 제공된 기준 포즈(fTargetPos)에서 얼마나 상대 변위했는지 평가합니다.
COORDINATE_SYSTEM_TOOL을 사용할 때는 기준 포즈(fTargetPos)를 BASE 좌표계로 지정해야 합니다.절대 위치 조건이 필요하면 대신 check_position_condition_abs를 사용하세요.
예제: 자동 모션 중 상대 위치 검증
// 사전 조건:
// - 자동 모드 활성
// - 서보 온
// 목표 위치 정의(TOOL 좌표계 기준)
float targetPos[6] = {400.f, 300.f, 500.f, 0.f, 180.f, 0.f};
// 1) 로봇을 목표 위치로 이동
float vel[2] = {80.f, 30.f}, acc[2] = {200.f, 100.f};
drfl.movel(targetPos, vel, acc);
drfl.mwait();
// 2) 현재 Z 위치가 목표의 ±5 mm 범위 이내인지 확인
bool condition = drfl.check_position_condition_rel(FORCE_AXIS_Z, -5.f, 5.f, targetPos, COORDINATE_SYSTEM_TOOL);
if (condition) {
printf("Relative Z-position condition satisfied.\n");
} else {
printf("Relative Z-position condition not met.\n");
}
이 예제는 로봇 TCP의 상대 위치(Z축 방향)를 정의한 목표 포즈와 비교하는 방법을 보여 줍니다. 조건은 목표 포즈를 기준으로 지정한 범위(±5 mm) 안에서 확인합니다.
팁
자동 작업 중, 특히 접근이나 정렬 작업에서 정밀한 위치 결정을 보장하려면
check_position_condition_rel()을 사용하세요.복합 제어와 함께 위치와 힘을 모두 모니터링하면 작업을 안전하고 효율적으로 실행할 수 있습니다.
미세 조정에는 좁은 범위를, 큰 이동에는 넓은 범위를 사용하세요.
제어 루프 안에서 이 함수를 호출해 계속 모니터링하고 판단하세요.