Overview
This specialized course offers a comprehensive understanding of motion planning algorithms used in autonomous driving. Participants will explore various path planning and motion planning techniques such as Probabilistic Roadmaps (PRM), Dijkstra’s algorithm, potential field-based methods, optimization-based approaches, and Rapidly-exploring Random Trees (RRT and RRT*). The course emphasizes practical application through hands-on experience in implementing these algorithms using C++ or Python.
Objectives
By the end of this course, leaner will be able to:
-
Understand the role and challenges of motion planning in autonomous driving.
-
Apply various path planning techniques for generating feasible paths in complex environments.
-
Implement motion planning algorithms to create safe and efficient trajectories.
-
Analyze and compare different motion planning approaches.
-
Develop C++ or Python programs to implement motion planning algorithms.
-
Evaluate the performance of motion planning solutions.
Prerequisites
-
Python Basics
-
Machine Learning Basics
-
Modern C++
Course Outline
-
Understanding the role of motion planning in autonomous driving
-
Difference between path planning and motion planning
-
Configuration space and obstacle mapping
-
Challenges in motion planning: dynamic environments, uncertainty, computational complexity
-
Development environment setup for motion planning in C++ or Python
-
Graph-based search algorithms:
-
Dijkstra’s algorithm for shortest path finding
-
A* search algorithm for informed pathfinding
-
-
Sampling-based algorithms:
-
Probabilistic Roadmaps (PRM) for complex environment exploration
-
-
Grid-based search techniques:
-
D* and D* Lite algorithms for dynamic path planning
-
-
Practical exercises in implementing path planning algorithms using C++ or Python
-
Understanding potential field-based motion planning concepts
-
Using attractive and repulsive forces for navigation
-
Constructing navigation functions and potential fields
-
Managing local minima and escape techniques
-
Practical implementation of potential field-based motion planning for robot navigation
-
Formulating motion planning as an optimization problem
-
Defining objective functions and constraints
-
Applying gradient-based optimization methods
-
Implementing trajectory optimization and smoothing techniques
-
Hands-on practice in implementing trajectory optimization algorithms using gradient descent
-
Introduction to RRT for exploration and pathfinding
-
Understanding the improvements in RRT* for optimal path generation
-
Sampling strategies and nearest neighbor search concepts
-
Performing collision checking and path smoothing
-
Practical exercises in implementing RRT and RRT* for motion planning in complex environments
-
Addressing challenges specific to autonomous driving motion planning
-
Managing dynamic obstacles such as other vehicles and pedestrians
-
Incorporating traffic rules and regulations into planning algorithms
-
Planning for lane changes and overtaking maneuvers
-
Implementing motion planning algorithms in simulated environments using platforms like ROS