Motion Planning for Self-Driving Cars
Ends soon! Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Motion Planning for Self-Driving Cars
This course is part of Self-Driving Cars Specialization
42,375 already enrolled
Included with
Learn more
Ask Coursera
487 reviews
487 reviews
Details to know
5 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 8 modules in this course
Welcome to Motion Planning for Self-Driving Cars, the fourth course in University of Torontoβs Self-Driving Cars Specialization.
This course will introduce you to the main planning tasks in autonomous driving, including mission planning, behavior planning and local planning. By the end of this course, you will be able to find the shortest path over a graph or road network using Dijkstra's and the A* algorithm, use finite state machines to select safe behaviors to execute, and design optimal, smooth paths and velocity profiles to navigate safely around obstacles while obeying traffic laws. You'll also build occupancy grid maps of static elements in the environment and learn how to use them for efficient collision checking. This course will give you the ability to construct a full self-driving planning solution, to take you from home to work while behaving like a typical driving and keeping the vehicle safe at all times. For the final project in this course, you will implement a hierarchical motion planner to navigate through a sequence of scenarios in the CARLA simulator, including avoiding a vehicle parked in your lane, following a lead vehicle and safely navigating an intersection. You'll face real-world randomness and need to work to ensure your solution is robust to changes in the environment. This is an intermediate course, intended for learners with some background in robotics, and it builds on the models and controllers devised in Course 1 of this specialization. To succeed in this course, you should have programming experience in Python 3.0, and familiarity with Linear Algebra (matrices, vectors, matrix multiplication, rank, Eigenvalues and vectors and inverses) and calculus (ordinary differential equations, integration).
This module introduces the motion planning course, as well as some supplementary materials.
What's included
4 videos3 readings1 discussion prompt
4 videosβ’Total 18 minutes
- Welcome to the Self-Driving Cars Specialization!β’6 minutes
- Welcome to the Courseβ’4 minutes
- Meet the Instructor, Steven Waslanderβ’6 minutes
- Meet the Instructor, Jonathan Kellyβ’2 minutes
3 readingsβ’Total 40 minutes
- Course Readingsβ’10 minutes
- How to Use Discussion Forumsβ’15 minutes
- How to Use Supplementary Readings in This Courseβ’15 minutes
1 discussion promptβ’Total 30 minutes
- Get to Know Your Classmatesβ’30 minutes
This module introduces the richness and challenges of the self-driving motion planning problem, demonstrating a working example that will be built toward throughout this course. The focus will be on defining the primary scenarios encountered in driving, types of loss functions and constraints that affect planning, as well as a common decomposition of the planning problem into behaviour and trajectory planning subproblems. This module introduces a generic, hierarchical motion planning optimization formulation that is further expanded and implemented throughout the subsequent modules.
What's included
4 videos1 reading1 assignment
4 videosβ’Total 54 minutes
- Lesson 1: Driving Missions, Scenarios, and Behaviourβ’13 minutes
- Lesson 2: Motion Planning Constraintsβ’14 minutes
- Lesson 3: Objective Functions for Autonomous Drivingβ’10 minutes
- Lesson 4: Hierarchical Motion Planningβ’18 minutes
1 readingβ’Total 10 minutes
- Module 1 Supplementary Readingβ’10 minutes
1 assignmentβ’Total 50 minutes
- Module 1 Graded Quizβ’50 minutes
The occupancy grid is a discretization of space into fixed-sized cells, each of which contains a probability that it is occupied. It is a basic data structure used throughout robotics and an alternative to storing full point clouds. This module introduces the occupancy grid and reviews the space and computation requirements of the data structure. In many cases, a 2D occupancy grid is sufficient; learners will examine ways to efficiently compress and filter 3D LIDAR scans to form 2D maps.
What's included
5 videos1 reading1 programming assignment1 ungraded lab
5 videosβ’Total 50 minutes
- Lesson 1: Occupancy Gridsβ’10 minutes
- Lesson 2: Populating Occupancy Grids from LIDAR Scan Data (Part 1)β’9 minutes
- Lesson 2: Populating Occupancy Grids from LIDAR Scan Data (Part 2)β’9 minutes
- Lesson 3: Occupancy Grid Updates for Self-Driving Carsβ’9 minutes
- Lesson 4: High Definition Road Mapsβ’12 minutes
1 readingβ’Total 60 minutes
- Module 2 Supplementary Readingβ’60 minutes
1 programming assignmentβ’Total 120 minutes
- Occupancy Grid Generationβ’120 minutes
1 ungraded labβ’Total 120 minutes
- Occupancy Grid Generationβ’120 minutes
This module develops the concepts of shortest path search on graphs in order to find a sequence of road segments in a driving map that will navigate a vehicle from a current location to a destination. The modules covers the definition of a roadmap graph with road segments, intersections and travel times, and presents Dijkstraβs and A* search for identification of the shortest path across the road network.
What's included
3 videos1 reading1 assignment1 ungraded lab
3 videosβ’Total 35 minutes
- Lesson 1: Creating a Road Network Graphβ’11 minutes
- Lesson 2: Dijkstra's Shortest Path Searchβ’10 minutes
- Lesson 3: A* Shortest Path Searchβ’13 minutes
1 readingβ’Total 60 minutes
- Module 3 Supplementary Readingβ’60 minutes
1 assignmentβ’Total 50 minutes
- Module 3 Graded Quizβ’50 minutes
1 ungraded labβ’Total 120 minutes
- Practice Assignment: Road Network Shortest Path Searchβ’120 minutes
This module introduces dynamic obstacles into the behaviour planning problem, and presents learners with the tools to assess the time to collision of vehicles and pedestrians in the environment.
What's included
3 videos1 reading1 assignment
3 videosβ’Total 36 minutes
- Lesson 1: Motion Predictionβ’12 minutes
- Lesson 2: Map-Aware Motion Predictionβ’11 minutes
- Lesson 3: Time to Collisionβ’13 minutes
1 readingβ’Total 60 minutes
- Module 4 Supplementary Readingβ’60 minutes
1 assignmentβ’Total 50 minutes
- Module 4 Graded Quizβ’50 minutes
This module develops a basic rule-based behaviour planning system, which performs high level decision making of driving behaviours such as lane changes, passing of parked cars and progress through intersections. The module defines a consistent set of rules that are evaluated to select preferred vehicle behaviours that restrict the set of possible paths and speed profiles to be explored in lower level planning.
What's included
5 videos1 reading1 assignment
5 videosβ’Total 53 minutes
- Lesson 1: Behaviour Planningβ’12 minutes
- Lesson 2: Handling an Intersection Scenario Without Dynamic Objectsβ’10 minutes
- Lesson 3: Handling an Intersection Scenario with Dynamic Objectsβ’13 minutes
- Lesson 4: Handling Multiple Scenariosβ’7 minutes
- Lesson 5: Advanced Methods for Behaviour Planningβ’11 minutes
1 readingβ’Total 60 minutes
- Module 5 Supplementary Readingβ’60 minutes
1 assignmentβ’Total 50 minutes
- Module 5 Graded Quizβ’50 minutes
A reactive planner takes local information available within a sensor footprint and a global objective defined in a map coordinate frame to identify a locally feasible path to follow that is collision free and makes progress to a goal. In this module, learners will develop a trajectory rollout and dynamic window planner, which enables path finding in arbitrary static 2D environments. The limits of the approach for true self-driving will also be discussed.
What's included
4 videos1 reading1 assignment
4 videosβ’Total 38 minutes
- Lesson 1: Trajectory Propagationβ’8 minutes
- Lesson 2: Collision Checkingβ’12 minutes
- Lesson 3: Trajectory Rollout Algorithmβ’12 minutes
- Lesson 4: Dynamic Windowingβ’7 minutes
1 readingβ’Total 60 minutes
- Module 6 Supplementary Readingβ’60 minutes
1 assignmentβ’Total 50 minutes
- Module 6 Graded Quizβ’50 minutes
Parameterized curves are widely used to define paths through the environment for self-driving. This module introduces continuous curve path optimization as a two point boundary value problem which minimized deviation from a desired path while satisfying curvature constraints.
What's included
9 videos2 readings1 programming assignment
9 videosβ’Total 71 minutes
- Lesson 1: Parametric Curvesβ’12 minutes
- Lesson 2: Path Planning Optimizationβ’13 minutes
- Lesson 3: Optimization in Pythonβ’6 minutes
- Lesson 4: Conformal Lattice Planningβ’11 minutes
- Lesson 5: Velocity Profile Generationβ’12 minutes
- Final Project Overviewβ’5 minutes
- Final Project Solution [LOCKED]β’7 minutes
- Congratulations for completing the course!β’3 minutes
- Congratulations on Completing the Specialization!β’3 minutes
2 readingsβ’Total 105 minutes
- Module 7 Supplementary Readingβ’60 minutes
- CARLA Installation Guideβ’45 minutes
1 programming assignmentβ’Total 480 minutes
- Course 4 Final Projectβ’480 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Offered by
Explore more from Software Development
- Status: Free TrialU
University of Toronto
Course
- Status: Free TrialU
University of Toronto
Course
- Status: Free TrialU
University of Toronto
Course
- Status: Free TrialU
University of Michigan
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
83.77%
- 4 stars
12.52%
- 3 stars
1.64%
- 2 stars
1.02%
- 1 star
1.02%
Showing 3 of 487
Reviewed on Aug 13, 2020
Excellent Course with more practical insights. Also the assignments provided helps to understand the concept more practically.
Reviewed on Mar 31, 2020
Overall, the content is great ! It would be better if there was a programming assignment for each Week !
Reviewed on Dec 15, 2020
My first online course on COURSERA, excellent knowledge of Motion planning Self Driving Car. Thanks to University of Toronto!
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you canβt afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, youβll find a link to apply on the description page.
More questions
Financial aid available,
