ESE 6150 · Full-Stack Autonomous Vehicle Navigation
Autonomous Racing Stack — RoboRacer
Led software system integration and architecture for a 4-person team, securing 2nd and 6th place finishes (out of 14) by developing a layered autonomy stack ranging from reactive safety primitives to model-based predictive controllers.
Period
Jan – May 2026
Tags
ROS 2 · C++ · Python · MPC · SLAM · Pure Pursuit · LiDAR
Highlights
- 01Led full-stack software architecture, mapping out node communication pipelines in ROS 2 to ensure deterministic execution limits.
- 02Formulated a Model Predictive Control (MPC) strategy in the Frenet frame for optimal trajectory tracking and dynamic obstacle avoidance at physical limits.
- 03Architected the 'Racing Blind' pipeline, combining 2D LiDAR submaps and adaptive velocity profiling to navigate completely unmapped tracks.
- 04Developed a robust Reactive Gap Follow framework using fine-tuned PD control as a high-frequency safety and recovery fallback layer.
Modules & Architecture
Module 1: Automatic Emergency Braking (AEB)▼
Designed a time-to-collision (TTC) safety as part of the individual assignments for RoboRacer.
Module 2: Reactive Wall Following▼
Implemented Wall Follow as part of the individual assignments for RoboRacer.
Module 3: Reactive Gap Follow (Race 1 Stack)▼
Developed Gap Follow for Race 1.
Module 4: Localization & Pure Pursuit (Race 2 Stack)▼
Integrated real-time 2D SLAM and map generation paired with a geometric Pure Pursuit tracker to optimize path-following along a predefined racing line.
Module 5: Rapidly-Exploring Random Trees (RRT)▼
Engineered a sampling-based kinodynamic local motion planner to dynamically compute collision-free trajectories through dense obstacle fields.
Module 6: Vision-Based Object Detection▼
Developed a computer vision perception pipeline featuring real-time object classification and spatial coordinate projections for spatial vehicle awareness.
Module 7: Model Predictive Control (MPC)▼
Formulated a constrained optimization MPC framework in the Frenet frame, solving system-dynamics equations in real-time to execute the optimal racing line during the Final Race.
Final Project▼
Created a racing pipeline as the final team project which starts from mapping an unknown track, to finding optimal path and finally hitting highest possible speeds without crashing.
Write-up
Instead of treating assignments as isolated labs, our team approached the semester as an iterative system integration challenge. We began by mastering the messy realities of hardware-in-the-loop testing, building up from baseline reactive algorithms to a complex, hierarchical software stack capable of aggressive racing.
The architecture behaves like a true autonomous vehicle pipeline: a low-level reactive layer guarantees safety and rapid recovery, a mid-level geometric planner optimizes short-term local trajectories, and a high-level MPC layer solves constrained optimization problems in real time. This modularity allowed us to swap planning pipelines seamlessly depending on track conditions and map availability.
Links