Exciting offers! CLICK HERE!

Master's Certification Program in Motion Planning and Trajectory Generation (ADAS)

This 8 month program from Skill-Lync teaches the student everything they need to know about motion planning in Autonomous Vehicles!

  • Domain : CSE
  • Class starts on : March 31 2021
Enroll Now View demo

Program Outcomes

What gives Autonomous vehicles their name is the fact that they are self-driven. All that the passenger needs to do is enter the destination address and the vehicle will take the passenger there. 

While all this sounds very simple, a lot of minute things come into consideration while executing the drive. These include specific details such as the path to take, the obstacles on the road to avoid, the speed to follow and foreseeing any other limitations that any human (given that they know driving) will take care of while navigating from one place to another. 

In order to do so, a very intricate algorithm needs to be set up to give a safe driving experience. This variation of navigating the car from one point to another comes under motion planning and trajectory generation. Given the intricacy of this domain, this entire subject is studied as a separate expertise. 

Keeping this in consideration, Skill Lync’s new course is based on the same subject. Specially designed for students to learn the intricacies of the subject and make learning fun. One way we believe that this can be done is by giving the students hands on experience and making it enjoyable by changing the whole learning experience. 

For students to completely get a hang of the topic, the course is divided into 5 modules. Each module is divided into a 12 week program, and has one challenge every week and 2 major projects. To help make the learning experience better, the students are given special assistance by our technical experts, who will be with the students at each step throughout the course. 

The module’s planned in this master course for motion planning and trajectory optimization are: 

  1. Core and Advanced Python Programming
  2. Data structures & Algorithms
  3. Autonomous Vehicle Controls
  4. Autonomous Vehicle Dynamics & Controls
  5. Introduction to ROS/Github/Linux
  6. Numerical Optimization
  7. Path Planning & trajectory Optimisation

What we plan on covering each week, and how will this course help get the complete knowledge on Motion Planning and Trajectory Generation is given below.


GET COURSE COUNSELLING TODAY

Get a 1-on-1 demo to understand what is included in the course and how it can benefit you from an experienced sales consultant. The demo session will help you enroll in this course with a clear vision and confidence.

Request a Demo Session

List of courses in this program

1Core and Advanced Python Programming

This course is designed for students without any programming background and who want to take the first step into a career as a software developer. This course provides an in depth introduction to the core concepts of Python as well as covering some of the most widely used libraries like Pandas, Numpy and Tkinter. An introduction to databases is provided through the SQLite database. The topics covered in this course include:

  • Python basics,
  • Data types,
  • Conditional statements,
  • Object oriented programming,
  • Functional programming,
  • File handling,
  • Exceptions,
  • Data analysis with Pandas,
  • Numerical computing with Numpy,
  • GUI development using tkinter and SQLite database.

2Data structures & Algorithms

The next module on Data Structures and Algorithms gives an insight on a step-by-step description of the Basic and Advanced topics of Data Structures and Algorithms along with code implementation and problem solving sessions. In this module the students will come across concepts, such as: 

  • Lists 
  • Stacks and Queues
  • Heaps and tires 
  • Sorting 
  • Greedy Algorithm

3Autonomous Vehicle Controls

Autonomous Vehicles is one of the fastest evolving fields in the recent years. Research and development made in the field of autonomous vehicles is continuously increasing and engineers are persistently striving for simplifying and improving the systems to a greater extent. However, the control of autonomous vehicles is still one of the major challenges. This course covers

  • Classical Controls overview
  • Adaptive and Normal Cruise Control
  • Longitudinal Controller design
  • Adaptive Cruise Control-ADAS Modelling
  • Lateral Control Model
  • Lane Centering Feature and it's modification

4Autonomous Vehicle Dynamics & Controls

The course consists of the fundamentals of vehicle dynamics and controls as it pertains to autonomous vehicle control. The course aims to: 

  • First familiarise the student with the development of a mathematical model of a vehicle, it’s analysis and methods of analysis and determining stability. 
  • Secondly, we move on to working on developing a driver model to provide inputs to our vehicle dynamic system and evaluate system response to these inputs.
  • In the final part, the course deals with actual control, both longitudinal and lateral, of the vehicle model. 

5Introduction to ROS/Github/Linux

In this module, we will learn about ROS. ROS or robot operating software is a collaborative software platform where codes that are different domains are clubbed together to give an output. The course provides detailed knowledge on ROS (basics and intermediate), along with the integration of ROS with the recent autonomous driving simulator in the industry. Here, the students will be coming across the concepts of: 

  • Linux 
  • Programming for Robots 
  • File System Concepts 
  • Computational graphs concept 
  • Mobile Robotics

6Numerical Optimization

This course focuses on giving the most optimal solution from a list of solutions. In this module, the students will learn optimization techniques based on first order and second order derivatives which can be helpful in optimal decision making for different business applications like recommender system, image denoising, weather prediction, etc. The topics that will be covered in this course are: 

  • Strategies for Optimization problem formulations
  • Conjugate Gradient Method 
  • Quasi Newton Method 
  • Lagrange multiplier algorithm 
  • Convex Programming

7Path Planning & trajectory Optimisation

In this course, the students will be given a step by step description of the motion planning techniques and practical implementation of it using ROS, C++ and Python. There is an increasing demand for students skilled in the robotics domain and the course equips students with the required practical and theoretical knowledge required for their future ventures. In this course, the students will be given an insight into: 

  • Configuration space for motion planning
  • Random sampling-based motion planning 
  • Collision detection and motion prediction 
  • Behavioural planning and integration 
  • Planning in unstructured environments


Some of the projects that you will work on


Flexible Course Fees

Choose the Master’s plan that’s right for you

Basic

9 Months Access

$200.73

Per month for 10 months

  • Access Duration : 9 Months
  • Mode of Delivery : Online
  • Project Portfolio : Available
  • Certification : Available
  • Group Video Support : 4/month
  • Email Support : Available
  • Forum Support : Available
Premium

Lifetime Access

$334.55

Per month for 10 months

  • Job Assistance : Lifetime
  • Master's Assistance : Available
  • Access Duration : Lifetime
  • Mode of Delivery : Online
  • Project Portfolio : Available
  • Certification : Available
  • Individual Video Support : 24x7
  • Group Video Support : 24x7
  • Email Support : Available
  • Forum Support : Available
  • Telephone Support : Available
  • Add-ons Industry Projects : 15
  • Offline Skill-Center Access : Available
  • Dedicated Support Engineer : Available
  • Paid Internship : 3 Months

1. Core and Advanced Python Programming

1Introduction to Python, Python Basics

  • Discussion about Features and uses of Python, Program execution, Installation of IDE.
  • Identifiers and keywords, types of comments, data types, Variables, Arithmetic operators, Assignment operators
  • Input and print statements

2Strings, Decision control statements

  • Definition of string, operations accessing string elements
  • Relational operators, Logical operators, Conditional expressions, If, If..else, If..elsif

3Repetition Statements, Console input-output

  • Usage of while and for, break and continue, pass and else statements
  • Formatted input and output

4Lists, Tuples, Sets, Dictionary

• Accessing list elements, basic list operations, types of lists
• Accessing tuple elements, types of tuples, tuple operation
• Accessing set elements, set operations and methods, Mathematical set operations, updating set operations
• Accessing dictionary elements, dictionary operations and methods, nested dictionary

5Functions and Recursion, Functional Programming and Lambda functions

• Defining a function, types of arguments
• Global and local variables
• Functions as arguments, Implementing Lambda functions
• Map, Reduce, Filter functions

6File Input-Output, Modules

• Read-write operations, with keyword, file opening modes, moving within a file
• Serialization, file and directory operations
• Importing a module, variations of import, third-party packages

7Classes and objects

  • Class variables and methods, Operator overloading
  • Reuse, Containership, Inheritance

8Exception handling, Iterators and generators

  • Iterables and iterators
  • Syntax errors and exceptions, try-except, else, finally blocks

9Data Analysis with Pandas

  • Installing Pandas
  • Loading CSV files, JSON files
  • Dataframes

10Numeric and Scientific Computing using Numpy

  • Introduction to Numpy
  • OpenCV
  • Images and Numpy Arrays

11Graphical User Interfaces with Tkinter

  • Introduction to Tkinter
  • Setting up a GUI with widgets
  • Connecting GUI widgets with Callback functions

12Interacting with Databases

  • Introduction to SQLite
  • Connecting and inserting data to SQLite via Python
  • Selecting, deleting and updating SQLite records


2. Data Structures and Algorithms

1Introduction

A data structure is a named location that can be used to store and organize data. An algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimized computer programs. Data structures provide a means to manage large amounts of data efficiently for uses such as large databases and internet indexing services. Usually, efficient data structures are key to designing efficient algorithms.
In the first week of this course, you will learn:
 
  • Stack memory vs heap memory 
  • Physical vs logical data structure
  • Abstract data type and data structure
  • Complexity analysis
    • Asymptotic analysis, comparison of functions, recurrence relations
    • Time complexity
    • Space complexity
    • Master theorem
    • Amortized analysis
    • Iteration vs recursion
  • Recursion - Factorial, Fibonacci, finding nCr, tower of Hanoi problem.

2Arrays, Strings, and Lists

 

Arrays are used to store multiple values in a single variable, instead of declaring separate variables for each value. A string is a sequence of characters like - "hello". In this string the sequence of characters is 'h', 'e', 'l', 'l', and 'o'. All strings are objects of a predefined class named string.  This class is an implementation of the LinkedList data structure which is a linear data structure where the elements are not stored in contiguous locations and every element is a separate object with a data part and address part.
 
In this session, we will learn about:
  • Arrays
    • Static arrays
    • Dynamic arrays
    • 2D arrays, row-major and column-major mapping, matrices
  • Strings
  • LinkedList
    • Singly LinkedList and its operations
    • Doubly LinkedList and its operations
    • Circular LinkedList and its operation

 

3Stacks and Queues

The stack is a linear data structure that is used to store the collection of objects. It is based on Last-In-First-Out (LIFO). The queue is used to represent an ordered list of elements. It follows the FIFO or First In First Out procedure to insert and remove elements. The queue also supports methods of collection interface.
 
In this session, we will be discussing-
  • Stacks
    • Implementations- using arrays, using linked lists
    • Operation
    • Applications
  • Queues
    • Implementations- using arrays, using a LinkedList, using two stack
    • Circular queues
    • Priority queues

 

4Trees

A tree is a non-linear data structure where data objects are organized in terms of hierarchical relationships.There are many different types of tree structures available and we’ll be discussing them one by one

  • Trees.
    • Binary trees, their representations.
    • Pre-order, In-order, post-order traversals
    • Binary search trees
    • AVL trees

     

 

5 Heaps and Tries

Heap and Trie are a special case of trees. A Heap is a special tree-based data structure in which the tree is a complete binary tree. Trie is an efficient information retrieval data structure. Using Trie, search complexities can be brought to the optimal limit. In the session, we will try to solve the longest word in the dictionary problem using Tries.

Heaps
  • Min Heap
  • Max Heap
  • Find K largest (or smallest) elements in the array.

Tries



6Graphs & Algorithms

A graph is a data structure that consists of- 1. A finite set of vertices also called as nodes and 2. A finite set of ordered pairs of the form (u, v) called as edges. Algorithms are static methods that can be used to perform various operations on collections. Since algorithms can be used on various collections, these are also known as generic algorithms. We will be discussing different types of algorithms like-
  • Graphs
    • Types of graphs
    • Breadth-first search, depth-first search
    • Topological sort
    • Shortest path problem
  • Algorithms
    • Dijkstra's algorithm
    • Bellman–Ford algorithm
      • Minimum spanning tree problem
    • Prim's algorithm
    • Kruskal's algorithm

 

7Sorting

Sorting generally means to put data in a certain order. The order can either be alphabetically sorted or numerically sorted. There are many types of sorting techniques available. We will be discussing each of them in this session.
  • Sorting- 
    • Types of sorting techniques
    • Bubble sort
    • Insertion sort
    • Selection sort
    • Quick sort
    • Merge sort
    • Heap sort
    • Count sort
    • Bucket sort
    • Radix sort
    • Shell sort

     

8Searching and Hashing

Searching is probably one of the most common actions performed in a regular business application. This involves fetching data stored in data structures like arrays, list, and maps. More often than not, this search operation determines the responsiveness of the application for the end-user. Hashing is the process of converting a given key into another value. A hash function is used to generate the new value according to a mathematical algorithm. The result of a hash function is known as a hash value or simply, a hash.

Hashing is primarily used for authentication. Chaining is the practice of calling different methods in a single line instead of calling different methods with the same object reference separately. Under this procedure, we have to write the object reference once and then call the methods by separating them with a (dot.). Similar to chaining, open addressing is a method for handling collisions. In open addressing, all elements are stored in the hash table itself. So at any point, the size of the table must be greater than or equal to the total number of keys.

During this week we will be discussing about the following:

  • Searching
    • Linear search
    • Binary search
  • Hashing
    • Hash function
    • Collision handling
  • Chaining
  • Open addressing
    • Linear probing, primary clustering
    • Quadratic probing, secondary clustering
  • Double hashing

9 Greedy Algorithms

A greedy algorithm is a simple, intuitive algorithm that is used in optimization problems. The algorithm makes the optimal choice at each step as it attempts to find the overall optimal way to solve the entire problem. Greedy algorithms are quite successful in some problems, such as Huffman encoding which is used to compress data, or Dijkstra's algorithm, which is used to find the shortest path through a graph. Such algorithms are called greedy because while the optimal solution to each smaller instance will provide an immediate output, the algorithm doesn't consider the larger problem as a whole.

The topics discussed in this session will be-

  • The strategy of greedy algorithms
  • Elements of greedy algorithms
  • Advantages of greedy algorithms
  • Disadvantages of greedy algorithms
  • Applications of greedy algorithms
  • Knapsack problem
  • Job sequencing with deadlines
  • Huffman coding

10Divide and Conquer

The divide and conquer approach is pretty straightforward, the problem in hand is divided into smaller subproblems and then each problem is solved independently. As we keep dividing the subproblems into even smaller problems, we eventually reach a stage where no more division is possible. These "atomic" smallest possible problems are then solved. The solution of all "atomic" problem sets are finally merged in order to obtain the solution of an original problem.


In the session this week we will discuss:


  • The strategy of divide and conquer techniques
  • Advantages of divide and conquer techniques
  • Disadvantages of divide and conquer techniques
  • The master theorem of divide and conquer techniques
  • Applications of divide and conquer techniques
  • Find the median of two sorted arrays


11Backtracking

acktracking is an algorithmic-technique for solving problems recursively by trying to build a solution incrementally, one piece at a time, removing those solutions that fail to satisfy the constraints of the problem at any point of time. We’ll discuss about two methods used to backtrack.
  • Backtracking- 
    • Brute force approach
    • N queens problem
  • After backtracking, we will be covering the following,
    • Set
    • List
    • Queue
    • PriorityQueue
    • Map
    • HashSet
    • TreeSet
    • ArrayList
    • LinkedList
    • Vector
    • Dictionary
    • Stack

 

12Dynamic Programming

Dynamic Programming is also an algorithmic technique for solving the optimization of problems. It is done by breaking the problem down into simpler subproblems and utilizing the fact that the optimal solution to the overall problem depends upon the optimal solution to its subproblems.

During this session, we will be covering the following:

  • Dynamic programming- 
    • The strategy of dynamic programming
    • Properties of dynamic programming
    • Approaches of dynamic programming
    • 0/1 knapsack
    • Travelling salesman problem
    • Floyd Warshall
  • In the end, we will conclude and summarize the course by having a brief discussion on Greedy vs Divide & Conquer vs Dynamic Programming.



3.Autonomous Vehicle Controls

1 Course Overview

Autonomous Vehicle is one of the fastest evolving fields in the recent years. Research and development made in the field of autonomous vehicles is continuously increasing and engineers are persistently striving for simplifying and improving the systems to a greater extent. However, the control of autonomous vehicles is still one of the major challenges. 

The first week of the course will give you an overview of the autonomous vehicle controls. The topics that we will cover in the first week include: 

  • Introduction
  • Overview and motivation behind autonomous vehicle controls 
  • Need for study 
  • Overview of autonomous systems engineering 
  • Program Management 
  • System Engineering
  • How do automotive companies work? 

2Classical Controls Overview

Stability plays a crucial role in determining the safety and performance of vehicles.  In the case of autonomous vehicles, it deserves even more attention. To ensure stability and to perform all the required functions in an efficient manner, autonomous vehicles employ control systems.

The second week of the course will give you an overview of classical controls. The topics that will be covered here include: 

  • Stability
  • Pole zero methods
  • Transient performance
  • Disturbance and tracking
  • Other classical controls definition
  • PID systems
  • Analysis and solving
  • Examples on P, I, PI & PID
  • Gain Selection 
  • A brief explanation on solvers in Simulink

3 Start of Project - Adaptive Cruise Control

Adaptive Cruise Control ensures safety by maintaining the vehicle at a safe distance from vehicles ahead. It functions by automatic alteration of the speed of the vehicle based on the circumstances. 

The third week of the course includes a  project that involves Adaptive Cruise Control. The topics that will be covered in this week include: 

  • Overview of adaptive and normal cruise control
  • Start of project with longitudinal model
  • Longitudinal dynamic modelling
  • Aerodynamic drag
  • Rolling resistance
  • Linearizing longitudinal dynamics
  • Longitudinal dynamics block diagram in simulink 

4Longitudinal Controller Design

A longitudinal controller regulates the cruise speed of the vehicle. It is a system of sensors, control computation and control actuation components. The fourth week of the course deals with the design of longitudinal controllers for autonomous vehicles. 

The topics of this week are: 

  • Transfer function modeling in Simulink
  • Modeling control system
  • Controller design 

5Adaptive Vehicle Speed Control

Other than safety, adaptive cruise control offers convenience to drivers. They keep the vehicle steady by adjusting the speed and also, they accord the option for the drivers to set their own preferences. 

Fifth week of the course covers topics like: 

  • Touch base on least square method 
  • Adaptive control for vehicle speed control

6Adaptive Cruise Control - ADAS Modeling

This part of the course deals with the ADAS modeling of Adaptive Cruise Control. Here, you will get to know about the sensors used, mathematical model, basics of Linear Quadratic Regulator, state model, etc. 

The topics of the week include 

  • Introduction to level 2 automation & sensors used
  • Mathematical model
  • Introduction to LQR basics
  • State model 

7Adaptive Cruise Control(Continued)

This week also covers the modeling of Adaptive Cruise Control. You will get to know about the design method and modeling of  ACC. Topics of the seventh week include: 

  • Design method and modeling 
  • Simulink modeling for ACC

8Improvement to Adaptive Cruise Control

Cooperative Adaptive Cruise Control is an extension of Adaptive Cruise Control that makes the autonomous vehicles connected. Other than regulating vehicle speed for maintaining a safer distance, CACC makes autonomous vehicles cooperate with one another by establishing communication between them. 

The Eighth week of the course deals with improvements in adaptive cruise control. This covers the topics of 

  • Cooperative adaptive cruise control 
  • Introduction and modeling

9Lateral Control Model

Proper navigation of an autonomous vehicle is achieved by means of longitudinal and lateral controls. As longitudinal control regulates the cruise speed of the vehicle, the function of lateral control is to steer the wheels to keep them in the lane. In other words, it deals with the lane keeping and lane changing control. 

The topics that will be discussed in this week are 

  • Introduction to lateral control 
  • Lateral model and tire model
  • Bicycle model
  • Lance centering logic discussion
  • Model lane centering logic
  • Assignment on  controller design and tuning 

10Continuation of Lane Centering Feature

Lane centering is the feature designed for maintaining the vehicle position at the centre of the lane. It automatically steers the vehicle to ensure that it travels only along the centre of the lane. This week also deals with the modeling of lateral control. 

Topics that will be covered in this week include 

  • Lane control modeling 
  • Lane centering feature 

11Lane Centering Feature Modification

The last week of the course also deals with lane centering. It covers the modifications of the lane centering features. The topics of this week include

  • Lane biasing
  • Introduction to logic
  • Feature modeling 

12Major Project

In the final week of this course, the student will be working on the major project. They will have to develop a level 2 system with Adaptive cruise control and Lane Change Assist


4. Autonomous Vehicle Dynamics and Controls

1Basics of Vehicle Dynamics (VD)

  • Intro to the mathematics of VD
  • Terminology
  • Basics of Controls
  • MATLAB and other control SW

2Longitudinal Model Development

  • Load distribution on the ground
  • Steady state motion on a straight road
  • Vehicles take off from rest
  • Acceleration and braking

3Introduction to PID and application in vehicle control

  • Objectives
  • Tuning a PID controller for a longitudinal model
  • Examples
  • Minimising control inputs

4Longitudinal motion assist systems

  • ABS
  • ACC
  • Traction Control
  • Responding to a stop sign

5Lateral Model Development

  • What is handling?
  • Bicycle Model
  • High speed cornering of a rigid vehicle
  • Forces on rigid vehicle

6Tire lateral force and aligning moment

  • Yaw moment
  • Introduction to tire models
  • Tire lateral force
  • Calculating aligning moment

7Lateral motion assist systems

  • ESP
  • Roll over protection
  • LCC and Lane change
  • No overtake on the right- problem

8Defining the lateral control problem

  • Framing the EOM
  • Developing a PID controller
  • Tuning the controller for the system
  • Framing the lateral control problem in an MPC form
  • Examples

9Analysis of model for control

  • Steady state response
  • Stability and response – state space
  • Steady state applied to bicycle control

10Directional Stability and control

  • Neutral Steer point
  • Steady state response to external forces
  • Effect of longitudinal forces on handling

11Unified Lateral/Longitudinal model development

  • Effect of Steering System Characteristics on Vehicle Stability
  • Coupled Steering System + Vehicle Handling Dynamics
  • Stability and transient response under locked and free controls
  • Effect of combined longitudinal forces and lateral load transfer

12Practical Control Approach for vehicles

  • Practical control approach for vehicles
  • Pure pursuit
  • Stanley control
  • What is deep reinforcement learning (DRL)?
  • Application of DRL in vehicle control
  • Limitations of DRL
  • Development of DRL models
  • State of the art


5. Introduction to ROS

1Introduction to Autonomous vehicles

  • Intro to self-driving vehicles 
  • Levels of autonomy 
  • What is ROS 
  • Why is ROS important for auto vehicles  
  • Integration of ROS with self-driving vehicles

2Introduction to Linux system

  • Intro to linux 
  • Difference between windows and linux 
  • Distributions in linux 
  • Install dual OS on windows laptop - install ubuntu 
  • Explain working in ubuntu 
  • Intro about shell commands 
  • Intro to git

3ROS Introduction

  • ROS Architecture 
  • Philosophy 
  • How to install ROS? 
  • Abstractions in ROS 
  • Application of ROS

4Programming Basics for Robotics

  • Why python for robotics? 
  • Python Essentials 
    • How to create variables 
    • Different operators 
  • Conditional statements and loops 
    • If, else, elif 
    • for loop 
    • while loop 
  • Functions 
  • Lists, tuples, dictionary 
  • OOP (object-oriented programming) 
  • Repeat the same concepts for C++

5ROS Filesystem Concepts

  • ROS Filesystem Level: 
    • Navigating in ROS(catkin, rosbuild) 
    • Creating Packages 
    • Building Packages(catkin_make) 
    • Package dependencies

6ROS Computation Graph Concepts -I

  • ROS Graph Concepts 
  • Nodes 
    • Master node 
    • Slave node 
  • rostopic 
    • What is a topic in ROS 
    • rostopic list / echo 
  • Messages and message structure 
  • Services(using rosservice) & Parameters(using rosparam) 
  • Bags (rosbags, rqt, rosplay, rosrecord)

7ROS Computation concepts and visualization

  • Writing Publisher Node & Subscriber Node 
  • Working with publishers and subscribers 
  • 2D Visualization 
    • Plotting message data using rqt_plot 
    • Real-time plotting using plotJuggler 
  • 3D Visualization 
    • rViz 
    • Gazebo simulator

8ROS for autonomous vehicles

  • Sensors 
    • Different sensors 
    • Sensory data 
  • Visualization of sensory data in Rviz 
  • Dataset available - KITTI, nuscene, COCO, etc 
  • Introduction to autonomous driving simulator: CARLA
    • Installation of CARLA 
  • Integration of ROS and CARLA 
    • ROS bridge installation

9Mobile Robotics: Basics

  • Wheeled v/s Legged Robots 
  • Differential drive robot basics 
  • Kinematic bicycle model

10Mobile Robotics: Perception

  • Introduction to Computer vision 
  • OpenCV in Python 
  • vision-based sensors 
  • feature extraction 
  • object detection and tracking

11Mobile Robotics: Localization and Mapping

  • Need for Localization for Autonomous driving 
  • SLAM 
  • Grid Maps 
  • Sensors - Wheel Encoders, IMU 
  • Accumulation of Errors 
  • Kalman Filter and Uncertainty

12Mobile Robotics: Path planning

  • Vision-based navigation 
  • Path execution and obstacle avoidance 
  • Static and Dynamic Obstacles 
  • Understanding of cost and grid maps 
  • Path Planning Algorithms 
    • RRT 
    • A*


6. Numerical Optimization

1Strategies for optimization problem formulations (modeling)

• Mathematical Formulation
• Example: A Transportation Problem
• Continuous versus Discrete Optimization
• Constrained and Unconstrained Optimization
• Global and Local Optimization
• Stochastic and Deterministic Optimization
• Convexity

2Unconstrained Optimization

• Unconstrained minimization problems
• Gradient descent method
• Steepest descent method
• Newton’s method

3Conjugate Gradient Methods

  • The Linear Conjugate Gradient Method.Properties, rate of convergence.
  • Conjugate Direction Method. Properties, rate of convergence.
  • Nonlinear Conjugate Gradient Methods. Properties, rate of convergence.
    • The Fletcher–Reeves Method
    • The Polak–Ribiere Method and Variants
    • Global convergence and numerical performance

4Quasi-Newton methods

  • The BFGS Method.Properties, Global Convergence of the BFGS Method, Superlinear Convergence of the BFGS Method and Implementation.
  • Limited-Memory Quasi-Newton Methods
  • Limited-Memory BFGS Method

5Nongradient optimization

  • Pattern search method
  • Stochastic methods
    • Single stage stochastic optimization
    • Multistage stochastic optimization
    • Markov decision problems

6Least-Squares problem

  • Linear Least-Square problems and nonlinear least-square problems.
  • Gauss-Newton method. Convergence
  • Levenberg–Marquardt method
    • Convergence and implementation

7 Constrained optimization

  • Local and Global Solutions
  • A Single Equality Constraint
  • A Single Inequality Constraint
  • Two Inequality Constraints
  • First-Order Optimality Conditions
  • Second-Order Conditions
  • A geometric viewpoint
  • Lagrange multiplier method

8Duality

  • The Lagrange dual function
  • The Lagrange dual problem
  • Geometric interpretation
  • Saddle-point interpretation
  • Optimality conditions

9Lagrange multiplier algorithms

  • The Quadratic penalty method
  • Nonsmooth penalty functions and l1−penalty method
  • Augmented Lagrangian method
  • ADMM algorithm and convergence properties

10Convex Programming

  • Linear optimization problems
  • Quadratic optimization problems
  • Geometric programming

11Dynamic optimization technique

  • Formalizing the dynamic-programming approach
  • Dynamic Optimization Using Analytic and Evolutionary Approaches
  • Numerical experiment with a varied dimensional problem
  • Optimal capacity expansion
  • Continuous state-space problems


7. Path Planning and Trajectory Optimisation

1Introduction

Robots are programmable machines that influence every aspect of a human's work and have a high potential to replace humans from performing a range of tasks. For example, it is becoming possible for computers to assist our daily driving. One such best example is Tesla.

In past decades, autonomous vehicles have attracted dramatic attention. But for the autonomous vehicles alias robots to move around, they need commands. So, the movement a robot makes is all based upon programs and involves path planning and trajectory optimization. This course will help the student gain insights into robot machine planning, which is used in autonomous vehicles, warehouse robots, etc.

This week, we will introduce you to the tools that will be used during this course. The topics you will be learning are:

  • What are the Graph-based algorithms?
  • Breadth-First Search Algorithm
  • Depth-First Search Algorithm

2Configuring Space for Motion planning

During the course of this week, you will be learning about C-Space i.e Configuration Space. C-space is the space that provides possible positions for the robot to move. 

The topics you will be learning this week are:

  • How to use the Configuration Space
  • Representing Configuration space as a graph
  • Planning using Visibility Graph
  • Finding the shortest path.
  • Djikstra’s Algorithm, A*, Bellman-Ford

3Random sampling-based motion planning

During the course of this week, you will be learning about sampling-based motion planning. This will solve the navigation queries. Instead of depending on the entire map of the C-space, the robot depends on the procedures that decide if the robot’s configuration is approaching an obstacle or not. 

The topics you will be learning this week are:

  • Various types of Rapidly exploring Random Tree(RRT)
  • Application of RRTs
  • Path planning using the RRT algorithm
  • Setting up Ubuntu environment for the next week

4Robot Operating System

During the course of this week, you will be learning about ROS. ROS is a robotics middleware that manages the complexity and heterogeneity of the hardware and applications. Not only this but it also performs low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management.

The topics you will be learning this week are:

  • Setting up ROS 
  • Following instructions on the ROS website
  • Adding ROS to the docker container
  • A basic introduction to Cmake
  • Programming using ROS
  • Introduction to 3-D visualization tool called Rviz
  • Difference between 
    • ROS/RTOS
    • ROS1/ROS2
    • DDS
    • Middleware

5Motion planning with Non-holonomic robots:

During the course of this week, you will be learning about motion planning with non-holonomic robots. Non-Holonomic robots are built in such a way that they only travel in one direction along a given axis. To put it in simple words, Non-Holonomic robots can only move forward, backward, or sideways.

During this week you will learn:

  • Path and speed planning
  • Trajectory representations
    • Splines
    • Clothoid
    • Bezier curves
    • Polynomials
  • Introduction to Frenet Frame a
  • Planning in Frenet frame
  • Boundary value constraint problem and methods
  • Pointwise constraint problem and methods

6Mobile Robot collision detection

During the course of this week, you will be learning about Mobile Robot collision detection. Here, the robot will detect a collision and will change its trajectory to escape the contact as fast as possible and move away safely.

During this week you will learn:

  • Collision detection for static Obstacles
  • Motion prediction for dynamic obstacles
  • Motion prediction in Frenet frame with Kalman filters
  • Collision prediction for dynamic obstacles



7Hierarchical planning for Autonomous Robots

During the course of this week, you will be learning about Hierarchical planning for Autonomous Robot. Hierarchical planning optimizes the global path and it requires only a considerable amount of time for the path replanning operations.

During this week you will learn:

  • Route planning, A*, D*, D* lite
  • HD Maps, SD Maps
  • Behavior planning - State Machines, Decision Tree, Behavior Tree, etc.
  • Behavior and Motion Planning integration

8Trajectory planning

During the course of this week, you will be learning about Trajectory planning. Trajectory planning plays a major role in robotics and paves way for autonomous vehicles. It is basically the movement of robots from point A to point B by avoiding obstacles over time. 

During this week you will learn:

  • Polynomial Planners
  • Lattice Planners
  • Collision checking
  • Trajectory selection (Cost functions)

9Planning Algorithm

During the course of this week, you will be learning theoretical concepts on this topic

The topics you will be learning this week are:

  • Dynamic Programming for Path planning for the long horizon.
  • MPC Planner for the short horizon.

10Planning in unstructured environments

During the course of this week, you will be learning about Planning in unstructured environments. Unstructured environments include the off-road, parking lot, etc. In such a type of environment, the robots should identify the optimal path between the start and the goal path. So, for the robots to perform this, a suitable path planning algorithm is required.

During this week you will learn:

  • Path planning for a racing environment 
  • The Autonomous Racing Software Stack of the KIT19d
    • Covers essential modules like
      • Perception
      • Localization
      • Mapping
      • Motion planning and control

11Reinforcement learning for planning

During the course of this week, you will be learning about Reinforcement learning for planning. Basically, it is a machine learning method that has increased application in robot path planning. The robot would explore its surrounding environment and learn using the trial and error process. The machine learning method has an advantage in path planning and requires less prior information. 

The topics you will be learning this week are:

  • Markov process and Bellman’s principle of optimality
  • Value and Policy iteration
  • RL classifications: On/Off Policy, Model-based/free
  • TD learning/ SARSA, Monte Carlo, Dynamic programming, Q learning
  • DQN
  • Highway driving example
  • Parking lot example

12Conclusion

Now that we have covered the major parts of the course, we will now be moving on to the concluding week.

During this week we will be 

  • Recapturing on what we learned
  • Tips on how to stand out in job search
  • Tips on how to proceed in academics in this field


Testimonials

Companies hire from us

See all

CERTIFICATION

  • Top 5% of the class will get a merit certificate
  • Course completion certificates will be provided to all students
  • Build a professional portfolio
  • Automatically link your technical projects
  • E-verified profile that can be shared on LinkedIn

SKILL LYNC WORKS TO GET YOU A JOB

See all

FAQ

1Who can take your course?

This course is most valuable to all those who are aiming to pursue their career in the field of machine learning, computer vision, data mining, autonomous driving etc. It will help them understand the core optimization concepts in all these fields.

2Which companies will I get a job in?

Amazon uses optimization techniques for designing its recommender system, Google optimizes the noise in satellite images to predict the exact location of a place from the image. Companies like Empores focuses on optimizing energy losses and resolving the issues of weak power transmissions to create a better solution in Energy efficiency.

3What salary can I expect after this program?

Expected CTC after the program completion can range between 2.5 to 6LPA. For experienced professionals, you can expect a hike between 10-45%


The Skill-Lync Advantage

See all