MOCA Portfolio
Vision 기반
Vision 기반
양팔 로봇 제어
MOCA OpenArm 제조 시나리오 구현
이동형 로봇 케이터링 플랫폼에서 Vision 인식 결과를 제조 동작으로 연결하고, OpenArm 양팔 로봇으로 핫도그·음료 제조 시나리오를 구현했습니다.
ROS 2OpenArmMoveIt 2GazeboVision Manipulation
physical-ai-repo-3
01 / 16
Contents
목차
02 / 16
- 01프로젝트 개요MOCA 플랫폼과 제조 파트 목표
- 02제조 범위와 역할제조 sequence, 팀 구성, 담당 업무
- 03기술 스택 및 아키텍처MOCA 시스템 구성 / 제조 로봇 기술 스택
- 04나의 주요 구현 내용Vision pose 갱신, Sim-to-Real 3단계, 양팔 협응
- 05트러블슈팅Gazebo, MoveIt, 엔드 이펙터, 액추에이터 이슈
- 06결과 및 회고제조 시나리오 통합 결과와 개선 방향
01 / Project Overview
프로젝트 개요
03 / 16
MOCA: Dynamic Robotics
점주 1명과 로봇이 협업하여 주문, 제조, 서빙, 모객 업무를 수행하는 이동형 로봇 케이터링 플랫폼입니다. 제조 파트는 웹 주문을 로봇팔 제조 태스크로 변환하고, 레시피 순서에 따라 식음료를 만들어 픽업존에 배치하는 핵심 기능입니다.
01 / Project Overview
제조 파트 범위와 검증 흐름
04 / 16




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







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로 수행
▶ 시연 영상 보기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 제조 동작으로 전이

→

→

04 / My Implementation · Sim-to-Real
시뮬레이션 검증 → 실물 전이: ② 시뮬레이션 제조 구현 및 검증
09 / 16
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를 조정
▶ 시연 영상 보기
▶ 시연 영상 보기
▶ 시연 영상 보기05 / Troubleshooting
트러블슈팅: OpenArm 공식 Gazebo 환경 부재
12 / 16
문제: OpenArm 공식 Gazebo 환경 부재

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

URDF를 수정하고 robot description, Gazebo launch 구성을 추가해 제조 시뮬레이션 검증 환경을 구성했습니다.
05 / Troubleshooting
트러블슈팅: MoveIt 불안정
13 / 16
문제: trajectory 실행 중 팔이 순간적으로 떨어짐
▶ 공식 이슈 보기공식 openarm_ros2 이슈 #77에서도 joint_trajectory_controller에 새 command를 보낼 때 torque가 순간적으로 relax되어 팔이 briefly drop되는 문제가 보고되었습니다.
해결: 중력 보상과 dynamics 보정
▶ 시연 영상 보기수업에서 제공된 fix 코드를 분석한 뒤 프로젝트 제어 구조에 맞게 적용했습니다. 중력 보상과 robot dynamics 보정을 반영해 trajectory 실행 중 팔이 떨어지는 문제를 해결했습니다.
05 / Troubleshooting
트러블슈팅: 그리퍼 불일치
14 / 16
문제: 공식 description과 실물 불일치

→
해결: 실물 형상 모델링

→
반영 후: TCP·collision 보정

05 / Troubleshooting
트러블슈팅: 액추에이터 전원 케이블 단선
15 / 16



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

결과
- 핫도그 조립, 케첩 도포, 음료 제공을 stage 기반 제조 sequence로 수행
- 물체 상태에 따라 goal pose를 갱신하고 MoveIt Planning과 Cartesian Path를 조합
- Gazebo에서 검증한 제조 동작을 실물 로봇으로 전이해 재현성을 확인
회고
- 시뮬레이션 성공과 실물 성공 사이에는 모델, 배선, 동역학 차이가 크게 작용
- 제조 기능은 동작 구현뿐 아니라 예외 상황에서 플로우를 유지하는 설계가 중요
- 향후에는 사람이 제조 중간 단계를 대신 수행해도 현재 상태를 반영해 다음 단계부터 재개하는 협동 제조로 확장 가능
향후 개선
현재제조 동작 수행
보강safety zone 안에서 사람 감지 시 즉시 정지
목표점주는 예외 판단, 로봇은 반복 제조 수행

