VLA를 자신의 로봇이나 작업에 맞추려면, 파인튜닝(fine-tuning)용 데이터가 필요합니다. 보통은 사람이 로봇을 원격 조종(teleoperate)하여 작업을 완료한 기록, 즉 '모범 사례(hand-example)'를 수집합니다.
하지만 모범 사례를 얻지 못하는 경우도 있습니다.
- 원격 조종할 도구나 환경이 없음
- 물건이나 작업의 종류가 많아 사람이 모범 사례를 따라잡기 어려움
- 손가락이 많은 손이나 양팔 로봇처럼, 원격 조종 자체가 어려움
본 글에서는 이럴 때 시뮬레이션으로 학습 데이터를 어떻게 만들지 정리합니다. 전제 조건은 다음 3가지입니다.
- 만들고자 하는 것은 VLA의 파인튜닝에 사용할 데이터임
- 작업은 물건을 집어서 놓는 것까지를 범위로 함
- 팔, 그리퍼(gripper), 잡는 물건 등은 나중에 바뀔 수 있음
도구로 다룰 것은 NVIDIA의 연구에서 나온 GraspGen-X와 MimicGen입니다. 각 논문의 내용은 앞으로 다른 글에 작성할 예정입니다.
제가 읽고 확인한 범위는 다음과 같습니다.
-
읽은 내용: GraspGen-X와 MimicGen의 논문 및 공식 리포지토리, Isaac Lab 문서
-
모범 사례 없이 데이터를 만드는 논문 6편. 깊이 있게 읽은 내용은 다음과 같습니다:
- 데이터 생성 방식과 한계 부분까지: GraspVLA
- 요약 및 본 글에서 인용한 주변 내용: SynthDemo-RL, DATAFARM
- 요약만: LEGS, DreamGen, 강화학습(RL)으로 데이터를 만드는 논문
-
확인한 내용: 모두 직접 구동해보지는 않았습니다. 논문과 문서를 읽고 정리한 학습 노트입니다.
-
확인 날짜: 2026년 10월 12일
결과의 수치는 모두 논문에 기재된 것입니다. 제가 측정한 것이 아닙니다.
미리 알아둘 용어들
- 사전 학습(Pre-training)
파인튜닝 이전에 대량의 데이터로 처리해 놓은 학습
- 모범 사례 (Demonstration)
사람이 로봇을 원격 조종하여 작업을 끝까지 완료한 기록. 본 글에서는 원격 조종으로 얻은 것만 모범 사례라고 부릅니다. 프로그램이 자동으로 만든 것은 '작업 기록'이라고 표기합니다.
- 서브태스크 (Subtask)
작업을 동작별로 작게 나눈 것. '컵 잡기', '컵을 상자에 놓기'처럼 나누는 것을 말합니다.
- 말단(End-effector)
팔의 가장 끝부분. 그리퍼가 부착된 곳입니다.
- 잡는 자세 (Grasping pose)
그리퍼를 어느 위치, 어떤 방향으로 가져갈지 결정하는 것
- 모션 플래너 (Motion planner)
현재 자세에서 목표 자세까지 주변에 충돌하지 않게 팔을 움직이는 방법을 계산하는 소프트웨어. 본 글에 나오는 cuRobo는 NVIDIA가 공개한 GPU용입니다.
- 강화학습 (Reinforcement Learning, RL)
여러 번 시도하게 하면서 잘 된 동작을 발전시켜 나가는 학습 방법
- 장면 만들기
- 잡는 자세 출력하기
- 움직임 계획하기
- 물리로 확인하기
- 이미지 그리기
- 학습용 형태로 정리하기
1, 4, 5, 6(그림의 녹색 상자)은 어떤 방법으로도 동일합니다. 다른 점은 처음에 준비하는 것과 움직임을 만드는 곳(2와 3)입니다.
모범 사례를 얻을 수 없다면 모범 사례가 필요 없는 방법을 사용할 수 있습니다. MimicGen은 원본 모범 사례 없이는 시작할 수 없습니다. GraspGen-X와 MimicGen은 순서대로 연결하여 사용하는 것이 아니라, 각각 별도의 방법으로 사용하는 도구입니다. 두 가지를 직접 연결한 공식적인 메커니즘은 제가 조사한 범위에서는 찾지 못했습니다.
모범 사례가 필요 없는 방법의 내용
GraspGenX 데모
GraspGenX(GraspGen-X의 공식 리포지토리)에는 1부터 4에 해당하는 데모가 포함되어 있습니다.
- 장면 만들기
책상 위에 물건들이 부딪히지 않도록 무작위로 배치합니다. -
- 잡는 자세 출력하기
물건마다 GraspGen-X가 후보와 점수를 출력합니다. -
- 움직임 계획하기
그리퍼가 주변에 부딪힐 후보를 제외합니다. 남은 후보들을 향해 cuRobo가 '접근 → 잡기 → 들어 올리기 → 운반하기 → 상자에 떨어뜨리기' 움직임을 계획합니다. -
- 물리로 확인하기
계획된 움직임을 Newton(오픈소스 물리 시뮬레이터) 안에서 중력과 접촉을 포함하여 재생합니다. 물건이 실제로 상자 안에 들어갔는지 확인합니다. 도중에 미끄러져 떨어지면 실패가 됩니다.
같은 골격을 사용하는 연구
'잡는 자세 출력하기 → 움직임 만들기 → 물리로 확인하기'라는 골격은 다른 연구에서도 사용되고 있습니다. 두 가지를 언급하겠습니다.
- GraspVLA(2025년, 베이징대학교와 Galbot 등)
잡기 작업에 국한된 VLA입니다. 움직임은 시뮬레이션으로 만든 데이터만으로 학습시키고 있습니다. -
- SynthDemo-RL(2026년 9월, 심사 전 논문)
VLA의 파인튜닝에 사용할 작업 기록을 사람 대신 프로그램이 만들게 합니다. 그 후에 강화학습(RL)으로 마무리합니다.
GraspGenX 데모와 비교해 보겠습니다.
-
GraspGenX 데모 - 잡는 자세: GraspGen-X가 출력 -
-
움직임: cuRobo가 계획 -
-
확인 방법: Newton에서 재생 -
-
이미지: 확인용 영상까지
-
GraspVLA - 잡는 자세: 물건의 형태로부터 계산하는 방식으로 출력 -
-
움직임: cuRobo가 계획 -
-
확인 방법: MuJoCo(물리 시뮬레이터)에서 들어 올려졌는지 확인 -
-
이미지: Isaac Sim(NVIDIA의 로봇용 시뮬레이터)에서 그립니다. 조명, 배경, 카메라 위치, 책상이나 로봇의 소재를 무작위로 변경합니다.
-
SynthDemo-RL - 잡는 자세: GraspGen(GraspGen-X의 전작)이 출력 -
-
움직임: 정해진 순서대로 손끝을 움직이는 프로그램이 만듭니다. 잘 안 되었을 때는 LLM(텍스트를 다루는 AI)이 실패 기록과 이미지를 보고, 움직이는 순서나 어디까지 깊게 잡아야 하는지 수정합니다.
-
확인 방법: 시뮬레이터 안에서 작업이 성공했는지 봅니다 -
-
이미지: 외부에서 보는 카메라와 손목의 카메라 이미지를 움직임 지시와 함께 기록합니다.
각 논문으로부터 규모와 결과를 가져옵니다.
-
GraspVLA - 물건은 240종, 1만 개가 넘습니다 -
작업 기록은 1천만 본입니다. 시점별 기록(프레임)으로 하면 10억 개입니다 -
GPU(RTX 4090) 160개를 사용하여 10일 동안 만들었습니다 -
실기(실물 로봇)에서는 재학습 없이 어떤 테스트에서도 90% 전후로 잡을 수 있었다고 보고했습니다 -
다루는 것은 잡아서 들어 올리는 것까지입니다. 팔은 Franka Panda만 사용했습니다 -
-
SynthDemo-RL - 작업마다 50본의 작업 기록을 자동으로 만들었습니다 -
LIBERO(VLA 평가에 자주 사용되는 시뮬레이션 내 작업 모음)에서의 성공률은 96.0%입니다. 사람의 모범 사례는 사용하지 않았습니다 -
사람의 모범 사례를 작업당 50본 사용했을 경우에는 97.7%로, 차이는 1.7 포인트입니다.
GraspGenX 데모에 부족한 것
GraspGenX 데모는 4까지입니다. VLA 학습 데이터로 만들기에는 부족한 것이 있습니다.
- 학습용 형태의 데이터가 나오지 않습니다
나오는 것은 움직임 기록, 확인용 영상, USD 세 가지입니다. 시점별 이미지/움직임 지시/언어 지시를 조합한 데이터는 나오지 않습니다. 5와 6은 직접 만들어야 합니다 -
- VLA 전용 도구는 아직 공개되지 않았습니다
README에는 이 흐름이 VLA의 학습 데이터 생성에도 사용될 수 있다고 나와 있습니다. 다만, 그 도구는 '앞으로 제시할 것'에 포함되어 있습니다.
놓는 움직임은 없다
데모는 상 위에서 물건을 떨어뜨리는 것까지입니다. 지정된 위치에 놓는 움직임은 3번(단계)에 직접 추가해야 합니다.
레퍼런스가 있으면 건너뛸 수 있는 부분
레퍼런스(손본, 手本)를 조금이라도 얻을 수 있다면, 레퍼런스 기반의 방법이 사용 가능합니다. 이때, 레퍼런스 없이 진행하는 방법 중 어느 부분을 건너뛸 수 있는지 나열했습니다. 이 표는 제가 정리한 것입니다.
| 단계 | 레퍼런스 없음 (手本なし) | 레퍼런스 있음 (手本あり) |
|---|
| 준비 | 2가지 설정 필요 | 약 10개의 레퍼런스 필요 |
| ... | | |
| 준비 과정은 내용이 바뀝니다. | | |
그리퍼 설정 파일과 팔 설정을 준비합니다. 그리퍼 설정 파일에는 열고 닫는 관절 값과 손가락이 지나가는 공간의 크기가 적혀 있습니다. 팔 설정은 팔 모양과 관절 정보로, 모션 플래너(motion planner)가 사용합니다.
대신, 레퍼런스를 약 10개와 서브태스크 순서를 준비합니다.
건너뛸 수 있는 이유는 모두 같습니다. 잡는 방식도, 운반하는 움직임도, 놓는 움직임도 사람의 레퍼런스 안에 포함되어 있기 때문입니다.
MimicGen은 레퍼런스의 '물체에 대한 손끝 움직임'을 새로운 물체의 위치에 그대로 옮깁니다. 잡는 자세를 다른 모델로 출력하게 하는 단계가 없습니다. GraspGen-X 역시 그리퍼 설정 파일이 필요하지 않습니다.
옮겨진 움직임과 움직임 사이는 직선으로 연결합니다. 모션 플래너나 팔 설정도 필요하지 않습니다.
삽입하거나 조립하는 등, 잡은 후의 세밀한 움직임도 레퍼런스가 있으면 같은 방식으로 옮길 수 있습니다.
건너뛸 수 없는 것은 1, 4, 5, 6입니다. 장면을 만드는 것, 물리적으로 확인하는 것, 이미지를 그리는 것, 학습용 형태로 정리하는 이 4가지는 레퍼런스가 있어도 필요합니다.
레퍼런스 기반의 방법으로 대신 필요한 것도 있습니다.
Isaac Lab 문서에는 키보드로 원격 조종하는 예시도 실려 있습니다. 부드럽게 움직일 수 있는 3D 마우스(SpaceMouse)를 추천하고 있습니다.
작업을 어떤 서브태스크로 나누고, 어떤 순서로 할지 사람이 결정합니다. 그 위에 얻은 레퍼런스 하나하나에 '여기까지가 잡기, 여기부터가 놓기'와 같은 경계 위치를 기록해야 합니다. MimicGen은 레퍼런스를 서브태스크별로 분할하여 사용하기 때문에 이것이 필요합니다. Isaac Lab Mimic에서는 시뮬레이션 내부 상태에서 자동으로 기록할 수 있습니다. SkillGen에서는 레퍼런스를 재생하면서 사람이 직접 기록합니다.
데이터를 만들 때, 서브태스크 시작 시점에 알고 있어야 합니다. 시뮬레이션이라면 바로 읽을 수 있습니다.
중간 단계의 도구도 있습니다. SkillGen은 Isaac Lab의 기능입니다. 잡거나 놓는 등 물체에 접촉하는 동안의 움직임은 사람의 레퍼런스를 옮깁니다. 그 전까지의 이동만 cuRobo가 계획합니다. 번호로 말하자면, 2는 건너뛰고 3만 사용하는 형태입니다. 사람의 레퍼런스는 필요합니다.
팔/그리퍼/물체가 바뀔 때
로봇 몸체의 구조나 잡는 물건이 바뀌었을 때 무엇을 수정해야 하는지 나열했습니다.
| 변경되는 것 | 레퍼런스 없음 (手本なし) | 레퍼런스 있음 (手本あり) |
|---|
| 팔 | 팔 설정을 추가한다 | 레퍼런스를 재사용할 수 있다 |
| ... | | |
| 레퍼런스 없는 방법에 대해 GraspGenX의 README에는 데모에 새로운 물체나 로봇을 추가할 때는 각각의 설정을 추가하면 되고, 프로그램 코드를 수정할 필요는 없다고 나와 있습니다. 그리퍼가 바뀌어도 GraspGen-X를 재학습할 필요가 없습니다. 그리퍼 설정 파일을 만드는 도구도 리포지토리에 포함되어 있습니다. | | |
레퍼런스 기반 방법은 MimicGen 논문의 실험이 참고가 됩니다.
Panda라는 팔로 얻은 레퍼런스로서, 다른 3종류의 팔 데이터가 만들어졌습니다. 그 데이터로 학습시킨 모델의 성공률은 모두 80%~91%였습니다.
머그컵 1개의 레퍼런스로부터 12개의 머그컵을 섞어 데이터를 만들었습니다. 그 데이터로 학습시킨 모델의 성공률은 75.3%였습니다. 형태가 크게 다른 물체는 향후 과제로 남겨두고 있습니다.
그리퍼를 교체하는 실험은 제가 읽은 범위에서는 찾을 수 없었습니다.
표의 그리퍼 항목에 있는 '다시 작업하기 쉬움'은 제 생각입니다. MimicGen은 레퍼런스의 손끝 움직임과 손가락 열림/닫힘 지시를 그대로 복사합니다. 손가락 모양이나 벌리는 폭이 바뀌면, 같은 위치에서 잡을 수 없게 될 것입니다.
어떤 방법을 사용하든, 학습 데이터 자체는 다시 만들어야 한다고 생각합니다. 이미지에 담기는 팔의 모습도, 움직임 지시 숫자가 달라지기 때문입니다. 재사용할 수 있는 것은 그리퍼 설정 파일, 팔 설정, 그리고 시연(demonstration) 자료뿐입니다.
GraspGen-X에도 단점은 있습니다. 논문에 따르면 5지 손은 학습에 포함되어 있지 않습니다. 일부 그리퍼의 경우, 더 간단한 방식에게 밀리고 있습니다. 이는 다른 그리퍼용으로 학습된 모델 출력을 지문 위치 차이만 조정하여 사용하는 방법입니다.
생성한 데이터의 주의점
계획(Planning)으로 만든 움직임
시연 자료 없이 계획으로 만든 움직임은, 작업을 성공적으로 수행했더라도 학습 데이터로서 유용하지 않을 수 있습니다. 해당 데이터로 파인튜닝을 해도 성공률이 크게 오르지 않는 경우가 있습니다. 세 편의 논문에서 이 점에 대해 언급했습니다.
사람의 움직임과의 차이점
DATAFARM(2026년 9월)은 TAMP를 이용해 만든 움직임을 VLA 파인튜닝에 사용하고 있습니다. TAMP는 작업 순서와 팔의 움직임을 종합적으로 계획하는 방법입니다. 이 실험은 시뮬레이션이 아닌 실제 장비에서 진행되었습니다. 계획된 움직임으로 실물 로봇을 구동하여 데이터를 수집했습니다.
- 파인튜닝 전 성공률은 세 가지 작업 평균 1.7%였습니다. 계획된 움직임을 그대로 사용해 파인튜닝해도 8.3%에 불과했습니다. 계획 자체는 작업을 완료할 수 있었습니다.
- 논문에서는 그 이유를 이렇게 분석합니다. 계획된 움직임은 VLA가 사전 학습(pre-training)에서 본 원격 조종(teleop) 데이터와 다르다는 것입니다. 관절 사용법, 움직임의 습관, 속도를 조절하는 방식이 다릅니다.
- 사전 학습 데이터에 맞춰 계획하자 56.7%를 기록했습니다. 원격 조종으로 수집한 데이터에서는 61.7%였습니다.
파인튜닝된 VLA는 $ ext{VLA}_{ ext{p}0.5}$ (Physical Intelligence의 VLA)이며, 사전 학습 데이터는 DROID (원격 조종으로 수집된 공개 데이터)입니다.
움직임 중간의 멈춤
GraspVLA 논문은 움직임 계획 방식을 변경했습니다. '잡기 직전까지 이동'과 '잡기'를 분리하여 계획하면, 그 사이에 일시적으로 멈추는 움직임이 됩니다. 이 논문에서는 그러한 데이터를 모방한 모델은 움직임 중간에 주저하며 멈추려는 경향을 보인다고 설명합니다. 따라서 하나의 연속적인 움직임으로 계획했습니다. 이는 계획 성공률보다 움직임의 부드러움을 우선했기 때문이라는 설명입니다.
사람의 움직임과 구별하기
SynthDemo-RL 논문은 자동 생성된 움직임과 사람의 움직임을 비교했습니다. 움직임이 급격하게 변하는 정도 등을 수치화하자, 두 가지가 명확히 분리되었다고 보고했습니다.
이 논문은 자동으로 생성한 기록으로 파인튜닝을 한 후, 강화학습(RL)으로 마무리했습니다. 그 이유 중 하나는 프로그램 움직임의 편향에서 벗어나기 위함이라고 설명합니다.
이미지의 시각적 특징
시뮬레이션 이미지는 실제 장비의 이미지와 외형이 다릅니다. 5번 항목에서 조명이나 배경을 변경하는 이유가 바로 이것입니다.
- GraspVLA는 앞서 본 것처럼, 조명과 배경을 난수로 변경합니다.
- LEGS(2026년 5월)는 실제 장소에서 촬영한 사진 같은 배경 위에 로봇과 물체를 합성하여 그립니다.
다른 방법들
시연 자료 없이 데이터를 생성하는 방법은 또 있습니다. 요약본을 읽은 범위 내에서 간략하게 정리합니다.
2025년 9월의 논문(Beyond Human Demonstrations)은 강화학습으로 학습시킨 모델에게 작업을 수행하게 하고, 그 기록만으로 VLA를 학습시키고 있습니다. LIBERO의 130가지 작업에서 평균 성공률은 81.9%였습니다. 사람 데이터로 학습했을 때보다 5.3 포인트 높았습니다.
LEGS는 휴머노이드 로봇용입니다. 정해진 움직임 부품을 조합하여 작업 기록을 자동으로 생성합니다. 잡고 놓기(pick and place) 작업 3가지에 대해 세 종류의 VLA로 시도했습니다. 원격 조종 데이터로 학습했을 때와 비슷하거나 그 이상이었습니다.
DreamGen(2025년 5월, NVIDIA)은 비디오를 만드는 모델을 이용해 로봇 영상을 만들게 하고, 영상으로부터 움직임을 추정합니다. 다만, 비디오 생성 모델을 자신의 로봇에 맞추기 위해서는 원격 조종 데이터가 필요합니다. 시연 자료를 전혀 얻을 수 없는 경우에는 적용하기 어렵습니다.
어떤 것을 선택할까
여기부터는 저의 정리입니다. 아직 아무것도 시도해보지 않았습니다.
전제 조건은, 시연 자료를 확보할 수 없다는 것, 작업이 잡고 놓기(pick and place) 수준이라는 것, 팔이나 그리퍼나 물체가 바뀔 수도 있다는 것이었습니다.
물건을 잡고 들어서 옮기는 것까지는 GraspGenX 데모 형태로 만들 수 있다. 물건을 놓는 동작은 추가해야 한다. SynthDemo-RL은 놓는 지점까지 프로그램으로 만들어져 있다. 그리퍼나 물체가 바뀌어도 설정이나 3D 모델만 추가하면 된다.
공개된 도구만으로는 VLA용 데이터까지 확보하기 어렵다.
GraspGenX 데모는 물리적으로 확인하는 단계까지 가능하다. 이미지를 그리고, 학습용 형태로 정리하고, 놓는 동작을 추가하는 세 가지는 직접 만들어야 한다.
동작의 질에 신경 써야 한다.
계획된 동작은 그대로로는 파인튜닝(Fine-tuning)에 도움이 되지 않을 때가 있다. 동작을 연속적으로 만들거나, 속도 조절 방식을 사전 학습 데이터에 맞추거나, 강화학습(RL)으로 마무리하는 등의 노력이 보고되었다.
모범 사례를 10개 정도 확보할 수 있다면, 모범 사례 기반의 방법도 고려해야 한다.
만드는 것은 적게 들고 끝난다. 동작의 원천이 사람이기 때문에 동작의 질에 대한 걱정도 작다고 생각한다. 대신 그리퍼나 물체가 바뀔 때마다 모범 사례를 다시 촬영해야 하는 경향이 있다.
요약
- VLA 학습 데이터에는 이미지, 로봇 상태, 동작 지시, 언어 지시가 필요하다. 시뮬레이션으로 만들 때 어려운 부분은 동작 지시다.
- 동작 생성 방식은 두 가지다. 사람의 모범 사례를 늘리는 방법(MimicGen)과, 모범 사례 없이 계획하는 방법(GraspGen-X 및 모션 플래너). 이 둘은 순차적으로 연결되는 것이 아니라 별개의 방법이다.
- 모범 사례를 얻을 수 없다면, 모범 사례가 없는 방법을 사용한다. 잡는 자세를 생성 → 동작을 계획 → 물리적으로 확인하는 순서로 만든다.
- 모범 사례가 있다면, 잡는 자세를 만드는 모델, 동작 계획, 놓는 동작 추가 단계를 생략할 수 있다. 장면 만들기, 물리적 확인, 이미지 그리기, 학습용 형태로 정리하기는 생략할 수 없다.
- 그리퍼나 물체가 바뀔 때, 모범 사례 없는 방법은 설정이나 3D 모델만 추가하면 된다. 모범 사례 있는 방법은 모범 사례를 다시 촬영해야 하는 경향이 있다. 어느 방법을 사용하든 데이터는 재작업해야 한다.
- 계획으로 만든 동작은 작업을 성공시키더라도 파인튜닝에 도움이 될지는 확신할 수 없다. 사람의 동작과의 차이를 줄이는 노력이 필요하다.
참고
- GraspGen-X: Cross-Embodiment 6-DOF Diffusion-based Grasping (arXiv 2606.00998)
- NVlabs/GraspGenX (GitHub)
- MimicGen: A Data Generation System for Scalable Robot Learning using Human Demonstrations (arXiv 2310.17596)
- Teleoperation and Imitation Learning with Isaac Lab Mimic (Isaac Lab 문서)
- SkillGen for Automated Demonstration Generation (Isaac Lab 문서)
- GraspVLA: a Grasping Foundation Model Pre-trained on Billion-scale Synthetic Action Data (arXiv 2505.03233)
- SynthDemo-RL: Breaking the Zero-Reward Barrier in VLA Adaptation with LLM-Guided Synthetic Demonstrations (arXiv 2609.21650)
- DATAFARM: Distribution-Aligned Task and Motion Planning for Fine-Tuning Vision-Language-Action Models (arXiv 2609.12316)
- LEGS: Fine-Tuning Teleop-Free VLAs for Humanoid Loco-manipulation in an Embodied Gaussian Splatting World (arXiv 2606.01458)
- Beyond Human Demonstrations: Diffusion-Based Reinforcement Learning to Generate Data for VLA Training (arXiv 2509.19752)
- DreamGen: Unlocking Generalization in Robot Learning through Video World Models (arXiv 2505.12705)
토론