We may earn an affiliate commission when you visit our partners.
Course image
Steven Waslander and Jonathan Kelly

Welcome to Motion Planning for Self-Driving Cars, the fourth course in University of Toronto’s Self-Driving Cars Specialization.

Read more

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).

Enroll now

What's inside

Syllabus

Welcome to Course 4: Motion Planning for Self-Driving Cars
This module introduces the motion planning course, as well as some supplementary materials.
Read more
Module 1: The Planning Problem
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.
Module 2: Mapping for Planning
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.
Module 3: Mission Planning in Driving Environments
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.
Module 4: Dynamic Object Interactions
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.
Module 5: Principles of Behaviour Planning
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.
Module 6: Reactive Planning in Static Environments
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.
Module 7: Putting it all together - Smooth Local Planning
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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a strong foundation for beginners in motion planning for self-driving cars
Taught by recognized experts in the field, namely Jonathan Kelly and Steven Waslander
Develops skills and knowledge that are highly relevant to the industry
Provides a comprehensive study of motion planning for self-driving cars
Uses the Python programming language, which is widely used in the field
This course requires some prior background in robotics, but no prior experience with motion planning is required

Save this course

Save Motion Planning for Self-Driving Cars to your list so you can find it easily later:
Save

Reviews summary

Motion planning for self-driving cars

Learners say this course offers engaging assignments and provides a well-structured introduction to motion planning for self-driving cars. The challenging final project gives learners a chance to implement basic behavior for following traffic laws, avoiding obstacles, and handling vehicles ahead. The course includes excellent, practical content and supplemental materials, and the lectures are well-delivered. However, some learners felt the course content was oversimplified or too high-level, and there were some bugs in the code provided for the final project.
Well-structured and practical course
"Nicely explained course work. Regarding Final project, Discussion forum was useful in order to resolve some run-time issue, variable declaration, resolve issue in behavior planning for complete stop problems."
"Good course! I have gained a lot of knowledge releated to motion planning. However, there should be more practice notebooks before the final project to train with each of the topics metioned in the course. And the given code for the final project could be also less buggy."
Excellent and practical content
"Excellent course!!"
"Excellent and Practical Concepts "
"It's really interesting with hands-on experience."
"Excellent Course with more practical insights. Also the assignments provided helps to understand the concept more practically."
Challenging and engaging assignments
"this course give me brief knowledge about motion planning and also help me to brush up my knowledge"
"Overall, the content is great ! It would be better if there was a programming assignment for each Week !"
"My favorite course in the self-driving specialization! The final project was brutal for me, but it makes me really feel I understand how to program basic behavior for following the rules of the road along with avoiding obstacles and handling vehicles in front of you.Really nice job!"
Oversimplified or too high-level
"Honestly, I expected more from the last part of the specialization. The content of the lectures was quite shallow and oversimplified"
"I wish there were more coding assignments in weeks 1-6. I also wish that the final assignment had more code for us to write."
"TOO HIGHLEVEL"
Challenging final project with issues
"Final Course of this 4 course specialization adds the final piece in the jigsaw of the self driving cars for their motion planning algorithms and maneuverability."
"The final project is super easy compared to previous assignments in the specialization."
"The final assignment is heavily outdated and incompatible with current Linux-based operating systems. It relies on heavily outdated versions of python and other pip packages. An absolute pain."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Motion Planning for Self-Driving Cars with these activities:
Collision Checking Practice Problems
Solve a series of practice problems involving collision checking, sharpening your ability to assess potential collisions in dynamic environments.
Browse courses on Collision Checking
Show steps
  • Review the theory and algorithms used for collision checking.
  • Attempt to solve a collection of practice problems involving different vehicle and obstacle configurations.
  • Compare your solutions with provided answer keys or discuss them with peers.
Dijkstra's Algorithm Implementation
Use implementation of Dijkstra's algorithm to find the shortest path on a graph, solidifying your understanding of the fundamentals of mission planning.
Browse courses on Dijkstra's Algorithm
Show steps
  • Review the Dijkstra's algorithm pseudocode or implementation in your preferred programming language.
  • Implement Dijkstra's algorithm using a programming language of your choice using an example graph provided by the course.
  • Test your implementation using additional test cases or real-world scenarios.
Behavior Planning Rule Set
Create a set of rules for behavior planning in a simulated driving environment, solidifying your grasp of decision-making in autonomous vehicles.
Show steps
  • Identify different scenarios and situations encountered in driving, such as lane changes, intersections, and pedestrian crossings.
  • Define a set of rules that govern vehicle behavior in each scenario, considering factors like safety, efficiency, and traffic laws.
  • Implement your rule set in a simulated driving environment and evaluate its performance.
Two other activities
Expand to see all activities and additional details
Show all five activities
Autonomous Vehicle Simulation with CARLA
Participate in a guided tutorial or workshop on using the CARLA simulator for autonomous vehicle development, enhancing your ability to test and evaluate your motion planning solutions.
Browse courses on CARLA Simulator
Show steps
  • Find a reputable guided tutorial or workshop on using the CARLA simulator.
  • Follow the tutorial, completing all exercises and examples.
  • Utilize the CARLA simulator to experiment with different motion planning algorithms and scenarios.
Self-Driving Car Innovation Workshop
Attend a workshop focused on cutting-edge research and development in self-driving cars, broadening your perspective on the future of autonomous driving.
Show steps
  • Research and identify a self-driving car innovation workshop.
  • Register and attend the workshop.
  • Engage with experts and fellow attendees to gain insights and expand your knowledge.

Career center

Learners who complete Motion Planning for Self-Driving Cars will develop knowledge and skills that may be useful to these careers:
Autonomous Vehicle Engineer
An Autonomous Vehicle Engineer designs, develops, and tests self-driving cars. This course provides a comprehensive overview of the motion planning problem in self-driving cars, including mission planning, behavior planning, and local planning. By completing this course, Autonomous Vehicle Engineers will gain the skills and knowledge necessary to build and improve self-driving car systems.
Researcher
A Researcher conducts research in a variety of fields, including robotics, autonomous vehicles, and artificial intelligence. This course provides a foundation in motion planning, which is a key area of research in these fields. By understanding the latest advances in motion planning, Researchers can develop new and improved algorithms and techniques for planning safe and efficient paths for robots and other systems.
Robotics Scientist
A Robotics Scientist conducts research on the design, development, and application of robots. This course provides a foundation in motion planning, which is a key area of research in robotics. By understanding the latest advances in motion planning, Robotics Scientists can develop new and improved robots that can operate more effectively and safely in complex environments.
Systems Engineer
A Systems Engineer designs, develops, and maintains complex systems, including robotics, autonomous vehicles, and spacecraft. This course provides a foundation in motion planning, which is a critical skill for developing autonomous systems. By understanding how to plan safe and efficient paths for systems, Systems Engineers can create more effective and reliable systems.
Robotics Engineer
A Robotics Engineer designs, builds, and maintains robots for various applications. This course provides a foundation in motion planning, which is a critical skill for developing autonomous robots. By understanding how to plan safe and efficient paths for robots, Robotics Engineers can create machines that can operate effectively and safely in complex environments.
Control Systems Engineer
A Control Systems Engineer designs, develops, and maintains control systems for a variety of applications, including robotics, autonomous vehicles, and industrial automation. This course provides a foundation in motion planning, which is a key component of many control systems. By understanding how to plan safe and efficient paths for robots and other systems, Control Systems Engineers can create more effective and reliable systems.
Software Engineer
A Software Engineer designs, develops, and maintains software applications. This course provides a foundation in motion planning algorithms, which are used in a variety of software applications, including robotics, autonomous vehicles, and computer games. By gaining a deep understanding of motion planning, Software Engineers can develop more efficient and effective software systems.
Project Manager
A Project Manager is responsible for planning, executing, and closing projects. This course provides a foundation in motion planning, which is a key skill for planning and executing projects. By understanding how to plan safe and efficient paths for projects, Project Managers can develop more effective and successful projects.
Data Scientist
A Data Scientist collects, analyzes, and interprets data to solve problems and make predictions. This course provides a foundation in motion planning, which is a key skill for analyzing and interpreting data related to robotics, autonomous vehicles, and other systems. By understanding how to plan safe and efficient paths for robots and other systems, Data Scientists can develop more effective and reliable data-driven solutions.
Product Manager
A Product Manager is responsible for the development and marketing of a product or service. This course provides a foundation in motion planning, which is a key component of many products and services, including robotics, autonomous vehicles, and software applications. By understanding how to plan safe and efficient paths for robots and other systems, Product Managers can develop more effective and marketable products and services.
Consultant
A Consultant provides advice and guidance to organizations on a variety of topics, including robotics, autonomous vehicles, and software applications. This course provides a foundation in motion planning, which is a key skill for providing advice and guidance on these topics. By understanding how to plan safe and efficient paths for robots and other systems, Consultants can provide more effective and valuable advice and guidance.
Technical Writer
A Technical Writer creates and maintains documentation for a variety of products and services, including robotics, autonomous vehicles, and software applications. This course provides a foundation in motion planning, which is a key component of many products and services. By understanding how to plan safe and efficient paths for robots and other systems, Technical Writers can create more accurate and informative documentation.
Educator
An Educator teaches students about a variety of subjects, including robotics, autonomous vehicles, and software applications. This course provides a foundation in motion planning, which is a key component of many subjects. By understanding how to plan safe and efficient paths for robots and other systems, Educators can develop more effective and engaging lesson plans.
Entrepreneur
An Entrepreneur starts and runs a business. This course provides a foundation in motion planning, which is a key skill for starting and running a business. By understanding how to plan safe and efficient paths for a business, Entrepreneurs can develop more successful and sustainable businesses.
Policy Analyst
A Policy Analyst researches and analyzes public policy issues. This course provides a foundation in motion planning, which is a key skill for analyzing and evaluating public policy issues. By understanding how to plan safe and efficient paths for public policy, Policy Analysts can develop more effective and evidence-based policy recommendations.

Reading list

We've selected 16 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Motion Planning for Self-Driving Cars.
Provides a comprehensive overview of motion planning for mobile robots, including a discussion of optimal and heuristic search algorithms. It useful reference for understanding the theoretical foundations of motion planning and its application to robotics.
Provides a comprehensive overview of probabilistic robotics, including a discussion of motion planning algorithms. It useful reference for understanding the theoretical foundations of motion planning and its application to robotics.
Provides a comprehensive overview of planning algorithms, including a discussion of optimal and heuristic search algorithms. It useful reference for understanding the theoretical foundations of motion planning.
Provides a collection of papers from the International Conference on Robotics and Automation, which is the world's leading conference for robotics research. Many papers presented at this conference cover motion planning.
Provides a comprehensive overview of robotics, including a discussion of motion planning algorithms. It useful reference for understanding the theoretical foundations of motion planning and its application to robotics.
Provides a comprehensive overview of robotics and automation, including a discussion of motion planning algorithms. It useful reference for understanding the theoretical foundations of motion planning and its application to robotics.
Covers the cognitive neuroscience of attention, providing a comprehensive overview.
Covers the Oxford Handbook of Stress and Coping, providing a comprehensive overview.
Covers the Handbook of Personality and Social Psychology, providing a comprehensive overview.
Covers the Handbook of Social Psychology, providing a comprehensive overview.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Motion Planning for Self-Driving Cars.
Introduction to Self-Driving Cars
Most relevant
Self-Driving Cars with Duckietown
Most relevant
State Estimation and Localization for Self-Driving Cars
Most relevant
Self-Driving Car Engineer - Control
Most relevant
Autonomous Cars: How Do They Work and Impact Us?
Most relevant
Indian Driving Rules & Defensive Driving
Most relevant
Autonomous Cars: Deep Learning and Computer Vision in...
Most relevant
Self-Driving Car Engineer - Localization
Most relevant
Decision-Making for Autonomous Systems
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser