Intelligent Robotics Track

MacGyvBot

사용자의 공구 요청과 반납을 처리하는 어시스턴트

Doosan M0609 OnRobot RG2 RealSense D435I ROS 2 Humble
MacGyvBot
Presentation Flow

문제 정의에서 시스템 설계, 구현 파트, 검증과 임팩트로 내려갑니다

발표는 사용자의 공구 요청과 반납 문제로 시작합니다. 이후 System Design, Command, Task Coordination, Perception, Manipulation, Safety를 구현 관점에서 설명하고, Simulation과 Impact로 마무리합니다.

1. Problem공구 요청과 반납을 닫아야 하는 사용자 작업 루프
2. System DesignROS 2 package boundary와 task 중심 architecture
3. ImplementationCommand, Task Coordination, Perception, Manipulation
4. Safety / Simulationcollision scene, recovery, Isaac Sim 검증
5. Impact작업 효율, 안전성, 자동화 가능성, 개선 방향
SECTION 01

PROBLEM

사용자의 공구 요청과 반납을 처리하는 어시스턴트

MacGyvBot
Problem / Persona

작업 페르소나: Hands-Busy Operator

PRIMARY USER

작업 위치를 떠나기 어려운 현장 작업자

작업자는 장비나 조립물을 잡고 있어 공구 보관 장소까지 직접 이동하기 어렵습니다. MacGyvBot은 고정형 팔이 아니라 이동 가능한 로봇이라는 가정에서, 서랍 보관 장소와 작업자 위치 사이를 연결합니다.

mobile assist보관 장소의 공구를 작업 위치까지 운반
CONTEXT보관 장소와 작업 위치 분리

공구 서랍은 정리된 보관 장소에 있고, 작업자는 다른 위치에서 장비를 다룹니다.

MOMENT작업 중 공구 교체

렌치, 드라이버처럼 필요한 공구가 바뀔 때 작업자는 위치를 이탈하지 않고 요청합니다.

EXPECTATION가져오고, 전달하고, 다시 보관

로봇은 서랍에서 공구를 꺼내 작업자에게 이동하고, 사용 후 다시 보관 장소로 돌려놓습니다.

MacGyvBot
Problem / Why Robot

문제 정의: Tool Flow Interruption

01이동 비용

작업자가 보관 장소까지 직접 이동하면 작업 흐름이 끊깁니다.

02공구 탐색

서랍을 열고 필요한 공구를 찾는 과정이 본 작업과 분리된 반복 업무가 됩니다.

03반납 누락

사용 후 제자리에 돌아가지 않은 공구는 다음 작업과 재고 관리 문제로 이어집니다.

GOALMacGyvBot's GOAL

이동 로봇이 보관 서랍에서 공구를 꺼내 작업자에게 가져다주고, 사용 후 다시 보관합니다.

SECTION 02

SYSTEM DESIGN

Command를 robot task로 바꾸고 실행 순서를 소유하는 구조

MacGyvBot
System Design / Task Flow

전체 작업 흐름도

BRING보관 장소 → 작업자
요청 이해공구명과 작업 intent 파악
서랍 접근해당 공구 보관 위치로 이동
공구 꺼내기detect, mask, grasp 후 pick
작업자 전달작업 위치로 이동해 handoff
RETURN작업자 →
보관 장소
공구 회수작업자 handoff로 공구 전달받기
공구 확인현재 tool context 또는 재탐지
서랍 복귀공구 보관 위치로 이동
서랍 보관open, place, release, close
MacGyvBot
System Design / Architecture

Command-to-Task 기반 ROS 2 계층형 아키텍처

CMDCommandLLM/parser, STT/TTS, GUI command
TASKTask Queuebring/return sequence, pause/resume
VISIONPerceptionYOLO, mask, handoff, PCA grasp
MOTIONManipulationMoveIt, RG2, drawer motion
SAFESafetycollision scene, drop recovery
PKGPackage boundarytask, command, perception, manipulation이 ROS topic/service로 연결됩니다.ROS
TOPICSTyped contracts/task_request, /task_control, /human_grasped_tool, /sam_yaw, /tool_drop_detectedROS
MacGyvBot
Development Flow

MILESTONE

05.04

Pipeline Skeleton

Pick and Place, Topic Command

05.06

Pick & Handover

GUI Prototype, Pick and Handover to User

05.13

Retrieve Tool

Return Tool From User, Place Temporary Space

05.20

Store in Drawer

Open Close Drawer, Place Tool in Drawer

06.05 / 06.12

Advanced & Safety

Enhanced PCA, SAM, YOLO, Safety, Recovery, Exception Handling

MacGyvBot
Team / Role

협업 기반 업무 분장

PERCEPTION김성윤

Tool Grasp Method

COMMAND / GUI김지호

LLM Based Operator Interface

MANIPULATION도건호

Drawer Flow / Simulation / QA

PERCEPTION이건우

Model Training

PM / PERCEPTION이민형

Integration / Grasp Gesture Detection

MANIPULATION정채현

MoveIt / Safety

SECTION 03

COMMAND

자연어 요청을 안정적인 robot task intent로 변환

MacGyvBot
Command / Pipeline

자연어 명령을 Task로 바꾸는 Command Pipeline

INTERFACE ENTRY

Voice / GUI Text → typed ROS command

음성 STT와 GUI 텍스트 입력을 같은 command path로 통합하고, 사용자의 한국어 명령을 task coordinator가 처리할 수 있는 구조화된 command로 변환합니다.

CMDbring, return, pause, resume, cancel, home
01Inputmicrophone STT와 GUI 입력을 /stt_text로 통합ROS
02Fast path“멈춰”, “재개”, “취소” 같은 제어 명령은 LLM 전에 즉시 처리SAFE
03ParserLLM parser와 rule parser가 action/tool/target을 정규화NLP
04CommandToolCommand 또는 RobotTaskControl typed message로 publishTASK
MacGyvBot
Command / Prompt Engineering

Schema와 Context 기반 LLM Parser

사용자 표현
정규화 결과
처리 의도
드라이버 가져다줘
bring / screwdriver
공구 요청
스패너 줘
bring / wrench
별칭 정규화
이거 정리해
return / unknown
지시어 유지
멈춰
pause / unknown
fast control
SCHEMA응답 형식 제한action, tool_name, target_mode, confidenceJSON
CONTEXT명령 의미 주입bring, return, pause, resume, cancel, homeLLM
VOCAB공구 별칭 정규화렌치, 스패너, 몽키렌치 → wrenchTOOL
GUARDfallback과 혼선 방지rule parser 보조, unsupported drill 제거SAFE
MacGyvBot
Operator GUI

로봇 상태 확인과 수동 제어를 통합한 Operator GUI

MacGyvBot operator GUI screenshot
STATUSRobot Status로봇·카메라·Detector 상태 확인UI
CHATChat / TTS사용자에게 필요한 안내만 chat으로 표시하고 TTS는 chat 메시지만 발화UX
LOGTask Log개발자가 볼 topic/status/error detail은 log panel로 분리DBG
GRIPGripper Control안전 상태에서만 slider와 숫자 입력으로 RG2 gripper 폭 제어SAFE
SECTION 04

TASK COORDINATION

bring과 return을 queue 상태로 쪼개고 중단, 재개, 복구를 관리

MacGyvBot
Task Coordination / Task Queue

Task Coordination은 bring과 return을 TaskStep queue로 쪼개 실행합니다

01Requestcommand intent를 bring 또는 return task로 변환IN
02Build queuedrawer prepare, perception request, pick/place step 구성PLAN
03Run step각 TaskStep 실행 시점에 perception/motion 호출EXEC
04Status/robot_task_status와 GUI feedback 발행UI
05Recovery실패 step을 suspend하거나 recovery queue로 전환SAFE
DESIGN DECISION

실행 순서를 모듈 내부에 숨기지 않고 queue 상태로 관리

bring은 drawer 준비와 pick step을 같은 queue에 넣고, pause/resume/exit은 현재 queue 상태에 적용됩니다.

QUEUEsingle source of task state
MacGyvBot
Task Coordination / Pause Resume

Pause / Resume은 단순 cancel이 아니라 중단된 step을 다시 실행하는 문제였습니다

상황
문제
해결 방향
drawer preparation 중 pause
MoveIt goal cancel 후 현재 step 유실 위험
retry 가능한 suspended step으로 queue 앞에 보존
drop recovery 중 resume
recovery state와 일반 task control 충돌
recovery mode 동안 control gate 분리
반복 pause/resume
yaw/J6/grasp 상태가 어긋남
grasp-time J6 angle 보존과 status cleanup
발표 포인트: pause/resume은 버튼 기능이 아니라 motion, drawer, recovery 상태를 함께 보존하는 문제였습니다.
SECTION 05

PERCEPTION

공구 감지, mask 생성, handoff gate, PCA grasp 판단

MacGyvBot
Perception / Tool Detection

YOLO fine-tuning으로 공구 후보를 먼저 안정적으로 찾습니다

이미지 교체 영역YOLO fine-tuning 결과: RGB frame + bbox + class confidence
DETECTION

RealSense RGB/depth 기반 tool detection

YOLO는 공구 후보와 bbox를 제공하고, 이후 SAM/depth mask와 PCA yaw 계산의 시작점이 됩니다.

YOLOcustom tool dataset + fine-tuning
MacGyvBot
Perception / Handoff / Initial

사용자 공구 전달 초기 구현

Hand landmark손 위치와 주요 관절 좌표
Tool bboxYOLO가 찾은 공구 영역
Distance / overlap손과 공구의 근접도 계산
Rule thresholdgrasp 여부 판단
MacGyvBot
Perception / Handoff / Limitation

BBOX rule-based 공구 전달 초기 구현의 한계

rule-based grasp detection failure example
Rule-based grasp detection 실패손과 공구가 가깝지 않더라도 임계값을 넘는 경우 false release 위험이 생긴다.
YOLO detection failure during handoff example
YOLO bbox 기반 판단 실패손으로 공구를 가리는 경우 yolo 감지 실패
MacGyvBot
Perception / Mask Generation

SAM+Depth mask

YOLO bbox ROIbbox를 clamp하고 crop 기준으로 사용
SAM foregroundbbox 안에서 물체처럼 보이는 mask 생성
Foreground depthmask 안 가까운 depth cluster 선택
Refine + morphologydepth tolerance로 남기고 구멍 보정
SAM and depth mask generation result
SAM+Depth mask generationSAM이 bbox 안 foreground를 따고, 가까운 전경 depth와 맞는 픽셀만 남깁니다.
MacGyvBot
Perception / Handoff / Final

최종 사용자 공구 전달

RELEASE GATE

hand landmark ML classifier + SAM depth mask contact

rule-based proximity 대신 손 landmark 지도학습 모델로 grasp/open을 먼저 판단합니다. 여기에 SAM+Depth mask로 잡힌 공구 표면과의 contact, 시간 안정성을 함께 확인해 release gate를 닫습니다.

MLhand landmarks → grasp / open classification
MASKSAM+Depth locked tool surface → contact evidence
driver SAM depth mask grasp recognition result
Driver mask grasp recognitionmask 표면에서 depth mask와 손의 depth를 비교하여 ML 결과가 grasp여도 그리퍼를 열지 않습니다.
wrench SAM depth mask grasp recognition result
Wrench mask grasp recognition공구 형상이 달라도 같은 mask 기반 판단을 적용합니다.
MacGyvBot
Perception / PCA Grasp

PCA는 mask의 주축으로 yaw와 gripper width를 계산합니다

이미지 교체 영역PCA axis overlay, yaw angle, width estimate debug result
INPUT

YOLO bbox와 SAM/depth mask pixels

OUTPUT

yaw, grasp width, overlay image

RESULT

mask 주축으로 yaw를 얻고, tool width를 gripper width 설정에 연결합니다.

MacGyvBot
Perception / Lessons

Perception은 탐지, mask, handoff, grasp를 하나의 evidence chain으로 묶었습니다

판단
초기 한계
최종 설계
공구 감지
bbox 중심만으로는 파지 자세 부족
YOLO fine-tuning + depth projection
handoff
rule-based proximity는 grasp가 아님
hand landmark ML classifier + temporal gate + mask contact
grasp point
VLM 지연과 좌표 흔들림
SAM/depth mask + PCA yaw/width
발표 포인트: Perception의 핵심은 공구 검출 결과를 실제 로봇 제어 파라미터로 바꾸는 것입니다.
SECTION 06

MANIPULATION

공구를 꺼내고 전달하고 다시 서랍에 보관하는 실행 계층

MacGyvBot
Manipulation / Bring Tool

공구 요청에서는 drawer open, pick, handoff pose까지 motion sequence를 구성합니다

Drawer handlehandle pose 접근
Pull opendrawer open motion
Pick toolMoveIt target + RG2
Handoff pose사용자 위치로 이동
Releaseperception gate 통과
MacGyvBot
Manipulation / Store Tool In Drawer

공구 반납은 drawer ownership을 다시 얻고 안전 높이에서 보관하는 문제입니다

STORE FLOW

receive → identify → open drawer → place → close

처음에는 drawer 전체를 이해하려 했지만, 시연 목표에는 반복 가능한 기준점과 안전한 z 제한이 더 중요했습니다.

STOREreceive → identify → drawer → place
DRAWER

서랍 상태와 공구 소유권을 task flow 안에서 추적합니다.

GRIPPER

공구 폭과 접근 깊이에 맞춰 RG2 gripper 동작을 조정합니다.

MOTION

MoveIt target, RG2 width, hand-eye transform, marker reference

SECTION 07

SAFETY

collision scene, tool drop detection, recovery flow

MacGyvBot
Safety / Drawer Collision Scene

Drawer collision scene은 실제 로봇 동작에서 planning 가능성과 안전성을 동시에 좌우했습니다

SCENEdrawer_onlyMoveIt planning scene에 drawer keep-out collision object 추가
ACMRG2 self collisiongripper 내부 링크 self-collision만 허용
RISKtarget overlapcollision object가 목표 pose를 덮으면 planner 실패
SAFETY DESIGN

drawer collision scene + RG2 self-collision 관리

서랍과 gripper를 planning scene에 반영해 위험한 경로를 줄입니다. 동시에 collision object가 목표 pose를 과하게 막지 않도록 조정이 필요했습니다.

PLANsafe but not over-constrained
MacGyvBot
Safety / Drop Detection Recovery

공구를 떨어뜨렸을 때는 queue를 보존하고 recovery flow로 전환합니다

Drop event/tool_drop_detected
Cancel motion현재 MoveIt goal cancel
Keep queuesuspended step 보존
Recover graspYOLO/depth/PCA 재사용
Resume중단 step 재실행
발표 포인트: drop recovery는 새 알고리즘이 아니라 기존 perception, grasp, drawer flow를 안전하게 재호출하는 구조입니다.
SECTION 08

SIMULATION

실제 로봇 투입 전 sequence와 collision risk를 검증하는 환경

MacGyvBot
Isaac Sim Simulation

Isaac Sim은 개선 방향이 아니라 실제 로봇 투입 전 검증 체계입니다

  • drawer open/close sequence와 collision scene 검증
  • tool placement, marker pose, reachability 확인
  • pregrasp height, safe z, gripper approach 검토
  • drawer simulation으로 실제 로봇 투입 전 위험 동작을 먼저 확인
이미지 교체 영역Isaac Sim drawer scene, robot reachability, collision visualization
SECTION 09

IMPACT

작업 효율, 안전성, 스마트팩토리 공구 관리 자동화 가능성

MacGyvBot
Project Impact

MacGyvBot의 임팩트는 공구 이동을 로봇 task로 바꾸는 데 있습니다

EFF
작업자가 공구를 찾고 이동하는 시간을 줄임
SAFE
handoff gate, collision scene, drop recovery로 위험 동작을 줄임
AUTO
공구 요청/반납/보관을 자동화 가능한 workflow로 모델링
LOG
task status와 GUI feedback으로 실패 원인을 설명 가능하게 함
MacGyvBot
Next Improvements

개선 방향은 perception 안정화와 reactive planning으로 이어집니다

개선 방향
현재 한계
다음 접근
perception 고도화
조명, occlusion, low confidence bbox
mask 품질 평가와 multi-view/temporal filter
grasp point 안정화
서랍 벽, depth edge, yaw/J6 제한
PCA confidence와 reachable grasp 후보 ranking
환경 변화 대응
서랍/공구 위치 변화, marker occlusion
drawer state cache와 simulation 기반 검증 확대
reactive planning
정적 plan 후 runtime 변화에 취약
collision-aware replanning과 operator confirmation
Closing

MacGyvBot

공구 요청과 반납을 하나의 closed loop로 만들고, 실제 로봇에서 깨진 가정을 task queue, perception evidence, safety recovery로 바꿨습니다.

What How Safety Impact