← 프로젝트 목록
PROJECT / 03 · ROBOTICS / VISION

Mirobot ROS2 제어·비전

로봇팔 제어, 양팔 작업, 비전 기반 큐브 정리와 주문 피킹을 ROS2 모듈로 구성.

2025.10 – 2026.10 기록기능별 저장소 분리동아리 로봇 프로젝트

개요와 담당 역할

Mirobot ROS2 통합 저장소에서 제어·양팔·비전·주문 배송 기능을 독립 저장소로 분리했다. 카메라 인식에서 좌표 판단, 작업 시퀀스와 결과 응답까지 연결하는 구조다.

개발 배경

여러 동작 모드가 한 작업 공간에 섞이면 의존성과 실행 경로가 불명확해진다. 장비 응답 실패를 정상 완료로 처리하지 않도록 기능 경계와 결과 전달 방식도 명확히 할 필요가 있었다.

담당 역할

  • 기존 ROS1 중심 Mirobot의 ROS2 제어 환경 개발
  • OpenCV·YOLOv5·ROS2 기반 큐브 인식과 정리 로직 개발
  • 로봇팔 제어와 작업 시퀀스 연동
  • 공개 저장소에서 기능 분리 및 실패 처리 로직 관리

개발 목표

  • 제어·양팔·비전·주문 모듈의 실행 책임 분리
  • 좌표 입력과 장비 응답을 검증한 뒤 후속 동작 수행
  • 실패 원인과 처리 수량을 주문 결과에 반영

시스템 구성

Mirobot 제어·양팔·비전·주문 모듈의 분리와 연결 관계를 정리한 시스템 구성도
공개 저장소의 기능 분리 구조
01

Control

Serial 드라이버, 로봇 모델, 명령·상태 연동

02

Dual Arm

master/slave 작업 시퀀스와 완료 상태 확인

03

Vision

카메라 인식·좌표 검증·큐브 정리 흐름

04

Order Delivery

주문 수량 처리, 펌프·이동·복귀 결과 응답

구현 과정

상태와 결과 분리

로봇이 더 이상 움직이지 않는 상태와 작업 성공을 구분한다. 요청 ID가 일치하고 명시적인 성공 결과가 있을 때 완료 처리한다.

동작 실패 전파

새로운 busy→idle 변화와 상태 freshness를 확인한다. 펌프·이동 대기·최종 복귀 실패를 최종 주문 결과로 전달한다.

주요 기능

  • ROS2 launch와 로봇 모델·상태·명령 구성
  • 명시적인 성공/실패 결과와 요청 ID 확인
  • 상태 미수신·시간 초과 시 후속 시퀀스 중단
  • 비전 좌표 검사 및 주문 처리 수량 보존

문제 해결

응답이 없거나 오래된 상태를 받아도 다음 동작이 실행될 수 있음

단계별 freshness와 시간 제한을 적용하고 실패 시 후속 이동을 차단했다.

공개 failure-path 테스트에서 응답 미수신·시간 초과·정지 흐름을 다룬다.

마지막 복귀 실패에도 주문 성공이 반환될 수 있음

각 장치 오류를 누락하지 않고 전파하면서 이미 처리한 수량을 보존하도록 구성했다.

주문 처리 모듈의 실패 경로 테스트와 README에서 해당 동작을 확인할 수 있다.

평가 결과

4
기능 저장소

제어·양팔·비전·주문

검증 방법

  • 공개 README의 빌드·정적 검사·제한된 launch 확인 범위
  • 실패 경로 테스트 코드: 시간 초과, 상태 미수신, 펌프·복귀 실패
  • 기존 큐브 정리 시연 영상과 최근 분리본 검증 범위를 구분

주요 결과

  • 공통 제어와 작업별 모듈을 분리하여 실행·유지보수 경계 정리
  • 실패 후 후속 동작과 잘못된 성공 응답을 차단하는 처리 추가
  • 기존 큐브 정리 시연 자료 확보

검증 범위와 후속 과제

  • 2026.10 분리본의 실제 로봇 재검증은 완료되지 않았다. 기존 시연 영상이 최신 코드의 실기기 검증을 대신하지 않는다.
  • 모델 가중치는 공개 저장소에 포함되지 않으며 현재 카메라·모델 조합의 추론 호환성은 추가 확인이 필요하다.
  • 반복 작업 성공률·처리 시간·좌표 오차의 확정 측정치는 제시하지 않는다.

관련 자료

공개 저장소의 2026.10.10 UTC 커밋과 기존 포트폴리오의 담당 역할·시연 자료를 대조. 최신 분리본의 실기기 재검증과 정량 성능은 미확인.