정지용
프로젝트 목록
인프라

로봇 원격시연 데이터 수집-학습-평가 루프 시스템

로봇 팔 원격시연 데이터를 엣지에서 수집해 클라우드에 검증·등재하고 학습·평가로 이어지는 파이프라인 설계

physical-ai-agentsystem-overview최근 업데이트 2026년 8월 21일

개요

VLA(Vision-Language-Action) 모델 학습에 필요한 로봇 팔 원격시연 데이터를 수집하는 시스템으로, USB 직결·하드웨어 인코딩·30fps 제어 루프·NAT 방화벽 같은 물리 제약 때문에 수집 자체는 클라우드로 옮길 수 없다는 전제에서 출발합니다. 엣지가 클라우드의 지시를 아웃바운드로 pull 하고, 수집한 데이터는 presigned URL로 오브젝트 스토리지에 직접 업로드해 API 서버 대역폭을 소모하지 않도록 설계했습니다. 업로드 후에는 에피소드 수·체크섬·카메라 키·fps 일치 여부를 검사하는 무결성 게이트를 통과해야만 데이터셋으로 등재되어 부분 업로드가 유효 데이터로 보이는 상황을 구조적으로 차단합니다. 평가에서 드러난 실패 모드를 다음 수집 잡의 조건으로 되먹임하는 개선 루프를 데이터 모델에 반영했으며, 모노레포 16개 서비스를 배포 단위 4개로 묶는 기준을 세워 운영 비용을 통제했습니다. 이 레포는 실제 구현 코드 없이 아키텍처·기술 선택 근거·담당 범위만 정리한 문서 전용 저장소입니다.

담당 역할

시스템 설계 및 구현을 단독으로 담당했습니다. 엣지-클라우드 경계 정의부터 수집·등록 파이프라인, 클라우드 API, 엣지 대시보드, 평가 서비스 구현, 배포 워크플로 구성까지 전 구간을 맡았습니다.

아키텍처 다이어그램

레포지토리 분석 결과를 바탕으로 자동 생성된 구조도입니다.

아키텍처

전체 시스템 아키텍처

엣지, 클라우드 API, 오브젝트 스토리지, GPU 배치 잡, 웹 프런트가 어떻게 연결되는지 보여줍니다.

다이어그램을 그리는 중…
시퀀스

수집 데이터 등록 흐름

운영자의 잡 발행부터 엣지 수집, 업로드, 무결성 게이트, 등재까지�� 순서를 보여줍니다.

다이어그램을 그리는 중…
흐름도

데이터 개선 루프

과제 등재부터 학습, 평가, 실패 모드 식별을 거쳐 보강 수집으로 되먹임되는 순환 구조입니다.

다이어그램을 그리는 중…

기술스택

각 기술을 이 프로젝트에서 어떤 용도로 썼는지 정리했습니다.

언어

  • Python클라우드·엣지 서비스 전반의 구현 언어

백엔드

  • FastAPI데이터셋 등록·게이트, 잡 명세, 평가 세션을 다루는 클라우드 API
  • gRPC30fps 실시간 로봇 제어 루프의 명령 전달

데이터베이스

  • PostgreSQLSKIP LOCKED 기반 잡 큐와 상태 저장
  • Alembic앱 기동 시 자동 수행되는 스키마 마이그레이션
  • SQLite엣지 로컬 업로드 스풀 큐

데이터

  • PyArrow무결성 게이트에서 메타데이터 파일을 읽어 선언값과 실제 행수 대조

도구

  • httpx엣지 수집 에이전트가 클라우드와 통신하는 아웃바운드 HTTP 클라이언트

프론트엔드

  • Next.js운영 뷰(SPA)와 랜딩 페이지, BFF로 API 프록시

프레임워크

  • Jinja2폐쇄망에서 완결돼야 하는 엣지 수집 대시보드 서버 렌더링

DevOps

  • Docker서비스 컨테이너 패키징 및 엣지·서버 배포
  • GitHub Actions서비스별 CI, 이미지 릴리스, 경로 필터 기반 선택적 배포

핵심 포인트

  • 엣지가 클라우드 지시를 아웃바운드 pull로 가져와 방화벽에 inbound를 열지 않는 구조 설계
  • presigned URL 직행 업로드로 API 서버 대역 소모를 0으로 만들고 엣지에 스토리지 자격증명 미배포
  • 무결성 게이트로 부분 업로드가 유효 데이터셋으로 등재되는 것을 구조적으로 차단
  • 네트워크 단절에도 수집이 계속되는 로컬 큐 기반 업로드 스풀과 자동 배출
  • 평가 실패 모드를 다음 수집 잡 조건으로 되먹임하는 데이터 개선 루프 설계
  • 역할 디렉터리 16개를 배포 단위 4개로 묶어 운영 비용을 통제하고 분리 조건을 트립와이어로 명시

문제와 해결

문제로봇 원격시연은 사람이 leader 팔을 물리적으로 잡아야 하고 USB 직결·하드웨어 인코딩·30fps 루프·NAT 방화벽 제약으로 수집 자체를 클라우드로 옮길 수 없었다

해결수집을 클라우드로 옮기는 대신 엣지의 수집을 웹에서 지시하고 결과를 표준 형식으로 저장·검증하는 구조로 문제를 재정의했다

문제사람이 30분간 팔을 잡고 시연한 뒤에야 카메라 키나 fps 설정 오류를 발견하는 것은 현장에서 가장 비싼 실패였다

해결계약 검증(카메라 키·fps·로봇 타입)을 로봇 기동 이전 단계로 배치해 실패 시 로봇을 띄우기 전에 중단하도록 만들었다

문제역할 디렉터리 16개를 그대로 배포 단위로 삼으면 소수 인력 단계에서 운영 비용만 늘어난다

해결기본값을 단일 클라우드 앱으로 두고 다른 컴퓨터, 서버가 아님 등 근거가 있는 것만 분리해 4개 배포 단위로 묶었다

레포지토리 정보

생성
2026년 8월 21일
최근 커밋
2026년 8월 21일
크기
8 KB
라이선스
없음

이 문서는 2026년 8월 30일 에 자동 분석으로 생성되었습니다.