Trong lĩnh vực robotics humanoid, bài toán kiểm soát toàn thân (whole-body control) vẫn là một trong những thách thức khó giải quyết nhất: làm sao để robot có 29 bậc tự do — từ ngón tay đến bàn chân — chuyển động mượt mà, uyển chuyển, và quan trọng hơn, không cần huấn luyện lại trên robot thật?
Tháng 5/2026, Horizon Robotics (địa bình tuyến — công ty bán dẫn và AI hàng đầu Trung Quốc) công bố HoloMotion-1 Technical Report — một câu trả lời đột phá. Thay vì huấn luyện một policy chuyên biệt cho từng loại chuyển động, HoloMotion-1 là mô hình nền tảng Sparse Mixture-of-Experts (MoE) học từ hàng triệu frame video của con người, sau đó chuyển giao zero-shot sang robot Unitree G1 thật mà không cần thêm dữ liệu thực tế nào.
Kết quả? Lỗi theo dõi chuyển động trung bình (MPKPE) giảm 40% so với baseline mạnh nhất hiện tại (Sonic). Robot G1 thực hiện được múa, võ thuật, bò, và thậm chí chuyển từ ngồi sang đứng — tất cả dùng chung một policy duy nhất.
Bài toán: Tại sao whole-body control khó đến vậy?
Hãy tưởng tượng bạn đang dạy một người mới học múa. Bạn không chỉ nói "nhấc tay phải lên" — bạn phải điều phối đồng thời: thân trên, thân dưới, tay, chân, đầu, trọng tâm cơ thể. Nếu một phần mất đồng bộ, cả chuyển động sụp đổ.
Với robot humanoid 29 DoF như Unitree G1, bài toán còn phức tạp hơn:
- Không gian action khổng lồ: 29 khớp, mỗi khớp có vị trí, vận tốc, lực moment — vector action có thể lên đến hàng trăm chiều.
- Dynamic coupling: Khi chân di chuyển, nó tác động lên hông, từ đó ảnh hưởng thân trên. Mọi thứ kết nối với nhau.
- Sim-to-real gap: Policy huấn luyện trong simulation thường thất bại trên robot thật vì ma sát, độ trễ actuator, và mô hình vật lý không hoàn hảo.
- Dữ liệu khan hiếm: Dữ liệu MoCap (motion capture) chất lượng cao tốn kém và khó thu thập ở quy mô lớn.
Các phương pháp trước đây (như SONIC của NVIDIA) giải quyết một phần bài toán này, nhưng vẫn bị giới hạn bởi dữ liệu MoCap ít ỏi và kiến trúc policy đơn giản.
HoloMotion-1 là gì?
HoloMotion-1 là một motion foundation model — mô hình nền tảng cho kiểm soát chuyển động toàn thân humanoid — được phát triển bởi nhóm nghiên cứu HorizonRobotics (Maiyue Chen, Kaihui Wang, Bo Zhang, Xihan Ma, Zhiyuan Yang, Yi Ren, Qijun Huang, Zihao Zhu, Yucheng Wang, và Zhizhong Su).
Điểm khác biệt cốt lõi so với các hệ thống trước:
| Yếu tố | Phương pháp cũ | HoloMotion-1 |
|---|---|---|
| Dữ liệu | MoCap chuyên dụng (~vài nghìn clip) | Hybrid corpus: video in-the-wild + MoCap + in-house |
| Kiến trúc policy | Dense Transformer / MLP | Sparse MoE Transformer |
| Inference speed | ~50-100 FPS | 200-300 FPS (on-robot, ARM64) |
| Tham số active/bước | Toàn bộ model | ~7M / 400M tổng |
| Transfer sang robot | Cần fine-tuning thực tế | Zero-shot trực tiếp |
Kiến trúc: Sparse MoE Transformer với KV-cache
Đây là phần kỹ thuật thú vị nhất. HoloMotion-1 không phải một model đơn giản — nó là một Sparse Mixture-of-Experts Transformer được thiết kế từ đầu cho real-time robot control.
Sparse MoE là gì?
Trong Transformer thông thường (Dense), mọi token đều đi qua tất cả các lớp — tốn tài nguyên nhưng không hiệu quả vì nhiều computation là lãng phí cho input cụ thể.
MoE (Mixture of Experts) giải quyết điều này bằng cách tổ chức các "chuyên gia" (expert networks). Mỗi expert chuyên xử lý một loại pattern. Một router sẽ chọn K expert phù hợp nhất cho mỗi token thay vì dùng toàn bộ.
HoloMotion-1 dùng Sparse MoE — với tổng số ~400M tham số, nhưng mỗi bước điều khiển chỉ activate ~7M tham số (khoảng 1.7%). Đây là lý do nó chạy được 200-300 FPS trên hardware ARM64 của robot — một con số không tưởng với model có 400M tham số.
Input: joint state, target motion sequence
↓
Token embedding + positional encoding
↓
MoE Transformer blocks:
[Router] → chọn top-K experts
[Expert FFNs] → xử lý song song
[Sparse combine] → gộp output
↓
Action head: joint position targets (29 DoF)
↓
PD controller → torque commands → robot
KV-cache cho real-time inference
Policy cần xử lý chuỗi chuyển động (motion sequence) — không chỉ frame hiện tại mà còn lịch sử nhiều bước trước. Transformer thông thường phải tính lại toàn bộ attention mỗi bước — quá chậm cho robot control tần số cao.
HoloMotion-1 tích hợp KV-cache: keys và values từ các bước trước được lưu cache, mỗi bước mới chỉ cần tính attention với token mới nhất rồi concat với cache. Phương pháp này — vốn là kỹ thuật chuẩn trong LLM inference — lần đầu được áp dụng cho robot motion control ở quy mô này.
Kết quả: latency mỗi bước giảm từ O(T²) xuống O(T) với T là độ dài chuỗi.
Pipeline dữ liệu: Từ video YouTube đến robot G1
Đây là phần "bí quyết" của HoloMotion-1. Thay vì phụ thuộc hoàn toàn vào MoCap đắt đỏ, họ xây dựng hybrid motion corpus từ 3 nguồn:

Nguồn 1: Video in-the-wild (chiếm phần lớn)
MotionMillion — tập dữ liệu chuyển động được tái tạo từ video monocular in-the-wild bằng SMPL-based motion estimation. Đây là nguồn cung cấp đa dạng hành vi chính: bước đi thông thường, nhảy múa, võ thuật, leo trèo, các động tác sinh hoạt hàng ngày.
Nhược điểm: chất lượng thấp hơn MoCap do noise trong video estimation. HoloMotion-1 thiết kế training loss để tolerate noise này.
Nguồn 2: MoCap chuyên dụng
AMASS và LAFAN1 — các tập MoCap chất lượng cao với nhiều loại chuyển động. Chúng cung cấp supervision chính xác cho các motion cơ bản, bổ sung cho sự đa dạng của video data.
Nguồn 3: In-house data
Dữ liệu nội bộ của Horizon Robotics tập trung vào các chuyển động quan trọng cho deployment: teleoperation, dynamic kick, high-speed locomotion. Đây là thứ đảm bảo policy hoạt động tốt trong các tình huống thực tế mà video thông thường ít có.

Retargeting: từ SMPL sang robot kinematics
Sau khi thu thập motion data ở định dạng SMPL (mô hình cơ thể người), cần retarget sang skeleton của robot G1. HoloMotion-1 giới thiệu HoloRetarget — thuật toán retargeting chạy 3,000+ FPS trên RTX 4090 (cho training data) và 300+ FPS trên robot (cho teleoperation real-time).
Retargeting giải quyết sự khác biệt về:
- Tỷ lệ cơ thể (body proportions): người cao 1.7m vs G1 cao 1.27m
- Bậc tự do: cổ tay người có 3 DoF, G1 có thể ít hơn
- Ràng buộc vật lý: góc khớp tối đa, tốc độ tối đa
Training trong IsaacLab
Policy được huấn luyện trong IsaacLab — simulation framework của NVIDIA dựa trên Isaac Sim/PhysX. Đây là môi trường phổ biến cho humanoid robot training vì:
- GPU-accelerated physics: có thể chạy hàng nghìn environment song song
- Realistic contact dynamics: quan trọng cho locomotion
- Built-in domain randomization: cần thiết cho sim-to-real transfer
Quá trình training:
- Khởi tạo state: robot bắt đầu ở tư thế bất kỳ trong clip chuyển động
- Reference motion: policy nhận target joint positions từ reference clip
- Action: policy output joint position targets, PD controller convert sang torque
- Reward: tracking error + smoothness + stability terms
- Domain randomization: ngẫu nhiên hóa mass, friction, motor delay để tăng robustness
Điều thú vị là HoloMotion-1 dùng sequence-level training strategy — policy được train trên chuỗi dài thay vì từng step riêng lẻ. Điều này giúp policy học được temporal dependencies tốt hơn, giải thích vì sao nó kết hợp tốt với KV-cache.
Đánh giá trên MuJoCo: Con số nói lên tất cả
Dù training trong IsaacLab, evaluation thực hiện trong MuJoCo để so sánh nhất quán với các baseline. Metric chính là MPKPE (Mean Per-Keypoint Position Error) — sai số trung bình ở từng keypoint của cơ thể (mm).
| Method | MPKPE (mm) ↓ | FPS (inference) |
|---|---|---|
| Prior works | >300 | ~50 |
| Sonic (baseline mạnh) | 227.95 | ~100 |
| HoloMotion-1 | 124.57 | 200-300 |
HoloMotion-1 giảm lỗi 45% so với Sonic, đồng thời tăng tốc độ inference gấp 2-3 lần. Đây là điều hiếm thấy trong ML: thường accuracy và speed trade-off nhau, nhưng MoE + KV-cache phá vỡ trade-off đó.
Thử nghiệm trên nhiều benchmark khác nhau:
- AMASS (out-of-domain): chuyển động từ tập test không thấy trong training
- HumanML3D: chuyển động đa dạng từ nhiều nguồn
- LAFAN1: chuyển động chất lượng cao từ motion capture studio
HoloMotion-1 dẫn đầu trên tất cả các benchmark.
Zero-shot transfer lên robot G1 thật
Đây là phần ấn tượng nhất. Policy được train hoàn toàn trong simulation, sau đó deploy thẳng lên Unitree G1 (29 DoF) mà không cần:
- Fine-tuning thêm
- Dữ liệu thực tế
- Calibration đặc biệt

Trên robot thật, policy chạy ở 200+ FPS — đủ nhanh để phản hồi các nhiễu động bất ngờ. Horizon Robotics demo robot G1 thực hiện thành công:
- Võ thuật: đá cao, xoay người, kết hợp tay-chân
- Nhảy múa: theo nhịp nhạc với chuyển động toàn thân
- Bò: chuyển đổi giữa tư thế đứng và bò sát đất
- Sit-to-stand: ngồi xuống và đứng lên tự nhiên
Tất cả bằng một policy duy nhất — không cần switch mode hay load model khác nhau.
Cài đặt và chạy thử
Yêu cầu hệ thống
# Hardware
- GPU: NVIDIA RTX 3090+ (training), hoặc A100 (khuyến nghị)
- RAM: 32GB+
- Storage: 100GB+ (cho dataset)
# Software
- Ubuntu 20.04/22.04
- CUDA 12.1+
- Python 3.10+
- IsaacLab (cho training)
- MuJoCo 3.x (cho evaluation)
Clone repo và cài đặt
git clone https://github.com/HorizonRobotics/HoloMotion.git
cd HoloMotion
# Cài đặt dependencies (khuyến nghị dùng conda)
conda create -n holomotion python=3.10
conda activate holomotion
# Cài IsaacLab trước (xem hướng dẫn trên docs.omniverse.nvidia.com)
# Sau đó:
pip install -e .
Download pre-trained model (v1.2)
HoloMotion v1.2 cung cấp 2 pre-trained models sẵn sàng deploy:
# Download từ HuggingFace
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="HorizonRobotics/HoloMotion_assets",
repo_type="dataset",
local_dir="./pretrained"
)
Hai model:
- Motion tracking model: theo dõi reference motion từ MoCap/video
- Velocity tracking model: điều khiển robot bằng lệnh velocity (walking speed, direction)
Chạy inference trong MuJoCo
# Motion tracking (cần reference motion clip)
python scripts/eval_mujoco.py \
--model-path pretrained/holomotion_v1.2_motion_tracking.pt \
--motion-file data/sample_motions/dance_clip.npz \
--robot g1
# Velocity tracking (không cần reference)
python scripts/eval_mujoco.py \
--model-path pretrained/holomotion_v1.2_velocity_tracking.pt \
--vx 0.5 --vy 0.0 --omega 0.3 \
--robot g1
Chạy trên robot G1 thật
# Kết nối với G1 qua Ethernet
# G1 IP: 192.168.123.161 (mặc định)
python scripts/deploy_g1.py \
--model-path pretrained/holomotion_v1.2_motion_tracking.pt \
--motion-file data/deploy_motions/walk_forward.npz
Lưu ý an toàn: Luôn giữ người đứng gần và sẵn sàng dừng khẩn cấp. Kiểm tra pin đủ (>50%) trước khi chạy dynamic motions.
Roadmap: HoloMotion phát triển theo thời gian
Một trong những điểm thú vị là team Horizon Robotics công bố rõ roadmap phát triển:

| Version | Highlight |
|---|---|
| v1.1 | Baseline MoE policy + hybrid corpus |
| v1.2 | Pre-trained models public, velocity tracking |
| v1.3 | Scale 60M → 400M params, 80 → 2000+ hours data, 100 → 300 FPS |
| v1.4 | HoloRetarget 3000+ FPS, 10+ SMPL datasets (HoloSMPL) |
Mỗi version không chỉ tăng performance mà còn mở rộng khả năng: từ tracking đơn giản đến hỗ trợ teleoperation, rồi đến cross-embodiment (nhiều loại robot khác nhau).
Tại sao điều này quan trọng với kỹ sư robotics?
Nhìn rộng hơn, HoloMotion-1 đại diện cho một paradigm shift trong robot control:
Trước đây: viết controller riêng cho từng task → tốn tháng để tune → không generalize.
Với foundation model như HoloMotion-1: một policy làm được hàng nghìn loại chuyển động, học từ video con người, deploy zero-shot. Chi phí per-task giảm đột ngột.
Điều này tương tự như GPT-3 đã thay đổi NLP: thay vì train model riêng cho từng NLP task, người ta fine-tune hoặc prompt một foundation model. Với robotics, HoloMotion-1 đang tiến đến mô hình đó.
Với kỹ sư Việt Nam đang làm việc với humanoid robot:
- Nếu bạn có Unitree G1/H1: download v1.2, chạy thử velocity tracking model ngay
- Nếu bạn có motion data (MoCap hoặc video): có thể fine-tune trên top of HoloMotion-1
- Nếu bạn đang research: kiến trúc MoE + KV-cache là template tốt để học từ
Xem thêm cách áp dụng whole-body control trên G1 trong thực tế tại hướng dẫn cuRobo whole-body control cho G1, và so sánh với kiến trúc SONIC trong phân tích GROOT-N1 WBC.


