VnRobo
AboutPricingBlogContact
🇻🇳VISign InStart Free Trial
🇻🇳VI
VnRobo logo

AI infrastructure for next-generation industrial robots.

Product

  • Features
  • Pricing
  • Knowledge Base
  • Services

Company

  • About Us
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 VnRobo. All rights reserved.

Made with♥in Vietnam
VnRobo
AboutPricingBlogContact
🇻🇳VISign InStart Free Trial
🇻🇳VI
  1. Home
  2. Blog
  3. DyPES-VLA: Cross-Embodiment Manipulation Policy 98% LIBERO with Dynamics Prior & MoE
wholebody-vlavlacross-embodimentmanipulationmoedynamics-priorliberodiffusion-transformerqwenarxiv-2026

DyPES-VLA: Cross-Embodiment Manipulation Policy 98% LIBERO with Dynamics Prior & MoE

Deep dive into DyPES-VLA — cross-embodiment SOTA: 98% LIBERO, 89% RoboTwin 2.0, 75.6% real-world across 3 robots using shared Dynamics Prior and MoE Action Head.

Nguyễn Anh TuấnAugust 14, 202611 min read
DyPES-VLA: Cross-Embodiment Manipulation Policy 98% LIBERO with Dynamics Prior & MoE

DyPES-VLA: Learning Shared Dynamics Priors and Embodiment-Specific Control for Cross-Embodiment Manipulation

Imagine teaching three students simultaneously: one with short arms, one with long arms, and one with two sets of hands. Same lesson, same brain — but the way each holds the pen is completely different.

That's precisely the cross-embodiment manipulation problem in robotics: how do you train a single policy that can control a 7-DoF Franka Panda, a 29-DoF Unitree G1 humanoid, and a 14-DoF dual-arm robot — using the same model weights?

DyPES-VLA (arXiv 2608.06374, August 2026 — HKUST Guangzhou & COCO Matrix) answers this with two key innovations:

  1. Dynamics Prior: Train the VLM to learn the "physics" of manipulation from action-free videos — how objects move, how hands make contact, how scenes change after manipulation.
  2. Mixture-of-Experts (MoE) Action Head: Each embodiment gets its own specialized FFN expert — no manual action space alignment, no preprocessing pipelines.

Results: 98.0% on LIBERO, 89.02% on RoboTwin 2.0, 59.25% on RoboCasa-GR1, and 75.6% real-world across 3 physical robots — outperforming GR00T-N1.6 (59.6%) by +16 points.

Tool recommendations

VLA train/deploy stack

Train on cloud/workstation, then deploy optimized models to Jetson or the robot computer.

Cloud GPU for VLA / policy training Use for imitation learning, diffusion policies, RL, and robotics model fine-tuning. View cloud GPU → NVIDIA Jetson Orin NX / Orin Nano Edge deployment hardware for perception, logging, and optimized inference. View Jetson → Hugging Face / robotics dataset hosting Host datasets, checkpoints, and model cards for cleaner LeRobot/VLA workflows. View platform →

Why Is Cross-Embodiment Manipulation Hard?

Most current VLAs — from Qwen-VLA to X-VLA — are trained on a single robot type or require manual action space normalization (e.g., mapping everything to Cartesian end-effector space). This creates two fundamental problems:

Problem 1 — Wasted shared knowledge: Every robot obeys the same physics. When you pull a box off a shelf, whether you use a human hand, a Franka arm, or a humanoid hand, the box moves the same way. Yet current models train action policies from scratch per embodiment, wasting this shared "physics knowledge."

Problem 2 — Manual preprocessing burden: Converting 29-DoF humanoid joint-space actions to 7-DoF Franka end-effector Cartesian is non-trivial. It requires complex IK/FK pipelines that introduce errors and information loss.

DyPES-VLA cleanly separates two concerns:

  • Learning "shared physics" (Dynamics Prior) → uses video data, no robot action labels needed
  • Learning "how to use that physics per robot" (MoE Action Head) → embodiment-specific, no preprocessing needed

Architecture Overview

DyPES-VLA architecture with Dynamics Prior and MoE Action Head
DyPES-VLA architecture with Dynamics Prior and MoE Action Head
DyPES-VLA architecture — source: arXiv 2608.06374

The model has three main components:

1. Vision-Language Model with Shared Query Tokens

The backbone is Qwen3-VL-2B, encoding:

  • Visual observations (camera images)
  • Language instructions ("pick up the red cube")
  • Embodiment metadata (robot type, action format)
  • N=96 learnable query tokens — the critical shared interface

These 96 query tokens are trained to capture shared dynamics: object motion, hand-object contact patterns, scene changes after manipulation. They form a "common language" that Franka, humanoid, and dual-arm robots all share.

2. Future Generation Head (Dynamics Prior)

The core innovation. Instead of learning only from robot demonstration data, the model is trained to predict future frames — a task requiring no robot action labels.

The generator uses SANA-600M (image diffusion model) with a rectified-flow objective:

$$\mathcal{L}\text{future} = \mathbb{E}{\tau, \epsilon}\left[|g_\psi(z_\tau, \tau, p_\omega(Z)) - (z - \epsilon)|_2^2\right]$$

Where:

  • $z_\tau$ is the noisy latent of the future frame
  • $p_\omega(Z)$ are query states from the VLM (96 tokens)
  • $g_\psi$ is SANA-600M conditioned on query states

The goal: force the 96 query tokens to encode sufficient information to predict the future — thereby naturally learning manipulation dynamics.

3. Embodiment-Specific MoE Action Head

This component translates "shared dynamics language" into "per-robot commands." The design is a 16-layer Diffusion Transformer with K=3 experts:

  • Per-Embodiment Encoder-Decoder: Lightweight adapters mapping each robot's native action space into/out of a common latent
  • Shared Attention Layers: Cross-attention to the 96 query tokens; self-attention over the action sequence — both using Adaptive LayerNorm (AdaLN). Shared across all embodiments
  • Static Router: Selects one of K=3 FFN experts based on embodiment metadata — no complex learned gating needed
  • Embodiment-Specific FFN Experts: Each expert handles the unique kinematic constraints of one embodiment

Stage 2 training objective:

$$\mathcal{L} = \mathcal{L}\text{action} + \lambda_w \mathcal{L}\text{future}, \quad \lambda_w = 0.05$$

The 0.05 weight keeps balance: action loss dominates, future loss prevents dynamics prior forgetting.

Two-Stage Training in Detail

Stage 1: Dynamics Prior Pretraining (100K steps)

Goal: Learn shared manipulation dynamics from videos — no robot action labels required.

Hardware: 16 H100 GPUs, batch size 512.

Data mixture:

Dataset Mix Description
EgoDex 50% Egocentric human manipulation videos
RoboTwin 2.0 20% Dual-arm simulation demos
RoboCasa-GR1 20% Humanoid simulation demos
LIBERO 10% Single-arm simulation demos

Why 50% EgoDex? Human hand manipulation videos contain the richest real-world dynamics — grasping physics, contact patterns, and object behavior that transfer well to robots.

Only the Future Generation Head and Query Tokens are trained here. The VLM backbone is lightly fine-tuned. The Action Head is not yet trained.

Stage 2: Co-Training with MoE Action Head (200K steps)

Goal: Train embodiment-specific action policies while maintaining dynamics prior via joint loss.

Data mixture (robot demonstration data only):

Dataset Mix Robot
RoboTwin 2.0 40% 14-DoF dual-arm
RoboCasa-GR1 40% 29-DoF humanoid
LIBERO 20% 7-DoF Franka Panda

Per-embodiment action horizons:

  • Single-arm (Franka): 8 steps
  • Humanoids: 16 steps
  • Dual-arm: 50 steps

Inference: Only 4 Euler steps for flow integration — much faster than traditional DDPM.

Real-World Finetuning (5K steps)

After simulation training, finetune for 3 physical robots:

  • FR3 (Franka Research 3)
  • COBOT Magic
  • Unitree G1 (humanoid)

Only 1,800 demonstrations required — remarkably data-efficient for 3 embodiments.

Benchmark Results

Simulation Benchmarks (single checkpoint — same weights across all 3)

LIBERO (7-DoF Franka Panda):

Subset DyPES-VLA π₀ GR00T-N1.6
Spatial 98.8% 97.6% —
Object 99.4% 98.5% —
Goal 97.0% 95.9% —
Long Horizon 96.8% 88.9% —
Average 98.0% 95.2% 92.3%

RoboCasa-GR1 (29-DoF Humanoid):

Model Success Rate
DyPES-VLA 59.25%
ABot-M0 58.3%
Qwen-VLA 56.7%
LDA-1B 55.4%

RoboTwin 2.0 (14-DoF dual-arm):

Model Clean Randomized Average
DyPES-VLA 88.78% 89.26% 89.02%
Qwen-VLA 86.4% 86.8% 86.6%

Real-World Performance

DyPES-VLA deployed on 3 physical robots: FR3, COBOT Magic, Unitree G1
DyPES-VLA deployed on 3 physical robots: FR3, COBOT Magic, Unitree G1
DyPES-VLA on 3 real robots: FR3, COBOT Magic, Unitree G1 — source: arXiv 2608.06374

Model FR3 COBOT Magic Unitree G1 Average
DyPES-VLA — — — 75.6%
GR00T-N1.6 — — — 59.6%
ACT — — — 32.4%

DyPES-VLA outperforms GR00T-N1.6 by +16 points and ACT by +43 points in real-world evaluation.

Ablation Study: How Much Does Each Component Matter?

Configuration RoboTwin 2.0 RoboCasa-GR1 LIBERO
Full DyPES-VLA 89.02% 59.25% 98.0%
w/o Future Prediction -2.4% -2.5% small
Dense Head (no MoE) -1.2% -2.1% small
w/o Embodiment Metadata -0.5% -0.5% small

Key takeaways:

  • Future Prediction matters most for humanoid and dual-arm (more complex tasks, harder dynamics)
  • MoE matters more for humanoid (29-DoF, kinematic constraints very different from single-arm)
  • LIBERO is least affected — it's a simpler single-arm task with less complex dynamics

Implementation Guide

Code is not yet public as of August 2026, but you can implement the approach from the paper:

Environment Setup

# Core dependencies
pip install torch torchvision
pip install transformers  # for Qwen3-VL-2B
pip install diffusers     # for SANA-600M
pip install lerobot       # for LIBERO, RoboTwin data loading

# LIBERO benchmark environment
pip install libero

Stage 1: Dynamics Prior Training

import torch
from transformers import Qwen3VLForConditionalGeneration

# Load Qwen3-VL-2B backbone
vlm = Qwen3VLForConditionalGeneration.from_pretrained("Qwen/Qwen3-VL-2B")

# Add 96 learnable query tokens
query_tokens = torch.nn.Parameter(
    torch.randn(1, 96, vlm.config.hidden_size)
)

# Rectified-flow future prediction loss
def compute_future_loss(query_states, future_frame_latent, noise):
    """
    query_states: [B, 96, D] — VLM output
    future_frame_latent: z — latent of target future frame
    noise: epsilon ~ N(0, I)
    """
    t = torch.rand(query_states.shape[0])  # random timestep
    z_t = (1 - t[:, None, None]) * noise + t[:, None, None] * future_frame_latent
    velocity_pred = sana_generator(z_t, t, conditioning=query_states)
    velocity_target = future_frame_latent - noise
    return ((velocity_pred - velocity_target) ** 2).mean()

Data loading: mix EgoDex (50%) + simulation videos (50%) — only (current_frame, future_frame) pairs, no action labels needed.

Stage 2: MoE Action Head

class MoEActionHead(torch.nn.Module):
    """
    16-layer Diffusion Transformer with K=3 embodiment-specific experts.
    """
    def __init__(self, n_layers=16, n_experts=3, d_model=512):
        super().__init__()
        
        # Shared attention layers (cross + self attention)
        self.shared_attention = torch.nn.ModuleList([
            SharedAttentionBlock(d_model) for _ in range(n_layers)
        ])
        
        # Per-embodiment FFN experts
        self.experts = torch.nn.ModuleList([
            torch.nn.Sequential(
                torch.nn.Linear(d_model, d_model * 4),
                torch.nn.GELU(),
                torch.nn.Linear(d_model * 4, d_model)
            ) for _ in range(n_experts)
        ])
    
    def forward(self, action_noisy, query_states, embodiment_id):
        x = action_noisy
        for layer in self.shared_attention:
            x = layer(x, cross_kv=query_states)  # attend to 96 query tokens
        return self.experts[embodiment_id](x)     # route to correct expert

# Joint training objective
def training_step(batch):
    action_loss = compute_action_loss(batch)
    future_loss = compute_future_loss(batch)
    return action_loss + 0.05 * future_loss

Inference

# 4 Euler steps — fast flow integration
def inference(observation, instruction, embodiment_id, n_steps=4):
    query_states = vlm(observation, instruction)  # [B, 96, D]
    action = torch.randn(batch_size, action_horizon[embodiment_id], action_dim)
    
    dt = 1.0 / n_steps
    for i in range(n_steps):
        t = torch.tensor(i * dt)
        velocity = moe_head(action, query_states, embodiment_id)
        action = action + velocity * dt
    
    return action

# Action horizons per embodiment
ACTION_HORIZONS = {
    "single_arm": 8,   # Franka, COBOT Magic
    "humanoid": 16,    # Unitree G1, GR1
    "dual_arm": 50,    # RoboTwin dual-arm
}

Real-World Finetuning

# Finetune from simulation checkpoint for your robot
python finetune.py \
    --checkpoint path/to/simulation_checkpoint.pt \
    --embodiment_id 0 \                    # 0=FR3, 1=COBOT, 2=G1
    --data path/to/your_demos/ \           # 1800 demos recommended
    --steps 5000 \
    --lr 1e-4

Comparison with Alternative Approaches

Approach Pros Cons
DyPES-VLA No action alignment, leverages video data, MoE scalable Complex 2-stage training, needs 16 H100s
RDT-2 zero-shot Zero-shot transfer Bimanual only
HEX-VLA Whole-body loco-manipulation Humanoid-focused
Qwen-VLA (generalist) Simple training Lower performance on all benchmarks
Per-embodiment specialist Highest peak Not scalable, separate training per robot

Use DyPES-VLA when: You have ≥2 different robot types and want a unified policy, or have large video datasets to leverage for pretraining.

Skip DyPES-VLA when: You only have one robot type — a specialist policy (Diffusion Policy, ACT) is simpler and sufficient.

Three Key Insights from DyPES-VLA

Insight 1: Video data is an underexploited gold mine. EgoDex and manipulation videos exist in abundance — they contain richer dynamics information than robot demo data. DyPES-VLA exploits this through future prediction pretraining. No expensive robot collection needed.

Insight 2: Decouple "physics" from "control." Dynamics Prior learns shared physics, MoE Action Head learns per-robot control. This is a clean inductive bias that aligns with how we actually think about manipulation.

Insight 3: Static routing is sufficient. Instead of complex learned gating (as in LLM-style MoE), simple static routing based on embodiment metadata works just as well — because we're not routing between tasks, only distinguishing embodiments.

Limitations and Future Directions

The paper acknowledges several limitations:

  • Limited embodiment scale: 3 embodiments in real-world (FR3, COBOT, G1). Scaling to 10-20 embodiments untested.
  • K=3 experts works for 3 embodiments but needs more experts as embodiment count grows.
  • RoboCasa-GR1 at 59.25% — humanoid manipulation remains hard, especially for tasks requiring good balance.
  • Inference speed: No real-time Hz numbers reported — 4 Euler steps through a 16-layer diffusion Transformer may still be too slow for some applications.

Promising future directions:

  • Add sim data (Isaac Lab, MuJoCo) to increase dynamics diversity
  • Extend to mobile manipulation (wheel + arm)
  • Combine with Diffusion Policy approaches for more efficient action heads

Conclusion

DyPES-VLA is a clear step forward in cross-embodiment manipulation. The key number isn't 98% LIBERO (a relatively easy benchmark for large models) — it's 75.6% real-world across 3 physically different robots with a single checkpoint.

The two core ideas — learning shared dynamics from video via future prediction, and routing to per-embodiment experts — are building blocks the community will continue developing through 2026-2027.

Paper: arXiv 2608.06374 | Project page: DyPES-VLA Release


Related Posts

  • Qwen-VLA: Multitask Robot Manipulation on LIBERO with 97.9% Success
  • X-VLA ICLR 2026: Cross-Embodiment VLA with LeRobot
  • RDT-2: Zero-Shot Cross-Embodiment Bimanual Manipulation
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

Related Posts

Research
Qwen-VLA: Mô hình VLA generalist của Alibaba
vlaalibabaqwen
wholebody-vla

Qwen-VLA: Mô hình VLA generalist của Alibaba

Khám phá Qwen-VLA — VLA generalist Alibaba dùng Qwen3.5-4B + DiT decoder, một bộ weight cho manipulation, navigation và đa robot dị cấu hình.

6/29/202612 min read
NT
Tutorial
HEX: VLA Toàn Thân Đa Embodiment cho Humanoid
vlawhole-bodyhumanoid
wholebody-vla

HEX: VLA Toàn Thân Đa Embodiment cho Humanoid

Hướng dẫn chi tiết HEX — VLA whole-body manipulation đầu tiên cho humanoid full-size, hỗ trợ 7 embodiment, open-source với Qwen3-VL + MoE + DiT flow-matching.

6/10/202610 min read
NT
Tutorial
X-VLA ICLR 2026: Soft-Prompted VLA 0.9B cho beginner LeRobot
x-vlavlaiclr-2026
wholebody-vla

X-VLA ICLR 2026: Soft-Prompted VLA 0.9B cho beginner LeRobot

Hướng dẫn X-VLA — flow-matching VLA 0.9B đạt SOTA trên 6 sim + 3 robot thật, native LeRobot, code open-source HuggingFace.

5/20/202611 min read
NT
VnRobo logo

AI infrastructure for next-generation industrial robots.

Product

  • Features
  • Pricing
  • Knowledge Base
  • Services

Company

  • About Us
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 VnRobo. All rights reserved.

Made with♥in Vietnam