휴머노이드 로봇의 초기 구동(bring-up) 단계를 넘어 작업별 스킬 개발로 넘어가는 팀이 늘어나면서, 반복 가능한 개발 워크플로의 필요성도 커지고 있습니다. 하지만 휴머노이드 개발은 여전히 복잡하고, 오늘날의 개발 파이프라인은 심하게 파편화되어 있죠. 그 결과 개발자는 로봇 기능 구축에 집중하기 전에 로보틱스 인프라를 설정하는 데 상당한 시간을 쏟고 있습니다.
로보틱스 커뮤니티는 파이프라인의 개별 단계마다 뛰어난 도구를 만들어 왔지만, 고립된 소프트웨어 생태계와 호환되지 않는 데이터 포맷, 도구 간 수동 통합 때문에 이를 매끄러운 하나의 워크플로로 연결하기는 아직 어렵습니다. 이 문제를 해결하기 위해 저희는 NVIDIA Isaac GR00T 개발 플랫폼을 소개합니다. 파이프라인의 모든 단계를 통합해 개발 속도를 높이는 오픈소스 휴머노이드 로봇 플랫폼이죠.
이 포스트에서는 데이터 수집과 모델 훈련부터 대규모 평가와 배포 준비까지 GR00T 플랫폼의 엔드투엔드 과정을 다루며, 완전히 통합된 플랫폼이 휴머노이드 개발을 어떻게 간소화하는지 보여드립니다.
엔드투엔드 휴머노이드 개발 가속화

Isaac GR00T 플랫폼은 로보틱스 개발자가 휴머노이드 데이터 수집과 시뮬레이션 기반 훈련을 확장해 실제 로봇에서 정책을 개발·검증·배포하도록 돕습니다. 이 엔드투엔드 플랫폼은 완전히 개방적이고 모듈식이므로, 팀은 개별 구성 요소나 전체 파이프라인을 선택적으로 사용하고, 자체 도구를 통합하며, 검증된 NVIDIA 소프트웨어 스택 위에서 개발할 수 있죠.
| 단계 | NVIDIA 기술 | 기능 |
| 시뮬레이션 환경 설정 | NVIDIA Isaac Lab-Arena | 데이터 생성, 정책 훈련, 테스트를 위한 시뮬레이션 환경을 만듭니다. |
| 데이터 생성 | NVIDIA Isaac Teleop | 정책 훈련과 개발을 위한 고품질 로봇 시연 데이터를 수집합니다. |
| 정책 훈련 | NVIDIA Isaac GR00T 1.7 + 훈련 스크립트 | 시뮬레이션과 실제 시연 데이터로 휴머노이드 추론과 멀티태스크 동작을 위한 로봇 정책을 훈련합니다. |
| 정책 평가 | NVIDIA Isaac Lab-Arena | 실제 배포 전에 시뮬레이션에서 로봇 정책을 테스트하고 평가합니다. |
| 정책 배포 | NVIDIA Isaac ROS + Jetson Thor | 모델을 배포 가능한 LEAPP 번들로 내보내고, 사후 훈련된 정책을 로봇에 배포해 실시간 온디바이스 추론과 제어를 수행합니다. |
GR00T 워크플로의 핵심 구성 요소는 오픈 Isaac GR00T 1.7 VLA(vision-language-action) 모델로, 탄탄한 사전 훈련 기반을 제공해 개발을 간소화합니다. 다양한 데이터로 훈련된 이 모델은 새로운 작업과 환경에 효율적으로 일반화되면서도 더 자연스럽고 사람에 가까운 동작을 만들어 내죠.
GR00T 1.7 시작하기

GR00T 1.7은 범용 휴머노이드 로봇 스킬을 위한 최초의 오픈 상용 가능 VLA 모델로, 제약이 적은 Apache 2.0 라이선스로 공개되었습니다. 언어와 이미지를 포함한 멀티모달 입력을 받아 다양한 환경에서 작업을 수행하는 데 필요한 동작을 생성하는 크로스 임보디먼트(cross-embodiment) 모델인데요, 개발자는 정책을 처음부터 훈련하는 대신 폭넓은 조작(manipulation) 사전 지식이 이미 인코딩된 모델에서 출발해, 사후 훈련을 통해 특정 로봇과 작업, 환경에 맞게 적응시킬 수 있습니다.
GR00T 1.7의 새로운 기능
- 강건한 휴먼 비디오 사전 훈련: GR00T 1.7은 약 3만 2천 시간의 실제 시연 및 1인칭 시점 휴먼 데이터와, BEHAVIOR·RoboCasa·Simulated GR-1에서 얻은 약 8천 시간의 시뮬레이션 롤아웃 및 시연 데이터로 사전 훈련되어 더 사람에 가까운 동작을 구현합니다.
- 새로운 VLM 백본: GR00T N1.6에서 사용하던 Eagle 백본을 Cosmos-Reason2-2B(Qwen3-VL 아키텍처)로 교체했습니다. 덕분에 유연한 해상도를 지원하고 패딩 없이 원본 종횡비 그대로 이미지를 인코딩합니다.
- 확장된 배포 지원: ONNX와 TensorRT로의 전체 파이프라인 내보내기를 추가했으며, 내보내기 안정성과 업데이트 주기도 개선했습니다.
- 향상된 성능: 작업 및 하위 작업 수준 분해를 통해 장기 작업 추론을 개선해 신뢰성, 동작 품질, 크로스 임보디먼트 일반화를 높였습니다.
- 개선된 벤치마크: N1.6 대비 DROID와 SimplerEnv 전반에서 일관된 향상을 보였습니다. DROID-F0(+10%), DROID-F6(+61%), SimplerEnv Bridge(+5%), Fractal(+2%) 등으로 더 강력한 일반화 성능을 입증했습니다.
GR00T 1.7은 GitHub과 Hugging Face에서 이용할 수 있으며, 모델 가중치가 공개되어 있고 기본 체크포인트는 30억 파라미터 규모입니다.
엔드투엔드 GR00T 워크플로에서 GR00T 1.7 모델을 사용하면 사후 훈련과 정책 평가가 간소화되어, 파운데이션 모델에서 배포된 로봇 동작으로 넘어가는 과정이 한결 단순해집니다. 다음 섹션에서는 시뮬레이션 워크플로에서 GR00T 1.7을 사용하는 단계를 자세히 설명합니다.
GR00T 플랫폼과 GR00T 1.7 모델로 정밀 조작 작업 수행하기

이 섹션에서는 GR00T 플랫폼과 GR00T 1.7 모델로 간단한 집어 놓기 작업을 구축하는 시뮬레이션 워크플로를 환경 설정부터 배포 준비까지 살펴봅니다. 이 내용은 전체 과정을 더 자세히 다루는 엔드투엔드 GR00T 개발 가이드에서 발췌한 것입니다.
이번 안내는 다음 단계로 진행됩니다.
- 시뮬레이션 환경 설정
- 텔레오퍼레이션을 통한 로봇 데이터 수집
- 수집한 데이터를 LeRobot 포맷으로 변환
- 변환된 데이터셋으로 GR00T 1.7 사후 훈련
- 사후 훈련된 정책 평가
이 섹션은 시뮬레이션에 초점을 맞추지만, 같은 단계를 실제 로봇에도 적용할 수 있고 다양한 임보디먼트와 작업에 맞게 조정할 수도 있습니다.
환경 설정
훈련 데이터를 수집하기 전에 먼저 환경을 설정해야 합니다. 물체와 로봇 애셋으로 장면을 구성하고, 작업을 정의하며, 텔레오퍼레이션 장치를 선택하는 단계죠.
이 예제(위 그림 3 참조)에서 로봇은 선반 앞에 서서 양팔로 사과를 같은 선반 위의 접시로 옮깁니다. 전신 컨트롤러(WBC, Whole Body Controller)가 로봇의 균형을 유지하는데요, 이 작업에서는 로봇이 걷지 않으므로 서기/걷기 컨트롤러보다 정적 작업에 더 적합한 단일 엔드투엔드 정책인 AGILE WBC를 사용합니다.
WBC는 시작 단계에서 신중하게 골라야 합니다. 텔레오퍼레이션 중에 AGILE WBC와 PinkIK가 정책의 훈련 신호가 되는 관절 공간 목표값을 생성하므로, 같은 동작이라도 컨트롤러가 다르면 훈련 분포가 달라지기 때문입니다.
구현은 대략 다음 코드 스니펫과 같은 형태입니다. 이 스니펫은 Isaac Lab-Arena API를 사용해 장면을 구성하고, 애셋을 등록하며, 텔레오퍼레이션 장치를 연결합니다. 여기서는 일부만 발췌했으며, 전체 환경 설정은 GitLab Pages에서 확인하세요.
background = self.asset_registry.get_asset_by_name("galileo_locomanip")()
pick_up_object = self.asset_registry.get_asset_by_name(args_cli.object)()
destination = self.asset_registry.get_asset_by_name(args_cli.destination)()
embodiment = self.asset_registry.get_asset_by_name(args_cli.embodiment)(
enable_cameras=args_cli.enable_cameras
)
teleop_device = (
self.device_registry.get_device_by_name(args_cli.teleop_device)()
if args_cli.teleop_device is not None else None
)
scene = Scene(assets=[background, pick_up_object, destination])
task = PickAndPlaceTask(
pick_up_object=pick_up_object,
destination_location=destination,
background_scene=background,
)
return IsaacLabArenaEnvironment(
name=self.name,
embodiment=embodiment,
scene=scene,
task=task,
teleop_device=teleop_device,
)
시연 데이터 수집

환경을 설정했다면 Isaac Teleop으로 시연 데이터를 수집할 수 있으며, 수집 중 전신 제어는 AGILE WBC가 담당합니다. 시연은 지원되는 VR 헤드셋을 CloudXR 클라이언트로 연결해 수집하는데요, CloudXR 런타임을 시작하고 CloudXR 환경을 소싱한 뒤 다음 명령으로 시연을 기록합니다.
python isaaclab_arena/scripts/imitation_learning/record_demos.py \
--viz kit \
--device cpu \
--enable_cameras \
--dataset_file $DATASET_DIR/arena_g1_static_apple_dataset_recorded.hdf5 \
--num_demos 400 \
--num_success_steps 10 \
--disable_full_sim_buffer_reset \
galileo_g1_static_pick_and_place \
--object apple_01_objaverse_robolab \
--destination clay_plates_hot3d_robolab \
--teleop_device openxr
이 단계에서는 데이터의 양만큼이나 품질이 중요합니다. 노이즈가 많거나 일관성이 없는 데이터는 정책의 학습 수준을 제한하므로, 부드러운 동작과 안정적인 파지, 다양한 접근 방향을 갖춘 깔끔한 시연을 목표로 하세요. 이 작업에서 저희는 400개의 궤적을 한 번에 수집하지 않고 여러 세션에 걸쳐 수집해 이어 붙였습니다. 전체 시연 세트에 착수하기 전에 더 작은 데이터 배치로 시작해 각 요소가 어떻게 맞물리는지 파악하는 것도 좋은 방법이죠.
성공한 시연은 HDF5 파일로 저장되며, 이 파일은 다음 단계의 원시 입력이 되어 GR00T 1.7이 사후 훈련에 사용하는 LeRobot 포맷으로 변환됩니다.
데이터 포맷 변환
GR00T 1.7은 LeRobot 포맷의 데이터셋을 사용하므로, 기록된 HDF5는 훈련 전에 Arena 컨테이너 안에서 변환됩니다. 변환은 g1_static_apple_config.yaml 구성 파일을 기준으로 이루어지며, 이 파일은 기록된 필드를 GR00T가 기대하는 형식에 매핑합니다.
# Input/Output paths
data_root: /datasets/isaaclab_arena/static_apple_tutorial
hdf5_name: "arena_g1_static_apple_dataset_recorded.hdf5"
# Task description
language_instruction: "move the apple to the plate"
task_index: 3
# Data field mappings
state_name_sim: "robot_joint_pos"
action_name_sim: "processed_actions"
pov_cam_name_sim: "robot_head_cam_rgb"
# Output configuration
fps: 50
chunks_size: 1000
다음 명령으로 변환을 실행합니다.
python isaaclab_arena_gr00t/lerobot/convert_hdf5_to_lerobot.py \
--yaml_file isaaclab_arena_gr00t/lerobot/config/g1_static_apple_config.yaml
그러면 상태와 동작이 담긴 parquet 파일, MP4 카메라 녹화본, 데이터셋 메타데이터가 들어 있는 lerobot 폴더가 생성됩니다. 이제 변환된 데이터셋으로 GR00T 1.7 모델을 사후 훈련할 수 있습니다.
GR00T 1.7 사후 훈련
사후 훈련은 Arena 컨테이너 바깥, Isaac-GR00T 리포지토리를 별도로 체크아웃한 환경에서 실행합니다. 파인튜닝 명령은 언어 모델을 고정한 채 비주얼 백본, 프로젝터, 디퓨전 모델을 튜닝합니다.
uv run python -m torch.distributed.run --nproc_per_node=1 --standalone \
gr00t/experiment/launch_finetune.py \
--base-model-path nvidia/GR00T-N1.7-3B \
--dataset-path $DATASET_DIR/arena_g1_static_apple_dataset_recorded/lerobot \
--output-dir $MODELS_DIR/static_apple_n17_finetune \
--modality-config-path /path/to/IsaacLab-Arena/isaaclab_arena_gr00t/embodiments/g1/g1_sim_wbc_data_gr00t_n_1_7_config.py \
--embodiment-tag new_embodiment \
--global-batch-size 12 \
--max-steps 20000 \
--num-gpus 1 \
--save-steps 5000 \
--save-total-limit 5 \
--no-tune-llm \
--tune-visual \
--tune-projector \
--tune-diffusion-model \
--dataloader-num-workers 8 \
--color-jitter-params brightness 0.3 contrast 0.4 saturation 0.5 hue 0.08
정책 평가
사후 훈련이 끝난 뒤의 평가는 두 단계면 충분합니다. 체크포인트를 GR00T 서버에 로드한 다음, 정책을 폐루프(closed loop)로 실행하는 것이죠. Arena는 서버-클라이언트 구조를 사용하는데요, 서버가 파인튜닝된 모델을 호스팅하고 Arena 클라이언트가 시뮬레이션을 실행하면서 서버의 모델에 질의합니다.
Arena 컨테이너에서 클라이언트를 실행해 정책을 구동합니다.
/isaac-sim/python.sh isaaclab_arena/evaluation/policy_runner.py \
--viz kit \
--policy_type isaaclab_arena_gr00t.policy.gr00t_remote_closedloop_policy.Gr00tRemoteClosedloopPolicy \
--policy_config_yaml_path isaaclab_arena_gr00t/policy/config/g1_static_apple_gr00t_closedloop_config.yaml \
--remote_host <SERVER_HOST> --remote_port 5555 \
--num_steps 600 \
--enable_cameras \
galileo_g1_static_pick_and_place \
--object apple_01_objaverse_robolab \
--destination clay_plates_hot3d_robolab \
--embodiment g1_wbc_agile_joint
평가가 진행되는 동안 지표가 콘솔에 출력되고, 마지막에는 사후 훈련된 정책의 성능을 알려주는 최종 결과가 표시됩니다.
[Rank 0/1] Metrics: {'success_rate': 1.0, 'object_moved_rate': 1.0, 'num_episodes': 1}
평가 규모는 몇 가지 플래그로 조정합니다. --num_steps는 롤아웃 길이를 지정하며, 600은 이 작업에서 약 1 에피소드에 해당하는 빠른 스모크 테스트 수준입니다. 대표성 있는 성공률을 얻으려면 --num_episodes 100(더 정확한 추정에는 1000)으로 완전한 에피소드를 평가하고, --num_envs 5를 추가해 환경을 병렬로 실행하면 시도 간 무작위화를 늘릴 수 있죠. 나머지 설정은 그대로 두고, 평균을 낼 롤아웃 수만 바꾸면 됩니다.
간소화된 개발 프로세스
이로써 Isaac GR00T 개발 플랫폼의 전 과정을 한 차례 살펴봤습니다. 각 단계는 다음 단계로 곧바로 이어지는 깔끔한 산출물을 만들어 내므로, 완전히 통합되고 간소화된 개발 프로세스가 완성되죠. 이번 안내에서는 특정 임보디먼트를 예로 들었지만, 같은 프로세스를 여러분의 로봇 환경에 맞게 조정할 수 있습니다. 사용 사례에 맞는 작업을 정의하고, 자신의 시스템에서 시연을 수집한 뒤, 동일한 데이터 변환·사후 훈련·평가 워크플로를 그대로 재사용하면 됩니다.
성장하는 GR00T 생태계
GR00T 플랫폼과 레퍼런스 워크플로는 이미 점점 늘어나는 휴머노이드 로보틱스 파트너 생태계 전반에서 도입되고 있습니다.
- 1X, Agility, ANYBotics, Bellboy Robotics, FieldAI, Lightwheel AI, NEURA Robotics, Nexuni, Noble Machines, Schaeffler, Skild AI, Techman Robot 등 휴머노이드 제조사와 AI 기업은 Isaac Teleop, Sim, Lab, ROS 같은 GR00T 플랫폼 구성 요소를 통합해 개발 파이프라인을 가속하고 AI 기반 로봇을 실제 산업 현장에 더 빨리 투입하고 있습니다.
- Stanford, CMU, UCSD, ETH Zurich, AI2 등 연구 기관은 통합 GR00T 엔드투엔드 워크플로를 실험해 통합 복잡성을 줄이고, 로봇 초기 구동에서 스킬 개발과 실제 검증까지 더 빠르게 나아갈 예정입니다.
- Haptikos, Manus, Noitom, OpenGraph Labs, PICO, Sensing, HTC Vive, Wuji, Xsens 등 선도적인 웨어러블 및 XR 장치 제조사는 NVIDIA Isaac Teleop을 기본 지원하는 장치를 제공해 고품질 시연 수집을 한층 쉽게 만들고 있습니다.
시작하기
GR00T 플랫폼과 GR00T 1.7 모델은 지금 바로 모든 개발자가 사용할 수 있습니다. 시뮬레이션에서 시작하든 실제 로봇에서 시작하든 워크플로는 동일한데요, 진입점을 선택하고, 범위가 한정된 작업을 정의한 뒤, 첫 엔드투엔드 정책을 구축하면 됩니다.
처음 시작이 쉽지 않을 수 있기에 저희는 완전한 엔드투엔드 레퍼런스 워크플로를 마련했습니다. 학습 콘텐츠 How to Develop and Deploy Humanoid Robots End-to-End with NVIDIA Isaac GR00T와 GR00T 플랫폼 소개 영상에서 확인하세요.
추가 리소스: