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. DexVerse: Benchmark OpenVLA và π0.5
wholebody-vlaDexVerseOpenVLAπ0.5dexterous manipulationIsaac Lab

DexVerse: Benchmark OpenVLA và π0.5

Hướng dẫn DexVerse, benchmark open-source mới để test OpenVLA, π0.5 và diffusion policy trên 100 task dexterous manipulation.

Nguyễn Anh Tuấn13 tháng 7, 202615 phút đọc
DexVerse: Benchmark OpenVLA và π0.5

DexVerse là một benchmark mới cho dexterous manipulation: robot không chỉ gắp-thả bằng parallel gripper, mà phải điều khiển arm + multi-finger hand để mở laptop, bóp kéo, rót chất lỏng, đóng vai trò hai tay, đẩy vật theo contact, hoặc hoàn thành chuỗi nhiều bước như pha cà phê. Điểm đáng chú ý nhất là paper không chỉ nói về một vài environment demo. DexVerse gom 100 task, 3 robot arms, 6 dexterous hands, visual randomization, VR teleoperation, dataset demonstration, và benchmark trực tiếp các policy hiện đại gồm OpenVLA, π0.5, DP3, và Diffusion Policy.

Nếu bạn đã đọc OpenVLA deep dive, π0 overview, hoặc bài về EXPO-FT cho π0.5, DexVerse là mảnh ghép còn thiếu: một sân test đủ khó để kiểm tra xem VLA có thật sự hiểu dexterous hand, contact-rich motion và long-horizon task hay chưa.

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 →

Nguồn chính của bài này là paper DexVerse: A Modular Benchmark for Multi-Task, Multi-Embodiment Dexterous Manipulation trên arXiv và repo chính thức ycyao216/DexVerse. Tại thời điểm viết bài, repo đã release task suite và asset pipeline; các phần baseline code, full teleoperation tooling, full Shadow Hand demonstration dataset và cross-embodiment assets vẫn nằm trong roadmap hoặc ghi “coming soon”. Vì vậy phần hướng dẫn bên dưới tách rõ hai lớp: phần có thể chạy ngay từ repo hiện tại, và protocol training/inference theo paper để bạn chuẩn bị khi baseline release đầy đủ.

DexVerse system design - nguồn: project page DexVerse
DexVerse system design - nguồn: project page DexVerse

DexVerse giải quyết vấn đề gì?

Các benchmark robot learning phổ biến như LIBERO, CALVIN, Meta-World hay nhiều setup LeRobot rất hữu ích cho imitation learning, nhưng phần lớn task xoay quanh gripper đơn giản. Với gripper, policy có thể học một pattern tương đối rõ: reach, grasp, move, release. Dexterous hand thì khác. Một task rót can không chỉ cần target pose của can, mà cần contact đúng vùng tay cầm, orientation đủ nghiêng, không chạm vào vùng cấm, và điều khiển nhiều joint ngón tay cùng lúc. Một task InsertPen cần alignment chính xác ở mức nhỏ; PushT yêu cầu contact và friction ổn định; OpenStapler cần hiểu articulated joint.

DexVerse đặt mục tiêu đánh giá ba loại generalization cùng lúc. Thứ nhất là cross-task generalization: cùng một policy hoặc một family policy có thể xử lý primitive, functional, articulation, contact-rich, bimanual, multi-goal và long-horizon task không. Thứ hai là cross-embodiment generalization: task không bị hard-code cho một hand duy nhất, mà có specification cho nhiều arm-hand pair. Thứ ba là visuomotor robustness: policy có chịu được thay đổi texture, lighting, HDR background, exposure và camera viewpoint không.

Paper nhấn mạnh rằng các VLA model tiền huấn luyện trên dữ liệu web hoặc robot gripper chưa mặc nhiên thắng trong dexterous manipulation. Kết quả benchmark cho thấy π0.5 và DP3 cùng đạt mean success 0.34 trên baseline split, Diffusion Policy đạt 0.32, còn OpenVLA đạt 0.19. Đây không phải là kết luận “VLA vô dụng”; đây là tín hiệu rằng pretraining perception chưa đủ để giải quyết manifold điều khiển nhiều bậc tự do, force timing và contact alignment.

100 task được tổ chức như thế nào?

DexVerse chia 100 task thành 8 nhóm:

Nhóm task Số task Ví dụ Điều khó chính
Primitive 9 PickCube, StackCube, RelocateSphere, PushButton Mục tiêu đơn giản, ít bước
Functional 11 HammerStrike, RetrieveCup, GraspKettle, PourCan Hiểu affordance và vùng contact đúng
Articulation 18 OpenStapler, OpenLaptop, SqueezeScissors Điều khiển joint/vật thể có khớp
Non-prehensile 5 PushT, PivotCuboid, PushSphereObstacle Đẩy, trượt, pivot, dùng môi trường
Contact-rich 8 InsertPeg, PlugCharger, NutThread Alignment và contact kéo dài
Bimanual Coordination 5 BiLiftTray, BiHandover, BiLiftBox Phối hợp hai tay/arm
Multi-goal 39 GraspMug + PushButton Hoàn thành nhiều điều kiện cùng lúc
Long-horizon 5 MakeCoffee, MicrowaveFood, CleanTable Chuỗi nhiều stage theo thời gian

Điểm thiết kế tốt là mỗi task được mô tả bằng scene, asset, robot embodiment, observation/action interface, initialization distribution, success predicate và randomization setting. Với beginner, hãy hiểu đơn giản: task không chỉ là “một file Python vẽ scene”, mà là một config đầy đủ để simulator biết khi nào reset, robot nhìn thấy gì, robot được điều khiển bằng action nào, và khi nào episode được tính là thành công.

Ví dụ, một task mở drawer có success predicate dựa trên prismatic joint vượt threshold. Một task rót can có điều kiện lift + tilt. Một task multi-goal có thể yêu cầu vừa nâng object phụ, vừa hoàn thành objective chính. Điều này quan trọng vì khi benchmark VLA, bạn không muốn success được chấm bằng cảm tính; bạn muốn một predicate có thể lặp lại qua 50 rollout.

Kiến trúc môi trường: config-driven trên Isaac Lab

DexVerse được xây trên NVIDIA Isaac Sim 5.1.0 và Isaac Lab v2.3.2. Repo được tổ chức như một Isaac Lab extension:

DexVerse/
├── source/dexverse/
│   ├── dexverse/
│   │   ├── tasks/
│   │   ├── assets/
│   │   ├── devices/
│   │   ├── robot_agents/
│   │   └── utils/
│   ├── demonstrations/
│   ├── docker_utils/
│   └── docs/
└── scripts/
    ├── list_envs.py
    ├── zero_agent.py
    ├── random_agent.py
    ├── teleop_agent.py
    ├── record_demos.py
    └── run_dexverse.py

Trong Isaac Lab, manager-based environment cho phép observation, action, event, termination và reward term được khai báo bằng config class. DexVerse tận dụng pattern đó để tách task logic khỏi embodiment logic. Task family giữ logic chung, từng task override object, target, success threshold. Robot config định nghĩa arm, hand, initial pose, controller và action interface. Vì vậy, về lý thuyết bạn có thể chạy cùng một task với Shadow Hand, Allegro Hand hoặc LEAP Hand nếu asset và robot spec đã có.

Paper liệt kê 3 arms: Franka Research 3, UR10e và xArm 7; 6 hands: Sharpa Wave, WUJI Hand, Shadow Hand, Inspire Hand, Allegro Hand và LEAP Hand. README hiện tại ghi rõ asset release ban đầu mới có Shadow Hand, còn các robot combination khác sẽ đến sau. Khi viết benchmark report, cần ghi rõ khác biệt này để tránh nhầm giữa phạm vi paper và phạm vi code release hiện tại.

DexVerse teleoperation system - nguồn: project page DexVerse
DexVerse teleoperation system - nguồn: project page DexVerse

Dataset: 3,180 demonstrations thu bằng VR teleoperation

DexVerse dùng Apple Vision Pro thông qua CloudXR-based XR teleoperation của Isaac Lab. Người vận hành nhìn simulation feedback trong headset; wrist pose của human được đưa thành target pose cho robot end-effector; robot arm đi theo target bằng inverse kinematics controller; chuyển động bàn tay người được retarget sang joint target của dexterous hand bằng optimization-based dex-retargeting.

Dataset trong paper gồm 3,180 demonstration trajectories. Cách đếm là: 56 single-goal tasks, mỗi task 55 demonstrations; trong đó 50 trajectory với Shadow Hand và 1 trajectory trên mỗi 5 hand embodiment khác. Thêm vào đó, 5 long-horizon tasks có 20 trajectory mỗi task. Mỗi demonstration lưu action-state pair trong teleoperation. Khi replay, simulator restore recorded state rồi query observation terms cục bộ để sinh RGB, depth, point cloud, proprioception hoặc state observation.

Thiết kế replay bằng state rất thực dụng. Nếu chỉ lưu video hoặc action rồi chạy lại vật lý từ đầu, simulation có thể drift vì hardware, floating point và physics solver khác nhau. State replay làm dataset portable hơn, đồng thời cho phép bạn thay observation preset sau này mà không cần lưu lại mọi frame RGB/depth từ đầu.

DexVerse overview video - nguồn: project page DexVerse

Cài đặt DexVerse từ repo hiện tại

Phần này dựa trên README chính thức. Bạn cần máy Linux có NVIDIA GPU đủ mạnh để chạy Isaac Sim. Đừng bắt đầu trên laptop không có GPU NVIDIA rồi debug dependency trong nhiều giờ; Isaac Sim và Isaac Lab không phải stack nhẹ.

Tạo workspace với Isaac Lab và DexVerse nằm cạnh nhau:

mkdir -p ~/workspace/dexverse-lab
cd ~/workspace/dexverse-lab
conda create -n dexverse python=3.11
conda activate dexverse
pip install --upgrade pip

Cài Isaac Sim 5.1.0 và PyTorch CUDA 12.8 đúng version README khuyến nghị:

pip install "isaacsim[all,extscache]==5.1.0" --extra-index-url https://pypi.nvidia.com
pip install -U torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu128
pip install "setuptools==65.0.0"
pip install "flatdict==4.0.1" --no-build-isolation

Cài Isaac Lab v2.3.2:

git clone https://github.com/isaac-sim/IsaacLab.git --branch v2.3.2
cd IsaacLab
sudo apt install cmake build-essential
./isaaclab.sh --install

Sau đó vào repo DexVerse và cài extension:

cd ~/workspace/dexverse-lab/DexVerse
python -m pip install -e source/dexverse

Asset robot/object không nằm trong git repo. Chúng được host trên gated Hugging Face dataset dexverse/DexVerse_release, vì vậy bạn cần login và accept terms:

pip install huggingface_hub
hf auth login
python scripts/asset_tools/download_robot_agents.py --all
python scripts/asset_tools/download_assets.py --all

README ghi download_assets.py --all sẽ kéo vài GB dữ liệu: core assets khoảng 410 MB, ManiTwin object pool khoảng 2.2 GB, HDRI khoảng 1.8 GB, cộng thêm meshes cho long-horizon task. Nếu bạn chỉ test nhanh, chạy script với --help hoặc download_robot_agents.py --list để tải subset.

Smoke test: list task và chạy dummy agent

Sau khi cài xong, lệnh đầu tiên nên chạy là:

python scripts/list_envs.py

Lệnh này giúp xác nhận Isaac Lab đã thấy extension và các environment đã được register. Tiếp theo chọn một task đơn giản, ví dụ Dexverse-Relocate-v0 hoặc task có trong output, rồi chạy zero/random agent:

python scripts/zero_agent.py --task=Dexverse-Relocate-v0
python scripts/random_agent.py --task=Dexverse-Relocate-v0 --num_envs=4

Zero agent gửi action bằng 0 ở mỗi step; random agent sample action ngẫu nhiên. Hai agent này không nhằm đạt success, mà kiểm tra scene load được, asset path đúng, simulator step được và action space không lỗi. Với robotics benchmark, smoke test kiểu này rất quan trọng vì lỗi thường nằm ở asset path, USD/URDF, GPU driver, Isaac extension hoặc version conflict, không phải ở policy.

Training OpenVLA và π0.5 theo protocol paper

Paper benchmark 4 family policy trên baseline split gồm 19 task. Tất cả được train bằng cùng 950 episodes: 19 tasks x 50 episodes/task từ teleoperation corpus. Evaluation chạy closed-loop trong simulator, 50 rollout cho mỗi task, cùng termination criteria. Đây là protocol tối thiểu bạn nên giữ nếu muốn kết quả so sánh được.

Với OpenVLA, paper fine-tune openvla-7b bằng OFT recipe, thay discrete 7-token action head bằng continuous L1 regression head phát ra 8-step chunk của absolute joint targets. Ý nghĩa thực tế: thay vì để VLA sinh token rời rạc đại diện action, action head học trực tiếp vector joint target liên tục cho dexterous hand/arm. Đây là thay đổi cần thiết vì multi-finger hand có action space dày hơn nhiều so với gripper.

Với π0.5, paper xem nó là VLA transformer có flow-matching action expert. π0.5 đạt mean 0.34, ngang DP3 và cao hơn OpenVLA trong aggregate. Tuy nhiên bài học không phải “π0.5 giải xong dexterity”; PushT vẫn 0.00, InsertPen chỉ 0.06, OpenLaptop 0.04. Mô hình mạnh hơn vẫn thiếu force feedback, contact correction và khả năng alignment ổn định trong task tolerance nhỏ.

Một training workflow thực tế khi baseline code và dataset release đầy đủ sẽ giống thế này:

# Pseudocode: tên script có thể thay đổi khi baseline release
python scripts/demo_tools/prepare_dataset.py \
  --tasks baseline_19 \
  --episodes-per-task 50 \
  --obs rgb,state \
  --action absolute_joint_targets \
  --out data/dexverse_baseline_19

python scripts/train_openvla_oft.py \
  --model openvla-7b \
  --dataset data/dexverse_baseline_19 \
  --action-head continuous_l1_chunk \
  --chunk-size 8

python scripts/train_pi05.py \
  --dataset data/dexverse_baseline_19 \
  --obs rgb,state \
  --action absolute_joint_targets

Đừng copy đoạn trên như lệnh chính thức. Nó là skeleton để beginner hiểu các thành phần cần có: chọn task split, convert demonstration, chọn observation, chọn action representation, fine-tune action head, rồi lưu checkpoint. Khi repo release baseline code, bạn nên ưu tiên command chính thức của authors.

Inference và evaluation closed-loop

Inference trong DexVerse không giống inference text model. Policy nhận observation tại thời điểm t, sinh một action chunk hoặc một target action, simulator step, rồi policy quan sát state mới. Với VLA, observation thường gồm RGB + proprioceptive state + language/task instruction; với DP3 là point cloud + proprioception; với state-based Diffusion Policy là proprioceptive state.

Evaluation nên giữ nguyên các quy tắc:

for task in baseline_19:
  for seed in 50_rollouts:
    env.reset(task, seed)
    while not done:
      obs = env.get_observation()
      action = policy(obs, instruction)
      env.step(action)
    record_success(env.success)

Bạn cần log ít nhất: task name, policy checkpoint, observation mode, action mode, seed, success/failure, episode length, termination reason và video rollout nếu có. Với contact-rich task, chỉ nhìn mean success là chưa đủ. Một policy có thể fail vì grasp sai vùng affordance, vì wrist pose lệch, vì ngón tay chạm vùng cấm, vì vật bị văng khỏi workspace, hoặc vì timing contact không ổn. Log termination reason giúp bạn debug đúng nguyên nhân.

DexVerse material randomization for HammerStrike - nguồn: project page DexVerse
DexVerse material randomization for HammerStrike - nguồn: project page DexVerse

Đọc kết quả benchmark

Bảng kết quả paper có vài điểm đáng nhớ:

Policy Mean success
π0.5 0.34
OpenVLA 0.19
3D Diffusion Policy 0.34
Diffusion Policy 0.32

Ở nhóm Pick-and-Lift, task BimanualLiftCarton rất cao: π0.5 đạt 1.00, DP đạt 0.94, DP3 đạt 0.90, OpenVLA đạt 0.60. Nhưng ở RetrieveCup, tất cả thấp: 0.02, 0.02, 0.06, 0.04. Ở articulation, OpenStapler khá tốt cho cả bốn policy, OpenVLA thậm chí đạt 0.92; nhưng SlideUtilityKnife là 0.00 cho tất cả. Ở tool use, DP3 mạnh trên FunctionalPourMug với 0.64; DP mạnh trên FunctionalPourCan với 0.38. Ở precision, PushT là 0.00 toàn bộ.

Điều này cho thấy benchmark có nhiều “micro-regime”. Một method thắng ở lifting chưa chắc thắng ở tool use. RGB + state có thể đủ cho pick-and-lift, point cloud giúp định vị tool tip, language/flow action expert có thể giúp articulated hoặc precision contact, nhưng không representation nào thống trị toàn bộ.

Với nhóm làm sản phẩm robot, kết quả này là lời nhắc thực dụng: nếu task production của bạn là contact-rich insertion, đừng chỉ demo VLA trên pick-and-place rồi kết luận mô hình đủ tốt. Hãy tạo một evaluation split riêng có success predicate rõ ràng, rollout đủ nhiều seed, và đo failure mode theo contact/alignment.

Beginner nên bắt đầu từ đâu?

Nếu bạn mới vào DexVerse, thứ tự học nên là:

  1. Chạy repo với zero/random agent để hiểu Isaac Lab extension và asset pipeline.
  2. Mở source/dexverse/docs/envdocs.md để đọc task intent và success condition.
  3. Chọn 1 task primitive, 1 task articulation, 1 task functional để xem config khác nhau thế nào.
  4. Khi demo dataset release, convert một task nhỏ sang format training, đừng bắt đầu bằng đủ 19 task.
  5. Train baseline nhẹ trước, ví dụ state-based Diffusion Policy hoặc behavior cloning đơn giản, rồi mới fine-tune VLA 7B.
  6. Khi chạy VLA, log video và termination reason, vì success rate thấp mà không có rollout video gần như không debug được.

Nếu bạn đang theo hướng LeRobot/OpenVLA, có thể xem DexVerse như “final boss” cho dexterous manipulation simulation: không phải benchmark đầu tiên để học, nhưng rất đáng dùng để kiểm tra policy đã vượt qua tabletop gripper bias hay chưa. Bạn có thể liên hệ thêm với các bài DexOrA-VLA bimanual dexterous manipulation và RoboTwin 2.0 dual-arm manipulation để so sánh phạm vi benchmark.

Checklist triển khai trong lab

Trước khi commit GPU time vào OpenVLA/π0.5 trên DexVerse, hãy kiểm tra các điểm sau:

Hạng mục Câu hỏi cần trả lời
Hardware GPU có chạy Isaac Sim ổn không? Driver/CUDA có khớp không?
Simulator list_envs.py, zero_agent.py, random_agent.py chạy sạch không?
Assets Robot hand/object/HDRI đã tải đủ subset task chưa?
Dataset Demo có đủ observation/action format policy cần không?
Action space Policy sinh absolute joint target, delta joint hay end-effector command?
Evaluation Có 50 rollout/task, seed cố định, success predicate gốc không?
Debug Có lưu rollout video, termination reason và per-task failure không?

Với production-oriented team, tôi sẽ không bắt đầu bằng full 100 task. Hãy chọn 5 task đại diện cho sản phẩm của bạn: một task primitive để sanity check, một articulation, một functional tool-use, một precision contact, và một long-horizon. Khi pipeline đã ổn, mới mở rộng sang baseline 19 task rồi full taxonomy.

Kết luận

DexVerse quan trọng vì nó kéo cuộc thảo luận VLA về đúng mặt đất kỹ thuật. OpenVLA và π0.5 rất mạnh, nhưng dexterous manipulation không chỉ là “nhìn ảnh rồi sinh action”. Multi-finger hands cần contact timing, force-aware correction, embodiment-aware action representation và evaluation đủ rộng. Mean success 0.34 của model tốt nhất không phải thất bại; nó là benchmark floor để cộng đồng cùng cải thiện.

Trong vài tháng tới, điểm cần theo dõi là repo release baseline code, full teleoperation tooling và demonstration dataset. Khi các phần đó ổn định, DexVerse có thể trở thành benchmark rất đáng dùng cho lab muốn test VLA, diffusion policy và cross-embodiment dexterous control một cách nghiêm túc.

Bài viết liên quan

  • OpenVLA deep dive
  • π0 overview
  • EXPO-FT cho π0.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

Bài viết liên quan

Tutorial
M3imic: WBC đa phương thức cho G1
M3imicUnitree G1Isaac Lab
wholebody-vla

M3imic: WBC đa phương thức cho G1

Hướng dẫn M3imic: ý tưởng, kiến trúc, cài đặt Isaac Lab, training, inference và kết quả trên Unitree G1.

15/6/202614 phút đọc
NT
Tutorial
Dữ liệu BONES-SEED và huấn luyện SONIC
GR00TSONICBONES-SEEDPhần 3
wholebody-vla

Dữ liệu BONES-SEED và huấn luyện SONIC

Hướng dẫn chuyển BONES-SEED CSV/BVH sang motion_lib PKL, lọc motion và cấu hình training SONIC.

13/6/202614 phút đọc
NT
Deep Dive
Kiến trúc SONIC cho WBC humanoid
GR00TSONICwhole-body controlPhần 1
wholebody-vla

Kiến trúc SONIC cho WBC humanoid

Bóc tách GR00T-WholeBodyControl qua decoupled_wbc, gear_sonic và gear_sonic_deploy để hiểu SONIC từ paper đến repo.

13/6/202614 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