MOCA Portfolio

Vision 기반
양팔 로봇 제어

MOCA OpenArm 제조 시나리오 구현

이동형 로봇 케이터링 플랫폼에서 Vision 인식 결과를 제조 동작으로 연결하고, OpenArm 양팔 로봇으로 핫도그·음료 제조 시나리오를 구현했습니다.

ROS 2OpenArmMoveIt 2GazeboVision Manipulation
physical-ai-repo-3
MOCA 이동형 로봇 케이터링 플랫폼
01 / 16
Contents

목차

02 / 16
  1. 01프로젝트 개요MOCA 플랫폼과 제조 파트 목표
  2. 02제조 범위와 역할제조 sequence, 팀 구성, 담당 업무
  3. 03기술 스택 및 아키텍처MOCA 시스템 구성 / 제조 로봇 기술 스택
  4. 04나의 주요 구현 내용Vision pose 갱신, Sim-to-Real 3단계, 양팔 협응
  5. 05트러블슈팅Gazebo, MoveIt, 엔드 이펙터, 액추에이터 이슈
  6. 06결과 및 회고제조 시나리오 통합 결과와 개선 방향
01 / Project Overview

프로젝트 개요

03 / 16

MOCA: Dynamic Robotics

점주 1명과 로봇이 협업하여 주문, 제조, 서빙, 모객 업무를 수행하는 이동형 로봇 케이터링 플랫폼입니다. 제조 파트는 웹 주문을 로봇팔 제조 태스크로 변환하고, 레시피 순서에 따라 식음료를 만들어 픽업존에 배치하는 핵심 기능입니다.

문제소규모 매장에서 주문, 제조, 서빙, 고객 응대를 한 사람이 동시에 처리해야 하는 부담이 큼
목표주문 메뉴를 stage·waypoint 기반 제조 sequence로 실행하고 제조 완료 상품을 픽업존에 배치
제조 범위핫도그 조립, 음료 제공, Vision pose 갱신, 시뮬레이션 검증, 실물 로봇 전이
MOCA 프로젝트 개요
주문 → 제조 → 서빙으로 이어지는 MOCA 프로젝트 흐름
01 / Project Overview

제조 파트 범위와 검증 흐름

04 / 16
Gazebo 케이스 집기
01케이스 집기
Gazebo 빵 배치
02빵 배치
Gazebo 소시지 배치
03소시지 배치
Gazebo 케첩 도포
04케첩 도포
02 / Team & Role

팀 구성과 나의 역할

05 / 16
김덕현 프로필 이미지
김덕현Manufacturing / OpenArm / Presenter

내 담당 업무

  • OpenArm 양팔 로봇의 제조 sequence와 stage 기반 실행 흐름 구현
  • MoveIt Planning과 Cartesian Path를 조합한 핫도그·음료 제조 동작 구성
  • Blender·Gazebo·실물 제조 맵의 좌표계와 단위를 맞춘 제조 공간 설계 및 제작
  • 실물 로봇 제조 동작 연동, 실행 검증, 문제 상황별 동작 보정
  • 전체 프로젝트 발표
송민규프로젝트 총괄 / 시스템 설계 / 중앙 관제 / 관리자 GUI / 작업 조율
김덕현OpenArm 제조 sequence 구현 / MoveIt·Cartesian 제조 동작 구성 / Blender·Gazebo·실물 좌표계 정합 / 제조 맵 제작 / 프로젝트 발표
류재상제조 로봇 동작 / 비전 기반 조작 / 실물 동작 보정
김진우주문 서버 / 자연어 주문 / 서빙 주행
안순혁모객 추종 / 고객 응대 흐름
공국진서빙 로봇 FSM 모드 제어 / 모객 감정 분석
03 / Tech Stack & Architecture

기술 스택 및 아키텍처

06 / 16
MOCA 시스템 아키텍처
MOCA 시스템 아키텍처

제조 로봇 중심 기술 스택

환경
UbuntuPythonROS 2C++
제조 로봇
OpenArmMoveItGazeboUltralytics YOLO
Order / Operation주문 메뉴를 제조 stage와 waypoint sequence로 변환
Vision PerceptionDepth·YOLO·PCA 기반 객체 위치와 파지 방향 산출
Robot ExecutionMoveIt Planning과 Cartesian Path로 OpenArm 양팔 제조 동작 실행
Simulation ValidationBlender layout → Gazebo world → MoveIt planning scene으로 검증 후 실물 전이
04 / My Implementation

비전 기반 매니퓰레이터 제어

07 / 16

Vision 결과를 제조 동작으로 변환

  • Depth 카메라 영상에서 식재료와 물품 후보 영역을 추출
  • YOLO class 후보와 색상·형상 단서로 재료·물품을 매칭
  • Depth 중심 위치와 PCA 주축으로 파지 진입 방향을 계산
  • 인식 결과를 엔드 이펙터 goal pose에 반영해 stage별 목표를 갱신
  • MoveIt Planning으로 충돌 회피 경로를 만들고, 직선 진입·배치 구간은 Cartesian Path로 수행
Vision 기반 객체 인식 화면▶ 시연 영상 보기
Vision 기반 객체 인식과 주축 추정
04 / My Implementation · Sim-to-Real

시뮬레이션 검증 → 실물 전이: ① 시뮬레이션 월드 구축

08 / 16

Blender → Gazebo → MoveIt 환경 구성

  • Blender·Gazebo·실물 제조 맵이 같은 좌표계와 단위를 공유하도록 제조 layout을 설계
  • 케이스·빵·소시지·케첩·음료 모델의 크기와 위치를 조정
  • Python 기반 Blender exporter로 Gazebo 모델과 MoveIt planning scene을 함께 생성
  • collision 형상과 색상을 조정해 Vision·MoveIt 검증에 활용
  • Blender에서 수정한 위치와 크기가 Gazebo와 실물 제작물에 같은 기준으로 반영되도록 맞추고 OpenArm 제조 동작으로 전이
Blender 제조 월드 모델링
Blender 월드 모델링Gazebo·실물과 같은 단위 기준으로 제조 layout을 설계
Gazebo 제조 월드 반영
Gazebo 월드 반영제작한 exporter 스크립트로 Blender 월드를 Gazebo에 적용
MoveIt planning scene 자동 반영
MoveIt Planning Sceneexport 결과를 충돌 객체로 반영해 경로 계획 조건 구성
04 / My Implementation · Sim-to-Real

시뮬레이션 검증 → 실물 전이: ② 시뮬레이션 제조 구현 및 검증

09 / 16
Gazebo 케이스 집기▶ 시연 영상 보기
① 케이스 집기
Gazebo 빵 배치▶ 시연 영상 보기
② 빵 배치
Gazebo 소시지 배치▶ 시연 영상 보기
③ 소시지 배치
Gazebo 케첩 도포▶ 시연 영상 보기
④ 케첩 도포
04 / My Implementation · Sim-to-Real

시뮬레이션 검증 → 실물 전이: ③ 실물 로봇 전이

10 / 16
실물 빵 배치▶ 시연 영상 보기
① 빵 배치
실물 소시지 배치▶ 시연 영상 보기
② 소시지 배치
실물 케첩 도포▶ 시연 영상 보기
③ 케첩 도포
04 / My Implementation

양팔 협응 제어

11 / 16

양팔 move group 기반 협응

  • 별도의 오른팔·왼팔 move group으로 나뉘어 있던 제어 구성을 하나의 양팔 move group으로 묶어 planning 대상에 포함
  • TF를 통해 각 팔의 현재 상태와 TCP 위치를 확인하고, 두 팔 사이의 상대 위치를 제조 판단에 사용
  • 현재 stage, 점유 중인 팔, 다음 목표 pose, TCP 간 거리 정보를 기준으로 행동 판단 매니저가 작업 순서를 조율
  • 핫도그 조립에서는 한 팔이 케이스를 지지하는 동안 다른 팔이 빵·소시지 배치와 케첩 도포를 수행
  • 음료 제공에서는 왼팔 픽업 → 오른팔 인계 → 픽업존 배치 순서로 TCP 위치와 후퇴 waypoint를 조정
Gazebo 양팔 협응 음료 제공 검증▶ 시연 영상 보기
Gazebo 협응 검증양팔 move group과 TF 기반 TCP 위치를 사용해 인계 동작을 시뮬레이션 검증
핫도그 제조 양팔 협응 검증▶ 시연 영상 보기
핫도그 제조한 팔은 대상물을 지지하고 다른 팔은 배치·도포 동작 수행
음료 제공 양팔 협응 검증▶ 시연 영상 보기
음료 제공TCP 위치 확인 → 왼팔 픽업 → 오른팔 인계 → 픽업존 배치
05 / Troubleshooting

트러블슈팅: OpenArm 공식 Gazebo 환경 부재

12 / 16

문제: OpenArm 공식 Gazebo 환경 부재

Gazebo 미지원 문제

OpenArm 공식 패키지에 Gazebo 실행·검증 환경이 포함되어 있지 않아 제조 동작을 시뮬레이션에서 바로 검증할 수 없었습니다.

해결: OpenArm Gazebo 검증 환경 구성

Gazebo 실행 환경 구성

URDF를 수정하고 robot description, Gazebo launch 구성을 추가해 제조 시뮬레이션 검증 환경을 구성했습니다.

05 / Troubleshooting

트러블슈팅: MoveIt 불안정

13 / 16

문제: trajectory 실행 중 팔이 순간적으로 떨어짐

MoveIt 실행 불안정 문제▶ 공식 이슈 보기

공식 openarm_ros2 이슈 #77에서도 joint_trajectory_controller에 새 command를 보낼 때 torque가 순간적으로 relax되어 팔이 briefly drop되는 문제가 보고되었습니다.

해결: 중력 보상과 dynamics 보정

MoveIt dynamics 보정 결과▶ 시연 영상 보기

수업에서 제공된 fix 코드를 분석한 뒤 프로젝트 제어 구조에 맞게 적용했습니다. 중력 보상과 robot dynamics 보정을 반영해 trajectory 실행 중 팔이 떨어지는 문제를 해결했습니다.

05 / Troubleshooting

트러블슈팅: 그리퍼 불일치

14 / 16

문제: 공식 description과 실물 불일치

공식 description 기반 그리퍼 수정 전
공식 URDF·robot description의 그리퍼 형상과 실물 그리퍼가 달라 파지 pose, collision 기준이 어긋났습니다.

해결: 실물 형상 모델링

실물 그리퍼 모델링 및 description 수정
Blender에서 실물 그리퍼 형상을 모델링하고 URDF와 robot description을 실물 기준으로 수정했습니다.

반영 후: TCP·collision 보정

그리퍼 수정 후 TCP collision 보정
수정된 description을 기반으로 gripper collision과 TCP 기준을 맞춰 안정적인 파지 동작으로 보정했습니다.
05 / Troubleshooting

트러블슈팅: 액추에이터 전원 케이블 단선

15 / 16
단선 이슈 전 정상 케첩 도포 동작
단선 전 정상 동작: 케첩 도포 수행
액추에이터 단선 문제 1
발표 3일 전 단선 발생
전원선 마찰 위치
케이스 모서리와 전원선 마찰 위치

상황과 원인 판정

  • 최종 발표 3일 전, 제공된 로봇의 오른팔 액추에이터 전원 케이블 단선이 발생
  • 즉시 상황을 공유했으나 여분 케이블이 준비되어 있지 않았고, 발표 전까지 복구 불가능하다는 판정을 받음
  • 함께 원인을 확인한 결과, 3D 프린트 케이스의 날카로운 모서리와 여유 길이 없이 조립된 전원선이 반복 마찰된 기구 이슈로 판명
  • 오른팔 command를 비활성화하고, 왼팔 단독·단계별 수동 진행 모드로 제조 검증 절차를 재구성
  • 양팔 제조 플로우의 핵심 stage가 끊기지 않도록 실행 순서와 실물 검증 방식을 조정
06 / Result & Retrospective

결과 및 회고

16 / 16
실물 핫도그 제조 검증
실물 제조 시나리오 검증

결과

  • 핫도그 조립, 케첩 도포, 음료 제공을 stage 기반 제조 sequence로 수행
  • 물체 상태에 따라 goal pose를 갱신하고 MoveIt Planning과 Cartesian Path를 조합
  • Gazebo에서 검증한 제조 동작을 실물 로봇으로 전이해 재현성을 확인

회고

  • 시뮬레이션 성공과 실물 성공 사이에는 모델, 배선, 동역학 차이가 크게 작용
  • 제조 기능은 동작 구현뿐 아니라 예외 상황에서 플로우를 유지하는 설계가 중요
  • 향후에는 사람이 제조 중간 단계를 대신 수행해도 현재 상태를 반영해 다음 단계부터 재개하는 협동 제조로 확장 가능

향후 개선

현재제조 동작 수행
보강safety zone 안에서 사람 감지 시 즉시 정지
목표점주는 예외 판단, 로봇은 반복 제조 수행