RoboDine 프로젝트 시작 - 로봇 레스토랑의 첫걸음

프로젝트의 시작

2025년 4월 11일, RoboDine 프로젝트가 시작되었습니다. 6명의 팀원이 모여 “ROS2와 AI를 활용한 자율주행 & 로봇팔 통합 서비스”라는 야심찬 목표를 설정했습니다. 저는 이 프로젝트에서 통신 시스템과 웹 UI 개발을 담당하게 되었습니다.

팀 구성과 역할 분담

팀 멤버와 담당 역할

  • 김용규(팀장): 조리 로봇(COOKBOT) 제어 시스템
  • 김인수(본인): 통신 시스템 구축 및 웹 UI 개발
  • 임지혜: AI 및 컴퓨터 비전 시스템
  • 장성원: AI 및 비전 시스템 보조
  • 심경용: 서빙 로봇(ALBABOT) 제어
  • 허은재: 서빙 로봇 시스템 보조

초기 기술 스택 결정

첫 번째 미팅에서 우리가 결정한 핵심 기술 스택은 다음과 같았습니다:

Backend:
  - Framework: FastAPI (Python 3.8+)
  - Database:  PostgreSQL
  - Communication: WebSocket, TCP, UDP, RTSP

Frontend:
  - Framework: React.js 17.0.2
  - Styling: Tailwind CSS
  - State Management: React Hooks
  - Real-time: Socket.io-client

Robotics:
  - OS: ROS2 Jazzy
  - Vision: YOLOv8, OpenCV
  - Robot Control: myCobot SDK, PyRobots

Development:
  - Version Control: Git, GitHub
  - Documentation: Confluence
  - Communication: Slack
  - Project Management: Jira

초기 시스템 아키텍처 설계

고수준 시스템 구조

우리가 설계한 시스템 구조입니다:

RoboDine System Architecture

통신 프로토콜 설계

각 시스템 간의 통신 방식을 다음과 같이 계획했습니다:

연결 프로토콜 포트 용도
웹 클라이언트 ↔ 서버 WebSocket 3000 실시간 상태 업데이트
웹 클라이언트 ↔ 서버 HTTP/REST 8000 데이터 CRUD
서버 ↔ COOKBOT TCP 8001 로봇 명령 및 상태
서버 ↔ ALBABOT TCP 8002 이동 명령 및 위치
서버 ↔ CookGPT UDP 8003 비전 데이터
비디오 스트리밍 RTSP 8554 실시간 영상

초기 개발 환경 구축

개발 도구 셋업

프로젝트 시작과 함께 개발 환경을 구축했습니다:

# 1. Python 가상환경 설정
python -m venv robovenv
source robovenv/bin/activate  # Linux/Mac
# robovenv\Scripts\activate   # Windows

# 2. 필수 패키지 설치
pip install fastapi[all] uvicorn websockets
pip install sqlmodel sqlite3 psycopg2-binary
pip install opencv-python ultralytics
pip install python-multipart aiofiles

# 3. Node.js 프로젝트 초기화
npx create-react-app frontend
cd frontend
npm install tailwindcss socket.io-client chart.js

GitHub 저장소 구조

프로젝트 구조를 다음과 같이 설계했습니다:

roscamp-repo-2/
├── robodine_service/          # 중앙 제어 시스템
│   ├── backend/              # FastAPI 백엔드
│   │   ├── app/
│   │   ├── routers/
│   │   ├── db/
│   │   └── requirements.txt
│   └── frontend/             # React 프론트엔드
│       ├── operator/         # 운영자 대시보드
│       └── kiosk/           # 키오스크 시스템
├── cook_planner/             # 조리 로봇 제어
├── cook_gpt/                 # 비전 시스템
├── alba_manager/             # 서빙 로봇 제어
├── alba_gpt/                 # 서빙 로봇 AI
├── robot_debugger/           # 디버깅 도구
└── docs/                     # 프로젝트 문서

첫 주 개발 목표

Week 1 (4/9 - 4/15) 목표

각 팀원별로 다음과 같은 목표를 설정했습니다:

김인수 (통신 & 웹 UI):

  • FastAPI 기본 서버 구축
  • WebSocket 연결 테스트
  • React 프로젝트 초기 구조 생성
  • 기본 대시보드 레이아웃 구현

김용규 (COOKBOT 제어):

  • myCobot 로봇 기본 연결 테스트
  • ROS2 노드 기본 구조 구현
  • 로봇 관절 제어 기본 기능

임지혜 & 장성원 (비전 시스템):

  • YOLOv8 모델 로드 및 테스트
  • 카메라 입력 처리 기본 구현
  • 객체 감지 기본 기능

심경용 & 허은재 (ALBABOT 제어):

  • 자율주행 로봇 기본 연결
  • Navigation2 기본 설정
  • 로봇 이동 제어 테스트

협업 규칙 설정

Git 워크플로우

# 브랜치 네이밍 규칙
feature/통신시스템-websocket-구현
fix/대시보드-연결오류-수정
docs/API-문서-업데이트

# 커밋 메시지 규칙
[통신] WebSocket 연결 관리자 구현
[UI] 대시보드 기본 레이아웃 추가
[로봇] myCobot 기본 제어 기능 구현

일일 스크럼

  • 시간: 매일 오전 9시
  • 방식: 스탠드업 미팅 진행 후 Confluence에 정리
  • 형식:
    • 어제 한 일
    • 오늘 할 일
    • 블로커/이슈

문서화 규칙

  • Confluence: 주요 설계 문서, 회의록
  • README: 각 모듈별 설치/실행 가이드
  • 코드 주석: 핵심 로직에 대한 상세 설명

초기 도전과 우려사항

기술적 도전

  1. 다중 프로토콜 통합: WebSocket, TCP, UDP, RTSP를 하나의 시스템에서 안정적으로 운영
  2. 실시간 성능: 로봇 제어의 지연 시간을 최소화해야 하는 과제
  3. 시스템 복잡도: 6개의 독립적인 모듈을 유기적으로 연결하는 복잡성

프로젝트 관리 우려

  1. 일정 관리: 2개월이라는 제한된 시간 내에 완성도 있는 시스템 구축
  2. 팀 협업: 6명의 개발자가 서로 다른 기술 스택으로 작업하는 조율
  3. 통합 테스트: 개별 모듈을 통합했을 때 발생할 수 있는 예상치 못한 이슈

프로젝트 성공을 위한 전략

점진적 개발 접근법

  1. MVP 우선: 핵심 기능부터 구현하여 동작하는 프로토타입 빠른 구축
  2. 모듈별 독립 개발: 각 모듈을 독립적으로 개발 후 단계적 통합
  3. 지속적 통합: 주 2회 전체 시스템 통합 테스트 진행

리스크 관리

  • 백업 플랜: 핵심 기능별로 대안 기술 스택 준비
  • 조기 통합: 개발 중반부터 모듈 간 연동 테스트 시작
  • 문서화: 모든 설계 결정과 변경 사항을 상세히 기록

첫 주를 마치며

프로젝트 첫 주가 지나고, 우리는 야심찬 목표를 세웠습니다. 로봇 레스토랑이라는 복잡한 시스템을 2개월 만에 구현하는 것은 쉽지 않은 도전이지만, 체계적인 계획과 팀워크로 충분히 달성 가능하다고 생각했습니다.

다음 포스트에서는 실제 개발 과정에서 겪은 첫 번째 기술적 도전과 해결 과정에 대해 공유하겠습니다.


RoboDine 프로젝트는 이제 막 시작되었습니다. 앞으로의 여정이 어떻게 전개될지 기대가 됩니다. 다음 포스트에서는 FastAPI 백엔드 구축 과정을 상세히 다루겠습니다.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • RoboDine 프로젝트 완료 - 2개월간의 로봇 레스토랑 개발 여정
  • RoboDine 데이터베이스 설계 - SQLModel과 관계형 데이터 모델링
  • RoboDine 키오스크 개발 - React 기반 고객 주문 인터페이스
  • FastAPI로 구축한 RoboDine 백엔드 시스템
  • RoboDine 운영자 대시보드 개발 - React 기반 실시간 관제 시스템