A working engineer's course

Robotics, from scratch

Everything in plain language, every concept with a diagram or runnable code, and every module ending in something you built.

Start with What a robot actually is →

Module 0 · Orientation

Module 1 · Foundations

Module 2 · Simulation

Module 3 · Robot learning

  • The data engine30 min

    A demonstration dataset is not a pile of recordings; it is the specification of everything the robot will ever be competent at, written one episode at a time.

  • What a policy actually is30 min

    A policy is one function from what the robot can see to what it should command, called thirty times a second with no memory in between.

  • Behaviour cloning from scratch35 min

    Behaviour cloning is supervised learning on a table of observation and action rows, and the whole algorithm is one call to fit.

  • Covariate shift: why the clone falls apart40 min

    A policy generates the states it is later judged on, so being slightly wrong changes the question it is asked next, and the error feeds itself.

  • Fixing covariate shift40 min

    Every fix for covariate shift is the same move - get expert labels on states the policy will actually visit - and they differ only in how well they guess where those are.

  • Action chunking: deciding less often30 min

    Predicting a run of future actions from a single observation cuts the number of decision points, and the number of decision points is what compounding error is quadratic in.

  • ACT, part by part35 min

    ACT is a transformer that turns one observation into the next hundred actions, trained as a conditional autoencoder so it can absorb the variation between demonstrations.

  • Training ACT for real35 min

    A real training run on real SO-101 demonstrations, with measured wall-clock numbers from a 2018 laptop and an honest account of what that laptop cannot do.

  • Two right answers, averaged into a wrong one25 min

    A squared-error loss asks the network for the average of everything the demonstrators did, and when they did two different valid things, the average is a third thing that fails.

  • Diffusion Policy: sample the action, do not summarise it30 min

    Instead of predicting one action, learn to turn noise into an action, and every roll of the dice lands on a different valid answer instead of the average of all of them.

  • Training a diffusion policy, and a fair fight against ACT35 min

    Train three heads on one dataset at one budget, roll them out, and discover that the policy with the worse validation loss is the one that reaches the goal.

  • What it takes to say a policy works30 min

    A success rate is an estimate with a denominator, an uncertainty and a protocol, and all three belong in the claim.

  • Building an eval harness you can trust35 min

    An eval harness is a recording device for the protocol, not a loop that counts successes.

  • Scoring a robot instead of showing it30 min

    Reinforcement learning replaces the demonstration with a score, which buys you tasks nobody can demonstrate and charges you a simulator, a hundred million failures, and a specification the optimiser will read against you.

  • From a score to a gradient, and why PPO clips40 min

    You cannot differentiate through the physical world, so policy gradients make the actions that led to good scores more likely, and everything after that is fighting the noise in that estimate.

  • Training a quadruped to walk35 min

    Nobody writes the gait: it falls out of a weighted sum of penalties, a velocity command in the observation, and enough parallel simulation that a hundred million failures fit in an afternoon.

  • Crossing to hardware: randomise, do not match35 min

    The way to survive the gap between simulator and robot is not a more accurate simulator; it is a family of deliberately wrong ones wide enough that reality is just another member.

  • Imitation, reinforcement, or just write the rule30 min

    The three paradigms are three different things a human has to author, and the task decides which one you can actually produce.

  • Milestone: ACT against Diffusion Policy, and the curve that matters more300 min

    Two policies, two tasks, two data budgets and three seeds, scored on identical scenes, written up so a stranger could re-run it.

Module 4 · Real hardware

  • Two ways to do this module25 min

    A real arm hands you two separate things at once, real data and a closed loop, and without one you can still buy each of them separately.

  • What is in the box, and what is not25 min

    The SO-101 is a published bill of materials rather than a product, and every line in that list is a decision you are now responsible for.

  • Assembling the arm30 min

    The build is mechanically easy and has an ordering constraint that nothing on the parts enforces, so every expensive assembly mistake is a gate you walked past.

  • Servo IDs and the bus30 min

    Six motors share one wire, the ID is the primary key on that wire, and every motor ships with the same one.

  • Calibration: making two arms mean the same thing30 min

    Calibration is the map from raw encoder counts to joint angles, and its real job is agreement between everything that quotes those numbers rather than accuracy against the physical world.

  • First motion: the smallest command that proves everything30 min

    One joint, five degrees, read back: the smallest command that exercises every link in the chain from your Python process to a gear tooth, and gives each failure its own signature.

  • Torque limits and safety: stop is not the same as hold30 min

    Force on this arm is not commanded, it is capped in registers, and the cap that would protect everything except the gripper ships switched off.

  • Teleoperation: your hand inside the loop35 min

    Leader-follower teleoperation copies six joint angles in one direction, tens of times a second, and nothing the follower touches ever travels back to your hand.

  • What makes a good demonstration35 min

    Every second you teleoperate writes thirty rows of training data, so the quality of a demonstration is not whether it worked but whether it matches your other demonstrations.

  • Cameras and viewpoints: choosing what the policy is allowed to see30 min

    The camera rig is not equipment sitting next to the robot; it is the observation space, and anything the cameras fail to resolve is unlearnable however good the model is.

  • Hand-eye calibration, and why you are not going to do it30 min

    A pixel is a ray, so turning one into a place needs depth and the camera-to-robot transform; an imitation policy skips both by never leaving pixel space, and charges you a repeatability discipline instead.

  • Designing your first task35 min

    A task is not a sentence, it is the set of scenes that sentence has to work in, and your first one should be small enough that sixty demonstrations cover it.

  • Recording a real dataset45 min

    Sixty demonstrations is an afternoon of deliberate repetition, and the most important key on the keyboard is the one that throws an episode away.

  • Training on real data40 min

    Training on your own fifty-odd episodes is mostly arithmetic - frames, batch, epochs - plus one widely-quoted scheduler flag that will abort an ACT run, and one number that does not mean what you want it to.

  • Deploying to the arm40 min

    The first autonomous run is a supervised experiment with a short duration, a motion clamp, and a hand near the power plug - and cutting the power does not stop the arm, it drops it.

  • The data-quality loop: where the next twenty episodes go35 min

    A trained policy is a compressed copy of your demonstrations, so improving it is a measurement problem: watch it fail, sort the failures, and aim the next episodes at the biggest bucket.

  • Debugging by symptom: what the arm is telling you35 min

    A failure that repeats identically is a geometry problem; a failure that lands somewhere new each time is a data problem, and the two live in different parts of the building.

  • Publishing hardware work: the number, the interval and the failure reel30 min

    A robot result nobody can audit is a screenshot, and the five artifacts that make yours auditable cost an hour between them.

  • Milestone: a real robot doing a real task, twenty times, on camera600 min

    Pick a task you can demonstrate ten times out of ten, take it round the data loop until it clears the bar, and prove it with an uncut scored run under a protocol you wrote first.

Module 5 · Foundation models

Module 6 · Agentic robotics

  • The two-brain architecture25 min

    An agentic robot is three loops nested by rate, and the only interesting design question is what representation crosses the boundary between them.

  • Why planners are slow25 min

    A planner call costs a second or two for four reasons that add rather than trade, and that one number decides how you carve up every skill in the system.

  • From policies to skills30 min

    A trained policy is a function with no beginning, no end and no opinion about whether it should be running; a skill is that policy plus a contract, and the contract is all of the work.

  • Designing a skill API30 min

    A skill is a contract offered to a model that cannot see your code, cannot feel your robot, and will take every name you choose literally.

  • Preconditions, postconditions, and honest success30 min

    A skill that reports success because the motion finished is the most expensive lie in the stack, because the planner believes it and never checks again.

  • Grounding: what the robot actually sees30 min

    Turning the word mug into something an arm can reach for takes three separate steps, every one of them fails silently, and a confident wrong answer looks exactly like a correct one.

  • Exposing skills over MCP: a tool that moves matter35 min

    The protocol is the part you already know. What is new is that this tool is slow, cannot be retried for free, fails physically, and can return success while its postcondition is false.

  • The planner loop: perceive, plan, call, monitor, replan35 min

    A plan is a hypothesis about a world you looked at once, and the only job of the loop around it is to keep the model's picture of the desk matched to the desk.

  • Three ways a plan dies30 min

    A failed run has three possible authors - the skill, the plan, or the world model - and each one wants a different repair, so working out which broke comes before deciding what to do about it.

  • Recovery is a choice, not a reflex30 min

    Retry is one rung on a ladder of six, it is correct for exactly one failure class, and the thing that picks the rung is a monitor that watches the world rather than the log.

  • The refusal has to live below the model30 min

    A model's refusal is a property of text, and a robot's harm is a joint trajectory, so the only layer that can actually say no is the skill layer, in code the model cannot argue with.

  • What a success rate means when the task has twenty steps35 min

    Two honest numbers can describe the same ten runs and differ by more than fifty points, because partial credit and full-task success are not the same measurement.

  • Latency budgets: three clocks that must never wait on each other30 min

    The planner is a hundred times slower than the policy and the policy is ten times slower than the controller, and the whole design problem is keeping each tier busy while the one above it thinks.

  • Milestone: clear the desk, and the three failures that need three different fixes300 min

    Build the full agentic loop against a mock desk with three failure dials, then measure which recovery mechanism buys back which failure class.

Module 7 · Specialization

  • Choosing a track without lying to yourself25 min

    Three tracks, four criteria, and nine months of evidence you already collected about which one is actually yours.

  • Track A: agentic robotics30 min

    Everything you know about tool-use architecture holds, right up to the point where a failed call leaves the world changed.

  • Track B: locomotion and humanoids28 min

    The track where the physics is genuinely harder, the bill arrives in GPU hours and broken hardware, and almost none of your background compounds.

  • Track C: data and fleet infrastructure28 min

    The least glamorous track, the most employable one, and the only one where nearly all of your existing background transfers without translation.

  • The machine-economy thread26 min

    Robots holding accounts, paying each other for metered resources, and proving what they did to someone who was not there, treated as early and mostly unbuilt.

  • ROS 2: the honest minimum30 min

    You built a working robot without typing ros2 once. Here is exactly how much of it you owe the industry, and how much of what you will find written about it is already dead.

  • Logging and visualisation: the run is gone, the recording is not28 min

    A robot failure cannot be reproduced, so the recording is the only evidence that will ever exist. Learn the format deeply and the viewers loosely.

  • Designing a capstone that proves a position28 min

    A capstone is an argument with a robot attached, and the argument has to be settled before the first commit.

  • Shipping it like a product30 min

    The version of your capstone that works with you absent, which is the only version most people will ever see.

  • Writing that travels26 min

    The piece that gets read is the page somebody was already looking for, and in robotics the missing page is almost always the one with the failures in it.

  • Positioning, and the finish line30 min

    A year of work becomes a position when a stranger can check it in seven minutes without you in the room.