- 12 labs
- Artemis Nano
- 9DOF IMU
- VL53L1X ToF
- BLE
- PID
- Kalman
- Bayes
- LQR

ECE 4160 Fast Robots Labs
- Lab 1: Artemis and Bluetooth
Setting up the SparkFun RedBoard Artemis Nano, verifying the serial, analog-read and PDM microphone examples, then building a BLE command-and-notify link between the board and my laptop.
- Lab 2: IMU
Integrating a 9DOF IMU, computing orientation from accelerometer and gyroscope data, characterizing noise in the frequency domain, and fusing the two estimates with a complementary filter.
- Lab 3: Time of Flight Sensors
Permanently wiring two VL53L1X time-of-flight sensors, working around their shared I2C address, and streaming distance data over Bluetooth alongside the IMU.
- Lab 4: Motor Drivers and Open Loop Control
Wiring dual motor drivers to the Artemis PWM pins, calibrating the drivetrain, and running open-loop maneuvers on the untethered car.
- Lab 5: Linear PID Control and Linear Interpolation
A linear PID controller that drives the robot to a stop 304 mm from a wall, using linear extrapolation to decouple the control loop from the slower ToF sample rate.
- Lab 6: Orientation Control
A yaw PID controller for in-place rotation with differential drive, mitigating gyroscope drift and derivative kick.
- Lab 7: Kalman Filter
Estimating drag and mass to build a state-space model of the robot, then running a Kalman filter to interpolate between slow ToF readings.
- Lab 8: Stunts
Engineering a two-phase state machine for the flip stunt with a Kalman-triggered transition, then pivoting to the drift task.
- Lab 9: Mapping
Reusing the orientation PID controller to spin the robot in place at set poses and assemble a map of the arena from ToF scans.
- Lab 10: Grid Localization using Bayes Filter
Implementing a Bayes filter in simulation over a (12, 9, 18) discretized grid, updating a belief over robot pose from ToF readings.
- Lab 11: Localization on the Real Robot
Running the Bayes filter update step on the real car against a uniform prior, localizing from a single 360-degree scan of 18 range readings.
- Lab 12: Inverted Pendulum
Balancing an inverted pendulum on the moving car with a Kalman filter and an LQR controller over the nonlinear cart-pole dynamics.

