| name | robot-r1-embodied-reasoning |
| title | Robot-R1: Reinforcement Learning for Enhanced Embodied Reasoning in Robotics |
| version | 0.0.2 |
| engine | skillxiv-v0.0.2-claude-opus-4.6 |
| license | MIT |
| url | https://arxiv.org/abs/2506.00070 |
| keywords | ["robotics","reinforcement-learning","embodied-reasoning","vision-language-models","spatial-reasoning"] |
| description | Train vision-language models for robotic manipulation using RL to improve embodied reasoning about spatial relationships and movements, achieving 31% improvement on manipulation benchmarks. |
Robot-R1: Reinforcement Learning for Enhanced Embodied Reasoning in Robotics
Core Concept
Robot-R1 addresses a fundamental gap in robotics training: supervised fine-tuning datasets are "often heuristically constructed and not explicitly optimized for improving robot control." The framework applies reinforcement learning to teach vision-language models to reason about spatial relationships, movements, and robot state transformations—enabling embodied reasoning that directly improves manipulation performance.
The innovation reformulates robotic control as discrete QA problems, using RL to optimize reasoning about next keypoint states. This achieves 28% improvement over SFT baselines and 31% improvement on manipulation benchmarks, with a 7B model outperforming GPT-4o on spatial reasoning tasks.
Architecture Overview
- Core Training Paradigm: GRPO (Group Relative Policy Optimization) optimizes waypoint prediction through explicit reasoning
- Task Discretization: Reformulates continuous action spaces as multiple-choice QA: predicting next robot states from visual observations
- Three Complementary Objectives: Waypoint prediction, current state identification, and movement description
- Reward Combination: Format rewards (proper output structure) + correctness rewards (exact match evaluation)
- Vision-Language Base: Built on Qwen2.5-7B-VL-Instruct, encoding visual observations of robot scenes
Implementation
- Dataset Generation: Create training data from RLBench simulation environment (50 demonstrations per task, 224×224 resolution)
def generate_qa_from_demonstration(demo_trajectory, task_id):
"""
Convert robot trajectory into spatial reasoning QA pairs.
Generates waypoint, state, and movement prediction questions.
"""
frames = demo_trajectory['frames']
waypoints = demo_trajectory['keypoints']
qa_pairs = []
for i in range(len(frames) - 1):
question = f"Next robot state after seeing: "
options = [waypoints[i+], random_waypoint(), random_waypoint()]
qa_pairs.append({: question, : options})
i ((frames)):
question =
options = [waypoints[i], random_waypoint(), random_waypoint()]
qa_pairs.append({: question, : options})
i ((frames) - ):
movement = describe_direction(waypoints[i], waypoints[i+])
qa_pairs.append({: question, : movement})
qa_pairs