ESE 6150 — University of Pennsylvania

RobotRacer

Building a fully autonomous F1Tenth racing car from scratch — sensors to speed, lab by lab.

RobotRacer Autonomous Racing Cars — ESE 6150, University of Pennsylvania

F1Tenth Autonomous Racing

ROS 2 Python SLAM Pure Pursuit MPC Computer Vision Emergency Braking Motion Planning F1Tenth

RobotRacer is a semester-long course built around the F1Tenth platform: a 1/10th-scale autonomous racing car equipped with a LiDAR, IMU, and onboard compute. The course runs as a progressive engineering challenge — each lab adds a new layer of autonomy, building from basic safety systems to a full racing stack capable of competing at speed on a closed circuit.

The course culminates in two events: a final race where teams compete head-to-head for fastest lap times, and a final project where teams implement a novel algorithm of their choice on the platform.

Lab Topic What was built Repo
Foundations
Lab 1 Intro to ROS 2 ROS 2 workspace setup, nodes, topics, services. Publisher/subscriber pipeline on the car. Repo
Lab 2 Automatic Emergency Braking AEB system using iTTC (instantaneous Time-To-Collision) from LiDAR scan data — hard safety stop before collision. Repo
Lab 3 Wall Following PID controller maintaining a fixed lateral distance from the track wall using LiDAR distance estimates. Repo
Reactive Planning
Lab 4 Follow the Gap Reactive obstacle avoidance — finds the largest free gap in the LiDAR scan and steers toward its center. Repo
Mapping & Global Planning
Lab 5 SLAM & Pure Pursuit Built a map of the track using SLAM, then implemented Pure Pursuit path tracking to drive a precomputed racing line. Repo
Lab 6 Motion Planning RRT*-based local motion planner for obstacle avoidance on a mapped track — replanning on-the-fly around dynamic obstacles. Repo
Perception & Predictive Control
Lab 7 Vision Lab Camera-based perception: lane/cone detection and integration of visual cues with the planning stack. Repo
Lab 8 Model Predictive Control Replaced Pure Pursuit with a full MPC formulation — optimising over a receding horizon for minimum lap time while respecting track boundaries. Repo
Competition
Final Race Head-to-Head Race Full racing stack optimised for speed and reliability. Team competed for fastest lap time on the live circuit. Repo
Final Project Custom Algorithm Team-designed novel algorithm extending the core racing stack — implemented, evaluated, and presented at course end. Repo