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

set_robot_mode (수동 모드)

이 절에서는 수동(교시) 작업에서 set_robot_mode를 사용하는 방법을 설명합니다. 이 함수는 로봇 컨트롤러를 수동(교시) 모드와 자동(실행) 모드 사이에서 전환합니다.

작업자가 조그, 교시, DRL 프로그램 실행을 안전하게 할 수 있는 시점을 관리하는 데 꼭 필요합니다.

일반적인 사용법

  • 교시, 조그, 캘리브레이션을 하기 전에 수동 모드로 전환합니다.

  • 저장된 DRL 프로그램이나 원격 제어 시퀀스를 실행할 때는 자동 모드로 전환합니다.

  • 안전 기준을 지키도록 외부 시스템(예: PLC ↔ 컨트롤러) 사이의 모드 전환 로직을 검증합니다.

  • 초기화 루틴에서 모션 명령을 보내기 전에 로봇이 올바른 모드에 있는지 확인할 때 사용합니다.

참고

  • 일부 작업(예: 모션, 속도 변경)은 현재 모드에 따라 제한됩니다.

  • 일부 컨트롤러는 안전을 위해 물리적인 스위치 확인(예: TP 키 또는 패널 입력)을 요구할 수 있습니다.

주의

set_robot_mode는 false를 반환하더라도 요청한 모드를 저장합니다. 그러면 get_robot_mode가 요청한 모드를 반환하고, 컨트롤러의 모드가 바뀌지 않았는데도 자동 모드나 수동 모드가 필요한 함수가 호출을 받아들입니다. set_robot_mode가 false를 반환하면 이후 set_robot_mode 호출이 true를 반환할 때까지 모드 제한이 있는 함수를 사용하지 마세요.

예제: 조그 전에 로봇을 수동 모드로 전환하기

// 사전 조건:
// - 연결 완료(open_connection)
// - 안전 인터록 및 서보 전원 준비 완료

printf("[Mode] Requesting switch to MANUAL mode...\n");
if (drfl.set_robot_mode(ROBOT_MODE_MANUAL))
    printf("[Mode] Successfully switched to MANUAL mode.\n");
else
    printf("[Mode] Failed to switch mode. Check TP or safety key.\n");

// 수동 조그 동작 시뮬레이션
float qTarget[6] = {0, -30, 90, 0, 90, 0};
drfl.movej(qTarget, 30, 30);
this_thread::sleep_for(chrono::seconds(2));

printf("[Mode] Switching to AUTO mode for program execution...\n");
drfl.set_robot_mode(ROBOT_MODE_AUTONOMOUS);

팁

  • 조그나 교시 기능을 활성화하기 전에 반드시 수동 모드가 활성화되어 있는지 확인해야 합니다.

  • 전환한 뒤에는 get_robot_mode로 현재 모드를 확인하세요.

  • set_robot_system과 함께 사용해 모드 변경과 시스템 수준 변경을 조율하세요.

  • 하이브리드 시스템에서는 추적성과 작업자 안전을 위해 모드 전환을 기록하는 것을 권장합니다.