/selfdriving-sp20

Primary LanguageJupyter Notebook

selfdriving-sp20

Self Driving Cars Decal taught by Machine Learning @ Berkeley, Spring 2020 at UC Berkeley.

Quick Links:

Week 8 Control Theory:

Lecture slides: https://docs.google.com/presentation/d/1A9dYKlm2WGc4HPRNWtgkLyKQ0i9gTb60VZnDAe8dF1Y/edit?usp=sharing

Zoom Recording: https://drive.google.com/open?id=1kyj_Q5M9wAZoEqgBHHSnLmKlSNeNRqXF

Familiarize yourself with control loops with waypoints. Implement PID with a 3-dimensional state and a 2-dimensional action. Explore Iterative LQR and select a suitable quadratic cost for our system.

Make sure you have diffopt installed pip install git+http://github.com/brandontrabucco/diffopt.git

  • Look at:
    • Slides
    • demos/week8/PID_demo.ipynb
    • hw/control/control_loop.py
  • Write in:
    • hw/control/pid.py (most information is in here, check-in at the bottom)
    • hw/control/ilqr.py

Week 7 Path Planning:

Lecture slides: https://docs.google.com/presentation/d/1ohDzFXFGfnbsVfCOMScSdRRLCVKZ_Lq78YvOIeca86E/edit?usp=sharing

Zoom Recording: https://drive.google.com/a/berkeley.edu/file/d/1qH4csVhhGfsOgerUxwxu1Z4MXlBOr9mF/view?usp=sharing

Implement Rapidly-exploring Random Trees, with the improvement that finds the shortest path.

  • Look at:
    • Slides
    • hw/path_planning/utils.py
  • Write in:
    • hw/path_planning/rrt_star_assignment.py

Week 5 Deep Computer Vision:

Lecture slides: https://docs.google.com/presentation/d/1X5kHoORE_AFA88fthX985rMfqVqTUkPlxaDaFltSn-4/edit?usp=sharing

Collect data that we will use to train the semantic segmentation network in the next homework. Learn more about deep learning.

Week 4 Convolutions:

Lecture Slides: https://docs.google.com/presentation/d/1dMb-dWtL7BxnpUaNOiXEig3nv16XAbSBNrWZZG-pIKc/edit?usp=sharing

Implement basic convolutions and extend the implementation to be fully-featured. Use the simulator to view the effect of convolutions. Learn the building blocks of computer vision models.

  • Look at:
    • Slides
  • Work with:
    • simualtor.py (--mode=vision)
    • vision/preset_convs.py
  • Write in:
    • hw/conv2d/hw.ipynb
    • hw/conv2d/hw.py

Week 3 Braking Distance:

Lecture Slides: https://docs.google.com/presentation/d/1JEYCW1_ATtSKr7hCHCGafr5Gwy7krpcwIQVo6-I6sTw/edit?usp=sharing

Develop a model that based on how fast the car is moving adaptively stops precisely at customizable target locations. Build on Linear Regression understanding, to learn about Fully Connected Neural Networks. Use FCNs to model nonlinear internal car dynamics and for the adaptive braking algorithm.

  • Look at:
    • utils/nn.py
    • demos/week3/Nonlinear_SystemID.ipynb
  • Work with:
    • simulator.py
    • car_iface/controller.pyc
    • braking_distance/keypoints.py
  • Write in:
    • car_iface/controller_model.py
    • hw/bd/hw3_braking_distance.ipynb
    • braking_distance/bd_api.py

Week 2 System ID:

Lecture Slides: https://docs.google.com/presentation/d/1ONr7fAf8cXZyqYt2meP5cXuFr58mxJz_LrFJ8KUhbAA/edit?usp=sharing

Build towards controlling the car to perform specific tasks by understanding how our controls (pedals, gears, steering) actually affect the cars state. Approach Linear Regression from a gradient descent perspective, and learn the weights of the underlying car interface.

  • Look at:
    • demos/week2/visual_simulation.py
    • demos/week2/housing_demo.py
  • Work with:
    • simulator.py
    • car_iface/controller.pyc
  • Write in:
    • car_iface/controller_model.py
    • hw/sysid/hw2_system_id.ipynb

Week 1 Introduction:

Lecture Slides: https://docs.google.com/presentation/d/1m_08cHpmsF8a-8SVDKsQ8kDhvl-cWh3gSNx28wQF2Fs/edit?usp=sharing

Introduce idea of Self Driving Cars along with class discussion regarding preconceptions. Lay out roadmap for course and get the simulator environment setup.

  • Look at:
    • controller_api.txt
  • Work with:
    • simulator.py
    • car_iface/controller.pyc
    • environment.yaml