Sep 5, 2026 · embodied-ai · robotics · machine-learning · choosing-tools
Embodied AI vs Robotics: Same Thing or Not?
Not the same thing. Embodied AI is where a robot's behaviour comes from; robotics is the whole machine underneath, and that half eats the calendar.
No — embodied AI and robotics are not the same thing: embodied AI names where behaviour comes from, robotics is the whole machine underneath. The learned model decides the next move; something still has to read sensors on time and stop the arm before it hits the table, which is what ROS 2 and HORUS exist for. The distinction stops mattering when a vendor ships you a finished machine. The rest of this post is for machine learning engineers picking what to build a real robot on, and for teams unsure which half they are stuck in.
You have a policy that works. On held-out episodes it picks sensible actions, the loss curve looks like the papers, and the demonstration videos are convincing enough that somebody asked when it goes on hardware. So you order an arm, and within a fortnight the project you thought you were running has been replaced by a different one.
The camera driver needs a version of a library that fights with your training environment. The arm's SDK is a C++ header and a PDF. Somebody has to decide what happens when a frame does not arrive, and nobody wrote that down. Your script works beautifully for eleven minutes and then the gripper stops responding and you cannot tell whether the model, the driver or the USB cable is at fault.
Meanwhile the model has not improved in three weeks, because nobody has had time to touch it. You start hearing two different vocabularies in the same meeting — one about checkpoints and evaluation, one about launch files and message types — and you are no longer sure which discipline you are supposed to be practising, which one is on the critical path, or who you should be hiring next.
Are embodied AI and robotics the same thing?
No. Embodied AI is a way of producing a robot's behaviour, and robotics is the whole business of making a physical machine act on the world. The two overlap almost completely in the popular telling and barely at all in the day-to-day work. An embodied AI project and a robotics project can sit in the same lab, use the same arm, and spend their weeks on entirely different problems: one on what the machine should do next, the other on whether the gripper reports closed when there is nothing in it. Where the confusion costs money is in planning. A team that thinks it is doing embodied AI budgets for data collection, training runs and evaluation, then loses a quarter to driver work, timing problems and safety wiring nobody wrote a proposal for. A team that thinks it is doing classical robotics budgets for none of the learning and discovers that the behaviour it wants cannot be written down as rules. Almost every real project is both. The useful question is not which label fits, but which half your machine is going to punish you for underestimating.
What does embodied AI actually mean when you strip out the marketing?
Embodied AI means behaviour that was learned from experience in a body rather than written down as rules by a person. That is the whole of it. The body matters because the learning is grounded in consequences: a model that only ever saw pictures learns what a mug looks like, and a model that has tried to pick mugs up learns that the handle rotates away when you grip it wrong. The term covers a wide spread of work — a policy mapping camera frames straight to joint commands, a large model that reads an instruction and emits a plan, a controller trained in simulation and carried across to hardware. What all of them share is that the interesting behaviour came out of data rather than out of a specification document. What none of them include is the rest of the robot. The camera driver is not learned. The safety stop is not learned, and should not be. The clock deciding when the next command reaches the motor is not learned. Embodied AI is a claim about where decisions come from, and it says nothing about what has to happen for a decision to reach a motor.
What are your actual options for putting a model on a real machine?
There are seven honest options, and choosing between them is mostly a question of how much of the robot you intend to write yourself. You can run everything as one Python program, which is where most policies first meet hardware. You can take a vendor's complete arm and put a model on top of its SDK. You can stay in simulation and ship a paper. You can run inference on a server and send commands over a network. You can buy a learning-first arm kit designed around collecting demonstrations. Or you can pick middleware and treat the robot as several programs that must agree: ROS 2 brings the largest collection of existing robotics code anywhere, while HORUS is an open-source real-time robotics middleware for Rust, Python and C++ in which all three share the same shared-memory ring buffers, so messages between processes on one machine are not serialised — which matters when your model is in Python and your control loop is not. Neither of them runs your model or trains it. Read the table as a description of teams, not a ranking.
| Option | Who it is for | What it assumes you know | When to pick it | When not to |
|---|---|---|---|---|
| One Python program | Researchers moving a first policy onto a small arm | Python and your sensor libraries | Nothing on the machine is judged by its worst moment | A camera and a control loop must both keep time |
| Vendor arm and its SDK | Teams who need motion before they need architecture | The vendor's API and its supported language | The machine should do its documented job with a model on top | You need behaviour the vendor never exposed |
| Simulation and a checkpoint | Research groups whose deliverable is a result | Physics setup, randomisation, evaluation | The paper is the product | Somebody expects the machine to work on a Tuesday |
| ROS 2 | Teams needing mapping, navigation or drivers they did not write | Linux, workspaces, launch files, message types | The robot's value is borrowed packages | One board, one loop, and nobody to maintain a workspace |
| HORUS | Teams whose model, control loop and drivers are separate programs on one machine | Your message shapes and how your loops are scheduled | Python inference and a compiled loop must share camera data on one board | Mapping and navigation packages are the project |
| Offboard inference over a network | Teams whose model will not fit on the robot | Networking, and what the robot does when the link drops | The thinking is slow and the body can afford to wait | Motion must react to what the camera just saw |
| Learning-first arm kit | Individuals learning to collect demonstrations | Teleoperation and data hygiene | You are learning the craft on your own time | The machine must run unattended near people |
What should you pick if you come from machine learning rather than hardware?
Pick the smallest amount of plumbing that lets you keep changing the model, then add structure only when the machine forces you to. A machine learning engineer arriving at robotics has one genuine advantage and one predictable trap. The advantage is that the part that looks hardest from outside — getting a policy to do something sensible — is the part you already know how to iterate on. The trap is assuming everything else is glue. It is not glue; it is most of the calendar. The specific failure is subtle: you will be able to make the robot work while you are watching it, because you restart things, you nudge the arm, you rerun the script when the camera drops out. What you are not building, and what you will eventually need, is a machine that behaves the same when nobody is in the room. So keep your training and evaluation loop exactly as loose as it is today, and be deliberate about one thing only — the boundary between the process that thinks and the process that moves. Get that boundary right early and you can swap models a hundred times. Get it wrong and every model change becomes a plumbing change.
What hardware does an embodied AI project actually need?
An embodied AI project needs a machine that fails safely and a computer that can hold both the model and the control loop without one starving the other. Everything else is negotiable. Start with the arm or base: what you want is a machine that goes limp or halts when told to, has a physical way to cut power, and does not have the reach or force to hurt somebody during the months when your policy is wrong. That single constraint rules out a lot of impressive hardware. Then the computer. A learned policy usually wants an accelerator; a control loop usually wants to be left alone. Putting both on one small board is normal and workable, and it is also where projects discover that inference and timing are competing for the same machine. The tell is a robot that moves smoothly until the model is asked to think, then hesitates mid-reach. Sensors come last and matter more than expected: a camera that adjusts its own exposure will teach your policy something about lighting that has nothing to do with the task.
What if you have to show something moving in six weeks?
Buy a machine that already works, run your model on top of it, and write no middleware at all. Six weeks is enough to demonstrate a behaviour and not enough to build a robot, and the gap between those two is where most demo deadlines die. The version that works: a vendor arm or a small mobile base with a supported SDK, one program that reads the camera, runs the model and sends commands, and a hard-wired stop within reach of whoever is standing there. Accept that this program will be restarted often and that somebody will be watching it. The version that fails: choosing a framework, learning its build system, discovering that the driver for your camera is a community fork, and arriving at week five with a system that starts up cleanly and has never held anything. If the date matters, spend the first week on hardware you can physically get hold of and the second on collecting data with it, because data collection always takes longer than the plan says it will.
What if you have never written a control loop?
Write one on purpose, small, before your model needs it, because the idea takes days to learn and discovering it the hard way takes months. A control loop is code that runs on a rhythm: read where things are, work out the difference from where they should be, send a correction, wait, repeat. What surprises people arriving from machine learning is not the arithmetic but the timing discipline. The loop has to keep its rhythm even when the rest of the machine is busy, which means it cannot wait on a file being written, a log line being flushed, or a model finishing its thinking. A policy that emits a target pose every so often, with a loop underneath that smoothly drives towards whatever the latest target is, gives you a machine that moves like a machine. A policy whose output goes straight to the motors whenever inference happens to finish gives you one that lurches and stutters. You do not need control theory for this. You need to accept that two things run at different speeds, and to decide explicitly which one is allowed to wait. The timing side of a control loop is worth an afternoon before you need it.
What does it look like when an embodied AI project goes wrong?
It goes wrong quietly: the model keeps improving on your evaluation set and the robot stops improving in the room. That is the signature failure, and it has three usual causes that look identical from the outside. The first is that the policy is right and the machine is late — the command suited where the arm was when the picture was taken, and by the time it arrived the arm had moved on. The second is that the data does not describe the situation: demonstrations were collected in the morning, the demo is at four, and the light through the window is doing something the model never saw. The third is that something in the pipeline is quietly dropping frames under load, so the policy acts on stale information and nothing reports an error. Teams respond by training more, because training is the tool they own. Weeks vanish. The way out is to stop improving the model until you can say which of the three is happening, and that is a question about the machine rather than the model — the same one behind a robot that drops sensor data.
What do machine learning teams try first, and why does it stop working?
Almost everyone starts with one Python script that does everything, and it works right up until the robot has to do two things at once. That first script is the correct first move and deserves defending: camera in, model, command out, all in one file you can read top to bottom. It gets a policy onto hardware in a day. It stops working at a predictable moment — when you add a second sensor, or a safety check that must run whether or not inference finished, or a logger, or an interface for whoever is operating the thing. Now one program is responsible for jobs that run at different rhythms, and the slowest one sets the pace for all of them. The usual next move is threads, which runs into the interpreter's own limits and a debugging experience nobody enjoys. The move after that is separate programs, which is right, and it raises the question the whole middleware category exists to answer: how do two programs on one machine share a camera frame without copying it back and forth? That is where the plumbing decision stops being optional.
What do you give up by treating a robot as an embodied AI problem?
You give up explainability, and with it the ability to fix one specific misbehaviour on one specific afternoon. That is the real cost. When a hand-written planner drives into a wall, somebody reads the code and finds the wrong sign. When a learned policy drives into a wall, the fix is more data or a different training run, and the loop between noticing and fixing stretches from minutes to days. You also give up predictability in the small: the same machine, the same scene, and a slightly different starting pose can produce a different attempt. You give up cheap safety arguments, because testing a lot is a weaker case to put in front of a reviewer than pointing at a rule. And you take on a data operation — collecting demonstrations, storing them, tracking which robot and which day — that is genuine infrastructure nobody budgets for. None of this argues against learned behaviour. It argues for keeping the parts that must never surprise you outside the learned part.
When is ROS 2 the better choice?
ROS 2 is the better choice whenever the robot has to move around a building, and whenever the machine's value is code somebody else already wrote. Mapping and navigation are the clearest case: a mobile base that must build a map and drive to a goal is a ROS 2 project, because those packages represent years of work you will not reproduce alongside your training runs. ROS 2 also wins when your sensor ships a ROS 2 driver and nothing else, when the system spans more than one computer, when new people must be able to read the robot in their first week, and when the lab around you already speaks the vocabulary. HORUS is not the answer for those projects, and choosing it there means rebuilding plumbing you could have inherited. There is a second case: if your learned component is one step inside a machine that is otherwise conventional — an adaptive grasp in a pipeline of hand-written motions — ROS 2 already has somewhere to put that node, and inventing a new structure around it buys you nothing. Whether you need ROS 2 at all is a fair question, but the honest answer is often yes.
Is embodied AI just robotics with a new name?
No, and here is why: the label marks a real change in where behaviour comes from, even though the machine underneath is the same machine. Classical robotics builds behaviour by specification — somebody decides what the robot should do in each situation and writes it down, in code or in a state machine. Embodied AI builds behaviour by demonstration and consequence, and the resulting system does things nobody specified, which is the entire point. That difference reshapes a team: you need people who collect and curate data, an evaluation practice that means something, and hardware that survives thousands of attempts rather than dozens. It also changes what a bug is. So the name is not marketing. What is marketing is the implication that the new name retires the old discipline. Every one of those learned systems still runs on a machine that has to read a sensor, hold a rhythm, and stop when a person walks in. The naming argument only becomes harmful when it is used to skip that work, and that is how it usually gets used.
Will a better model make the robotics engineering go away?
Partly, but not the way you think. Better models genuinely remove work, and they remove a specific kind: the hand-written behaviour in the middle of the stack. Perception pipelines that took a team a year now come out of a checkpoint. Grasp heuristics that filled a file are collapsing into one call. That will keep going. What does not shrink is everything underneath the decision. A better model does not read an encoder, does not decide what happens when the camera stops producing frames, does not stop the arm when somebody opens the cell door, and does not make a message arrive before the next cycle needs it. If anything a stronger model raises the demands on that layer, because a machine trusted to act on its own gets deployed where a teleoperated one never went, and the cost of a missed reading rises with it. The honest version of the prediction is that the middle of the stack is being eaten and the bottom of it is not. Staff accordingly: fewer people writing behaviour by hand, not fewer people making the machine dependable.
How do you decide which half of the problem you actually have?
Ask what your robot would still need if the model were perfect, and whatever remains is your robotics problem. This exercise takes five minutes and settles most arguments. Imagine an oracle that always emits the correct next action. Does the machine still need to read a sensor on a rhythm? Yes. Does it still need to stop when something unexpected enters the workspace? Yes. Does it still need two programs on one board to share a camera frame without one waiting on the other? Probably. Everything on that list is robotics, and none of it improves when your model does. Now run it backwards: list the behaviours you cannot write down as rules — the grasp that adapts to an object you have not seen, the recovery from a state nobody anticipated. That list is your embodied AI problem, and no amount of engineering beneath it will produce those behaviours. Most teams find one list far longer than the other, and that tells them where the next hire and the next month belong. If both lists are long, you have an ordinary robot project, and the sequencing matters more than the labels do.
Decide by situation rather than by ambition:
- If you are a machine learning engineer with a policy and no robot -> a vendor arm with a supported SDK, because hardware you did not build is the fastest way to find out what you do not know.
- If your model and your control loop are separate programs on one board -> a shared-memory middleware, because copying camera frames between them is what will cost you the motion.
- If the robot must map a building and drive to a goal -> ROS 2, because navigation is borrowed code and reproducing it is not your project.
- If the deliverable is a paper -> simulation, because a physical machine will eat the whole schedule and change none of your conclusions.
- If nobody on the team has made a machine hold a rhythm -> borrow or hire that person before the demo, because it is the failure nobody sees coming.
When two options stay close, weigh them on the five axes of the HORUS Fit Framework — ecosystem size, setup effort, team size fit, deployment target, and licence — and take the one that loses on the fewest. No scores and no numbers: five honest questions about your situation rather than about the software. If your project keeps landing on one machine with a model in Python and a loop that must not wait for it, star HORUS on GitHub so it is in your list when you start building.