| name | green-vla-robotics |
| title | Green-VLA: Staged Vision-Language-Action Model for Generalist Robots |
| version | 0.0.2 |
| engine | skillxiv-v0.0.2-claude-opus-4.6 |
| license | MIT |
| url | https://arxiv.org/abs/2602.00919 |
| keywords | ["Vision-Language-Action","Robot Control","Staged Training","Transfer Learning","Action Spaces"] |
| description | Train robot controllers via five-stage curriculum progressing from base vision-language models to embodiment-specific RL-refined policies. Unified action space enables cross-embodiment transfer with minimal performance loss. |
Green-VLA: Staged Robot Learning
Problem
Robot learning typically requires task-specific pretraining and cannot leverage internet-scale vision-language knowledge. Each embodiment requires separate training from scratch.
Cross-embodiment transfer is difficult because robot actions are heterogeneous—different robots have different action dimensions and semantics. Naive action padding creates spurious penalties from unused dimensions.
Core Concept
Green-VLA implements five training stages (L0→L1→R0→R1→R2) that progressively specialize vision-language models to robot control. The key innovation is a unified action space with fixed semantic layout where action index ranges have consistent physical meaning across robots.
This masked training approach eliminates spurious penalties and enables positive transfer between different embodiments.
Architecture Overview
- L0: Base VLM: Start with large vision-language model (foundational knowledge)
- L1: Web Pretraining: Exposure to internet-scale video and multimodal data
- R0: General Robotics Pretraining: 3000+ hours diverse robot demonstrations
- R1: Embodiment-Specific Fine-Tuning: Supervised fine-tuning on target robot data
- R2: RL Alignment: Reinforcement learning for long-horizon task improvement
- Unified Action Space: Semantic layout with consistent meaning across embodiments
Implementation
Step 1: Build Unified Action Space
Design action space with fixed semantic regions across different robots.
class UnifiedActionSpace:
def __init__(self):
self.action_regions = {
'base_xy': (0, 2),
'base_rotation': (2, 3),
'shoulder': (3, 6),
: (, ),
: (, ),
: (, )
}
.total_dim =
():
mask = np.zeros(.total_dim, dtype=)
embodiment_type == :
mask[.action_regions[]] =
mask[.action_regions[]] =
mask[.action_regions[]] =
mask[.action_regions[]] =
mask[.action_regions[]] =
embodiment_type == :
mask[.action_regions[]] =
mask[.action_regions[]] =
mask[.action_regions[]] =
mask[.action_regions[]] =
mask