Bimanual Manipulation · VLA Robustness Benchmark

RoboTwin 2.0-Plus

Robustness Testing for Vision-Language-Action Policies via Structured Perturbations

Zhanguang Zhang1, Zhiyuan Li1,2, Behnam Rahmati1, Rui Heng Yang1, Yintao Ma1, Amir Rasouli1, Sajjad Pakdamansavoji1, Yangzheng Wu1, Lingfeng Zhang1, Tongtong Cao1, Feng Wen1, Xinyu Wang1, Xingyue Quan1, Yingxue Zhang1

1 Huawei Technologies    2 University of Toronto

Abstract

Robustness is a prerequisite for deploying Vision-Language-Action (VLA) and World Action Model (WAM) policies beyond the conditions they were trained in. RoboTwin 2.0-Plus is the benchmark introduced in our study Do World Action Models Generalize Better than VLAs? A Robustness Study — a structured perturbation suite of seven perturbation dimensions spanning twenty-one sub-dimensions — a clean baseline plus twenty perturbation sub-dimensions — across object layout, background texture, lighting, camera viewpoint, robot initial state, language instruction, and sensor noise. Built on the RoboTwin 2.0 bimanual manipulation platform (two-arm Aloha-Agilex embodiment), every perturbation is applied per episode through a single declarative configuration and is fully backward compatible: features activate only when their keys are present, so existing configs behave identically. The result is a reproducible protocol for measuring how a policy's success degrades — one clean baseline plus seven perturbation branches over all fifty tasks.

Perturbation Suite

Seven dimensions, twenty-one sub-dimensions

Clean baseline head-camera view
Baseline

Clean

Deterministic layout, default lighting and camera, original instructions.

demo_clean
Sensor-noise perturbed view
Sensor Noise

Photometric noise

Motion, gaussian, zoom, glass blur, and fog on camera observations.

N1N2N3N4N5
Lighting perturbed view
Lighting

Light conditions

Diffuse color, direction, specular highlights, and shadow toggling.

L1L2L3L4
Camera-viewpoint perturbed view
Camera

Viewpoints

Head-camera viewpoint: distance (C1) and orientation (C3); spherical position (C2) off by default.

C1C2C3
Robot initial-state perturbed view
Robot

Initial state

Gaussian noise on initial joint angles plus gripper extremes.

σ = 0.1 rad
Background perturbed view
Background

Scene textures

Wall, floor, and table textures, colors, and surface materials.

B1B2
Objects-layout perturbed view
Objects

Layout & pose

Task-irrelevant distractor objects and target-object pose noise.

O1O2
Language perturbed view
Language

Instructions

Distraction, common-sense rewording, and reasoning-chain rephrasing.

R1R2R3
Figure 1. Example head-camera observations for the clean baseline and each perturbation dimension. The 21-sub-dimension taxonomy is fully implemented — the clean baseline plus 20 perturbation sub-dimensions (19 active by default; C2 disabled for stability).

Usage

Quick start

Data collection uses a single command pattern. A GPU is required.

# bash collect_data.sh <task_name> <config_name> <gpu_id>

# Clean baseline — no perturbation
bash collect_data.sh beat_block_hammer demo_clean 0

# A perturbation branch, e.g. lighting (L1–L4)
bash collect_data.sh beat_block_hammer demo_light 0

Install with bash script/_install.sh, then download assets with bash script/_download_assets.sh. See the README for the full setup.

Evaluation Protocol

One baseline, seven branches

A full evaluation uses 8 configs per task: one clean baseline plus seven perturbation branches. Each branch activates exactly one dimension while holding the others at their clean defaults, isolating its effect on policy performance. Each config runs 50 episodes per task, across all 50 RoboTwin 2.0 dual-arm tasks.

Table 1. The eight evaluation configs — one clean baseline and seven single-dimension branches.
#ConfigPerturbationActive sub-dimensions
0demo_cleanNone (clean baseline)
1demo_vision_noiseSensor NoiseN1–N5 (cycled per episode)
2demo_lightLightingL1 (always) + L2 / L3 / L4 (stochastic)
3demo_cameraCamera ViewpointsC1 + C3 (C2 disabled by default)
4demo_robot_stateRobot Initial StateJoint noise + gripper extremes
5demo_background_plusBackgroundB1 (texture + color tint) + B2
6demo_objects_plusObjects LayoutO1 (variable count) + O2 (pose)
7demo_language_plusLanguageR1 + R2 + R3 (combined)

Perturbation taxonomy. Each dimension decomposes into sub-dimensions, individually configurable via YAML flags for combined or ablation-style evaluation. Table 2 lists all 20 perturbation sub-dimensions with implementation-level parameters.

Table 2. RoboTwin 2.0-Plus perturbation taxonomy — the 20 perturbation sub-dimensions across 7 dimensions (21 with the clean baseline), with parameter details.
DimensionCodeSub-dimensionImplementation details
Sensor NoiseN1Motion blurGaussian kernel (r ∈ [3, 15], σ ∈ [1, 8]), rotated by a random angle ∈ [−30°, 30°]
N2Gaussian blurIsotropic Gaussian (σ ∈ [1, 10])
N3Zoom blurMulti-scale warp accumulation (s ∈ [1.0, 1.56], step ∈ [0.01, 0.03])
N4FogHomogeneous white fog with transmittance e−αd (α ∈ [0.3, 1.5], d = 3)
N5Glass blurPixel displacement (δ ∈ [1, 5] px) + Gaussian (σ ∈ [0.5, 2.5]), 1–3 iterations
Light ConditionsL1Diffuse colorPer-channel RGB tint ∈ [0.0, 3.5] applied to all directional and point lights (always on)
L2DirectionSpherical re-sampling: θ ∈ [8°, 82°], φ ∈ [0, 2π]; 35% chance of dramatic side lighting (θ ∈ [68°, 82°]). Linked with L4
L3SpecularMaterial specular strength ∈ [0.3, 6.0], shininess ∈ [10, 250]; all scene actors (50% chance per episode)
L4ShadowsDirectional-light shadow on/off (50% chance); co-activated with L2
Camera ViewpointsC1DistanceDistance scaling ∈ [0.85, 1.0] × original (head camera only)
C2Spherical positionAzimuth / elevation ± 10° + ± 10% distance variation (disabled by default)
C3OrientationYaw / pitch / roll each ∈ [0°, 5°] with random sign
Robot Init StatesJoint perturbationGaussian noise (std = 0.1 rad, clip ± 0.225 rad) on all joints of both arms; gripper set to extreme (0.05 or 0.95) with p = 0.25
Background TexturesB1Scene themeWall + floor RGB color tint, per-channel multiplier ∈ [0.4, 1.8]; combined with upstream texture swap
B2Surface appearanceTable material: metallic ∈ [0.0, 0.8], roughness ∈ [0.05, 0.95], per-channel color tint ∈ [0.4, 1.8]
Objects LayoutO1Distractor objectsVariable count per episode (3–15 objects, vs. fixed 10 in upstream)
O2Target posePosition: Gaussian noise (σ = 2 cm, x/y only); orientation: uniform yaw ± 15°
Language InstructionsR1DistractionIrrelevant conversational wrapping (~30% of combined episodes)
R2Common-sense rewordingObject names → functional descriptions, verb synonyms (~50%)
R3Reasoning chainImperative → goal-state / outcome description (~20%)

Citation

Citing RoboTwin 2.0-Plus

If you use RoboTwin 2.0-Plus, please cite our paper along with RoboTwin 2.0.

@article{zhang2026worldaction, title = {Do World Action Models Generalize Better than VLAs? A Robustness Study}, author = {Zhang, Zhanguang and Li, Zhiyuan and Rahmati, Behnam and Yang, Rui Heng and Ma, Yintao and Rasouli, Amir and Pakdamansavoji, Sajjad and Wu, Yangzheng and Zhang, Lingfeng and Cao, Tongtong and Wen, Feng and Wang, Xinyu and Quan, Xingyue and Zhang, Yingxue}, journal = {arXiv preprint arXiv:2603.22078}, year = {2026} }