VnRobo
Về chúng tôiBảng giáBlogLiên hệ
🇺🇸ENĐăng nhậpDùng thử miễn phí
🇺🇸EN
VnRobo logo

Hạ tầng AI cho robot công nghiệp thế hệ mới.

Sản phẩm

  • Tính năng
  • Bảng giá
  • Kiến thức
  • Dịch vụ

Công ty

  • Về chúng tôi
  • Blog
  • Liên hệ

Pháp lý

  • Chính sách bảo mật
  • Điều khoản sử dụng

© 2026 VnRobo. Bảo lưu mọi quyền.

Được tạo với♥tại Việt Nam
VnRobo
Về chúng tôiBảng giáBlogLiên hệ
🇺🇸ENĐăng nhậpDùng thử miễn phí
🇺🇸EN
  1. Trang chủ
  2. Blog
  3. GEAR-SONIC Science Robotics 2026: Scaling 100M Frames để Train Humanoid
wholebody-vlahumanoidwhole-body-controlnvidiasonicmotion-capturegrootisaac-labunitree-g1science-robotics

GEAR-SONIC Science Robotics 2026: Scaling 100M Frames để Train Humanoid

Hướng dẫn dùng GR00T-WholeBodyControl open-source để train SONIC whole-body controller trên 100M+ frame motion capture, deploy lên Unitree G1.

Nguyễn Anh Tuấn19 tháng 8, 202613 phút đọc
GEAR-SONIC Science Robotics 2026: Scaling 100M Frames để Train Humanoid

Hãy nghĩ đến một vận động viên bơi lội chuyên nghiệp — toàn thân chuyển động trong một luồng liên tục hoàn hảo: tay, vai, hông, chân phối hợp mà không cần suy nghĩ. Đó không phải lập trình thủ công; đó là bản năng được tích lũy qua hàng nghìn giờ luyện tập. SONIC làm chính xác điều đó cho robot humanoid: thay vì lập trình từng động tác riêng lẻ, bạn cho robot "xem" 100 triệu frame chuyển động người thực, và để mạng neural tự học phối hợp toàn thân.

Bài viết này là hướng dẫn từ A đến Z: từ bối cảnh Science Robotics 2026, qua kiến trúc kỹ thuật, đến cài đặt, huấn luyện, đánh giá và deploy SONIC controller trên Unitree G1 với framework GR00T-WholeBodyControl mã nguồn mở của NVIDIA.

Tại Sao Science Robotics 2026 Là Bước Ngoặt?

Paper SONIC: Supersizing Motion Tracking for Natural Humanoid Whole-Body Control (DOI: 10.1126/scirobotics.aed4592), được chấp nhận đăng trên Science Robotics Vol. 11, Issue 117 (2026) bởi Zhengyi Luo, Ye Yuan, Tingwu Wang và hơn 25 đồng tác giả từ NVIDIA GEAR Lab, đánh dấu một bước chuyển căn bản.

Trước SONIC, cộng đồng robotics vẫn loay hoay với bài toán "split controller": một module điều khiển chân (locomotion), một module điều khiển tay (manipulation), một layer phối hợp thủ công. Mỗi behavior mới đòi hỏi thiết kế reward function riêng, train riêng, test riêng. Không scale được.

SONIC đặt câu hỏi khác hẳn: "Nếu dạy robot bắt chước chính xác bất kỳ chuyển động người nào — liệu robot có tự động học được mọi kỹ năng không?"

Câu trả lời là có. Và được chứng minh bằng ba trục scaling:

Trục Scaling Nhỏ nhất Lớn nhất
Kích thước mô hình 1.2M tham số 42M tham số
Dữ liệu huấn luyện Vài chục giờ mocap 100M+ frames (700 giờ)
Tài nguyên tính toán ~1k GPU hours 21,000 GPU hours

Kết quả: một policy duy nhất điều khiển toàn bộ 29 bậc tự do của Unitree G1 — bao gồm cả hai tay — với khả năng generalize sang chuyển động chưa thấy trong training, robust với perturbations ngoài, và deploy thẳng từ simulation lên robot thật không cần fine-tune thêm.

GR00T-WholeBodyControl: Framework Mã Nguồn Mở

NVIDIA phát hành GEAR-SONIC vào ngày 19/02/2026 kèm theo:

  • Checkpoint pretrained trên HuggingFace (nvidia/GEAR-SONIC)
  • Framework GR00T-WholeBodyControl (Apache 2.0): github.com/NVlabs/GR00T-WholeBodyControl
  • C++ inference stack tối ưu cho Jetson Orin (latency 1–2 ms)
  • VR teleoperation qua PICO headset
  • Tài liệu đầy đủ: nvlabs.github.io/GR00T-WholeBodyControl

Tổng quan GR00T Whole-Body Control: từ dữ liệu motion capture đến deploy robot thật — nguồn: repo NVlabs/GR00T-WholeBodyControl
Tổng quan GR00T Whole-Body Control: từ dữ liệu motion capture đến deploy robot thật — nguồn: repo NVlabs/GR00T-WholeBodyControl

GR00T-WholeBodyControl là một unified platform hỗ trợ nhiều kiểu controller:

  • SONIC — behavior foundation model học từ mocap (focus của bài này)
  • Decoupled WBC — dùng trong GR00T N1.5/N1.6 cho VLA integration
  • Hỗ trợ custom embodiment (có example cho robot H2)

Khuyến nghị công cụ

Stack train/deploy cho VLA

Train trên cloud/workstation, deploy bản tối ưu xuống Jetson hoặc robot computer.

Cloud GPU for VLA / policy training Dùng cho imitation learning, diffusion policy, RL và fine-tuning model robotics. Xem cloud GPU → NVIDIA Jetson Orin NX / Orin Nano Máy deploy edge cho perception, logging và inference đã tối ưu. Xem Jetson → Hugging Face / robotics dataset hosting Lưu dataset, checkpoint và model card để workflow LeRobot/VLA dễ chia sẻ hơn. Xem platform →

Kiến Trúc SONIC: Ba Encoder, Một Token Space

Hiểu kiến trúc giúp bạn debug training và thiết kế fine-tuning hiệu quả. Chi tiết đầy đủ xem tại kiến trúc SONIC, đây là overview ngắn gọn:

Ba Encoder Chuyên Biệt

SONIC có ba encoder độc lập, mỗi cái xử lý một kiểu input khác nhau:

Robot Motion Encoder (Er) — nhận 10 frame tương lai (cách 0.1s/frame) của robot joint trajectory. Dùng khi bạn có target trajectory đã được retarget từ mocap sang robot.

Human Motion Encoder (Eh) — nhận 10 frame tương lai (cách 0.02s/frame) của SMPL pose — chuẩn biểu diễn thân người 3D từ Max Planck Institute. Dùng khi bạn có raw mocap data.

Hybrid Motion Encoder (Em) — nhận lệnh hỗn hợp robot/người (ví dụ: 3 điểm VR tracking — đầu + 2 cổ tay). Dùng trong VR teleoperation và video-based control.

Tất cả encoder đều là MLP với kiến trúc [2048, 1024, 512, 512].

Finite Scalar Quantization (FSQ): Ngôn Ngữ Chung

Output của ba encoder được lượng tử hóa vào cùng một không gian token rời rạc qua FSQ. Đây là bước then chốt: dù input đến từ robot trajectory, SMPL pose hay VR controller, chúng đều trở thành "tokens" trong cùng một ngôn ngữ.

Ý nghĩa thực tế: bạn có thể chuyển đổi seamless giữa các chế độ điều khiển (gamepad → VR → VLA output) mà không cần retrain gì cả — chỉ cần chọn encoder phù hợp.

Decoder và Action Space

Control Decoder (Dc) biến tokens thành 29 target joint positions (phân phối Gaussian). Decoder MLP: [2048, 2048, 1024, 1024, 512, 512].

Auxiliary Robot Motion Decoder (Dr) tái tạo robot motion để tạo supervision signal bổ sung trong quá trình training — giúp encoder học biểu diễn tốt hơn.

Thông Số Giá Trị
Action space 29-dimensional joint positions
Policy frequency 50 Hz
Motor stream 500 Hz (Unitree low-level API)
Inference latency 1–2 ms (Jetson Orin, TensorRT + CUDA Graph)

Dataset BONES-SEED: 100M+ Frames Motion Capture

SONIC train trên BONES-SEED (Bones Studio Skeletal Everyday Embodiment Dataset) — dataset motion capture lớn nhất trong lịch sử humanoid robotics tính đến 2026:

Thông Số Giá Trị
Tổng số motion sequences 142,220 (71,132 gốc + 71,088 mirror)
Thời lượng ~288 giờ @ 120 fps
Tổng số frames ~124 triệu frames
Số diễn viên 522 người (253 nữ, 269 nam)
Độ tuổi 17–71 tuổi
Chiều cao 145–199 cm
Thiết bị thu Vicon optical mocap (sub-millimeter accuracy)
Định dạng phân phối SMPL + retargeted Unitree G1 SOMA CSV

Dataset gốc trong nghiên cứu SONIC thu thập từ 170 người. Tháng 3/2026 tại GTC, Bones Studio mở rộng và công bố phiên bản công khai với 522 diễn viên.

Tại sao cần nhiều diễn viên? Mỗi người có tỷ lệ cơ thể khác nhau — chân dài, tay ngắn, vai rộng, hông hẹp. SONIC phải học cách retarget các tỷ lệ cơ thể khác nhau sang khung xương cố định của Unitree G1 (cao 127 cm, nặng 35 kg). Nhiều diễn viên = nhiều tỷ lệ = controller generalize tốt hơn, ít "overfit" vào một kiểu cơ thể cụ thể.

Cài Đặt GR00T-WholeBodyControl

Yêu Cầu Phần Cứng

Thành Phần Tối Thiểu Khuyến Nghị
GPU training RTX 4090 (24 GB VRAM) NVIDIA L40 / A100
RAM 64 GB 128 GB
Lưu trữ 200 GB SSD 500 GB NVMe
OS Ubuntu 22.04 Ubuntu 22.04
Python 3.11 (bắt buộc) 3.11
CUDA 12.x 12.4

Training SONIC đầy đủ từ đầu cần ~21,000 GPU hours (khoảng 2 tuần trên cluster 64x A100). Fine-tune từ checkpoint pretrained chỉ cần vài trăm GPU hours — hoàn toàn khả thi trên một GPU đơn lẻ.

Bước 1: Cài Đặt Isaac Lab

Isaac Lab là simulation environment bắt buộc. Cài theo hướng dẫn chính thức tại Isaac Lab v2.3.2, sau đó verify:

python -c "import isaaclab; print(isaaclab.__version__)"
# Expected: 2.3.2 hoặc cao hơn

Bước 2: Clone và Cài GR00T-WholeBodyControl

git clone https://github.com/NVlabs/GR00T-WholeBodyControl.git
cd GR00T-WholeBodyControl

# Cài package training (kèm dependencies)
pip install -e "gear_sonic/[training]"

# Cài HuggingFace Hub để download checkpoint
pip install huggingface_hub

Bước 3: Download Checkpoint và Dữ Liệu Mẫu

# Download checkpoint PyTorch + SMPL motion data (~5 GB)
python download_from_hf.py --training

# Download sample data nhỏ để test nhanh (~200 MB)
python download_from_hf.py --sample

# Kiểm tra môi trường đầy đủ
python check_environment.py --training

Checkpoint được host tại nvidia/GEAR-SONIC trên HuggingFace. Script download_from_hf.py tự xử lý authentication và đặt file đúng thư mục.

Chuẩn Bị Dataset BONES-SEED

Nếu muốn fine-tune với dữ liệu riêng hoặc toàn bộ BONES-SEED, cần qua hai bước xử lý:

Bước 1: Convert SOMA CSV → Motion Library

BONES-SEED phân phối ở định dạng SOMA CSV (kết quả retarget từ SMPL sang Unitree G1). Bước này convert sang định dạng internal mà SONIC trainer đọc:

python gear_sonic/data_process/convert_soma_csv_to_motion_lib.py \
    --input /path/to/bones_seed/g1/csv/ \
    --output data/motion_lib_bones_seed/robot \
    --fps 30 \
    --fps_source 120 \
    --individual \
    --num_workers 16
  • --fps_source 120 — BONES-SEED thu ở 120 fps
  • --fps 30 — downsample xuống 30 fps cho training nhẹ hơn
  • --individual — mỗi motion lưu thành file riêng, dễ filter

Bước 2: Lọc Motion Chất Lượng Thấp

Không phải toàn bộ 142K motions đều phù hợp — một số quá ngắn, quá tĩnh, hoặc có lỗi retarget:

python gear_sonic/data_process/filter_and_copy_bones_data.py \
    --source data/motion_lib_bones_seed/robot \
    --dest data/motion_lib_bones_seed/robot_filtered \
    --workers 16

Sau filter, dữ liệu "clean" nằm tại data/motion_lib_bones_seed/robot_filtered/.

Tham khảo hướng dẫn training và export ONNX để xử lý dữ liệu mocap tùy chỉnh (custom embodiment).

Huấn Luyện SONIC

Smoke Test Bắt Buộc Trước Khi Train

Luôn chạy smoke test 5 iterations trước khi dùng toàn bộ dataset — tránh lãng phí GPU hours:

# Với UI (để xem robot di chuyển trong Isaac Sim)
python gear_sonic/train_agent_trl.py \
    +exp=manager/universal_token/all_modes/sonic_release \
    num_envs=16 \
    headless=False \
    ++algo.config.num_learning_iterations=5

# Headless (trên server không có màn hình)
python gear_sonic/train_agent_trl.py \
    +exp=manager/universal_token/all_modes/sonic_release \
    num_envs=16 \
    headless=True \
    ++algo.config.num_learning_iterations=5

Smoke test pass nghĩa là: Isaac Lab render đúng, policy network load được, data pipeline hoạt động, không có CUDA OOM.

Fine-Tune Từ Checkpoint Pretrained (Khuyến Nghị)

python gear_sonic/train_agent_trl.py \
    +exp=manager/universal_token/all_modes/sonic_release \
    num_envs=256 \
    headless=True \
    ++algo.config.num_learning_iterations=10000 \
    +checkpoint=sonic_release/last.pt
  • num_envs=256 — số parallel simulation environments. Tăng tối đa RAM/VRAM cho phép
  • +checkpoint=sonic_release/last.pt — fine-tune từ checkpoint thay vì random init
  • Fine-tune chỉ cần vài trăm GPU hours; train từ đầu cần ~21,000 GPU hours

Đánh Giá Checkpoint

Xem Policy Trong Isaac Sim

python gear_sonic/eval_agent_trl.py \
    +checkpoint=sonic_release/last.pt \
    +headless=False \
    ++num_envs=1 \
    ++manager_env.observations.policy.enable_corruption=False \
    ++manager_env.observations.tokenizer.enable_corruption=False \
    "++manager_env.commands.motion.motion_lib_cfg.motion_file=sample_data/robot_filtered" \
    "++manager_env.commands.motion.motion_lib_cfg.smpl_motion_file=sample_data/smpl_filtered"

Đánh Giá Metrics Tự Động (128 Environments)

python gear_sonic/eval_agent_trl.py \
    +checkpoint=sonic_release/last.pt \
    +headless=True \
    ++eval_callbacks=im_eval \
    ++run_eval_loop=False \
    ++num_envs=128 \
    ++manager_env.observations.policy.enable_corruption=False \
    ++manager_env.observations.tokenizer.enable_corruption=False \
    "+manager_env/terminations=tracking/eval" \
    "++manager_env.commands.motion.motion_lib_cfg.max_unique_motions=512" \
    "++manager_env.commands.motion.motion_lib_cfg.motion_file=sample_data/robot_filtered" \
    "++manager_env.commands.motion.motion_lib_cfg.smpl_motion_file=sample_data/smpl_filtered"

Metric chính cần theo dõi: tracking accuracy trên tập motions chưa thấy trong training (generalization score).

Deploy: Từ Simulation Đến Robot Thật

Bước 1: Sim2Sim Qua MuJoCo

Trước khi chạy trên robot thật, luôn test qua MuJoCo để verify behavior an toàn:

# Cài MuJoCo simulation environment
bash install_scripts/install_mujoco_sim.sh

# Terminal 1: Khởi động MuJoCo simulator
source .venv_sim/bin/activate
python gear_sonic/scripts/run_sim_loop.py

# Terminal 2: Launch SONIC deployment stack
bash deploy.sh sim

Demo SONIC điều khiển Unitree G1 đi bộ qua VR teleoperation — nguồn: repo NVlabs/GR00T-WholeBodyControl
Demo SONIC điều khiển Unitree G1 đi bộ qua VR teleoperation — nguồn: repo NVlabs/GR00T-WholeBodyControl

Trong MuJoCo bạn có thể test: keyboard control (WASD di chuyển, QE xoay), gamepad (PS5/Xbox), và VR (PICO headset với setup thêm).

Bước 2: Deploy Trên Unitree G1 Thật

bash deploy.sh real

Lệnh này khởi động C++ inference stack, kết nối đến Unitree low-level API qua Ethernet, và chạy control loop 500 Hz.

Checklist an toàn trước khi chạy robot thật:

  • Có người đứng cạnh với remote emergency stop
  • Robot đứng trên vùng rộng, không có vật cản
  • Test ở tốc độ thấp nhất trước (limit velocity trong config)
  • Verify MuJoCo sim chạy ổn định ít nhất 5 phút trước khi chuyển sang real

Monitoring Realtime

# Stream joint states và tracking error realtime
python visualize_motion.py --realtime_debug_url tcp://localhost:5557

Tích Hợp VLA: SONIC Như Low-Level Controller

Một trong những ứng dụng quan trọng nhất của SONIC là làm low-level controller cho VLA models như GR00T N1.7. VLA predict compact latent action tokens, SONIC decode chúng thành full-body joint commands — kết hợp được vision, language, và whole-body motion trong một hệ thống.

SONIC-backed kinematic planner: điều hướng tự nhiên ngoài trời — nguồn: repo NVlabs/GR00T-WholeBodyControl
SONIC-backed kinematic planner: điều hướng tự nhiên ngoài trời — nguồn: repo NVlabs/GR00T-WholeBodyControl

Pipeline tích hợp VLA + SONIC:

  1. Camera input → VLA model (GR00T N1.7, embodiment tag UNITREE_G1_SONIC)
  2. VLA predict latent action tokens
  3. SONIC Hybrid encoder nhận tokens qua FSQ shared space
  4. Control Decoder output 29 joint targets
  5. 500 Hz motor stream → Unitree G1

Tham khảo hướng dẫn tích hợp VLA và teleoperation để biết cách kết nối GR00T N1.7 với SONIC controller trong thực tế.

Kết Quả và So Sánh

Theo kết quả trong paper Science Robotics 2026:

  • Scaling law rõ ràng: tăng data + model size → tracking accuracy cải thiện monotonically
  • Generalization mạnh: policy generalize tốt sang motions chưa thấy trong training
  • Perturbation robust: tracking ổn định dưới external perturbations (đẩy robot từ bên ngoài)
  • Sim2real gap nhỏ: deploy thẳng từ Isaac Lab lên G1 thật — 100% success rate trên nhiều behaviors
  • Low latency: 1–2 ms inference trên Jetson Orin → real-time 500 Hz không drop frame
Tiêu Chí Split Controller Truyền Thống SONIC
Behavior mới Phải design reward mới + retrain Chỉ cần thêm mocap data
Phối hợp tay/chân Thủ công, phức tạp Tự nhiên, học được
Scale với dữ liệu Khó, phi tuyến Scaling law rõ ràng
VLA integration Phức tạp, nhiều glue code Native support qua FSQ token
Deployment latency Thấp (controller đơn giản) 1–2 ms (TensorRT tối ưu)

Mẹo Thực Tế Khi Dùng GR00T-WholeBodyControl

  1. Bắt đầu với fine-tune, không train từ đầu — checkpoint pretrained đã học đi/đứng/tay cơ bản; fine-tune chỉ tốn vài trăm GPU hours thay vì 21,000
  2. Smoke test 5 iterations bắt buộc trước mọi run dài — phát hiện lỗi config/data sớm, tiết kiệm GPU hours
  3. Filter dữ liệu nghiêm túc — motions ngắn hơn 2 giây hoặc quá tĩnh sẽ làm nhiễu training
  4. MuJoCo trước, robot thật sau — sim2sim verification tiết kiệm rất nhiều thời gian debug hardware
  5. Dùng num_envs lớn nhất có thể — SONIC dùng on-policy RL; nhiều parallel envs = sample efficient hơn nhiều
  6. Monitor tracking loss — nếu loss không giảm sau 1,000 iterations, check data path và dataset format trước khi điều chỉnh hyperparameter

Để đi sâu vào deploy qua ZMQ protocol cho remote control setup, xem bài viết chuyên về phần này.

Bài Viết Liên Quan

  • Kiến Trúc SONIC: Ba Encoder, FSQ và Whole-Body Policy cho Unitree G1
  • Train và Export SONIC Controller Thành ONNX để Deploy C++
  • Deploy SONIC qua ZMQ Protocol: Remote Control và Teleoperation
NT

Nguyễn Anh Tuấn

Robotics & AI Engineer. Building VnRobo — sharing knowledge about robot learning, VLA models, and automation.

Khám phá VnRobo

Fleet MonitoringROS 2 IntegrationAMR Solutions

Bài viết liên quan

Tutorial
Whole-body VLA
humanoidwhole-body-controlnvidia
wholebody-vla

GEAR-SONIC: Whole-Body Control cho Humanoid Robot

Hướng dẫn chi tiết GEAR-SONIC của NVIDIA — huấn luyện whole-body controller cho humanoid robot với dataset BONES-SEED và VR teleoperation.

13/4/202612 phút đọc
NT
Tutorial
Hướng dẫn fine-tune NVIDIA GR00T N1
vlahumanoidnvidia
wholebody-vla

Hướng dẫn fine-tune NVIDIA GR00T N1

Hướng dẫn chi tiết fine-tune VLA model GR00T N1 cho humanoid robot với Isaac Lab và dữ liệu AGIBOT World — từ cài đặt đến inference.

12/4/202612 phút đọc
NT
NEWTutorial
CoorDex: Train Unitree G1 Vừa Đi Vừa Gắp Đồ Dexterous
unitree-g1dexterous-manipulationlocomotion
wholebody-vla

CoorDex: Train Unitree G1 Vừa Đi Vừa Gắp Đồ Dexterous

CoorDex dùng body và hand latent priors để dạy Unitree G1 thực hiện walk-grasp-carry liên tục không dừng, với code open-source từ UNC Chapel Hill.

17/8/202616 phút đọc
NT
VnRobo logo

Hạ tầng AI cho robot công nghiệp thế hệ mới.

Sản phẩm

  • Tính năng
  • Bảng giá
  • Kiến thức
  • Dịch vụ

Công ty

  • Về chúng tôi
  • Blog
  • Liên hệ

Pháp lý

  • Chính sách bảo mật
  • Điều khoản sử dụng

© 2026 VnRobo. Bảo lưu mọi quyền.

Được tạo với♥tại Việt Nam