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