F1TENTH VICON-Based Autonomous Driving
ECE 484: Principles of Robotics – Final Team Project
- Tech Stack: Python, ROS
Project Overview
This was a collaborative project completed as part of the ECE 484 course at UIUC. Our team worked with the F1TENTH autonomous vehicle platform—a 1/10th scale racecar equipped with a Jetson NX, VESC motor controller, and access to a VICON motion capture system. The VICON system was already set up to provide real-time, high-accuracy indoor pose tracking.
Our goal as a team was to develop a control algorithm that could use the VICON pose data to autonomously drive the car along a predefined set of waypoints. Our focus was on implementing the Pure Pursuit path-tracking controller in Python and integrating it with ROS so the car could respond to its position in real time.
The project required close coordination, needing waypoint planning, data visualizationand control logic and ROS topic management. Together, we debugged the system, ran live tests in the VICON-equipped lab, and refined our parameters through trial and error.

System Functionality
The controller subscribes to VICON pose data (position + orientation), converts quaternions to Euler angles, and calculates the appropriate steering angle using a Pure Pursuit algorithm. The system then publishes steering and throttle commands to the vehicle’s drive system through standard ROS topics.
The main challenges we faced involved tuning the lookahead distance and ensuring stability at higher speeds, as well as accounting for temporary VICON data loss or latency. Testing in a live lab environment gave us valuable experience in dealing with real-world system quirks.
Key Things I Learned
- Team-Based Robotics Development: Collaborated with teammates to divide responsibilities and integrate multiple ROS nodes into one working system.
- Pure Pursuit Path Tracking: Implemented and tuned a Pure Pursuit controller to follow waypoints using high-frequency position updates.
- ROS Workflow & Debugging: Built ROS nodes and managed topic communication.
- Coordinate Math & Orientation: Practiced converting quaternions to Euler angles and handling ROS coordinate frame transformations.
- Live Testing & Iteration: Gained hands-on experience running iterative tests on real hardware, collecting feedback, and refining performance in a physical environment.
