Roomba Light Show
December 2025
Introduction
My seventh major course at USNA was EW456 (Autonomous Vehicles). The course focused on the kinematics, dynamics, and control of ground and aerial vehicles, utilizing both software simulation and experimental hardware validation.
The culminating project required the programming of a generic Create3 ground vehicle to demonstrate precise waypoint control and path planning. The objective was to execute complex trajectories, visualized as a creative light display through long-exposure photography

Demo Video
Design Documentation
My final implementation involved two distinct creative outputs:
- "GO NAVY" Text: A single robot tracing the letters "GO NAVY".
- Space Shuttle: A dual-robot coordination where two vehicles simultaneously drew a space shuttle (one drew the body and the “US”, the other drew the parachute and the "A").
Vehicle Dynamics
To control the robot effectively, the full vehicle dynamics were analyzed in differential equation form before simplifying them for the specific implementation.
Theoretical Dynamics
The full equations of motion used are presented below.
- Navigation Frame Positions:
- Euler Angle Rates:
- Body Frame Velocities (Force Equations):
- Body Frame Angular Rates (Moment Equations):
Simplifying Assumptions
To reduce the complexity of the model for the Create3 robot, the following assumptions were made to simplify 12 differential equations down to 3.
- Flat Ground: The vehicle remains on the ground; therefore, pitch (), roll (), vertical velocity (), and their rates () are zero.
- No Sliding: The wheels roll without sliding, meaning lateral velocity () is zero.
- No Slipping: Forward velocity () and turn rate () are functions of wheel speeds, assumed to have immediate stop-and-go capabilities (no inertia), meaning and are zero.

Kinematic Constraints
Based on the wheel geometry, the relationship between the wheel speeds and the vehicle's linear and angular velocity is:
Where is the wheel radius and is the track width.

Final Simplified Model
The fully simplified differential equations used for the system are:
Waypoint Controller Design
The Create3 robot utilizes a built-in inner loop controller to manage wheel speeds based on a desired forward velocity () and turn rate (). Therefore, the project focused on developing an outer-loop controller to calculate inputs and to drive the robot toward specific global coordinates.

Control Logic
The controller uses Proportional Control to minimize the error between the current pose and the desired waypoint . The error terms are calculated as:
The desired heading () and distance to the target are derived from these errors:
The control inputs are then computed using proportional gains ( and ):
Tuning
The gains were tuned separately. Heading () was tuned first to achieve static heading accuracy, followed by the speed gain () to optimize travel time. Inputs were saturated to stay within the robot's physical limits.
Implementation Details
Each waypoint had a set RGB light color assigned to it in an accumulated array to synchonize each waypoint with a designated color. Implemented a 0.05m tolerance radius to ensure smooth waypoint transitions and prevent the robot from backtracking. Enforced a "Turn-Then-Drive" logic where forward velocity is stopped until the heading error is reduced to within +/- 2 degrees
Waypoint Generation
"GO NAVY": Waypoints were generated using Gemini 3 Pro and copied into MATLAB.

Space Shuttle: The trajectory was manually drawn on graph paper using reference images, scaled to fit a meter floor, and digitized into MATLAB.

Execution Logic
- Odometry: Position estimation relied entirely on the Create3's onboard odometry.
- Color Synchronization: Each waypoint was assigned a specific RGB light color to synchronize the LED sequence with the path.
- Tolerance: A tolerance radius of 0.05m was implemented to ensure smooth transitions without backtracking.
- "Turn-Then-Drive": To improve accuracy, forward velocity is halted until the heading error is reduced to within .
Performance Analysis
The system was verified via visual inspection and data analysis. The robot successfully achieved waypoints within the defined tolerances while executing the correct LED sequences.
Steady State Error Metrics
| Metric | "GO NAVY" Pattern | Space Shuttle Pattern |
|---|---|---|
| X-Axis Error (m) | 0.0193 | 0.0196 |
| Y-Axis Error (m) | 0.0283 | 0.0296 |
| Heading Error (rad) | 0.0046 | 0.0047 |
Both implementations showed high precision, with average position errors remaining under 3cm and heading errors under 0.005 radians.
"GO NAVY":



Space Shuttle:


