RoboDine 프로젝트 완료 - 2개월간의 로봇 레스토랑 개발 여정

프로젝트 완료

2025년 6월 1일, 약 2개월간 진행된 RoboDine 프로젝트가 성공적으로 완료되었습니다. 6명의 팀원이 협력하여 “ROS2와 AI를 활용한 자율주행 & 로봇팔 통합 서비스”라는 목표를 달성했습니다. 이 글에서는 기획부터 서비스 구현까지의 전체 여정과 기술적 성과를 정리해보겠습니다.

최종 시스템 구성

완성된 시스템 아키텍처

RoboDine 전체 데이터 구조 개요

위 다이어그램은 실제 구현된 RoboDine 시스템의 전체 아키텍처를 보여줍니다. 시스템은 크게 사용자 레이어, 서버 레이어, 로봇 레이어로 구성되어 있으며, 다양한 프로토콜을 통해 유기적으로 연결되어 있습니다.

시스템 통신 흐름

아키텍처에서 볼 수 있듯이 각 구성 요소는 다음과 같이 통신합니다:

  1. 사용자 인터페이스: 운영자 대시보드와 키오스크는 HTTP/WebSocket을 통해 중앙 서버와 통신
  2. 로봇 제어: COOKBOT과 ALBABOT은 ROS2를 통해 제어되며, TCP로 상태 정보 전송
  3. 비전 시스템: CookGPT는 UDP를 통해 실시간 객체 감지 결과 전송
  4. 비디오 스트리밍: RTSP 프로토콜을 통한 실시간 영상 스트리밍

핵심 기술 구성

시스템 통신:
  WebSocket: 실시간 클라이언트 통신
  HTTP/REST: CRUD 작업 (8000번 포트)
  TCP: 로봇 제어 명령 전송 (8001번 포트)
  UDP: 비전 데이터 전송 (8003번 포트)
  RTSP: 비디오 스트리밍 (8554번 포트)
  
로봇 시스템:
  COOKBOT: 6축 로봇팔 조리 자동화
  ALBABOT: Navigation2 기반 자율주행 서빙
  CookGPT: YOLOv8 기반 실시간 객체 감지

기술 스택 정리

영역 최종 기술 스택 버전/상세
Backend FastAPI Python 3.8+, 비동기 처리
Frontend React.js 운영자 대시보드 & 키오스크
Database PostgreSQL SQLModel ORM
Communication 멀티 프로토콜 WebSocket, TCP, UDP, RTSP
Robotics ROS2 Jazzy 로봇 제어 및 네비게이션
AI/Vision YOLOv8, OpenCV 실시간 객체 감지
Development Git, Jira, Confluence 버전 관리, 프로젝트 관리

주요 기능별 구현 성과

1. 중앙 제어 시스템 (RoboDine Service)

담당: 김인수

성과:

  • FastAPI 기반 고성능 백엔드 구축
  • 4개 프로토콜(WebSocket, TCP, UDP, RTSP) 통합 관리
  • 실시간 로봇 상태 모니터링 시스템
  • React 기반 운영자 대시보드 및 키오스크 UI 개발

주요 구현:

  • WebSocket을 통한 실시간 데이터 업데이트
  • RTSP 서버를 통한 비디오 스트리밍
  • TCP/UDP 통신으로 로봇 제어 및 비전 데이터 처리
  • PostgreSQL 기반 주문 및 테이블 관리 시스템

2. 조리 로봇 시스템 (COOKBOT)

담당: 김용규

성과:

  • myCobot 6축 로봇팔 정밀 제어 구현
  • ROS2 기반 조리 작업 자동화
  • 샐러드 조리 및 픽업 모션 플래닝 완성
  • 조리 접시 설계 및 제작

주요 구현:

  • 로봇팔 관절 제어를 위한 모션 플래닝
  • 픽업 카트 이물질 판단 시스템
  • 조리 단계별 자동화 프로세스
  • 안전 프로토콜 적용 로봇 작동

3. 서빙 로봇 시스템 (ALBABOT)

담당: 심경용, 허은재

성과:

  • Navigation2 기반 자율주행 구현
  • 3대 로봇의 동시 경로 계획 및 제어
  • 정밀 서빙 및 픽업 모션 구현
  • 장애물 감지 전용 노드 개발

주요 구현:

  • 글로벌 좌표계 기반 로봇 위치 추적
  • ROS Domain Bridge를 통한 다중 로봇 시각화
  • 테이블별 정밀 서빙 시스템
  • 장애물 회피 및 충돌 방지 시스템

4. 비전 AI 시스템 (CookGPT & AlbaGPT)

담당: 임지혜, 장성원

성과:

  • YOLOv8 기반 실시간 객체 감지 시스템
  • 6D Pose Estimation 구현 및 성능 최적화
  • MediaPipe를 활용한 사람 인식 시스템
  • LLM 기반 로봇 상호작용 시스템

주요 구현:

  • 조리 과정 객체 인식 및 위치 추적
  • 키오스크 사람 인식 시스템
  • 이물질 판단 알고리즘 개발
  • LLM을 활용한 고객-로봇 인터랙션

개발 프로세스 - 기획부터 서비스까지

실제 스프린트 기반 개발 과정

Jira를 통해 관리된 실제 개발 일정:

Sprint 1 - 주제기획 (4/9-4/22):
├── 프로젝트 주제 기획 및 목표 설정
├── HW/SW Architecture 설계
├── 기술조사 항목 정리
└── Github 레포지토리 및 파일구조 생성

Sprint 2 - 설계 및 기술조사 (4/10-4/23):
├── ROS2 로봇팔 통신 기술 조사
├── Moveit2 및 Navigation 기술 조사
├── Detection + Pose Estimation 기술 조사
└── 통신 프로토콜 기술 조사

Sprint 3 - 상세설계 및 기술조사, 구현 (4/17-4/24):
├── 음식 조리 방법 구체화
├── 로봇팔 모션 계획 설계
├── 글로벌캠 + Albabot TF 연동
└── LLM 적용 분야 기술 조사

Sprint 4 - Robodine Service (4/24-5/1):
├── 전체 시스템 SW Architecture 통신망 구축
├── Sequence Diagram 완성
├── 6D pose 좌표계 변환 구현
└── 2차 연동 테스트

Sprint 5 - AlbaGPT, CookGPT 완료 (5/1-5/8):
├── LLM 이용한 Albabot 연동
├── MediaPipe 장애물 구분 시스템
├── 키오스크 사람 인식 구현
└── 알바봇 서빙 정밀 모션 구현

Sprint 6 - Alba, Cookbot 완성 (5/8-5/15):
├── 오퍼레이터 PC DB 연동
├── AlbaGPT ↔ RoboDine Service 통신
├── AlbaBot 3대 패스 플래닝
└── 키오스크 UI 완성

Sprint 7 - 기능별 구현 완료 (5/15-5/22):
├── CookBot 조리 모션 플래닝 완성
├── 6D Pose Estimation 성능 점검
├── 키오스크 주문 시스템 연동
└── 오퍼레이터 PC 기능 완료

Sprint 8 - 최종 데모 점검 (5/22-5/29):
├── Albabot 시나리오별 동작 구현
├── AlbaBot 3대 동시 이동 시스템
├── 보안상황 사람 인식 시스템
└── LLM 고객 인터랙션 완성

협업 도구 활용

  • Jira: 에픽별 작업 관리, 스프린트 계획 및 추적
  • Confluence: 기술 문서, 회의록, 개발 일지 관리
  • GitHub: 코드 버전 관리, 브랜치 전략 적용
  • Slack: 일일 스크럼 및 실시간 소통

기술적 도전과 해결 과정

1. 멀티 프로토콜 통신 통합

도전: 하나의 시스템에서 WebSocket, TCP, UDP, RTSP를 모두 안정적으로 운영

해결 과정:

  • FastAPI의 비동기 처리를 활용한 멀티 프로토콜 서버 구현
  • 각 프로토콜별 독립적인 서버 모듈 설계
  • ConnectionManager를 통한 WebSocket 연결 관리
  • UDP Receiver를 통한 실시간 비전 데이터 처리

결과: 4개 프로토콜이 동시에 안정적으로 동작하는 통합 시스템 구축

2. 다중 로봇 제어 및 협업

도전: 3대의 ALBABOT과 1대의 COOKBOT 동시 제어

해결책:

  • ROS2 Domain Bridge를 통한 다중 로봇 네트워크 구성
  • 글로벌 좌표계 기반 로봇 위치 추적 시스템
  • 경로 계획 시 로봇 간 충돌 방지 알고리즘
  • 작업 우선순위 기반 스케줄링

3. 실시간 비전 처리 및 통신

도전: 고해상도 비전 데이터의 실시간 처리 및 전송

해결 방법:

  • YOLOv8 모델 최적화를 통한 처리 속도 향상
  • UDP 프로토콜을 통한 저지연 데이터 전송
  • 6D Pose Estimation 성능 개선
  • RTSP를 통한 효율적인 비디오 스트리밍

프로젝트 성과 분석

기술적 성과

시스템 완성도:

  • 기획 단계에서 설정한 모든 핵심 기능 구현 완료
  • 6개 주요 모듈(RoboDine Service, Alba Manager, Cook Planner, CookGPT, AlbaGPT, 사용자 인터페이스) 통합 완성
  • 실제 하드웨어와 연동된 데모 시스템 구축

기술 융합 성과:

  • 웹 기술(FastAPI, React)과 로봇 기술(ROS2) 성공적 융합
  • AI/ML 기술(YOLOv8, LLM)과 시스템 엔지니어링 결합
  • 다양한 통신 프로토콜의 유기적 통합

프로젝트 관리 성과

일정 관리:

  • 8개 스프린트 모두 계획된 일정 내 완료
  • 총 61개 작업 아이템 완료 (Epic 11개, Task 50개)
  • 주요 마일스톤 달성률 100%

팀 협업:

  • 6명 팀원의 전문 분야별 역할 분담 및 협업
  • 정기적인 연동 테스트를 통한 모듈 간 호환성 확보
  • 체계적인 문서화 및 지식 공유

아쉬운 점과 개선 방향

아쉬웠던 부분

  1. 성능 측정 체계 부족: 시스템 성능에 대한 정량적 측정 및 모니터링 도구 부재
  2. 테스트 자동화 부족: 수동 테스트에 의존하여 회귀 테스트의 어려움
  3. 확장성 고려 부족: 단일 매장 환경에 최적화되어 멀티 매장 확장성 제한

향후 개선 방향

기술적 개선:

  • 성능 모니터링 및 로깅 시스템 구축
  • 자동화된 테스트 스위트 개발
  • 마이크로서비스 아키텍처로의 전환 검토
  • Container 기반 배포 환경 구축

기능 확장:

  • 다중 매장 지원을 위한 시스템 확장
  • 머신러닝 기반 주문 패턴 분석
  • 음성 인식 기반 주문 시스템 추가
  • 고객 맞춤형 추천 시스템 개발

팀원별 기여도와 성장

개인별 주요 기여

김용규 (팀장):

  • 전체 프로젝트 기획 및 일정 관리
  • COOKBOT 조리 로봇 시스템 설계 및 구현
  • 하드웨어 설계 및 제작 (픽업 카트, 조리 접시)

김인수 (본인):

  • 중앙 제어 시스템 아키텍처 설계
  • FastAPI 기반 백엔드 서버 개발
  • React 기반 운영자 대시보드 및 키오스크 UI 개발
  • 멀티 프로토콜 통신 시스템 구현

임지혜 & 장성원:

  • YOLOv8 기반 비전 시스템 개발
  • 6D Pose Estimation 구현 및 최적화
  • LLM 기반 로봇 인터랙션 시스템 개발
  • MediaPipe를 활용한 사람 인식 시스템

심경용 & 허은재:

  • Navigation2 기반 자율주행 시스템 개발
  • 다중 로봇 경로 계획 및 제어 시스템
  • 정밀 서빙 모션 및 장애물 감지 시스템
  • ROS Domain Bridge 다중 로봇 시각화

프로젝트를 통해 배운 것

기술적 학습

  1. 시스템 통합 능력: 다양한 기술 스택을 하나의 시스템으로 통합하는 경험
  2. 실시간 시스템 설계: 로봇 제어를 위한 실시간 통신 시스템 구현
  3. 비동기 프로그래밍: FastAPI와 asyncio를 활용한 고성능 서버 개발
  4. 로봇 시스템 이해: ROS2 생태계와 로봇 제어 원리에 대한 심화 이해

프로젝트 관리와 협업

  1. 애자일 방법론 실습: Jira를 활용한 스프린트 기반 개발 프로세스
  2. 체계적 문서화: 기술 문서와 API 명세서 작성의 중요성
  3. 팀 커뮤니케이션: 기술적 의사결정 과정에서의 효과적인 소통
  4. 통합 테스트: 모듈 간 연동 테스트의 중요성과 방법론

결론

RoboDine 프로젝트는 단순한 기술 구현을 넘어서 기획부터 서비스까지의 완전한 제품 개발 과정을 경험할 수 있었던 소중한 프로젝트였습니다. 특히 다음과 같은 성과를 달성했습니다:

핵심 성과 요약

  1. 완전한 서비스 구현: 아이디어 기획부터 실제 동작하는 로봇 레스토랑 시스템까지 구현
  2. 기술 융합: 웹, 로봇, AI 기술의 성공적인 통합
  3. 팀 협업: 6명의 서로 다른 전문분야 팀원들과의 효과적인 협업
  4. 프로젝트 관리: 체계적인 스프린트 관리로 일정 내 목표 달성

6명의 팀원이 각자의 전문 분야에서 최선을 다하여 완성한 RoboDine 시스템은 학습 프로젝트의 범위를 넘어서 실제 비즈니스 적용 가능성을 보여주는 완성도 높은 시스템이 되었습니다.

앞으로도 이런 도전적인 프로젝트를 통해 기술적 역량과 팀워크 능력을 함께 키워나가고, 더 나은 시스템을 만들어가는 개발자가 되고 싶습니다.


RoboDine 프로젝트의 모든 코드와 문서는 GitHub 저장소에서 확인하실 수 있습니다. 이 프로젝트에 함께한 모든 팀원들께 감사드립니다.




Enjoy Reading This Article?

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

  • RoboDine 데이터베이스 설계 - SQLModel과 관계형 데이터 모델링
  • RoboDine 키오스크 개발 - React 기반 고객 주문 인터페이스
  • FastAPI로 구축한 RoboDine 백엔드 시스템
  • RoboDine 운영자 대시보드 개발 - React 기반 실시간 관제 시스템
  • RoboDine 프로젝트의 컴퓨터 비전 기술 구현