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. OpenWBC: Hướng Dẫn VR Teleop Whole-Body VLA Unitree G1
wholebody-vlawholebody-vlaunitree-g1teleopapple-vision-prolerobotgrootdata-collectionopen-source

OpenWBC: Hướng Dẫn VR Teleop Whole-Body VLA Unitree G1

Hướng dẫn đầy đủ xây dựng hệ thống VR teleop với Apple Vision Pro + OpenHomie để điều khiển Unitree G1 và thu thập dữ liệu whole-body VLA chất lượng cao cho training GR00T N1.5.

Nguyễn Anh Tuấn10 tháng 7, 202611 phút đọc
OpenWBC: Hướng Dẫn VR Teleop Whole-Body VLA Unitree G1

Nếu bạn đang sở hữu một chiếc Unitree G1 và muốn dạy nó làm những việc phức tạp như nhặt vật, di chuyển đồ đạc, hay thực hiện các thao tác với tay — bạn cần dữ liệu whole-body. Không phải chỉ dữ liệu tay, không phải chỉ dữ liệu chân — mà là toàn thân hoạt động cùng lúc.

Đó chính xác là vấn đề mà OpenWBC (github.com/jiachengliu3/OpenWBC) giải quyết: một hệ thống XR-based teleop mã nguồn mở cho phép bạn điều khiển Unitree G1 bằng Apple Vision Pro trong khi robot tự di chuyển bằng chân, đồng thời thu thập toàn bộ dữ liệu cần thiết để huấn luyện mô hình VLA toàn thân.

Bài viết này hướng dẫn từng bước — từ cài đặt SDK, cấu hình mạng, quy trình deploy 3 terminal, đến thu thập dữ liệu, convert sang LeRobot format và training GR00T N1.5.

Tại sao cần Whole-Body Teleop?

Hãy tưởng tượng bạn muốn dạy robot G1 nhặt một lon nước từ bàn và đặt vào tủ lạnh. Tác vụ này yêu cầu:

  • Đôi tay: Vươn tới, nắm lon, di chuyển
  • Đôi chân: Di chuyển từ bàn đến tủ lạnh
  • Phối hợp: Hai thao tác phải xảy ra đồng thời và nhất quán

Nếu bạn chỉ thu thập dữ liệu tay (arm-only) hay chỉ dữ liệu di chuyển, mô hình VLA sẽ không bao giờ học được cách phối hợp toàn thân. OpenWBC giải quyết bằng cách chia đôi trách nhiệm: Apple Vision Pro xử lý thân trên, thuật toán OpenHomie xử lý thân dưới — bạn chỉ cần tập trung vào tay.

Đây là kết quả của TrajBooster (ICRA 2026) — hệ thống VLA được training từ dữ liệu thu thập bởi OpenWBC.

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 Dual-Mode — Ý Tưởng Cốt Lõi

OpenWBC sử dụng dual-mode control — kiểm soát kép tách biệt:

┌─────────────────────────────────────────────┐
│              UNITREE G1 ROBOT                │
│                                              │
│  ┌──────────────┐    ┌──────────────────┐   │
│  │  THÂN TRÊN   │    │   THÂN DƯỚI      │   │
│  │              │    │                  │   │
│  │ avp_teleoperate    │  OpenHomie       │   │
│  │ (Apple Vision Pro) │  (autonomous)    │   │
│  │              │    │                  │   │
│  │ - Vai/khuỷu  │    │ - Đi bộ          │   │
│  │ - Cổ tay     │    │ - Giữ thăng bằng │   │
│  │ - Ngón tay   │    │ - Tránh vật cản  │   │
│  └──────────────┘    └──────────────────┘   │
└─────────────────────────────────────────────┘
        ▲                        ▲
        │                        │
   Apple Vision Pro         Policy inference
   (tay người operator)     (chạy trên PC)
        │                        │
        └────────TCP/IP───────────┘

Tại sao tách biệt? Vì điều khiển chân robot humanoid cực kỳ phức tạp — cần Whole-Body Control (WBC), RL training hàng trăm giờ, và phải xử lý hàng nghìn tình huống thăng bằng. Thay vì yêu cầu người dùng học teleop cả chân lẫn tay, OpenWBC cho OpenHomie "lái chân" tự động còn operator chỉ cần điều khiển tay.

Sơ đồ triển khai G1 với OpenHomie lower-body control — nguồn: jiachengliu3/OpenTrajBooster
Sơ đồ triển khai G1 với OpenHomie lower-body control — nguồn: jiachengliu3/OpenTrajBooster

Yêu Cầu Hệ Thống

Phần Cứng

Thành phần Bắt buộc Ghi chú
Unitree G1 (29 DoF) ✅ Model tiêu chuẩn
Dex-3 Dexterous Hand ⚪ Tuỳ chọn Cần cho tác vụ cầm nắm phức tạp
Apple Vision Pro ✅ XR teleop interface
Linux Host (CUDA) ✅ x86_64 hoặc ARM64, CUDA cho inference
Camera gắn cổ tay ⚪ Khuyến khích Cải thiện depth perception cho VLA

Phần Mềm

Package Phiên bản Mục đích
Python 3.8+ Runtime chính
CMake 3.16+ Build Unitree SDK2
GCC/G++ C++14 Compile SDK2
Unitree SDK2 Latest Giao tiếp với robot
LeRobot Latest Data conversion + training

Cài Đặt Từng Bước

Bước 1: Clone Repository và Init Submodules

git clone https://github.com/jiachengliu3/OpenWBC.git
cd OpenWBC
git submodule update --init --recursive

Lệnh --recursive quan trọng — OpenWBC phụ thuộc vào nhiều submodule (avp_teleoperate, OpenHomie, OpenWBC_to_Lerobot) và chúng sẽ không được tải nếu bỏ flag này.

Bước 2: Build Unitree SDK2 (C++)

Unitree SDK2 là lớp giao tiếp low-level với robot, phải compile từ nguồn:

cd unitree_sdk2
rm -rf build        # xóa build cũ nếu có
mkdir build && cd build
cmake ..
make -j$(nproc)     # dùng tất cả CPU cores để build nhanh hơn

Sau khi build xong, file thực thi nằm tại:

  • unitree_sdk2/build/bin/g1_control — điều khiển G1
  • unitree_sdk2/build/bin/hand_control — điều khiển Dex-3 hand

Bước 3: Cài g1_gym_deploy

cd ../../  # về thư mục gốc OpenWBC
cd g1_gym_deploy && pip install -e .

pip install -e . (editable mode) cho phép bạn sửa code mà không cần reinstall — rất tiện khi tuning policy.

Bước 4: Cài LeRobot (cho Data Conversion)

pip install lerobot

Bước 5: Init Submodule Converter

cd OpenWBC_to_Lerobot
pip install -e .

Submodule này chứa script convert_to_lerobot.py để chuyển dữ liệu thô OpenWBC sang định dạng LeRobot Dataset — cần thiết cho training GR00T.

Cấu Hình Mạng

OpenWBC dùng TCP/IP để kết nối Robot ↔ PC. Cần xác định IP của cả hai:

# Chạy trên cả robot lẫn PC
ifconfig | grep inet

Sau đó update IP trong code. Mặc định robot G1 thường có IP dạng 192.168.123.x. Đảm bảo robot và PC trong cùng subnet.

Lưu ý: Apple Vision Pro cũng cần cùng mạng WiFi với PC để stream dữ liệu tay/đầu.

Quy Trình Triển Khai — 3 Terminal

Chuẩn Bị Trước Khi Deploy

Trước khi chạy bất cứ gì, phải tắt tiến trình điều khiển mặc định của G1 bằng chuỗi phím gamepad:

1. L1 + A          → thoát mode hiện tại
2. L2 + R2         → vào transition mode
3. L2 + A          → robot nâng tay lên (xác nhận thành công)
4. L2 + B          → robot mất force control (chuẩn bị cho chương trình tùy chỉnh)

Không bỏ qua bước này — nếu tiến trình mặc định vẫn chạy, chương trình của bạn sẽ conflict và robot có thể hành động không kiểm soát được.

Robot-Side: 3 Terminal Chạy Song Song

Terminal 1 — Khởi động điều khiển robot:

cd unitree_sdk2/build/bin
./g1_control eth0
# Nếu eth0 không hoạt động, thử: ./g1_control eth1

Chương trình này mở kết nối low-level với G1, nhận và gửi lệnh điều khiển.

Terminal 2 — Chạy policy inference:

python g1_gym_deploy/scripts/deploy_policy.py

Thread này chạy OpenHomie policy để robot tự cân bằng và di chuyển. Đây là "não" điều khiển chân.

Terminal 3 — Khởi động image server (cho AVP):

cd avp_teleoperate/teleop/image_server
python image_server.py

Server này stream hình ảnh từ camera robot lên Apple Vision Pro để operator thấy góc nhìn của robot.

Robot Operations

# Sau khi 3 terminal đã chạy:
# Nhấn R2 trên gamepad → robot đứng thẳng
# Nhấn R2 lần 2 → bắt đầu accept control từ AVP

Gắn camera trên đầu G1 để stream cho Apple Vision Pro — nguồn: jiachengliu3/OpenTrajBooster
Gắn camera trên đầu G1 để stream cho Apple Vision Pro — nguồn: jiachengliu3/OpenTrajBooster

Thu Thập Dữ Liệu với Apple Vision Pro

PC-Side Command

cd avp_teleoperate/teleop
python teleop_data_collecting.py --arm=G1_29 --hand=dex3 --record

Giải thích tham số:

  • --arm=G1_29: Chỉ định robot arm type — G1 với 29 bậc tự do
  • --hand=dex3: Dùng Dex-3 dexterous hand (bỏ qua nếu không có)
  • --record: BẮT BUỘC để ghi dữ liệu — không có flag này chương trình chỉ teleop mà không save

Dữ Liệu Được Thu Thập

Mỗi episode lưu đồng bộ:

Loại dữ liệu Nội dung Tần số
Visual Multi-angle camera feed (ego view + wrist cameras) 30 Hz
Action Góc tất cả 29 khớp + vị trí end-effector 50 Hz
State Pose, velocity, torque của robot 50 Hz
Sync Timestamp đồng bộ tất cả stream —

Gợi ý thu thập:

  • Mỗi episode: 10-30 giây, 1 tác vụ cụ thể
  • Mục tiêu: 50-100 episodes/task để VLA học được
  • Đa dạng hoá: thay đổi vị trí vật thể, góc tiếp cận, tốc độ thực hiện

Chuyển Đổi Dữ Liệu sang LeRobot Format

Dữ liệu thô từ OpenWBC cần convert trước khi training. OpenWBC_to_Lerobot xử lý việc này:

cd OpenWBC_to_Lerobot

# Basic conversion
python convert_to_lerobot.py \
    --input_dir /path/to/openwbc/dataset \
    --output_dir ./lerobot_dataset \
    --dataset_name "pick_cola" \
    --robot_type "g1" \
    --fps 30

Hoặc dùng CLI shortcut sau khi install:

wbc-convert \
    --input_dir /path/to/dataset \
    --output_dir ./output \
    --dataset_name "my_task"

Script sẽ tạo một LeRobot Dataset chuẩn với:

  • data/ — HDF5 files chứa observations và actions
  • videos/ — MP4 videos cho visual observations
  • meta/ — Metadata về robot modality và episode info
  • modality.json — Mô tả cấu trúc dữ liệu của G1

Training VLA với GR00T N1.5

Sau khi có LeRobot dataset, bạn có thể train GR00T N1.5 — foundation model của NVIDIA cho humanoid:

# Clone GR00T modified cho OpenWBC
# (đã có sẵn trong submodule gr00t_modified_for_OpenWBC)

# Training với dataset đã convert
python scripts/gr00t_finetune.py \
    --dataset_path ./lerobot_dataset \
    --model_name nvidia/GR00T-N1-5 \
    --output_dir ./output_model \
    --num_epochs 100 \
    --batch_size 32

Xem hướng dẫn chi tiết training tại bài viết về thu thập dữ liệu GR00T N1 trên G1.

Cấu Trúc Thư Mục Dự Án

OpenWBC/
├── avp_teleoperate/          # Apple Vision Pro teleop (submodule)
│   └── teleop/
│       ├── image_server/     # Stream camera lên AVP
│       └── teleop_data_collecting.py  # Script chính
├── OpenHomie/                # Lower body locomotion (submodule)
│   └── HomieDeploy/
│       ├── unitree_sdk2/     # Unitree SDK2 (C++)
│       └── g1_gym_deploy/    # Python deployment scripts
├── OpenWBC_to_Lerobot/       # Data converter (submodule)
│   ├── convert_to_lerobot.py # Main script
│   ├── modality.json         # G1 robot modality config
│   └── requirements.txt
├── demos_all.gif             # Demo animation
└── README.md

TrajBooster — Kết Quả ICRA 2026

OpenWBC không phải dự án cuối — nó là nền tảng để xây dựng TrajBooster (chấp nhận bởi ICRA 2026), một phương pháp cải thiện VLA cho whole-body manipulation.

Ý tưởng cốt lõi của TrajBooster:

Thay vì thu thập hàng nghìn giờ dữ liệu teleop từ đầu, TrajBooster:

  1. Lấy các dataset manipulation phong phú từ robot khác (AgBot, etc.)
  2. Retarget end-effector trajectory từ robot đó sang Unitree G1
  3. Post-pre-training trên VLA đã train sẵn với dữ liệu retarget
  4. Fine-tune nhỏ với dữ liệu teleop thực tế (thu thập bởi OpenWBC)

Kết quả: giảm đáng kể lượng dữ liệu teleop cần thu thập mà vẫn đạt performance cao, thậm chí có khả năng zero-shot transfer sang các tác vụ chưa thấy.

Xem thêm về pipeline dữ liệu wholebody VLA tại bài hướng dẫn WholebodyVLA và bài về OpenWBT — hệ thống teleop tương tự của Galaxy General Robotics.

So Sánh với Các Hệ Thống Teleop Khác

Hệ thống Lower body Upper body Dữ liệu Open source
OpenWBC OpenHomie (autonomous) Apple Vision Pro Whole-body ✅
OpenWBT WBC trained FISM/GELLO Whole-body ✅
UMI — (arm-only) Wrist cam Arm-only ✅
NVIDIA GROOT Sonic WBC HTC Vive Whole-body ❌

OpenWBC đơn giản hơn GROOT Sonic (không cần VR setup phức tạp) nhưng vẫn đủ mạnh để thu thập dữ liệu whole-body chất lượng cao.

Lưu Ý An Toàn — QUAN TRỌNG

Robot Unitree G1 nặng ~35kg và có thể di chuyển với vận tốc cao. BẮT BUỘC:

  • Không bao giờ deploy mà không hiểu rõ từng file trong repo
  • Lần đầu test trong không gian mở, thoáng, không có người xung quanh
  • Luôn có người giám sát có kinh nghiệm
  • Giữ nút dừng khẩn cấp (emergency stop) trong tay
  • Đảm bảo đủ không gian xung quanh robot (tối thiểu 2m mỗi chiều)

Kết Luận

OpenWBC là một trong những hệ thống teleop + data collection whole-body mã nguồn mở hoàn chỉnh nhất cho Unitree G1. Kiến trúc dual-mode (AVP cho tay + OpenHomie cho chân) giải quyết một trong những thách thức lớn nhất của humanoid data collection: làm sao để operator tập trung vào tác vụ thay vì lo quản lý thăng bằng chân.

Pipeline từ teleop → LeRobot → GR00T N1.5 đã được validate qua TrajBooster (ICRA 2026), chứng minh rằng dữ liệu thu thập bởi OpenWBC đủ chất lượng để train mô hình VLA production-grade.

Xem thêm cách deploy mô hình sau khi training tại bài hướng dẫn GR00T N1 WBC Deploy cho G1 và pipeline LeRobot toàn thân tại LeRobot G1 + Pi0Fast Whole-Body.

Bài Viết Liên Quan

  • GR00T N1 G1 Data Collection — Hướng Dẫn Thu Thập Dữ Liệu với NVIDIA Foundation Model
  • WholebodyVLA Teleop + Training + Deploy Tutorial
  • OpenWBT — Hệ Thống Teleop Whole-Body của Galaxy General Robotics
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
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
CLONE: MoE teleop và chọn stack
clonemoe-policyteleoperationPhần 6
wholebody-vla

CLONE: MoE teleop và chọn stack

Triển khai CLONE cho G1 với Apple Vision Pro, LiDAR odometry, MoE policy và bảng chọn stack whole-body VLA.

11/6/202617 phút đọc
NT
Tutorial
Pilot 2 người cho dữ liệu humanoid VLA
humanoid-vladata-collectionlerobotPhần 1
wholebody-vla

Pilot 2 người cho dữ liệu humanoid VLA

Thiết kế ca thu dữ liệu humanoid VLA đầu tiên với 2 operator: checklist camera, state, action, language, episode và throughput.

10/6/202615 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