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. unifolm-vla + G1 (Bài 1): kiến trúc hệ thống WBC+VLA
humanoidhumanoidvlawhole-bodyunitree-g1unifolm-vlaarchitecturetutorial

unifolm-vla + G1 (Bài 1): kiến trúc hệ thống WBC+VLA

Kiến trúc 3 repo — unifolm-vla (VLA), xr_teleoperate (thu dữ liệu), unitree_rl_gym (locomotion) — cách kết nối thành pipeline whole-body control cho G1.

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

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:

code
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:

code
┌─────────────────────────────────────────────┐
│              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
bash
# 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)
bash
# 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

bash
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):

bash
# 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):

bash
conda activate unifolm
pip install unitree_sdk2py

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

bash
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

bash
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:

code
[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 + G1 (Bài 2): thu dữ liệu với xr_teleoperate →

Bài viết liên quan

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

unifolm-vla + G1 (Bài 5): inference server và SSH tunnel

Bài cuối series: khởi động FastAPI inference server, kết nối G1 qua SSH tunnel, chạy arm VLA và locomotion đồng thời — kèm safety checklist, debug guide.

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

unifolm-vla + G1 (Bài 4): fine-tune Qwen2.5-VL-7B, LoRA

Fine-tune unifolm-vla từ checkpoint Qwen2.5-VL-7B-Instruct (vì Unifolm-VLM-0 chưa public) — approach chính thức 8-GPU DeepSpeed và workaround single-GPU QLoRA.

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

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

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

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