Skip to the lesson
FixTheRobot Home / VLA / Phase 1 / 1.1

VLA · Phase 1 · Introduction to VLA

1.1 — What Is Physical AI?

AI that perceives, decides and acts in the physical world, and why that is harder than software-only AI.

  • Roadmap phase 1
  • Introduction to VLA
  • About 15 minutes to read

Before vision-language-action models, a more basic question: what is different about an AI system that has a body? This lesson gives a working definition and five concrete reasons that physical AI is harder than software-only AI. Each reason comes with sources and a small experiment you can run and change.

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 what makes an AI system “physical” using the perceive–decide–act loop.
  • Explain how noisy sensing and imperfect actuation make a fixed plan fail.
  • Compute how far the world moves between two decisions of a slow model.
  • Explain why robot data is slow and expensive to collect.
  • Explain the sim-to-real gap and the idea behind domain randomization.
  • Name the main open problems that foundation models for robotics face.
  1. Sensors measure the world, with noise
  2. The system decides what to do
  3. Actuators carry out the command, imperfectly
  4. The world changes, and may not wait
  5. The loop repeats, and mistakes have consequences
The perceive–decide–act loop. Each arrow is a place where the physical world can disagree with the software.

The one-sentence idea

A physical AI system closes its loop through the real world, where sensing and acting are uncertain, time keeps running, data is costly and mistakes have consequences.

The world does not follow the model’s plan, so the system has to cope.

A working definition

“Physical AI” is a recent label and different sources draw its boundary in different places, so this course states the meaning it uses instead of assuming one. The idea underneath is much older: an agent is anything that perceives its environment through sensors and acts on that environment through actuators.[1] In this course, physical AI means an AI system whose perceive–decide–act loop runs through the physical world: its inputs are measurements from sensors such as cameras and joint encoders, its outputs are commands to motors, and what it does changes the world it will measure next.

A robot arm, a self-driving car and a drone are examples. A chatbot is not, because its input and output are text and its mistakes do not move anything. Recent surveys describe how large pretrained “foundation” models are being used to improve the perception, decision-making and control parts of robots,[2] and the models you will study in this roadmap, vision-language-action (VLA) models, are one result of that work.

The loop, in code

Here is the whole idea as a few lines of Python: an environment with a hidden true state, a sensor that reports it imperfectly, a decision rule, and an actuator that carries out the command imperfectly. The task is to move a hand along one axis to a goal at 1.0.

import numpy as np

rng = np.random.default_rng(0)

class World:
    """The hidden truth: where the hand really is."""
    def __init__(self):
        self.pos = 0.0

def sense(world, noise):
    return world.pos + rng.normal(0, noise)          # a sensor reports the position imperfectly

def act(world, command, noise):
    world.pos += command + rng.normal(0, noise)       # an actuator moves the hand imperfectly

world = World()
for step in range(5):
    seen = sense(world, noise=0.0)                    # perceive (a perfect sensor, for now)
    command = 0.5 * (1.0 - seen)                      # decide: step halfway to the goal
    act(world, command, noise=0.0)                    # act (a perfect actuator, for now)
    print(step, round(world.pos, 3))

Output:

0 0.5
1 0.75
2 0.875
3 0.938
4 0.969

Toy model. The world, sensor and decision rule here are made up so the loop is easy to see. They are not any real robot.

With perfect sensing and perfect actuation the hand closes in on the goal, halving the remaining distance each step. This is the situation a purely software system is in: what it computes is what happens. The rest of the lesson is about what changes when the sensor and the actuator are not perfect.

Why it is harder (1): sensing and acting are uncertain

A physical system never sees the true state, only measurements of it, and it never executes a command exactly. Probabilistic robotics treats both as uncertain: sensor measurements are noisy, and robot motion is uncertain, so the robot has to estimate its state from imperfect evidence.[3] The formal setting for choosing actions when the state is only partly observable is the partially observable Markov decision process (POMDP).[4]

The effect is easy to measure. Below, the same plan, take twenty equal steps to the goal, is run many times, once with a perfect actuator and then with actuator noise. “Success” means ending within 0.05 of the goal:

def run_plan(actuator_noise, steps=20, goal=1.0, tol=0.05):
    pos = 0.0
    for _ in range(steps):
        pos += goal / steps + rng.normal(0, actuator_noise)     # the plan: equal steps, with no looking
    return abs(pos - goal) < tol

for noise in (0.0, 0.01, 0.03, 0.05):
    rate = np.mean([run_plan(noise) for _ in range(2000)])
    print(noise, round(float(rate), 2))

Output:

0.0 1.0
0.01 0.73
0.03 0.3
0.05 0.17

Toy model. This is a made-up one-dimensional task with Gaussian actuator noise. The numbers show a mechanism, not the error rate of any real robot.

With a perfect actuator the plan always works. Each step’s small random error accumulates, so the final error grows roughly with the square root of the number of steps. Noise of 0.03 per step, small next to the 0.05 step length, already makes the plan fail about seven times in ten. Try changing noise, steps and tol and re-running. Lesson 1.5 shows what happens when the robot is allowed to look at the result while it moves.

Why it is harder (2): the world does not wait

A text model can take as long as it needs, because the conversation does not change while it computes. A robot’s world keeps moving. RT-1, an early large robot model, ran at 3 Hz,[5] which means it chose a new action about every third of a second. Whatever the world does in that interval, it does without the model’s attention. The standard tool for coping, feedback, is the central subject of control theory.[6]

rate_hz = 3                                    # RT-1 produced actions at 3 Hz
interval = 1 / rate_hz
for speed in (0.1, 0.3, 1.0):                  # speed of something in the scene, in metres per second
    print(speed, "m/s ->", round(speed * interval * 100, 1), "cm between decisions")

Output:

0.1 m/s -> 3.3 cm between decisions
0.3 m/s -> 10.0 cm between decisions
1.0 m/s -> 33.3 cm between decisions

This is plain arithmetic, distance = speed × time. An object drifting at 0.3 m/s moves 10 cm between two decisions at 3 Hz, which is larger than many things a robot has to grasp. This is why the speed of a model, and not only its accuracy, matters in physical AI, a point that returns in lesson 1.5 and in the evaluation phase.

Why it is harder (3): data comes from slow, costly machines

Language models learn from text that already exists. A robot model needs recordings of robots acting, and those have to be made. A large grasping study collected about 800,000 grasp attempts over two months, using between 6 and 14 robots at a time.[7] RT-1 was trained on about 130,000 episodes covering more than 700 tasks, collected by 13 robots over 17 months.[5] Partly for this reason, labs have started pooling data: the Open X-Embodiment collaboration assembled more than a million trajectories from 22 robot types contributed by 21 institutions.[8]

attempts = 800_000
days = 60                                       # "two months", taken as 60 days
for robots in (6, 14):
    print(robots, "robots ->", round(attempts / (robots * days)), "attempts per robot per day")

Output:

6 robots -> 2222 attempts per robot per day
14 robots -> 952 attempts per robot per day

This is our own arithmetic from the figures in the abstract, so treat “60 days” as approximate. It shows that even a fleet of robots working around the clock produces on the order of a thousand attempts per robot per day, and that figure is for a simple, repeatable task. Compare that with the web text a language model reads.

Why it is harder (4): simulation is not the real world

Training in simulation is cheap and safe, but a policy that works in simulation can perform worse on real hardware because the two environments differ. This is the “reality gap”, and surveys catalogue the main responses: domain randomization, domain adaptation, imitation learning, meta-learning and knowledge distillation.[9] Domain randomization randomises the simulator so that, as its authors argue, with enough variability the real world looks like just another variation. In one early study a detector trained only on simulated images with random, non-realistic textures localised real objects to about 1.5 cm.[10]

The toy below shows the logic. A classifier must tell whether an object is present from two brightness readings, one over the object’s location and one over empty background. If the simulator always uses the same lighting, the background reading carries no information, so the classifier ignores it and learns a fixed brightness threshold. Real lighting then varies and that threshold fails. If the simulator randomises the lighting, the classifier is forced to use the background reading as a reference, and it still works when lighting changes:

def make_data(n, lighting_low, lighting_high):
    present = rng.integers(0, 2, n)
    light = rng.uniform(lighting_low, lighting_high, n)
    region = light + 0.3 * present + rng.normal(0, 0.02, n)   # brightness over the object's location
    background = light + rng.normal(0, 0.02, n)               # brightness over empty background
    return np.column_stack([region, background, np.ones(n)]), 2 * present - 1.0

def fit(X, y):
    w, *_ = np.linalg.lstsq(X, y, rcond=None)                  # a linear classifier fitted by least squares
    return w

def accuracy(w, X, y):
    return float(np.mean(np.sign(X @ w) == y))

X_real, y_real = make_data(5000, 0.2, 0.8)                     # "the real world": lighting varies a lot
for name, lo, hi in (("fixed lighting in simulation", 0.5, 0.5), ("randomised lighting in simulation", 0.2, 0.8)):
    X_sim, y_sim = make_data(5000, lo, hi)
    w = fit(X_sim, y_sim)
    print(name, "| simulation:", round(accuracy(w, X_sim, y_sim), 2), "| real:", round(accuracy(w, X_real, y_real), 2))

Output:

fixed lighting in simulation | simulation: 1.0 | real: 0.75
randomised lighting in simulation | simulation: 1.0 | real: 1.0

Toy model. The two “cameras”, the lighting and the classifier are invented for this example. Real domain randomization changes the appearance and physics of a full simulator, as in the cited work.

Both versions are perfect inside the simulation, which is the trap: a perfect simulation score says little about the real world. Only the version trained on varied lighting keeps working when the lighting changes.

Why it is harder (5): mistakes have consequences

A wrong answer from a chatbot can be re-generated. A wrong motion can break an object, a robot or a person. A survey of foundation models in robotics names, among the main open problems, the scarcity of robot-relevant training data, safety guarantees and uncertainty quantification, and real-time execution.[2] Each of the reasons above feeds into these three. Nothing in this roadmap removes the problem, so the later phases keep returning to evaluation, safety monitors and fallback behaviour.

The difficulty is not a new discovery. The roboticist Hans Moravec observed in 1988 that it is comparatively easy to make computers exhibit adult-level performance on intelligence tests or at checkers, and difficult or impossible to give them the perception and mobility skills of a one-year-old.[11] Rodney Brooks argued in 1990 that intelligence should be built on, and tested against, sensing and acting in the physical world, instead of on symbolic models of it alone.[12] Today’s VLA models are a recent attempt to meet that challenge with large-scale learning.[13]

Common misconceptions

Misconception 1 “Physical AI is just a language model attached to a robot.”

Correction A language model deals in text. A physical system must also turn noisy measurements into a picture of the state and turn decisions into motions, under time limits. Those are separate problems even when a large model helps with them.

Misconception 2 “If the plan is right, the robot will succeed.”

Correction Small errors in each step accumulate. In the experiment a correct plan failed about seven times in ten with modest actuator noise.

Misconception 3 “A policy that is perfect in simulation is nearly done.”

Correction Performance in simulation says little about the real world when the two differ. The toy classifier scored 1.0 in simulation and 0.75 on real data.

Misconception 4 “The difficulty of physical AI is a new problem created by large models.”

Correction It is an old problem. Moravec and Brooks described the difficulty of perception and mobility decades ago. Large models change the tools available, not the nature of the problem.

Engineering takeaways

  1. An agent perceives through sensors and acts through actuators. Physical AI closes that loop through the real world.
  2. Sensing is noisy and partial, and actions are imprecise, so errors accumulate unless something corrects them.
  3. The world keeps moving while a slow model decides: distance equals speed times time.
  4. Robot data comes from slow, costly machines, which is why datasets are pooled.
  5. A simulator that differs from reality can give a policy that fails on hardware, and randomizing the simulator is one response.
  6. Mistakes can break things, so safety and evaluation are part of the problem.
  7. Surveys list data scarcity, safety and uncertainty, and real-time execution as the main open problems.
  8. VLA models are a recent attempt to address these problems with large-scale learning.

Physical AI is AI that has to get it right in a world that does not wait and does not repeat itself exactly.

Knowledge check

Try each question first, then reveal the explanation.

Question 1

A plan of 25 equal steps is run on an actuator that adds independent random error of standard deviation 0.02 to every step. What is the standard deviation of the final position error, and why?

Explanation

0.1. Independent errors add in variance, so the total variance is 25 × 0.02² and the standard deviation is √25 × 0.02 = 5 × 0.02 = 0.1. The error grows with the square root of the number of steps (see the probability lesson M1.3).

Question 2

A model runs at 5 Hz and something in the scene moves at 0.4 m/s. How far does it move between two decisions?

Explanation

8 cm. The interval is 1/5 = 0.2 s, and 0.4 m/s × 0.2 s = 0.08 m.

Question 3

In the lighting toy, why does a classifier trained with fixed lighting fail on real data even though it scores perfectly in simulation?

Explanation

Because in the simulation the background reading never varies, so the classifier learned to rely on the object’s brightness alone. When real lighting changes that brightness, the learned threshold no longer separates the cases. Randomising the lighting in training removes the shortcut.

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. Russell, S. and Norvig, P. (2021). Artificial Intelligence: A Modern Approach, 4th edition. Pearson.

    Cited for:

    • An agent is anything that perceives its environment through sensors and acts on that environment through actuators. Checked against the textbook (a standard definition, not re-read line by line for this lesson).
  2. Firoozi, R., et al. (2023). Foundation Models in Robotics: Applications, Challenges, and the Future. arXiv:2312.07843

    Cited for:

    • Reviews how large pretrained (foundation) models are used to improve robot perception, decision-making and control. Checked against the paper’s abstract.
    • Names scarcity of robot-relevant training data, safety guarantees and uncertainty quantification, and real-time execution as the main open problems. Checked against the paper’s abstract.
  3. Thrun, S., Burgard, W. and Fox, D. (2005). Probabilistic Robotics. MIT Press.

    Cited for:

    • Robot sensing and motion are both uncertain, and the book models both probabilistically (sensor models in chapter 6, motion models in chapter 5) and estimates the state with Bayes filters (chapter 2). Checked against the textbook (a standard definition, not re-read line by line for this lesson).
  4. Kaelbling, L. P., Littman, M. L. and Cassandra, A. R. (1998). Planning and acting in partially observable stochastic domains. Artificial Intelligence, 101(1–2), 99–134.

    Cited for:

    • Presents the partially observable Markov decision process (POMDP) framework for choosing actions when the state of the world can only be observed indirectly. Checked against the publication record.
  5. Brohan, A., et al. (2022). RT-1: Robotics Transformer for real-world control at scale. arXiv:2212.06817

    Cited for:

    • A model of about 35 million parameters that runs at 3 Hz. Checked against the authors’ own blog post.
    • Trained on about 130,000 episodes covering more than 700 tasks, collected by 13 robots over 17 months. Checked against the authors’ own blog post.
  6. Åström, K. J. and Murray, R. M. (2021). Feedback Systems: An Introduction for Scientists and Engineers, 2nd edition. Princeton University Press. ISBN 978-0691193984

    Cited for:

    • Feedback, using a measurement of the output to adjust the input, is the central subject of the book; a system without that measurement is called open loop. Checked against the textbook (a standard definition, not re-read line by line for this lesson).
  7. Levine, S., et al. (2016). Learning hand-eye coordination for robotic grasping with deep learning and large-scale data collection. arXiv:1603.02199

    Cited for:

    • About 800,000 grasp attempts were collected over two months, using between 6 and 14 robot manipulators at a time. Checked against the paper’s abstract.
  8. 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.
  9. Zhao, W., Queralta, J. P. and Westerlund, T. (2020). Sim-to-real transfer in deep reinforcement learning for robotics: a survey. IEEE Symposium Series on Computational Intelligence (SSCI) 2020. arXiv:2009.13303 · doi:10.1109/SSCI47803.2020.9308468

    Cited for:

    • Policies trained in simulation can perform worse on real hardware because simulated and real environments differ (the reality gap); the survey covers domain randomization, domain adaptation, imitation learning, meta-learning and knowledge distillation as responses. Checked against the paper’s abstract.
  10. Tobin, J., Fong, R., Ray, A., Schneider, J., Zaremba, W. and Abbeel, P. (2017). Domain randomization for transferring deep neural networks from simulation to the real world. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) 2017. arXiv:1703.06907

    Cited for:

    • A detector trained only on simulated images with randomised, non-realistic textures localised real objects to about 1.5 cm; the argument is that with enough variability in the simulator the real world looks like just another variation. Checked against the paper’s abstract.
  11. Moravec, H. (1988). Mind Children: The Future of Robot and Human Intelligence. Harvard University Press.

    Cited for:

    • It is comparatively easy to make computers exhibit adult-level performance on intelligence tests or at checkers, and difficult or impossible to give them the perception and mobility skills of a one-year-old. Checked against the textbook (a standard definition, not re-read line by line for this lesson).
  12. Brooks, R. A. (1990). Elephants don’t play chess. Robotics and Autonomous Systems, 6, 3–15.

    Cited for:

    • Argues that intelligence should be built on, and tested against, sensing and acting in the physical world (physical grounding) instead of on symbolic world models alone. Checked against the textbook (a standard definition, not re-read line by line for this lesson).
  13. Brohan, A., et al. (2023). RT-2: Vision-language-action models transfer web knowledge to robotic control. Conference on Robot Learning (CoRL) 2023. arXiv:2307.15818

    Cited for:

    • Introduces the name vision-language-action (VLA) models for vision-language models co-fine-tuned on robot trajectories and Internet-scale vision-language tasks. Checked against the paper’s abstract.
  14. Sutton, R. S. and Barto, A. G. (2018). Reinforcement Learning: An Introduction, 2nd edition. MIT Press. ISBN 978-0262039246

What’s next

You now have a working picture of physical AI and why it is hard. Next is one specific kind of model built for it: the vision-language-action model.

Next lesson

1.2 — What is a Vision-Language-Action model?

A model that maps camera images and a language instruction directly to robot actions.

Back to the VLA roadmap