This repository contains a collection of projects and assignments focused on Autonomous Driving Systems, covering fundamental concepts such as perception, mapping, localization, planning, and control. Each module is implemented in Python or Jupyter Notebooks, with the goal of building intuition and practical understanding of how self-driving cars operate.
-
Applying Stereo Depth to a Driving Scenario
Estimate depth from stereo images to perceive the 3D structure of the environment. -
Lidar Parameter Estimation and Plane Fitting
Extract ground planes and environmental features from LiDAR point clouds.
- Occupancy Grid Mapping Using Inverse Measurement Model
Implement probabilistic occupancy grid mapping for environment representation using Lidar Data.
- Extended Kalman Filter
Apply EKF for state estimation of a vehicle navigating through uncertain environments.
-
Longitudinal Vehicle Model
Model the longitudinal dynamics (acceleration/braking) of a car.- We will now drive the vehicle over a slope as shown in the diagram below:

- To climb the slope, a trapezoidal throttle input is provided for the next 20 seconds as shown in the figure below:

- After applying the throttle to the vehicle Longitudinal model we get the following about position of vehicle at every time step:

- We will now drive the vehicle over a slope as shown in the diagram below:
-
Kinematics Bicycle Model
Explore the kinematic bicycle model for lateral vehicle motion.
-
Mission Planning
Design algorithms like Dijkstra’s and$A^*$ for high-level route and trajectory shortest path planning in Berkeley, California.
-
Ordinary Least Squares
Apply OLS regression for parameter estimation tasks in driving scenarios. -
Recursive Least Squares
Implement RLS for online, adaptive parameter estimation.

















