이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.
최신 버전 정보는 1.33.5에서 확인하세요.
get_robot_state (수동 모드)
이 절에서는 수동(교시) 작업 중에 get_robot_state를 사용하는 방법을 설명합니다. 이 함수는 3.1 공통에 정의되어 있지만, 교시 전이나 교시 중에 로봇의 실시간 운전 상태를 모니터링하는 데 꼭 필요합니다.
일반적인 사용법
로봇이 현재 이동 중, 정지, 일시 정지, 오류 상태 중 어느 상태인지 확인합니다.
mwait와 함께 사용해 안전한 순서로 실행되게 합니다.
수동 조작 중 티치펜던트나 GUI에 현재 로봇 상태를 표시합니다.
참고
일반적인 상태:
- STATE_STANDBY: 유휴 상태, 이동 준비 완료
- STATE_MOVING: 모션 실행 중
- STATE_EMERGENCY_STOP: 비상 정지(Emergency Stop) 작동move_pause로 멈춘 모션은 STATE_STANDBY로 보고됩니다. 일시 정지된 DRL 프로그램을 확인하려면 get_program_state(DRL_PROGRAM_STATE_HOLD)를 사용하세요.
예제: 다음 명령 전에 로봇 상태 확인
// 짧은 조그 시작
drfl.jog(JOG_AXIS_TASK_Z, MOVE_REFERENCE_BASE, -10.0f);
std::this_thread::sleep_for(std::chrono::milliseconds(400));
drfl.stop(STOP_TYPE_SLOW);
// 정지할 때까지 로봇 상태 폴링
ROBOT_STATE state;
do {
state = drfl.get_robot_state();
std::this_thread::sleep_for(std::chrono::milliseconds(100));
} while (state == STATE_MOVING);
printf("Robot motion stopped. Safe for next command.\n");
팁
수동 교시 중
get_robot_state()를 정기적으로 조회해 모션 진행 상황을 모니터링하세요.“정지할 때까지 대기” 로직이나 UI 자동 갱신을 구현할 때 사용하세요.
get_robot_mode와 함께 사용해 수동 운전과 자동 운전을 구분하세요.