Shoggoth Mini – GPT-4o와 RL로 구동되는 소프트 촉수 로봇

2 weeks ago 10

  • Shoggoth MiniGPT-4o강화학습을 활용하여 자연스럽고 표현력 있는 동작을 구현한 소프트 촉수 로봇임
  • 기존 가정용 로봇과 달리 인간과 상호작용 시 내부 상태나 의도를 표현할 수 있도록 설계됨
  • 하드웨어 설계부터 소프트웨어, 카메라 인식 및 제어 시스템까지 세부적으로 전 과정을 설명함
  • 2D 트랙패드 입력을 3D 촉수 제어에 직관적으로 매핑하여 사용성을 높였으며, 최신 컴퓨터 비전과 RL 기술 접목으로 동작 정밀도와 표현력을 확보함
  • 마무리에서는 로봇의 생동감, 예측 불가능성과 인간 친화성의 균형점에 대한 고민과 향후 확장 아이디어를 제시함

서론 및 배경

  • 최근 1년간 로보틱스 분야가 대형 언어 모델(LLM) 시대와 접목되면서 빠르게 발전함
  • 대표적으로 π0.5, Tesla Optimus 등은 언어로 명령을 이해하여 실제 동작을 수행하지만, 대부분 기능적 로봇의 수준에 머무름
  • 인간-로봇 상호작용의 자연스러움과 내부 상태(의도, 주의, 확신 등) 전달에는 '표현력(expressiveness)' 이 핵심이라는 점을 지적함
  • Pixar 느낌의 램프(Apple ELEGNT)와 단순 동작만으로 이상하게 ‘살아있는’ 느낌을 주는 SpiRobs 등에서 착안, 의도적 표현 설계와 우연적 생명감의 차이에 관심을 가짐
  • 이를 실험하기 위해 Shoggoth Mini 제작을 시작, 우연과 실험을 통한 설계 과정과 깨달음을 공유함

하드웨어

  • 테스트베드 첫 버전은 3개의 모터와 촉수를 고정할 판, 돔형 커버의 단순 구조로 시작함
  • 3D 프린팅 중 필라멘트가 모자라 돔 일부분 색상이 달라져 볼, 입이 붙은 얼굴 모양 탄생, ChatGPT로 시각적 시안을 탐색하여 형태 확정함
  • 돔에 스테레오 카메라 장착하여 촉수 추적, 로봇 눈의 ‘예측 오류’가 시선을 집중시키는 효과 유발
  • 오픈 스풀 설계는 케이블이 쉽게 빠지고 얽히는 단점이 있어, 간단한 스풀 커버 추가로 문제 해결 및 반복 실험 속도 개선
  • 캘리브레이션 스크립트 및 예비 와이어 길이 추가로 유지보수와 모터 장력 조절을 빠르게 처리함
  • 촉수의 처짐 현상 최소화를 위해 등뼈(스파인)를 적당히 두껍게 조정함
  • CAD 조립도와 3D 프린팅용 STL 파일 모두 GitHub 저장소에 공개함

수동 제어

  • 초기에는 트랙패드를 이용한 2D 조작으로 촉수를 직관적으로 움직일 수 있도록 3개의 힘줄(텐던) 길이 제어를 2차원 컨트롤로 단순화함
    • 각 힘줄은 2D 평면상에서 주 방향을 가지며, 커서 방향 벡터를 각 축에 투영해 필요한 장력만큼 길이 변화량 계산
    • 양수는 힘줄 단축, 음수는 연장 의미
  • 이 2D→3D 변환 방식을 자동화 제어(강화학습 등)에서도 기준 projection layer로 재사용함
  • 제한된 조작 범위이지만 직관적 제어 가능, 머리응답성 및 사용자 경험 크게 향상

시스템 설계

  • 두 개의 계층적 제어 구조:
    • 저수준에서는 오픈 루프 정책(예: <yes>, <shake>) 및 클로즈드-루프 RL 정책(예: 손가락 추적)으로 동작, 촉수 팁/손 위치 추적은 스테레오 비전 기반 파이프라인에서 담당
    • 고수준에서는 GPT-4o가 실시간 음성/텍스트(아직 비전 미공개) 처리, 비디오 이벤트(손 흔들기 등)는 텍스트 cue로 GPT-4o에 전달되어 API 호출 결정
  • 대형 모델 기반의 직접적 end-to-end 비전-언어-액션(VLA) 통합보다는, 전용 비전과 경량화된 개별 컨트롤러의 계단식 구조로 설계
  • RL 관측 범위 조절 및 자연스러운 호밍 동작, API 호출 사이 idle(숨쉬기 모드) 적용해 로봇의 ‘살아있는 느낌’ 강화
  • VLA의 실질적 한계(예: 시간 보정 문제)로 프롬프트 엔지니어링이 중요 요소로 작용함

인지 퍼셉션

  • 손 추적용 MediaPipe, 촉수 팁 추적용 커스텀 데이터셋 및 YOLO 모델 결합
    • k-means 클러스터링과 Roboflow의 자동 라벨링/액티브 러닝, Segment Anything 활용해 데이터셋 증강 및 정밀 라벨링
    • Ultralytics YOLO로 훈련, DeepLabCut notebook으로 카메라 내부/외부 파라미터 추정 및 3D 삼각측량 구현
  • 실시간 3D 손-촉수 위치 추적으로 강건한 폐루프 제어 실현

저수준 제어 API

  • 소프트 로봇은 강체와 다르게 역기구학이 잘 통하지 않으므로, 2D control projection 방식을 일관되게 적용
  • 등뼈를 두껍게 만들어 세션 간 동작 재현성도 확보
  • 물체 집기(그랩) 동작 등 실험을 통해 소프트 로봇만의 기계적 강건성(잡는 물체 모양/무게 다양성 흡수) 발견
  • 고주파 미세 조작은 어렵지만, 기본 조작은 기계적 설계만으로 의외로 안정적임

강화학습(RL)

  • 사용자 손가락 추적과 같은 단순 정책부터 RL 적용, MuJoCo 시뮬레이터에서 동적 임의화(PPO, MLP, frame stacking, 질량/마찰/감쇠 랜덤화)로 sim-to-real 전환성 향상
  • 초기엔 tendon 길이 자체를 액션 스페이스로 썼으나, reward hacking 및 실제 이식 실패
  • 2D projection 방식으로 액션 제한하여 비현실적 동작(혼란, 진동 등) 억제, curriculum learning으로 점진적 고차원 확장 가능성 제시
  • 급격한 액션 변화로 인한 진동(jitter) 보완을 위해 reward에 penalty 항목 추가, EMA로 액션 평활화

결론 및 미래 방향

  • 초기에 느꼈던 예측 불가, 해석의 여지가 ‘살아있음’(aliveness) 느낌을 주었으나, 분석·내면화가 진행될수록 피드백의 신선함은 점차 사라졌음
  • 표현력(의도 전달) 자체와 생명감(예측 불가능성)의 균형이 로봇-인간 상호작용에 결정적임을 강조
  • 향후 확장 아이디어:
    • 비인간적 목소리 부여
    • 2D 제약 해제
    • RLHF 등으로 표현 동작 다양화
    • 촉수 추가 및 자가 이동 구현
    • 직구동 모터 채택 통한 소음 저감
  • 소스코드 및 파일은 GitHub 저장소에서 제공하며, 협업 및 논의 환영

Read Entire Article