LATENT: 불완전한 모션 캡처 데이터로 휴머노이드 로봇에 테니스 동작을 학습시키는 강화학습 파이프라인

LATENT 소개

인간의 복잡한 운동 능력을 로봇에 전이하는 것은 로보틱스와 딥러닝 분야의 오랜 과제 중 하나입니다. 특히 테니스처럼 전신 협응과 빠른 반응이 필요한 동적 스포츠 동작을 로봇이 학습하는 것은 모션 캡처 데이터의 불완전성, 인간과 로봇의 형태적 차이(모폴로지 갭), 그리고 시뮬레이션과 현실 세계 간의 격차(Sim-to-Real 갭) 등 복합적인 도전을 내포합니다. 이러한 문제를 정면으로 다룬 연구가 바로 중국 청화대학교와 GalaxyGeneralRobotics 팀이 공개한 LATENT입니다.

LATENT는 "Learning Athletic Humanoid Tennis Skills from Imperfect Human Motion Data" 논문(arXiv:2603.12686)의 공식 구현체로, 불완전한 인간 모션 데이터로부터 휴머노이드 로봇에 테니스 기술을 학습시키는 엔드투엔드 오픈소스 파이프라인을 제공합니다.

LATENT 프로젝트의 배경은 인상적입니다. 연구팀은 50대 이상의 2048×2048 해상도, 120Hz 카메라가 설치된 19×15미터 규모의 모션 캡처 스튜디오에서 3주에 걸쳐 테니스 동작 데이터를 수집하였습니다. 이 규모의 데이터 수집에는 약 3만 5천만 원(50,000달러) 이상의 비용이 소요되었을 만큼, 본 연구는 단순한 시뮬레이션 실험을 넘어 현실 세계에서의 동작 전이를 진지하게 탐구합니다. 수집된 데이터는 미완전한 모션 캡처 데이터이지만, LATENT는 이를 효과적으로 활용하는 방법론을 제시합니다.

LATENT의 3단계 학습 파이프라인

LATENT는 휴머노이드 로봇에게 테니스 동작을 학습시키기 위해 3단계 파이프라인을 사용합니다.

1단계: 모션 트래커 사전학습(Motion Tracker Pre-training)

인간 모션 데이터를 기반으로 휴머노이드 로봇이 해당 동작을 물리 시뮬레이터(MuJoCo) 내에서 추적하도록 정책(policy)을 사전학습합니다. 이 단계에서 도메인 랜덤화(Domain Randomization)를 적용하여 다양한 물리 환경 변화에 강건한 트래커를 만들 수 있습니다. 학습은 PPO(Proximal Policy Optimization) 알고리즘을 기반으로 진행됩니다.

# 도메인 랜덤화 없이 트래커 학습
python -m latent_mj.learning.train.train_ppo_track_tennis \
  --task G1TrackingTennis --exp_name my_tracker

# 도메인 랜덤화 적용 트래커 학습
python -m latent_mj.learning.train.train_ppo_track_tennis \
  --task G1TrackingTennisDR --exp_name my_tracker_dr

2단계: 온라인 증류(Online Distillation with DAgger)

DAgger(Dataset Aggregation) 알고리즘을 통해 사전학습된 트래커 정책을 온라인에서 지속적으로 정제합니다. 이를 통해 트래커는 더 다양한 상황에서 안정적으로 동작을 재현하는 능력을 갖추게 됩니다.

3단계: 고수준 정책 학습(High-Level Policy Learning)

잠재 행동 모델(Latent Action Model)을 기반으로 테니스 경기 상황에서의 고수준 전략 정책을 학습합니다. 이 단계의 정책은 공의 위치와 속도, 상대방의 위치 등 게임 상황 정보를 입력으로 받아 어떤 모션을 실행할지 결정합니다.

평가 및 ONNX 변환은 다음과 같이 수행할 수 있습니다.

# 모델 평가 및 ONNX 변환
python -m latent_mj.app.brax2onnx_tracking \
  --task G1TrackingTennis --exp_name my_tracker

# 비디오 생성으로 결과 시각화
python -m latent_mj.eval.tracking.mj_onnx_video \
  --task G1TrackingTennis --exp_name my_tracker

LATENT 프로젝트 설치 방법

LATENT는 Python 환경과 UV 패키지 매니저를 활용합니다.

git clone git@github.com:GalaxyGeneralRobotics/LATENT.git
uv sync -i https://pypi.org/simple

이후 .env 파일에 프로젝트 경로와 WandB 설정을 입력한 뒤, 리타겟팅된 테니스 데이터를 storage/data/mocap/Tennis/ 디렉토리에 배치하고 환경 초기화 스크립트를 실행하면 됩니다.

python latent_mj/app/mj_playground_init.py

:house: LATENT 프로젝트 홈페이지

:scroll: LATENT 논문: Learning Athletic Humanoid Tennis Skills from Imperfect Human Motion Data

:github: LATENT 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요