Skip to the lesson
FixTheRobot Home / VLA / Phase 5 / 5.3

VLA · Phase 5 · Foundational VLA Research

5.3 — Open X-Embodiment

A shared dataset and collaboration pooling demonstrations from many robots.

  • Roadmap phase 5
  • Foundational VLA Research
  • About 11 minutes to read

Open X-Embodiment gathered robot data from 21 institutions into one place. This lesson explains what that took, why pooled data can help, and how mismatched data can hurt.

Claims about papers, models and textbooks carry numbered references, listed with what each one is cited for in the References. Code marked “Toy model” is our own illustration, not the cited system.

Learning objectives

After this lesson, you should be able to:

  • State the scale of Open X-Embodiment.
  • Explain why datasets must be harmonised before pooling.
  • Describe positive transfer between robots.
  • Explain the risk of unharmonised data.
  1. Many labs record data in their own formats
  2. Convert to a shared format and common units
  3. Pool into one dataset
  4. Train one model on all of it
  5. Evaluate on individual robots to check for transfer
Pooling robot data.

The one-sentence idea

Many small datasets, made comparable, add up to one large one.

Pooling only helps if the data mean the same thing.

One dataset from many labs

Every robot lab used to collect its own data in its own format for its own robot. Open X-Embodiment was a collaboration to pool them. The released data contain more than a million robot trajectories from 22 robot embodiments, assembled by 21 institutions and covering 527 skills.[1] The authors trained a high-capacity model, RT-X, on the pooled data and report positive transfer: it improves several robots using experience from other platforms.[1] For the paper’s tables, a re-check of its numbers and a critical review, see the Open X-Embodiment paper guide[1]; for a dataset that is deliberately single-robot but spread over 564 scenes, see the DROID paper guide.[2]

That is the argument for “generalist” robot policies: a robot with little data of its own could borrow from others. The hard part is making very different datasets mean the same thing.

Making datasets speak the same language

Imagine two labs. Lab A records the hand position in metres at 5 Hz; lab B records it in millimetres at 10 Hz. Before pooling, you must convert units and bring both to a common rate. RLDS exists for exactly this kind of work: a toolkit for recording, replaying, editing and sharing data for sequential decision making, built around a standardised, lossless format.[3] Here is the conversion, step by step:

import numpy as np

# Lab A: metres, 5 steps per second.  Lab B: millimetres, 10 steps per second.
a_times = np.arange(0, 2.0, 1/5);  a_pos = 0.10 * a_times            # moving at 0.10 m/s
b_times = np.arange(0, 2.0, 1/10); b_pos_mm = 150 * b_times           # moving at 150 mm/s

# common format: metres, 5 steps per second
b_pos = b_pos_mm / 1000.0                                             # convert units
b_pos_5hz = np.interp(a_times, b_times, b_pos)                        # resample to lab A's times

print("lab A speed (m/s):", round(float(np.diff(a_pos).mean() / (1/5)), 3))
print("lab B speed, raw numbers per step:", round(float(np.diff(b_pos_mm).mean()), 1), "(mm per step, 10 Hz)")
print("lab B speed after conversion (m/s):", round(float(np.diff(b_pos_5hz).mean() / (1/5)), 3))

Output:

lab A speed (m/s): 0.1
lab B speed, raw numbers per step: 15.0 (mm per step, 10 Hz)
lab B speed after conversion (m/s): 0.15

Toy model. Two imaginary labs and straight-line motions. Real harmonisation also has to align camera views, action definitions (lesson 4.1) and instructions.

Without the conversion, one of lab B’s steps is the number 15 where lab A’s equivalent step is 0.02: a model sees values hundreds of times too large. The same trap as the wrong statistics in lesson 4.3.

Why pooling can help, and how it can hurt

Suppose robot A has only 4 demonstrations of a reaching task, while robot B has 500 of the same task. If their data are made comparable, B’s data teach A’s model the common structure. If they are not, B’s data are confusing noise:

import numpy as np
rng = np.random.default_rng(0)

def demos(n, unit):                                               # action = 0.3 * (goal - hand), recorded in some unit
    X = rng.uniform(-1, 1, (n, 2))                                # goal minus hand
    Y = 0.3 * X * unit + rng.normal(0, 0.1 * unit, (n, 2))
    return X, Y

def fit(X, Y):  return np.linalg.lstsq(X, Y, rcond=None)[0]

def test_error(W):
    X, Y = demos(2000, 1.0)
    return float(np.mean((X @ W - Y) ** 2))

XA, YA = demos(4, 1.0)                                            # robot A, only four demonstrations
XB, YB = demos(500, 1.0)                                          # robot B, same units after harmonising
XC, YC = demos(500, 1000.0)                                       # robot B's data in millimetres, not converted

print("A alone (4 demos):               ", round(test_error(fit(XA, YA)), 5))
print("A + B, harmonised (504 demos):    ", round(test_error(fit(np.vstack([XA, XB]), np.vstack([YA, YB]))), 5))
print("A + B, raw millimetres (504 demos):", round(test_error(fit(np.vstack([XA, XC]), np.vstack([YA, YC]))), 1))

Output:

A alone (4 demos):                0.01747
A + B, harmonised (504 demos):     0.00979
A + B, raw millimetres (504 demos): 30458.5

Toy model. A shared linear rule and a unit mismatch. The lesson is qualitative: shared structure lets small datasets borrow strength, but only when the data mean the same thing.

Harmonised pooling cuts the error from 0.017 to 0.0098, which is about the noise level of the data themselves (0.1² = 0.01); unharmonised pooling destroys the model. The Open X-Embodiment authors report the positive case for their data;[1] but each result is for particular robots and tasks, and it is not a guarantee for any robot you may have.

Why it matters for VLAs

Large VLAs need large data. OpenVLA was trained on 970,000 real-world robot demonstrations,[4] and part of what makes such numbers reachable is that datasets like this exist. The X-embodiment idea also raises a question that returns in lesson 11.3: how a single policy should handle robots with different bodies.

Common misconceptions

Misconception 1 “Just concatenate all the data.”

Correction Units, rates and action definitions must match first. In the toy, unconverted data destroyed the model.

Misconception 2 “Pooled data always helps every robot.”

Correction The paper reports positive transfer for the robots and tasks it tested.

Misconception 3 “More robots means a single obvious action space.”

Correction Action definitions differ and have to be reconciled.

Engineering takeaways

  1. 1M+ trajectories, 22 embodiments, 21 institutions.
  2. Harmonise units, rates and formats.
  3. Positive transfer was reported.
  4. Mismatched data can hurt.

Same words, same units, then pool.

Knowledge check

Try each question first, then reveal the explanation.

Question 1

How many robot embodiments are in Open X-Embodiment?

Explanation

22.

Question 2

Data in millimetres are mixed with data in metres. What goes wrong?

Explanation

The numbers differ by 1,000×, so the model fits nonsense.

Question 3

What is “positive transfer”?

Explanation

Training on other robots’ data improves a robot’s performance.

References

Numbered notes in the text, like [1], point here. Each entry says what it is cited for and how that was checked. Papers and books can be revised or misread, so follow the links before relying on a detail. Code marked “Toy model” is our own illustration of an idea, not the code of the cited system.

  1. Open X-Embodiment Collaboration (2023). Open X-Embodiment: Robotic learning datasets and RT-X models. arXiv:2310.08864

    Cited for:

    • Pools more than one million robot trajectories from 22 robot embodiments, assembled by 21 institutions and covering 527 skills. Checked against the paper’s abstract.
    • A high-capacity model (RT-X) trained on the pooled data shows positive transfer, improving several robots using experience from other platforms. Checked against the paper’s abstract.
    • On five small datasets RT-1-X trained on the pooled mixture averages 63% against 41% for the original methods and 44% for RT-1 trained on each dataset alone; on the large Bridge and RT-1 datasets RT-1-X does not beat RT-1, and RT-2-X reaches 50, 30 and 91; on emergent skills RT-2-X scores 75.8% against 27.3% for RT-2; about 3,600 trials over 6 robots are reported without per-result counts. Checked against the full text of the paper (arXiv v2 PDF), read sentence by sentence.
  2. Khazatsky, A., Pertsch, K., Nair, S., Balakrishna, A., et al. (2024). DROID: A large-scale in-the-wild robot manipulation dataset. arXiv (v2, April 2025). arXiv:2403.12945

    Cited for:

    • 76 thousand successful demonstration trajectories, about 350 hours, collected in 564 scenes in 52 buildings with 86 distinct task verbs by 50 data collectors at 13 institutions over 12 months; each episode has three synchronised camera streams, camera calibration, depth and one to three natural-language instructions. Checked against the full text of the paper (arXiv v2 PDF), read sentence by sentence.
  3. Ramos, S., et al. (2021). RLDS: an ecosystem to generate, share and use datasets in reinforcement learning. arXiv. arXiv:2111.02767

    Cited for:

    • A toolkit for recording, replaying, editing, annotating and sharing data for sequential decision making (including learning from demonstrations and imitation learning), built around a standardised, lossless data format. Checked against the paper’s abstract.
  4. Kim, M. J., et al. (2024). OpenVLA: An open-source vision-language-action model. Conference on Robot Learning (CoRL) 2024. arXiv:2406.09246

    Cited for:

    • A 7-billion-parameter open-source VLA trained on 970,000 real-world robot demonstrations, built on a Llama 2 language model with a visual encoder that fuses pretrained DINOv2 and SigLIP features. Checked against the paper’s abstract.

What’s next

Next: how web-scale pretraining and robot demonstrations combine in training.

Next lesson

5.4 — Vision-language pretraining and robot demonstration data

How web-scale pretraining and robot data combine in training.

Back to the VLA roadmap