The course
14 lessons, in order. Each hands you a small simulated robot and one idea to write in Python, and every piece you finish joins your own mybot library.
Motion
0 of 5- 01Differential driveFeel how a two-wheeled robot steers by spinning each wheel at a different speed, then write a Python drive function that rolls straight, spins in place, and parks on a goal.
- 02aFollow the lineWrite your first line follower in Python: read a sensor offset and nudge the wheels to bring a simulated robot back to the line, wobbling all the way, on purpose.
- 02bSmooth it outReplace fixed-nudge steering with proportional control and tune the Kp gain live until the robot stops wobbling and glides along the line.
- 03Damp it with DAdd derivative control to a hot proportional gain (a shock absorber on the correction) and build the PIDController class that later lessons import from your own library.
- 04Zero the driftHold a heading against a steady side wind with your own PID controller: P and D settle a few degrees short, and the integral term winds that leftover error out.
Sensing
0 of 2- 05Dead reckoningWrite the dead-reckoning integrator a robot uses to guess its own position from commanded wheel speeds, then add wheel slip and watch why every estimate eventually lies.
- 06Sense and avoidSteer toward a goal using three distance rays, and break the dead-ahead tie so the robot commits to a side instead of plowing straight into the crate it can see coming.
Planning
0 of 2- 07Plan the routeWrite the heuristic that turns Dijkstra's flood into A*: your one-line distance guess collapses the search from the whole grid to a beeline for the goal.
- 08Follow the routeImplement pure pursuit in Python: steer along the arc to a lookahead point on the planned route, then tune the lookahead until the corners glide instead of ring.
Integration
0 of 2- 09One thing at a timePure reaction can't do "in order": give the robot a memory with a small state machine that latches from waypoint A to B to done instead of orbiting A forever.
- 10The gauntletThe capstone: import the pure pursuit, sensing, and state-machine pieces you built into one controller (mostly from mybot import) and drive a crate-strewn route clean.
Trust Issues
0 of 3- 11Trust, but verifyWrite the exponential moving average a robot uses to smooth a noisy sensor, then tune the gain so it kills the jitter without lagging behind the real signal.
- 12Two liars, one truthWrite the classic complementary filter: fuse a smooth-but-drifting integrated heading with a noisy absolute reading, and tune the blend until it beats both.
- 13The kidnapped robotFix your dead reckoning with a landmark: fuse your own odometry with a noisy beacon fix and tune how much you trust it, the measurement update behind every real localizer.