We are the Path Planning and Controls Subsystem (PPC) of IITB Racing Driverless, a student-led team that builds autonomous electric race cars.
Our goal is to enable our car to race autonomously between blue and yellow cones, complete a lap in the shortest possible time, and avoid collisions with any cones. To achieve this, we focus on designing algorithms that generate optimal paths and provide precise controls to follow them.
- Delaunay Triangulation for fast and smooth raceline generation
- Optimized racelines to reduce lap time
- PID, Pure Pursuit and Stanley Controllers for tracking paths
- Velocity profiling based on curvature
- RRT (Rapidly-exploring Random Trees) for real-time path planning in unknown maps
- MPC (Model Predictive Control) for generating optimal control actions considering dynamics
| RRT Path Planning | MPC Optimal Control | Bot Run (PPC) |
![]() |
![]() |
![]() |
Path Planning and Control is a critical subsystem that connects high-level perception with low-level actuation. It ensures that the autonomous race car not only knows where to go but also how to get there effectively and safely.
Generates a feasible and smooth trajectory based on the car’s position and the SLAM-generated map. We explore:
- Linear & spline interpolation
- Delaunay triangulation
- Curvature-based optimization
- Algorithms like A*, RRT, and optimization-based planners
Makes sure the car follows the planned trajectory by computing steering, throttle, and brake commands. We cover:
- PID controllers for speed tracking
- Pure Pursuit and Stanley for steering
- Advanced controllers like MPC that take vehicle dynamics into account
Together, they allow our autonomous race car to drive dynamically and intelligently!
- Fork this repository on your github and then clone that forked repository to your pc to start working on it
- Run this command to install all the required libraries -
pip3 install -r requirements.txt - You need to commit and push the changes onto your forked remote repository after you complete each checkpoint
- Trainees are required to update the shared task sheet: Module Progress
- Documentation is mandatory for each checkpoint:
- Create a Google Doc titled
PPC_Module_YourName - Submit all the required code snippets= and videos/gifs in the doc
- Also document your learnings, errors faced, and any doubts
- Set sharing to “anyone with the link” and update the link in the task sheet
- Create a Google Doc titled
- Don’t hesitate to reach out to JDEs/DEs if you're stuck or curious
- Performance in this module will be used to judge your abilities and assign subsystems in the team
- Most importantly, have fun while learning
This module is designed to give you a foundational understanding of the key concepts in Path Planning and Control. It is divided into two main parts:
- Interpolation
- Basic Optimization
- Velocity Profiling using Curvature
- PID Control
- Bicycle Model
- Stanley Controller
By the end of this module, you will be able to:
- Interpolate smooth trajectories from cone maps
- Understand curvature and apply basic optimization principles to path smoothing
- Build a velocity profile that respects physical constraints
- Implement and tune a PID controller for velocity tracking
- Understand the kinematic bicycle model
- Implement a Stanley controller for path tracking
- Simulate and animate your car following the trajectory using Matplotlib
| Checkpoint | Topic | Deliverable |
|---|---|---|
| 📍 Checkpoint 1 | Interpolation | Interpolation of given waypoints |
| 📍 Checkpoint 2 | Optimization | Optimized path |
| 📍 Checkpoint 3 | PID & Stanley Control | Tuning of controllers |
| 📍 Checkpoint 4 | The Final Implementation | Complete implementation of PPC pipline |


