modules

모듈 추가

런처에서 로봇 / 센서 / 확장 모듈을 설치하고 제거하는 방법.

최근 확인 버전: v5.0.0

Easy Trainer의 로봇·센서 드라이버는 모듈 단위로 분리되어 있습니다. 필요한 것만 런처에서 골라 설치하면 운영자 UI에 바로 반영됩니다.

모듈은 세 카테고리로 분류됩니다.

  • 로봇 — Piper, Dynamixel, Unitree, Jaka, Fairino, RBPodo, Kinova, Techman 등
  • 센서 — Webcam (Logitech / APC), Intel RealSense 등
  • 확장 기능 — VR Teleop, Test Arm, Isaac Lab Simulation, SAM 3 Segmentation 등

모듈 설치

    1. 런처의 floating bar에서 🧩 모듈 관리를 누릅니다.

      런처 pill bar의 모듈 관리 버튼
    2. 모듈 관리 다이얼로그가 열립니다.

      3개 카테고리가 컬럼으로 분리되어 있고 각 카테고리마다 검색창이 있습니다.

      모듈 관리 다이얼로그 — 3 카테고리 분리
    3. 원하는 모듈의 설치 버튼을 누릅니다.

      백그라운드에서 다운로드가 시작되고 버튼이 ⏳로 바뀝니다.

      설치 진행 중 ⏳
    4. 설치가 끝나면 버전이 초록색으로 표시되고 버튼이 제거로 바뀝니다.

      설치 완료 — 버전 + 제거 버튼
    5. 모듈이 자격증명을 요구하면 자격증명 입력 다이얼로그가 뜹니다.

      일부 확장 모듈(예: SAM 3 Segmentation은 HuggingFace 토큰이 필요)은 module.jsonpost_install.credentials 항목에 따라 설치 직후 입력 다이얼로그를 띄웁니다. 다이얼로그에는 다음이 표시됩니다.

      • 토큰을 어디서 발급받는지 안내하는 버튼식 링크 (예: 라이선스 동의 페이지, 토큰 발급 페이지)
      • 입력 필드 (비밀 정보면 마스킹 처리)
      • 형식 검증 (예: hf_ 로 시작 + 20자 이상)
      • 모듈이 허용한 경우 나중에 (모듈 비활성화) 버튼

      입력값은 사용자 홈의 보호 위치($EASYTRAINER_DATA_DIR 등)에 0600 권한으로 저장되고 다음 설치/재설치 때는 다시 묻지 않습니다. 나중에 를 누르면 모듈은 설치되지만 자격증명이 필요한 기능은 동작하지 않습니다.

      스크린샷 누락/docs/modules/16-module-credentials.png

      모듈 자격증명 입력 다이얼로그 — 안내 링크 + 시크릿 입력

유료 모듈 결제

일부 모듈은 단건 결제 후 영구 보유 형태입니다.

    1. 결제 ₩XX,XXX 버튼을 누르면 브라우저로 결제 페이지가 열립니다.

      유료 모듈 — 결제 버튼 + 가격
    2. 결제 진행 다이얼로그가 런처에 뜹니다.

      브라우저 창이 열리지 않았다면 URL을 복사해 직접 여세요.

      결제 진행 다이얼로그
    3. 결제가 완료되면 자동으로 설치가 시작됩니다.

      런처가 3초 간격으로 entitlement를 폴링해서 감지합니다. 10분 안에 결제하지 않으면 타임아웃됩니다.

      결제 완료 후 자동 설치

로컬 모듈 만들기

마켓플레이스에 없는 자체 ROS 패키지 / vendor SDK를 EasyTrainer 모듈로 등록하려면 로컬 모듈 만들기 마법사를 사용합니다.

    1. 모듈 관리 다이얼로그 하단의 ➕ 로컬 모듈 만들기를 누릅니다.

      모듈 관리 다이얼로그의 ➕ 로컬 모듈 만들기 버튼
    2. 마법사 첫 화면에서 모듈 기본 정보를 입력합니다.

      • id — 영문 소문자 + 언더스코어 (예: robot_myarm)
      • 이름 — UI에 표시될 이름
      • 카테고리 — 로봇 / 센서 / 확장 중 선택
      • 버전 — 처음에는 0.1.0 정도
      ModuleWizard 첫 화면 — 모듈 기본 정보
    3. variant — 로봇/센서별 사양과 ROS 패키지 또는 SDK 폴더를 지정합니다.

      • ROS 패키지 폴더 또는 SDK 폴더 선택
      • URDF 파일 선택 (IK가 필요한 로봇)
      • joint 정보 — 이름, lower/upper bound, tool 여부
      • IK 설정 — URDF 경로, joints_to_lock, EE definition
      ModuleWizard variant 입력 — joint / URDF / IK
    4. launch arguments, pre-launch scripts, post-launch services를 필요에 따라 추가합니다.

      ModuleWizard launch / pre / post 설정
    5. 검증 버튼을 눌러 module.json schema와 SDK controller를 점검합니다.

      • schema 검증id, category, install, robots/sensors 필드의 형식·필수값 확인
      • controller.py 임포트 검증 (SDK 모듈만) — 클래스가 BaseSDKController를 상속하는지, 필수 메서드(connect, enable, write_joints, read_joints, disconnect)가 구현됐는지 확인

      에러가 있으면 본문에 빨간 메시지로 표시됩니다. 모두 통과해야 다음 단계가 활성화됩니다.

      ModuleWizard — 검증 결과
    6. 설치 버튼을 누르면 마법사가 모듈을 패키징하고 EasyTrainer에 설치합니다.

      진행 로그가 실시간 표시됩니다.

      • [1/3] 패키징 — module.json + ROS 패키지 + SDK 폴더를 작업 폴더에 복사해 tar.gz 생성
      • [2/3] 프로젝트 트리에 설치 — 마켓 모듈과 동일한 파이프라인으로 /opt/easytrainer/project/에 배치
      • [3/3] colcon build — ROS 패키지 빌드 (수 분~수십 분)
      • 의존성(apt/pip)은 컨테이너 안에서 자동 설치
      ModuleWizard — 설치 진행 로그
    7. 설치 완료 메시지가 뜨면 마법사를 닫습니다. 모듈 관리 다이얼로그로 돌아오면 새 로컬 모듈이 목록에 등장합니다.

      설치 완료 후 모듈 관리 목록에 등장

모듈 제거

    1. 제거 버튼을 누르면 즉시 제거됩니다 (확인 다이얼로그 없음).

      해당 모듈을 사용하던 로봇/센서가 등록되어 있다면 운영자 UI에서 OFFLINE 상태로 빠집니다.

      제거 후 미설치 상태