Each lecture opens as slides in the browser, with its demos built in. Lectures are added here as they are posted.

  1. Lecture01

    Course Overview

    What a robot is, the sense, think, act loop, robots at work today, and how this course runs: the TurtleBot 4, the five labs, and the race at the end.

  2. Lecture02

    Rigid Body Motion, Frames, and Transforms

    Why every position needs a frame, rotations and homogeneous transforms, orientation in 3D with Euler angles and quaternions, and frames in ROS 2 with TF2.

  3. Lecture05

    Uncertainty & Kalman Filter

    Why a sensor reading is a distribution, how odometry's uncertainty grows as the robot drives, and how a Kalman filter fuses prediction and measurement.

More lectures will appear here as they are converted.

Every demo opens as its own short page and runs the same Python script used in class, in the browser, with no install.

Frame chain: map, base_link, laser

Move the robot and a laser point through three frames, break the chain the three ways from the slides, and invert it the right way and the wrong way.

Quaternions and the wrap trap

Turn a heading into a quaternion and back, then drag a goal across ±180° and see why every angle difference needs wrap.

One beam at a wall

A LiDAR beam aimed at a wall that does not move. The readings fill in a bell curve: the spread stays put while the mean gets sharper as 1/√n.

Odometry's uncertainty

Drive a simulated TurtleBot and watch its 2σ position ellipse grow, propagated step by step from wheel noise.

A Kalman filter on a wall

A 1D Kalman filter on the distance to a wall. Turn LiDAR off, change r and q, and see how the estimate and its ±2σ band respond.

What wrong noise values do

Three Kalman filters on one run, with the sensor or motion noise set too small, as measured, or too large. See jitter, lag, and whether the ±2σ band tells the truth.