VnRoboVnRobo
Về chúng tôiBảng giáBlogLiên hệ
🇺🇸ENĐăng nhậpDùng thử miễn phí
🇺🇸EN
VnRobo logoVnRobo 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
VnRoboVnRobo
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. EgoHumanoid: Dạy Robot từ Demo VR Người, Không Cần Teleop
wholebody-vlaegohumanoidwholebody-vlavlawbclerobotpi0humanoidunitree-g1egocentricvr-demo

EgoHumanoid: Dạy Robot từ Demo VR Người, Không Cần Teleop

EgoHumanoid (RSS 2026) chứng minh co-train VLA từ egocentric human demo + ít robot data vượt robot-only baseline 51% ở môi trường mới.

Nguyễn Anh Tuấn13 tháng 9, 202614 phút đọc
EgoHumanoid: Dạy Robot từ Demo VR Người, Không Cần Teleop

Thu thập dữ liệu robot luôn là cổ chai của mọi pipeline VLA. Mỗi episode teleoperation đòi hỏi một robot thật đang hoạt động tốt, một operator lành nghề, và hàng giờ setup — trung bình 62.1 giây mỗi demo. Cộng dồn qua hàng nghìn episode, chi phí là khổng lồ, và kỹ năng của robot vẫn bị nhốt trong một hoặc vài môi trường cố định.

EgoHumanoid — công trình từ OpenDriveLab và MMLab @ HKU, được chấp nhận tại Robotics: Science and Systems (RSS) 2026 — đặt ra câu hỏi: liệu có thể thay thế phần lớn robot teleoperation bằng egocentric demonstrations của người đội VR headset không?

Câu trả lời là có, và kết quả vượt kỳ vọng: co-training với human demos đạt 82% success rate ở môi trường chưa thấy bao giờ, cao hơn robot-only baseline tới 51 điểm phần trăm. Toàn bộ code public tại github.com/OpenDriveLab/EgoHumanoid với giấy phép Apache 2.0.

Tổng quan EgoHumanoid — nguồn: arXiv:2602.10106, OpenDriveLab & MMLab @ HKU

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 →

Vì sao người có thể dạy robot?

Humanoid được thiết kế để hoạt động giống người — hai chân đi đứng, hai tay thao tác, camera gắn trên đầu ở tầm nhìn gần giống người. Unitree G1 cao 1.3m với ZED X Mini gắn trên đầu. Người đội VR headset cao trung bình 1.7m, camera tương tự cũng gắn trên đầu.

Nếu một người bước vào phòng, nhìn bằng camera egocentric rồi cầm nắm vật thể, thì dữ liệu đó cực kỳ giống những gì G1 sẽ quan sát khi làm cùng việc. Chỉ có ba khoảng cách cần thu hẹp:

  1. View gap — camera người ở ~1.7m, camera G1 ở ~1.3m, góc nhìn và perspective khác nhau
  2. Action gap — chuyển động tay người cần được map sang end-effector commands của robot
  3. Navigation gap — người di chuyển tự nhiên, không có locomotion command labels

EgoHumanoid giải quyết đúng ba khoảng cách đó qua pipeline view alignment, action alignment và locomotion command extraction — tất cả tự động, không cần annotate thủ công.

Hardware setup: PICO VR + ZED X Mini

Thu thập human demonstration

Người demo đội PICO VR headset gắn 5 motion trackers theo dõi full-body pose (24 keypoints trên thân, 26 điểm mỗi bàn tay). Camera ZED X Mini stereo gắn trên đầu headset, capture egocentric RGB ở độ phân giải 960×540, tần số 20Hz. Handheld PICO controllers theo dõi wrist pose 6-DoF và trigger điều khiển Dex3 dexterous hand.

Kết quả mỗi episode human demo bao gồm: synchronized egocentric RGB + wrist poses 6-DoF + navigation commands (forward/back, lateral, yaw, stand/squat) + grasp state. Thời gian thu thập: 39.7 giây/episode — nhanh gần gấp đôi so với robot teleoperation (62.1 giây/episode).

Thu thập robot demonstration

G1 được điều khiển từ xa bằng PICO VR headset + handheld controllers — operator nhìn qua luồng camera ZED trên G1. Cùng loại dữ liệu được ghi lại nhưng tốn nhiều công hơn: phải setup robot thật, xử lý latency, và đảm bảo workspace an toàn. Dataset final bao gồm cả robot data và human data đã aligned, cùng convert sang định dạng LeRobot.

Hardware setup: người đội PICO VR + ZED X Mini (trái) và Unitree G1 với cùng camera setup (phải)
Hardware setup: người đội PICO VR + ZED X Mini (trái) và Unitree G1 với cùng camera setup (phải)
Hardware setup — nguồn: arXiv:2602.10106

View Alignment: Thu hẹp khoảng cách góc nhìn

Đây là challenge kỹ thuật phức tạp nhất. Camera người ở 1.7m, camera G1 ở 1.3m. Nếu trộn thẳng ảnh từ hai nguồn vào train, mô hình sẽ bối rối vì cùng phòng nhìn từ hai chiều cao cho ra perspective khác nhau đáng kể — đồ vật gần camera person sẽ trông lớn hơn, góc nhìn xuống sàn khác nhau, tỷ lệ cảnh thay đổi.

Pipeline view alignment giải quyết theo 3 bước liên tiếp:

Bước 1 — Depth estimation với MoGe: MoGe (Monocular Geometric Estimator) xử lý từng frame egocentric để ước tính affine-invariant depth map. MoGe không cần camera calibration cứng và cho kết quả ổn định trên diverse indoor scenes — ưu điểm quan trọng khi human demo thu thập ở nhiều phòng khác nhau.

Bước 2 — Point cloud reprojection: Từ depth map và camera intrinsics, xây point cloud 3D của cảnh. Sau đó dịch chuyển camera xuống 0.25m (từ chiều cao người về chiều cao robot) và reproject point cloud sang 2D frame mới với G1 camera intrinsics. Trong training, thêm Gaussian noise ±0.05m vào offset height để model robust hơn với variation thực tế.

Bước 3 — Inpainting vùng thiếu: Sau khi reproject, một số vùng trong ảnh bị trống (phần dưới sàn gần camera hay vùng bị che từ góc nhìn thấp hơn). Stable Diffusion 2.0 (20 denoising steps, classifier-free guidance scale 7.5) fill những vùng đó dựa trên context xung quanh. Kết quả là ảnh semantically giống egocentric human nhưng nhìn từ góc độ của G1.

View alignment pipeline: MoGe depth → point cloud reprojection xuống 0.25m → SD 2.0 inpainting
View alignment pipeline: MoGe depth → point cloud reprojection xuống 0.25m → SD 2.0 inpainting
View alignment — nguồn: arXiv:2602.10106

Action Alignment: Map chuyển động người sang robot action space

Người demo không điều khiển robot, nên không có robot action labels nào được ghi sẵn. EgoHumanoid suy ra actions tương đương từ wrist pose tracking và body keypoints:

Upper body — Delta end-effector (6-DoF per arm)

Wrist pose 6-DoF từ PICO controllers được xử lý thành delta end-effector commands:

python
# Giả mã quá trình action alignment upper body
wrist_poses = load_pico_controller_data(episode)  # 100Hz

# Smooth trajectory với Savitzky-Golay filter
smoothed = savgol_filter(
    wrist_poses,
    window_length=11,   # 110ms window
    polyorder=3,        # bậc 3 — đủ mịn, không quá smooth
    axis=0
)

# Delta EEF trong SO(3) — dùng log/exp maps để interpolation đúng
delta_translation = smoothed[1:] - smoothed[:-1]
delta_rotation = SO3.log(SO3.exp(smoothed[:-1]).inv() * SO3.exp(smoothed[1:]))

# Downsample 100Hz → 20Hz (control freq của G1)
delta_eef = downsample(np.cat([delta_translation, delta_rotation], axis=-1), factor=5)

Savitzky-Golay với window 11 (110ms) và bậc 3 loại bỏ jitter tay người hiệu quả — tay người dao động ~5-10Hz trong quá trình cầm nắm, G1 controller không xử lý được jitter đó.

Lower body — Discretized locomotion commands

Người di chuyển liên tục, không có discrete velocity commands. EgoHumanoid đơn giản hóa thành 3-bin discretization:

Channel Bins Ý nghĩa
Forward velocity 3 backward / still / forward
Lateral velocity 3 right / still / left
Yaw velocity 3 clockwise / still / counter-clockwise
Height 2 stand / squat

Phân loại dựa trên body keypoint velocity từ motion trackers. Height binary (stand/squat) từ pelvis height thresholding. Đây là đơn giản hóa có chủ ý — G1's low-level locomotion controller nhận bin commands, không phải raw velocity, nên discretization là format đúng.

Gripper control

Binary open/close state từ finger curvature của Dex3 hand. Threshold được calibrate theo anatomy của người demo — mỗi người có curvature tự nhiên khác nhau khi "open" so với "gripping".

Policy model: Fine-tune π₀.₅

Sau khi human demo đã qua view + action alignment và convert sang LeRobot format bằng data_alignment/convert_to_lerobot.py, pipeline co-train π₀.₅ (pi-zero-5, open-source VLA từ Physical Intelligence) trên mixed dataset:

Kiến trúc action output

18-D action vector ở mỗi step:

code
[0:6]   → delta EEF tay trái  (3D translation + 3D rotation)
[6:12]  → delta EEF tay phải (3D translation + 3D rotation)
[12:14] → locomotion (forward, lateral)
[14]    → yaw rotation
[15:17] → gripper state (left, right)  — binary open/close
[17]    → height delta (stand/squat)

Action chunk size = 50 steps (~2.5 giây ở 20Hz) — mô hình predict 50 actions liên tiếp mỗi inference call, giúp smooth trajectory và giảm latency bottleneck.

Training hyperparameters

Tham số Giá trị
Input image size 224×224 RGB
Input text Language instruction
Learning rate 5×10⁻⁵ (AdamW)
Batch size 256
Training steps 20,000
Hardware 8× NVIDIA A100
Mixed precision bfloat16

VRAM requirements

Mode VRAM tối thiểu
Inference >8 GB
LoRA fine-tuning >22.5 GB
Full fine-tuning >70 GB

Với RTX 4090 (24GB VRAM), LoRA là lựa chọn thực tế. Với A100/H100 80GB, có thể full fine-tune. Paper dùng 8× A100 cho co-training nhưng inference có thể chạy trên một GPU consumer-grade đủ mạnh.

Cài đặt và chạy thử

bash
# Clone repo
git clone https://github.com/OpenDriveLab/EgoHumanoid.git
cd EgoHumanoid

# Cài đặt dependencies (khuyến nghị conda env Python 3.10)
pip install -e .

# Download sample dataset từ HuggingFace (gồm cả robot và human demo)
# Xem README để lấy link cụ thể

# BƯỚC 1: Chạy toàn bộ human data alignment pipeline
bash data_alignment/human_data_process/run_human_data_pipeline.sh \
  --input_dir /path/to/raw_human_demos \
  --output_dir /path/to/aligned_demos

# Pipeline gồm các sub-steps:
# - view_alignment/viewport_transform_batch_h5.py  (MoGe depth → reproject)
# - view_alignment/cache_3d.py                     (cache depth computation)
# - action_alignment/process_navigation_pipeline.py (locomotion command extraction)
# - action_alignment/add_hand_status.py             (gripper label từ finger curvature)

# BƯỚC 2: Convert sang LeRobot format
python data_alignment/convert_to_lerobot.py \
  --input_dir /path/to/aligned_demos \
  --output_dir /path/to/lerobot_dataset \
  --robot_data_dir /path/to/robot_demos  # mix robot + human

# BƯỚC 3: Fine-tune π₀.₅ (cần GPU với VRAM lớn)
python scripts/train.py \
  --config configs/egohumanoid_g1.yaml \
  --dataset_path /path/to/lerobot_dataset

# BƯỚC 4: Serve policy (inference server)
python scripts/serve_policy.py \
  --checkpoint /path/to/checkpoint \
  --port 8000

# BƯỚC 5: Deploy lên G1 (chạy trên robot)
python scripts/deploy.py \
  --policy_server http://<server_ip>:8000 \
  --robot_ip <g1_ip>

Lưu ý quan trọng: View alignment (MoGe + SD 2.0 inpainting) tốn khoảng 2-3 phút/episode trên A100. Với 1000 episodes human data, cần ~40-50 GPU-giờ chỉ cho preprocessing. Plan trước compute budget cho bước này.

Kết quả: 51% improvement ở môi trường mới

In-domain performance (môi trường đã thấy trong training)

Method Avg Success Rate
Robot-only baseline 59%
EgoHumanoid co-training 78%

Unseen environment generalization

Method Avg Success Rate
Robot-only baseline 31%
EgoHumanoid co-training 82%
Cải thiện +51 điểm %

Khi test ở phòng/setup chưa thấy trong training, robot-only gần như fail (31%), trong khi co-training duy trì 82%. Lý giải trực tiếp: human demos thu ở nhiều phòng khác nhau → VLA học được visual diversity phong phú → generalize sang môi trường mới tốt hơn rất nhiều.

Kết quả so sánh co-training vs robot-only trên in-domain và unseen environments, cùng ablation theo scene diversity
Kết quả so sánh co-training vs robot-only trên in-domain và unseen environments, cùng ablation theo scene diversity
Kết quả thực nghiệm trên 4 loco-manipulation tasks — nguồn: arXiv:2602.10106

Task-by-task: 4 loco-manipulation tasks

Bốn task được test trên G1 trong thực tế: đặt gối lên sofa, bỏ rác vào thùng, chuyển đồ chơi, xếp hàng vào giỏ. Mỗi task có 2-4 subtasks tăng dần độ phức tạp. Co-training đạt 100% ở các subtask navigation-dominant (đi đến vị trí, dịch chuyển) và 50-60% ở các subtask precision manipulation (gắp chính xác, đặt đúng chỗ).

Observation quan trọng: navigation skills transfer gần như hoàn toàn từ human data, trong khi manipulation precision vẫn bị hạn chế bởi action alignment gap giữa tay người và Dex3 hand.

Optimal data mixing ratio

Loại task Tỉ lệ tối ưu (robot:human)
Manipulation-heavy (precision cao) 2:1
Navigation-heavy (di chuyển nhiều) 1:2

Rule of thumb: dùng nhiều robot data hơn khi precision manipulation là bottleneck; dùng nhiều human data hơn khi navigation diversity là bottleneck.

Scene diversity quan trọng hơn volume

Tăng số scene thu human demo từ 1 → 3 → 5 phòng: success rate ở unseen env tăng đơn điệu từ ~57% → ~70% → ~82%. 100 episodes ở 5 phòng khác nhau tốt hơn 500 episodes cùng 1 phòng — bài học scalability quan trọng cho bất kỳ lab nào đang plan data collection.

EgoHumanoid vs. các approach thu thập dữ liệu khác

Approach Cần robot? Cần operator chuyên nghiệp? Generalize unseen env? Speed
OpenWBT full teleop Bắt buộc Rất cao Kém 62s/ep
TWIST2 PICO teleop Bắt buộc Cao Kém 62s/ep
EgoHumanoid Một phần Thấp (bất kỳ ai) 82% 39.7s/ep
Motion retarget Bắt buộc Không Phụ thuộc retarget Varies
Synthetic sim data Không Không Sim2real gap N/A

Ưu điểm độc đáo của EgoHumanoid: bất kỳ ai đội PICO VR và thao tác trong phòng đều có thể tạo ra training data — không cần biết điều khiển robot, không cần workspace đặc biệt.

Những hạn chế cần lưu ý

1. Manipulation precision còn giới hạn: Subtask đòi hỏi precision <5mm (như đặt vật nhỏ vào lỗ) vẫn chỉ đạt ~50%. Action alignment từ tay người sang Dex3 hand vẫn có residual error.

2. Compute-intensive preprocessing: View alignment (MoGe + SD 2.0 inpainting) tốn 2-3 phút/episode trên A100. 1000 episodes human data cần ~40-50 GPU-giờ chỉ để preprocess — cần plan trước.

3. Dex3 hand dependency: Dataset và pipeline được tối ưu cho Dex3. Adapt sang gripper khác (Inspire, Shadow, v.v.) cần re-calibrate action alignment module.

4. Full fine-tune yêu cầu >70GB VRAM: A100 80GB hoặc H100 80GB mới đủ. Với hardware phổ biến hơn, LoRA là lựa chọn thực tế dù kết quả có thể kém hơn một chút.

5. Chỉ verify trên G1: Paper không test cross-embodiment. Chuyển sang humanoid khác (Fourier GR2, Booster T1...) cần re-calibrate toàn bộ alignment pipeline vì camera position và action space khác nhau.

Tại sao EgoHumanoid quan trọng với lab/startup nhỏ

Lab hay startup robotics ở Việt Nam thường có 1-2 robot humanoid và thiếu operator có kinh nghiệm teleop. EgoHumanoid mở ra hướng thu thập dữ liệu scalable và accessible hơn nhiều:

  • Chi phí hardware thấp: PICO 4 Enterprise ($1,000) + ZED X Mini ($400) so với chi phí vận hành G1 liên tục
  • Không cần chuyên gia: Bất kỳ nhân viên nào sau 30 phút training có thể tạo demo tốt
  • Scalable về diversity: 10 người đi vào 20 phòng khác nhau tạo ra 200× scene diversity so với 1 robot trong 1 phòng
  • An toàn: Human demo không làm hỏng robot, không có downtime, không cần workspace clearance đặc biệt

Pipeline đầy đủ được public và có license Apache 2.0 — có thể dùng ngay trong production.

Kết luận

EgoHumanoid đặt ra một precedent quan trọng: bottleneck dữ liệu trong whole-body VLA không cần thiết phải là robot teleoperation. Với framework alignment đủ tốt, egocentric human demonstrations — rẻ, diverse, và scalable — có thể thay thế phần lớn robot data và thậm chí cải thiện generalization đáng kể.

Đây là bước dịch chuyển quan trọng trong cách robotics community nghĩ về data flywheel: thay vì "có nhiều robot → thu được nhiều data → robot tốt hơn", EgoHumanoid cho thấy vòng lặp đó có thể được bootstrap bằng human data rẻ và diverse, rồi dần dần tăng tỉ lệ robot data khi pipeline hoàn thiện.

Paper gốc: EgoHumanoid: Unlocking In-the-Wild Loco-Manipulation with Robot-Free Egocentric Demonstration — Modi Shi, Shijia Peng, Jin Chen, Haoran Jiang, Tianyu Li, Di Huang, Ping Luo, Hongyang Li, Li Chen — OpenDriveLab & MMLab @ HKU, RSS 2026.

Bài viết liên quan

  • OpenWBT: Whole-Body Teleop cho G1 trong MuJoCo và Isaac — Điểm xuất phát traditional: teleop full-robot trước khi có human demo
  • EgoHumanoid Step-by-step trong Series Lab — Build pipeline EgoHumanoid từ đầu với code chi tiết
  • OpenWBC: Unitree G1 VR Teleop Whole-Body VLA — Approach song song: tối ưu VR teleop thay vì dùng human demo
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 trước
EVO1: Fine-tune VLA 0.77B Real-Time trên SO-101

Bài viết liên quan

Nghiên cứu
LeVERB: Benchmark WBC-VLA đầu tiên với Latent Action Space
humanoidwholebody-vlavla
wholebody-vla

LeVERB: Benchmark WBC-VLA đầu tiên với Latent Action Space

UC Berkeley giới thiệu LeVERB — framework và benchmark đầu tiên nối VLA với Whole-Body Control humanoid qua latent action space. 58.5% success rate, zero-shot sim-to-real trên Unitree G1.

24/6/202615 phút đọc
NT
Tutorial
EgoHumanoid: human demo sang G1 VLA
egohumanoidunitree-g1wholebody-vlaPhần 3
wholebody-vla

EgoHumanoid: human demo sang G1 VLA

Xây pipeline EgoHumanoid từ human/robot data, view alignment, action alignment, LeRobot, train và deploy policy cho G1.

11/6/202617 phút đọc
NT
Tutorial
Psi-Zero (Ψ₀): Pipeline VLA Loco-Manipulation Chỉ 80 Demo
vlahumanoidloco-manipulation
wholebody-vla

Psi-Zero (Ψ₀): Pipeline VLA Loco-Manipulation Chỉ 80 Demo

VLA open-source của USC PSI Lab đánh bại GR00T N1.6 với 80 demo. Hướng dẫn cài đặt, teleoperation, training 3 giai đoạn và deploy trên Unitree G1.

17/7/202612 phút đọc
NT
VnRobo logoVnRobo 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