프로젝트 개요#

이 프로젝트는 파트너사가 바로 활용할 수 있도록 세 가지를 하나로 묶어 둔 예제 저장소입니다.

  • 사람이 직접 보는 데스크톱 앱

  • 코드에서 쉽게 붙일 수 있는 단일 파일 Python 라이브러리

  • 에러 코드를 사람이 읽기 쉬운 설명으로 바꿔 주는 로컬 에러 DB

공식 SDK를 대체하려는 목적이 아니라, Client Interface를 더 쉽게 이해하고 더 빨리 제품에 적용할 수 있도록 돕는 것이 목적입니다.

파트너 가이드 구조 이미지 자리표시자

필요하면 이 이미지를 팀의 구조도나 연동 다이어그램 스크린샷으로 교체해 사용할 수 있습니다.#

저장소 구성#

app.py

사람이 직접 실행하는 데스크톱 모니터 앱입니다. 시연, 점검, 내부 교육, 데이터 탐색에 적합합니다.

ur_client.py

핵심 라이브러리입니다. 연결, 파싱, 상태 정리, 메시지 히스토리, 에러 조회, 클래스 API가 이 파일 안에 들어 있습니다.

ur_error_codes.sqlite3

에러 코드를 Error code / Description / Explanation / Suggestion 형식으로 바꿔 주는 로컬 DB입니다.

docs/

GitHub Pages와 로컬 HTML 출력을 위한 Sphinx 문서입니다.

설계 방향#

이 프로젝트는 다음 같은 방향을 중요하게 둡니다.

읽기 쉬운 값 접근

로봇 값을 robot.mode``나 ``tcp.pose.x 같은 경로 기반 key로 노출해서, 파트너 코드가 매번 바이너리 구조를 직접 다루지 않아도 되게 했습니다.

작은 루트 구조

런타임 핵심은 주로 하나의 라이브러리 파일에 모여 있어 검토와 유지보수가 쉽습니다.

사람 친화적인 진단 정보

GUI와 API 모두 메시지 히스토리와 에러 설명을 보여 줄 수 있어, 단순 raw code보다 훨씬 전달력이 좋습니다.

탐색과 임베딩의 분리

앱은 사람이 데이터를 탐색하는 데 좋고, 클래스 API는 서비스나 내부 비즈니스 로직에 넣기 좋습니다.

라이브러리가 보여 주는 값들#

인터페이스 프로파일과 실제 컨트롤러가 보내는 패킷에 따라 다음과 같은 값들을 볼 수 있습니다.

  • robot mode, safety mode

  • TCP pose

  • joint별 위치와 상태

  • robot message 히스토리

  • program state 계열 값과 global variable 업데이트

  • 감지된 에러 코드와 그에 대한 설명

추천 사용 흐름#

실무에서는 보통 다음 순서가 가장 효율적입니다.

  1. 먼저 GUI로 어떤 값과 메시지가 실제로 들어오는지 확인합니다.

  2. 필요한 interface profile을 정합니다.

  3. 제품에서 노출할 value path를 정리합니다.

  4. 같은 path를 ClientInterfaceAPI 코드에 옮깁니다.

  5. 에러 DB를 붙여 운영자 화면이나 리포트에 설명을 함께 보여 줍니다.

그래서 이 저장소는 앱과 Python API를 둘 다 포함합니다. 하나는 탐색용이고, 다른 하나는 실제 제품 연동용입니다.