Make the foundations concrete.

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

Start with the map of machine learning fields to connect tasks, data, learning signals, and model choices.

99 lessons to explore

Foundations first
  1. Foundations / 11 min read

    Dijkstra’s algorithm: find the lowest-cost route

    Trace Dijkstra’s algorithm through a weighted grid, update route estimates, and see why the goal must leave the priority queue before its cost is final. Reproduce a complete search in Python.

  2. Foundations / 12 min read

    A* search: guide the search with a lower bound

    Use A* to find a low-cost route across a weighted grid. Calculate g, h, and f, compare Manhattan distance with Dijkstra, and see how an overestimate can return a worse path.

  3. Foundations / 12 min read

    Rapidly exploring random trees: grow a collision-free path

    Build an RRT for a disk robot, check every new branch for collision, and connect the tree to a goal. Explore seeded sampling, step length, narrow passages, and the limits of a finite search budget.

  4. Foundations / 13 min read

    Probabilistic roadmaps: reuse a graph for new routes

    Build a probabilistic roadmap from collision-free samples, attach new start and goal queries, and search the same graph for routes. Explore neighbor counts, missed connections, and what a finite roadmap can prove.

  5. Foundations / 12 min read

    RRT*: improve a path by rewiring the tree

    Follow RRT* as it chooses cheaper parents, rewires nearby nodes, and updates every descendant's cost. Compare the first path with later improvements and understand what asymptotic optimality does and does not promise.

  6. Foundations / 12 min read

    Path smoothing: shorten a route with checked shortcuts

    Shorten a robot path by removing unnecessary waypoints while checking every replacement segment for collision. Compare length and clearance, trace accepted and rejected shortcuts, and separate a simpler path from smooth robot motion.

  7. Foundations / 14 min read

    Differential-drive kinematics: from wheel rates to pose

    Convert left and right wheel rates into robot speed, turning rate, and an exact constant-rate pose update. Explore straight travel, arcs, spins, and reverse motion, then check the limits of wheel odometry.

  8. Foundations / 12 min read

    Nonholonomic constraints: move sideways without sliding

    Derive a wheeled robot’s no-sideways-slip constraint and trace a feasible maneuver that changes its lateral position. Separate instantaneous velocity limits from reachable poses, and see why the motion rules depend on the robot.

  9. Foundations / 13 min read

    Dubins paths: shortest routes with a turning limit

    Connect two robot poses with forward motion and a minimum turning radius. Compare all six Dubins path families, calculate arc lengths, and see why matching position alone misses the heading constraint.

  10. Foundations / 14 min read

    Ackermann steering: calculate wheel angles and turning radius

    Derive the inner and outer front-wheel angles for ideal Ackermann steering. Connect bicycle steering, wheelbase, and track width to turning radius, reverse motion, and the rear axle's path.

  11. Foundations / 12 min read

    Wheel odometry: turn encoder counts into a moving pose

    Convert wheel encoder increments into a differential-drive robot's position and heading. Replay measured counts, calculate exact arc updates, and see how calibration errors and wheel slip change the estimate.

  12. Foundations / 12 min read

    Reeds–Shepp paths: shortest car routes with reverse gear

    Add reverse travel to a car with a minimum turning radius. Read signed motion primitives, calculate a three-arc turnaround, and compare complete Reeds–Shepp solutions with forward-only Dubins paths.