최신 버전 정보는 1.33.5에서 확인하세요.
set_on_tp_popup (수동 모드)
이 절에서는 수동(교시) 작업에서 set_on_tp_popup을 사용하는 방법을 설명합니다. 이 함수는 DRL 프로그램이나 TP 동작으로 티치펜던트에 팝업 메시지가 뜰 때마다 호출되는 콜백 함수를 등록합니다. 교시 중 팝업에 응답(RESUME/STOP)하거나, 작업자의 결정을 호스트 애플리케이션으로 전달하거나, 사람과 로봇의 상호 작용을 기록할 때 유용합니다.
일반적인 사용법
작업자 확인(예: “클램프가 닫혔습니까?”, “다음 지점으로 조그할 준비가 되었습니까?”)을 표시하고 호스트 PC에서 응답을 받습니다.
교시 모드에서 위험한 동작(예: 장애물 가까이 접근)은 사람이 명시적으로 확인한 뒤에만 실행되도록 막습니다.
교시 세션을 감사하거나 SOP를 안내하기 위해 팝업 내용, 레벨, 버튼 유형을 기록합니다.
참고
연결되어 있는 동안 TP 팝업이 발생할 때마다 콜백이 호출됩니다.
콜백 함수 규칙을 참고하세요.
호스트에서 팝업에 응답하려면 tp_popup_response를 사용하세요.
예제: 팝업 콜백을 등록하고 작업자 선택에 응답하기
// 1) TP 팝업 콜백 함수 정의
void OnTpPopup(LPMESSAGE_POPUP tPopup)
{
printf("-------------------------------------------\n");
printf("[TP POPUP]\n");
printf("Message : %s\n", tPopup->_szText);
printf("Level : %d\n", tPopup->_iLevel); // 0: 정보, 1: 경고, 2: 알람
printf("Buttons : %d\n", tPopup->_iBtnType); // 0: 재개/정지, 1: 확인
printf("-------------------------------------------\n");
// 2) 교시 모드에서의 간단한 처리 정책 예
// - 무해한 정보는 자동으로 확인
// - 위험 관련 프롬프트는 작업자가 결정하도록 응답하지 않음
if (tPopup->_iLevel == MESSAGE_LEVEL_INFO &&
strstr(tPopup->_szText, "Start jogging") != nullptr)
{
// 정보 프롬프트 확인
drfl.tp_popup_response(POPUP_RESPONSE_RESUME);
printf("[Host] Auto-acknowledged jogging start.\n");
}
else if (strstr(tPopup->_szText, "Near obstacle") != nullptr)
{
// 작업자가 TP 버튼을 누르도록 자동 응답하지 않음
printf("[Host] Waiting for operator decision on TP.\n");
}
else
{
// 기본: 자동 응답 없음
printf("[Host] Logged popup. No automatic response.\n");
}
}
// 사전 조건:
// - drfl.open_connection("192.168.137.100"); 호출 완료
// - 컨트롤러가 수동(교시) 모드인 상태
drfl.set_on_tp_popup(OnTpPopup);
printf("[Teach] TP popup callback registered.\n");
// 교시 중 콜백을 수신하도록 프로세스 실행 유지
while (true) std::this_thread::sleep_for(std::chrono::seconds(1));
이 예제에서 호스트 애플리케이션은 티치펜던트(TP)에서 발생하는 팝업 이벤트를 수신합니다. 정보 팝업(예: “Start jogging”)이 뜨면 POPUP_RESPONSE_RESUME을 보냅니다. 반면 “Near obstacle” 같이 위험도가 높은 메시지에서는 일시 정지하고 작업자가 직접 입력할 때까지 기다립니다. 이 방식을 사용하면 수동 개입 권한을 유지하면서도 안전한 반자동 의사 결정 처리를 할 수 있습니다.
팁
set_on_tp_log와 함께 사용하면 팝업 스트림과 로그 스트림을 대조해 SOP를 감사할 수 있습니다.
TP 입력 양식에는 set_on_tp_get_user_input, tp_get_user_input_response를 함께 사용하세요.
교시 모드에서 팝업 심각도(예: 경고, 알람)를 기록하려면 호스트 PC에서 팝업 레벨(
_iLevel)을 기록하세요.콜백이 자동으로 응답하도록 정책을 정했다면 해당 경우를 명확히 문서화하고, 위험한 동작에는 POPUP_RESPONSE_RESUME을 자동으로 보내지 마세요.