Course

Introduction to Self-Driving Cars

University of Toronto

Welcome to Introduction to Self-Driving Cars, the first course in University of Toronto’s Self-Driving Cars Specialization. This advanced course introduces the terminology, design considerations, and safety assessment of self-driving cars. You will learn about commonly used hardware, self-driving software stack, vehicle modeling, and control programming. The course also covers safety frameworks and industry practices for vehicle development.

Throughout the course, you will delve into the requirements for autonomy, self-driving hardware and software architectures, safety assurance for autonomous vehicles, vehicle dynamic modeling, and longitudinal and lateral control. The final project challenges you to develop control code to navigate a self-driving car around a racetrack in the CARLA simulation environment, testing the limits of your control design and learning the challenges inherent in driving at the limit of vehicle performance.

Certificate Available ✔

Get Started / More Info
Introduction to Self-Driving Cars
Course Modules

The course comprises 7 modules, covering the requirements for autonomy, self-driving hardware and software architectures, safety assurance, vehicle dynamic modeling, and longitudinal and lateral control.

Module 0: Welcome to the Self-Driving Cars Specialization!

Welcome to the Self-Driving Cars Specialization! This module provides an introduction to the course, its relevance, and the instructors. It also covers the course prerequisites, how to use discussion forums, and supplementary readings. Additionally, you'll get to know your classmates, setting the stage for the learning journey.

Module 1: The Requirements for Autonomy

The Requirements for Autonomy module explores the taxonomy of driving, requirements for perception, and driving decisions and actions. It also provides advice for breaking into the self-driving cars industry and offers practice quizzes to reinforce your learning.

Module 2: Self-Driving Hardware and Software Architectures

The Self-Driving Hardware and Software Architectures module delves into sensors and computing hardware, hardware configuration design, software architecture, and environment representation. Additionally, it discusses the future of autonomous vehicles and provides a graded quiz to assess your understanding.

Module 3: Safety Assurance for Autonomous Vehicles

The Safety Assurance for Autonomous Vehicles module covers safety assurance for self-driving vehicles, industry methods for safety assurance and testing, safety frameworks for self-driving, and insights from safety assurance experts. It also addresses the challenge of demonstrating autonomous vehicle reliability.

Module 4: Vehicle Dynamic Modeling

The Vehicle Dynamic Modeling module explores kinematic modeling, dynamic modeling, longitudinal and lateral vehicle modeling, vehicle actuation, tire slip and modeling. It also provides supplementary readings and programming exercises to enhance your skills.

Module 5: Vehicle Longitudinal Control

The Vehicle Longitudinal Control module focuses on proportional-integral-derivative (PID) control, longitudinal speed control, and feedforward speed control. It also includes supplementary readings and a graded quiz to test your knowledge.

Module 6: Vehicle Lateral Control

The Vehicle Lateral Control module introduces lateral vehicle control, geometric lateral control using Pure Pursuit and Stanley methods, and advanced steering control using MPC. It also provides supplementary readings and a graded quiz to assess your understanding of lateral control.

Module 7: Putting it all together

The Putting it all together module offers an overview of the CARLA self-driving car simulation, details the final project, and provides solutions and resources to guide you in completing the course. It wraps up your learning journey in the Introduction to Self-Driving Cars course.

More Software Development Courses

Software Design and Architecture

University of Alberta

Software Design and Architecture Specialization equips you with design principles, patterns, and architectures for creating reusable and flexible software applications....

Create a Macro Processor with PERL

Coursera Project Network

Create a Macro Processor with PERL is a 1-hour guided project where you'll build a macro processor and create your own macro markup language. Learn PERL file operations...

Simulate the Stock Market with AngularJS Components

Coursera Project Network

Simulate the Stock Market with AngularJS Components is a 1.5-hour guided project focusing on adding AngularJS components to a simulated stock investment web application....

C Programming for Everybody

University of Michigan

This course, C Programming for Everybody, offers a comprehensive introduction to C programming, enabling learners to build foundational knowledge and apply it to...