Skip to content

Hands-on implementations of fundamental self-driving car concepts: stereo depth, LiDAR plane fitting, occupancy grid mapping, Extended Kalman Filter, vehicle models, mission planning, and parameter estimation.

Notifications You must be signed in to change notification settings

CodeName-Detective/Self_Driving_Cars_Fundamentals

Repository files navigation

Self-Driving Cars: Projects & Assignments

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.


Projects

Perception

  • Applying Stereo Depth to a Driving Scenario
    Estimate depth from stereo images to perceive the 3D structure of the environment.

    • Stereo Left and Right Image: Environment
    • Stereo Disparity Map: Environment
    • Stereo Depth Map: Environment
    • Object To Detect: Environment
    • Location of the object in the image: Environment
    • Identification of object in Image: Environment
  • Lidar Parameter Estimation and Plane Fitting
    Extract ground planes and environmental features from LiDAR point clouds.


Mapping

  • Occupancy Grid Mapping Using Inverse Measurement Model
    Implement probabilistic occupancy grid mapping for environment representation using Lidar Data.
    • Actual Environment where vehicle navigates: Environment
    • What vehicles captures at every step about Environment: Environment Build
    • How occupancy grid is constructed as time progress: Occupancy Map

Localization

  • Extended Kalman Filter
    Apply EKF for state estimation of a vehicle navigating through uncertain environments.

Vehicle Dynamics & Control

  • 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: ramp
    • To climb the slope, a trapezoidal throttle input is provided for the next 20 seconds as shown in the figure below: throttle
    • After applying the throttle to the vehicle Longitudinal model we get the following about position of vehicle at every time step: Position vs Time
  • Kinematics Bicycle Model
    Explore the kinematic bicycle model for lateral vehicle motion.

    • Circle Path With Slip Angle: circle_path
    • Circle Path Without Slip Angle: circle_path
    • Square Path With Slip Angle: square_path
    • Square Path Without Slip Angle: square_path
    • Spiral Path With Slip Angle: square_path
    • Figure 8 Path With Slip Angle: square_path

Planning

  • Mission Planning
    Design algorithms like Dijkstra’s and $A^*$ for high-level route and trajectory shortest path planning in Berkeley, California.
    • Networkx Libraries Shortest Path for Reference: Reference
    • Dijkstra's Shortest Path: Dijkstras
    • $A^*$ Shortest Path: Astar

Estimation & Learning

  • Ordinary Least Squares
    Apply OLS regression for parameter estimation tasks in driving scenarios.

  • Recursive Least Squares
    Implement RLS for online, adaptive parameter estimation.

About

Hands-on implementations of fundamental self-driving car concepts: stereo depth, LiDAR plane fitting, occupancy grid mapping, Extended Kalman Filter, vehicle models, mission planning, and parameter estimation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published