servo_off (수동 모드)

이 절에서는 수동(교시) 작업에서 servo_off를 사용하는 방법을 설명합니다. 이 함수는 로봇의 서보 전원을 끄고 모든 조인트의 토크를 안전하게 제거합니다.

주로 점검이나 교시를 위해 모션을 멈출 때, 또는 로봇 팔을 손으로 직접 움직이기 전에 사용합니다.

일반적인 사용법

  • 핸드가이딩 교시나 수동 정렬 전에 모든 모터 토크를 해제합니다.

  • 설정, 캘리브레이션, 복구 중에 모션을 안전하게 멈춥니다.

  • 안전 절차나 유지보수 절차의 일부로 사용해 로봇이 예기치 않게 움직이지 않도록 합니다.

참고

  • servo_off()를 호출하면 모든 로봇 조인트를 손으로 자유롭게 움직일 수 있습니다.

  • 서보 전원을 다시 켤 때까지(예: 티치펜던트나 안전 리셋 사용) 모션 명령은 비활성화됩니다.

예제: 모션 후 서보 전원을 안전하게 끄기

// 사전 조건:
// - 연결 완료(open_connection)
// - 수동(교시) 모드 활성
// - 현재 서보 전원 ON 상태

// 1) 로봇을 기준 위치로 이동
float qTarget[6] = {0, -30, 90, 0, 90, 0};
drfl.movej(qTarget, 50, 50);
drfl.mwait();

// 2) 서보 전원을 부드럽게 OFF
if (drfl.servo_off(STOP_TYPE_SLOW))
    printf("[Servo] Power OFF (SLOW stop)\n");
else
    printf("[Servo] Failed to turn OFF\n");

// 3) 수동 조작 전 잠시 대기
std::this_thread::sleep_for(std::chrono::seconds(2));

// 4) 이제 수동 위치 조정이나 교시를 위해 로봇을 손으로 움직일 수 있습니다

팁

  • 모션이 갑자기 멈추지 않도록 가능하면 STOP_TYPE_SLOW를 사용하세요.

  • 수동 정렬을 하기 전에 반드시 로봇이 완전히 정지했는지 확인해야 합니다.

  • 서보 전원이 꺼지지 않으면 check_motion으로 진행 중인 모션이나 보호 정지(Protective Stop)가 없는지 확인하세요.

  • 수동 조정을 마친 뒤 정상 운전으로 돌아가려면 티치펜던트나 컨트롤러 인터페이스에서 서보 전원을 다시 켜세요.

  • release_protective_stop, set_auto_servo_off와 함께 사용하면 완전한 안전 제어 워크플로를 구성할 수 있습니다.