이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.

release_protective_stop (수동 모드)

이 절에서는 수동(교시) 작업에서 release_protective_stop을 사용하는 방법을 설명합니다. 이 함수는 로봇의 보호 정지(Protective Stop) 상태를 해제합니다. 보호 정지는 안전 이벤트나 충돌이 감지되면 발생합니다. 보호 정지 원인을 해소하고 확인한 뒤 이 명령을 실행하면 로봇이 정상 운전 상태로 돌아갈 수 있습니다.

일반적인 사용법

  • 작업을 다시 시작해도 안전한지 확인한 뒤 로봇의 보호 정지 또는 안전 정지 상태를 수동으로 해제합니다.

  • 점검을 마친 뒤 안전 관련 오류(예: 충돌 감지, 보호 구역 침범)를 재설정합니다.

  • 정지 원인을 해소하고 확인한 뒤 모션이나 교시를 다시 시작합니다.

참고

  • 해제하려면 로봇이 반드시 정지해 있고 안전한 상태여야 합니다.

  • 보호 정지(STATE_SAFE_STOP)는 서보 전원을 차단하지 않고 제어만 멈추므로, 해제한 후 서보 온 호출이 필요 없습니다. 서보 전원을 차단한 정지(STATE_SAFE_OFF)는 CONTROL_SERVO_ON으로 set_robot_control을 호출해 해제합니다.

예제: 보호 정지를 해제하고 수동 작업 재개하기

// 사전 조건:
// - 연결 완료(open_connection)
// - 수동(교시) 모드 활성
// - 보호 정지(충돌, 구역 위반 등)로 로봇이 정지된 상태

// 1) 보호 정지 해제 시도
if (drfl.release_protective_stop(RELEASE_MODE_RELEASE))
    printf("[Protective Stop] Released successfully.\n");
else {
    printf("[Protective Stop] Release failed. Confirm safety conditions.\n");
    return -1;
}

// 2) 로봇 상태가 대기 상태로 돌아올 때까지 대기
while (drfl.check_motion() != 0)
    std::this_thread::sleep_for(std::chrono::milliseconds(200));

// 3) 확인 후 수동 조그 또는 모션 재개
float qTarget[6] = {0, -30, 90, 0, 90, 0};
drfl.movej(qTarget, 50, 50);
drfl.mwait();

printf("[Protective Stop] Robot motion resumed.\n");

팁

  • 이 함수를 호출하기 전에 반드시 육안 점검을 하고 주변이 안전하게 비어 있는지 확인해야 합니다.

  • 해제가 계속 실패하면 get_safety_configuration (DRCF v2) 또는 get_safety_configuration (DRCF v3)로 안전 설정을 확인하세요.

  • 로봇이 STATE_SAFE_OFF 상태이면 모션을 재개하기 전에 CONTROL_SERVO_ON으로 set_robot_control을 호출하세요.

  • 안전 이벤트 이후 완전한 복구 절차를 구성하려면 set_safety_mode와 함께 사용하세요.