Understand how a robot works.

Build working knowledge of robotics and machine learning through examples you can change, calculations you can check, and data you can inspect.

Search for a specific concept, or follow a short path from an idea to its application.

148 lessons to explore

Foundations first
  1. Foundations / 13 min read

    State-space models: connect states, inputs, and outputs

    Build a cart state-space model from Newton’s law. Read A, B, C, and D, separate initial motion from force response, and choose position, velocity, or acceleration as the output.

  2. Foundations / 14 min read

    Controllability and observability: move and reveal state

    Find which states an actuator can reach and which a sensor can reveal. Use exact cart motion, two held commands, matrix rank, and indistinguishable initial states.

  3. Foundations / 11 min read

    Pole placement: calculate state-feedback gains

    Use pole placement to calculate position and velocity gains for a cart. Verify the closed-loop matrix, compare exact responses, and inspect the force each design requires.

  4. Foundations / 11 min read

    Luenberger observer: estimate velocity from position

    Build a Luenberger observer for a cart with a position sensor. Calculate observer gains, follow estimation error, and see why a small position residual can hide a velocity error.

  5. Foundations / 12 min read

    Linear quadratic regulator: choosing feedback by cost

    Calculate LQR feedback for a cart, connect Q and R to position, velocity, and force, and separate accumulated cost from exact future cost.

  6. Foundations / 12 min read

    Integral action in state space: remove a load offset

    Add an integral state to a cart controller, calculate three feedback gains, and compare constant-load tracking with reference feedforward. See why stable dynamics, accurate sensing, and sufficient force still matter.

  7. Foundations / 9 min read

    ROS 2 QoS: fix a topic that delivers no messages

    Reproduce a ROS 2 reliability mismatch, inspect the publisher and subscriber profiles, and restore delivery. Run the checked Jazzy example in one isolated container.

  8. Foundations / 12 min read

    LQG control: connect a Kalman estimate to LQR feedback

    Control a cart from noisy position readings. Connect Kalman filtering to LQR, compare matched disturbances, and test what changes when the model is wrong.

  9. Foundations / 11 min read

    ROS 2 tf2: transform a laser point at the right time

    Connect an odometry message to a transform tree, convert a timestamped laser point, and reproduce missing-frame and extrapolation errors in ROS 2 Jazzy.

  10. Foundations / 9 min read

    Lyapunov stability: prove convergence with a function

    Build a Lyapunov function, check its derivative, and prove convergence. See why a failed candidate can coexist with a stable system.

  11. Foundations / 10 min read

    Multivariable control: manage coupling between outputs

    Move one output without disturbing another. Compare independent feedback with matrix decoupling, then test model mismatch and large actuator commands.

  12. Foundations / 10 min read

    ROS 2 bag: record, replay, and check the clock

    Record six stamped points, inspect their saved contents, and replay them into a ROS 2 node. Reproduce a clock that stays at zero while messages still arrive.