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. unifolm-vla + Unitree G1 (Bài 1): kiến trúc hệ thống WBC+VLA từ dữ liệu đến robot thật
humanoidhumanoidvlawhole-bodyunitree-g1unifolm-vlaarchitecturetutorial

unifolm-vla + Unitree G1 (Bài 1): kiến trúc hệ thống WBC+VLA từ dữ liệu đến robot thật

Tổng quan kiến trúc 3 repo — unifolm-vla (VLA), xr_teleoperate (thu thập dữ liệu), unitree_rl_gym (locomotion) — và cách chúng kết nối thành pipeline whole-body control cho Unitree G1 trên phần cứng thật.

Nguyễn Anh Tuấn31 tháng 5, 20267 phút đọcCập nhật: 14 thg 6, 2026
unifolm-vla + Unitree G1 (Bài 1): kiến trúc hệ thống WBC+VLA từ dữ liệu đến robot thật

unifolm-vla + Unitree G1 (Bài 1): kiến trúc hệ thống WBC+VLA từ dữ liệu đến robot thật

Đây là bài mở đầu của series 5 bài hướng dẫn xây dựng hệ thống Whole-Body Control + Vision-Language-Action (WBC+VLA) cho robot hình người Unitree G1 — từ thu thập dữ liệu thực tế đến deploy lên phần cứng thật.

Series này khác với series GR00T N1 + G1 ở chỗ: thay vì dùng NVIDIA GR00T-WBC (cần access đặc biệt và tích hợp phức tạp), chúng ta dùng Unitree native stack — bộ công cụ do chính Unitree phát triển, hoạt động ngay trên G1 mà không cần cấu hình thêm bất kỳ SDK bên ngoài nào.

Vấn đề: tại sao cần WBC+VLA cho humanoid?

Robot hình người có 2 thách thức lớn cùng lúc:

Bài toán 1 (Locomotion):    Bài toán 2 (Manipulation):
G1 phải giữ thăng bằng      G1 phải nhìn vào vật thể
khi đứng / đi / di chuyển   và điều khiển tay + ngón
→ 12 bậc tự do (chân)       → 7+7+2+2 bậc tự do (tay)
→ Chạy ở 200–500 Hz          → Chạy ở 3–10 Hz (VLM)

Hai vòng lặp này không thể chạy cùng 1 controller — tần số quá khác nhau. Giải pháp là decoupled WBC+VLA:

┌─────────────────────────────────────────────┐
│              G1 Whole-Body                  │
├──────────────────┬──────────────────────────┤
│   ARM VLA        │      LOCOMOTION           │
│  unifolm-vla     │   G1 built-in SDK         │
│  Qwen2.5-VL-7B   │   hoặc unitree_rl_gym     │
│  ~3-5 Hz         │   200-500 Hz              │
│  Điều khiển tay  │   Điều khiển chân         │
└──────────────────┴──────────────────────────┘
             ↕                  ↕
        xr_teleoperate      motion.pt
       (thu dữ liệu tay)  (pretrained loco)

Hai hệ thống chạy song song, độc lập — G1 vừa đi lại vừa dùng tay làm việc.

Ba repo cốt lõi của series này

1. unifolm-vla — VLA cho cánh tay G1

GitHub: https://github.com/unitreerobotics/unifolm-vla

unifolm-vla là mô hình Vision-Language-Action do Unitree phát triển cho robot hình người của họ, đặc biệt là G1. Điểm đặc biệt:

  • Backbone: Qwen/Qwen2.5-VL-7B-Instruct — mô hình VLM 7 tỉ tham số của Alibaba, công khai trên HuggingFace
  • Action head: dự đoán joint commands cho cánh tay G1 (7+7 DoF arm + 2+2 DoF gripper)
  • Base checkpoint: Unifolm-VLM-0 — checkpoint pretrained của Unitree, chưa công khai tại thời điểm viết bài
  • Workaround: trong series này, chúng ta sẽ fine-tune trực tiếp từ Qwen2.5-VL-7B-Instruct (công khai) — hiệu quả thấp hơn một chút nhưng hoàn toàn khả thi
# Repo structure chính
unifolm-vla/
├── src/unifolm_vla/
│   ├── training/train_unifolm_vla.py    # training script
│   ├── config/deepseeds/               # DeepSpeed configs
│   └── models/                         # model definitions
├── prepare_data/
│   ├── convert_lerobot_to_hdf5.py      # data pipeline step 2
│   └── hdf5_to_rlds/                   # data pipeline step 3
└── run_real_eval_server.py             # FastAPI inference server

2. xr_teleoperate — thu thập dữ liệu qua VR

GitHub: https://github.com/unitreerobotics/xr_teleoperate

Đây là tool thu thập dữ liệu teleoperation qua các headset XR:

Thiết bị Platform Độ trễ Ghi chú
Meta Quest 3 Android ~40ms Phổ biến nhất, giá tốt nhất
Apple Vision Pro visionOS ~30ms Tốt nhất, đắt nhất
PICO 4 Ultra Android ~45ms Phổ biến ở châu Á

Dữ liệu thu thập: JSON format chứa chuỗi thời gian của pose tay + joint states + camera frames.

3. unitree_rl_gym — locomotion cho G1

GitHub: https://github.com/unitreerobotics/unitree_rl_gym

Repo này chứa RL training cho locomotion G1 dùng Isaac Gym (KHÔNG phải IsaacLab). Điểm quan trọng:

  • Có sẵn motion.pt — checkpoint pretrained locomotion cho G1 (đã public)
  • Nếu bạn chỉ cần G1 đứng/đi/chạy, không cần train lại — dùng motion.pt trực tiếp
  • Chỉ cần train lại khi muốn locomotion behavior tùy chỉnh (VD: leo cầu thang, chạy nhanh hơn)
# Cấu trúc chính
unitree_rl_gym/
├── legged_gym/
│   ├── scripts/
│   │   ├── train.py      # train locomotion policy
│   │   └── play.py       # evaluate / visualize
│   └── envs/
│       └── g1/           # G1 environment config
└── resources/
    └── robots/g1/
        └── motion.pt     # pretrained G1 locomotion ✅

Hardware requirements

G1 phần cứng cần thiết

Component Spec Ghi chú
Unitree G1 29 DoF Có Dex3 hands (tay 3 ngón dexterous)
Onboard compute Jetson Orin NX hoặc tương đương Có sẵn trong G1
Camera Intel RealSense D435 (wrist-mounted) Cần gắn thêm nếu chưa có
Mạng LAN (dây) khi deploy WiFi có thể gây jitter

Workstation requirements

Component Minimum Recommended
GPU RTX 4090 (24GB) A100 40GB
RAM 32GB 64GB
CPU 8-core 16-core
Storage 200GB SSD 500GB NVMe
VR headset Meta Quest 3 Apple Vision Pro

Lưu ý quan trọng: RTX 4090 là minimum cho training. Nếu chỉ deploy (inference server), RTX 3080 10GB cũng đủ — Qwen2.5-VL-7B có thể chạy ở 4-bit quantization với ~8GB VRAM.

Setup môi trường

Bước 1: Clone các repo

mkdir ~/unifolm_ws && cd ~/unifolm_ws

# Repo 1: unifolm-vla (VLA model)
git clone https://github.com/unitreerobotics/unifolm-vla.git

# Repo 2: xr_teleoperate (data collection)
git clone https://github.com/unitreerobotics/xr_teleoperate.git

# Repo 3: unitree_rl_gym (locomotion)
git clone https://github.com/unitreerobotics/unitree_rl_gym.git

# Repo phụ: unitree_IL_lerobot (data conversion)
git clone https://github.com/unitreerobotics/unitree_IL_lerobot.git

Bước 2: Tạo conda environments

Mỗi repo cần environment riêng (dependencies conflict nhau):

# Environment cho xr_teleoperate
conda create -n xr_teleop python=3.10
conda activate xr_teleop
cd xr_teleoperate
pip install -r requirements.txt

# Environment cho unifolm-vla (training + inference)
conda create -n unifolm python=3.10
conda activate unifolm
cd unifolm-vla
pip install -e .
pip install deepspeed accelerate

# Environment cho unitree_rl_gym (locomotion, cần Isaac Gym)
# Isaac Gym yêu cầu riêng — xem hướng dẫn trong repo
conda create -n loco python=3.8
conda activate loco
cd unitree_rl_gym
pip install -e .

Bước 3: Cài Unitree SDK Python

Cần cho bước deploy (giao tiếp với G1):

conda activate unifolm
pip install unitree_sdk2py

Verify kết nối với G1:

python -c "
from unitree_sdk2py.core.channel import ChannelFactory
factory = ChannelFactory.Instance()
factory.Init(0, 'eth0')   # thay eth0 bằng network interface của bạn
print('G1 connected OK')
"

Bước 4: Download Qwen2.5-VL-7B-Instruct

conda activate unifolm
pip install huggingface_hub

python -c "
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id='Qwen/Qwen2.5-VL-7B-Instruct',
    local_dir='~/models/Qwen2.5-VL-7B-Instruct',
    ignore_patterns=['*.gguf', '*.bin']  # chỉ lấy safetensors
)
print('Download xong!')
"

Download khoảng 15GB — cần ổ cứng trống ~30GB (model + optimizer states).

Luồng dữ liệu end-to-end

Để dễ hình dung toàn bộ series:

[Bài 2] Thu thập dữ liệu
xr_teleoperate → teleop_hand_and_arm.py → JSON files
        ↓
[Bài 3] Data pipeline
JSON → unitree_IL_lerobot → LeRobot V2.1 format
     → unifolm-vla prepare_data → HDF5
     → hdf5_to_rlds → RLDS format
        ↓
[Bài 4] Training
RLDS → accelerate launch train_unifolm_vla.py → checkpoint
        ↓
[Bài 5] Deploy
checkpoint → run_real_eval_server.py (FastAPI /act)
           → SSH tunnel → G1 robot client
           + motion.pt → G1 locomotion (song song)

Tóm tắt bài 1

Bạn đã hiểu:

  • unifolm-vla dùng Qwen2.5-VL-7B làm backbone (VLA cho cánh tay G1)
  • xr_teleoperate thu thập dữ liệu qua VR headset (Meta Quest 3 là lựa chọn tốt)
  • unitree_rl_gym cung cấp locomotion qua motion.pt pretrained (không cần train lại)
  • Ba hệ thống chạy song song để tạo ra "whole-body control"
  • Checkpoint Unifolm-VLM-0 chưa public → chúng ta fine-tune từ Qwen2.5-VL-7B-Instruct (public)

Bài tiếp theo sẽ hướng dẫn chi tiết thu thập dữ liệu với xr_teleoperate + Meta Quest 3 trên G1 thật.


References

  • unifolm-vla GitHub
  • xr_teleoperate GitHub
  • unitree_rl_gym GitHub
  • Qwen2.5-VL-7B-Instruct (HuggingFace)
  • Unitree SDK2 Python

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 →

Bài viết liên quan

  • Bài 2: Thu thập dữ liệu với xr_teleoperate + Meta Quest 3
  • Tổng quan VLA + WBC repos — tất cả humanoid 2025-2026
  • GR00T N1 + G1: kiến trúc GEAR+SONIC+N1.5
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
unifolm-vla-g1-series — Phần 1/5
unifolm-vla + Unitree G1 (Bài 2): thu thập dữ liệu với xr_teleoperate + Meta Quest 3 →

Bài viết liên quan

Tutorial
unifolm-vla + Unitree G1 (Bài 5): deploy inference server, SSH tunnel, và locomotion song song
humanoidvladeployPhần 5
humanoid

unifolm-vla + Unitree G1 (Bài 5): deploy inference server, SSH tunnel, và locomotion song song

Bài cuối series: khởi động FastAPI inference server, kết nối G1 qua SSH tunnel, gửi action commands, chạy arm VLA và locomotion đồng thời — kèm safety checklist và debug guide cho các lỗi thường gặp trên phần cứng thật.

7/6/20269 phút đọc
NT
Tutorial
unifolm-vla + Unitree G1 (Bài 4): fine-tune từ Qwen2.5-VL-7B — 8-GPU và single-GPU LoRA
humanoidvlafine-tuningPhần 4
humanoid

unifolm-vla + Unitree G1 (Bài 4): fine-tune từ Qwen2.5-VL-7B — 8-GPU và single-GPU LoRA

Hướng dẫn fine-tune unifolm-vla từ checkpoint công khai Qwen2.5-VL-7B-Instruct (vì Unifolm-VLM-0 chưa public) — gồm approach chính thức 8-GPU DeepSpeed và workaround single-GPU với QLoRA cho beginner.

6/6/20268 phút đọc
NT
Tutorial
unifolm-vla + Unitree G1 (Bài 3): data pipeline — JSON → LeRobot → HDF5 → RLDS
humanoidvladata-pipelinePhần 3
humanoid

unifolm-vla + Unitree G1 (Bài 3): data pipeline — JSON → LeRobot → HDF5 → RLDS

Hướng dẫn chuyển đổi dữ liệu teleoperation 3 bước: từ JSON (xr_teleoperate) sang LeRobot V2.1, sang HDF5, sang RLDS format chuẩn cho training unifolm-vla — kèm cách verify dataset trước khi train.

4/6/20266 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