Path Planning & Trajectory Optimization Using C++ & ROS

A 3 month course which will introduce you to path planning and trajectory optimization techniques which can be implemented in autonomous vehicles

  • Domain : ELECTRICAL
Enroll Now View demo

A Quick Overview

An autonomous vehicle on the road is pretty much independent. This means that it needs to be mindful of the obstacles, make decisions and analyze its path. 

Path planning and trajectory Optimization deals with analyzing the path. Let’s say the car is travelling on the road and needs to reach from point A to B. To do so, autonomous vehicles with the help of path planning will decide on the shortest path that it needs to take in order to reach from one point to another. Trajectory optimization on the other hand, will estimate the speed by which the vehicle needs to travel on the road to reach the destination at the specified time. 

One of the more important applications of this topic is in robotics. A robot usually requires placing an object from one point to another, path planning & trajectory optimisation assists the robot in doing so. 

This gives us an understanding on how important the knowledge of path planning & trajectory optimisation is while designing a robot of any kind. To help you quench your curiosity of what lies on the other side of a simple movement of a robot, we have designed a course on path planning & trajectory optimisation. 

The course is divided into a 12 week program, where each week the student gets to learn something new. The course also has practical sessions each week followed by a challenge for the student at the end of each week. These challenges and practical sessions have been specially put there, to help the students apply what they have learned. Other than this, the students will be asked to work on 2 projects on which they can exercise their newly learned skills. 

To get a better insight on what will be taught throughout the course, scroll down! 


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

COURSE SYLLABUS

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


Projects Overview

Project 1

Highlights

A project on design and implementation of different graph-based trajectory planers in partially known static environment. Student will design different graph-based algorithm and test their performances in partially known static environment. In partially known static environments only static obstacles are present but the layout of the environment is changing as the agent acquires new information.

Key Highlights:

  • Collaboration of the first 6 weeks of content.
  • Understanding of heuristic-based path planning.
  • Analyzing complexity and calculation time of each algorithm by using different environment e.g. Small, medium and large environment.
  • Parametrization of planners and analyzing the effect of each parameter on the performance. 

Deliverables:

  • Detail analysis of the search algorithms behavior on a given sample navigation scenario.
  • Analysis of the effect of concaved obstacles.
  • Detailed performance tests.

Project 2

Highlights

A project on design and implementation of a motion planner for an autonomous car in realistic dynamic environment. The motion planner must plan a collision free trajectory for the vehicle that leads it through a given destination by considering other road users (e.g. other vehicles on the traffic network). 

Key Highlights:

  • Exposure and hands on experience to usage of ROS.
  • Programming in a very realistic environment in which there is a data abstraction for decoupling of planning algorithm and environment model.
  • Using high-definition road-map representation.
  • Consideration of vehicle dynamic model.

Deliverables:

  • Detailed description of the data flow, based on different interfaces, to the motion planner.
  • Detailed description of vehicle dynamic model and its role in planning process.
  • Detailed documentation of the planner.


WHO IS THIS COURSE FOR ?


  • Graduates with a bachelors in ECE, EEE or Mechanical

SOFTWARE COVERED

C++, ROS, Eclipse ADORe

ROS: The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behaviour across a wide variety of robotic platforms.

ADORe: The  Automated Driving Open Research (ADORe) project is a modular software library and toolkit for decision making, planning, control and simulation of automated vehicles.


COURSE FEE

Get an edge over your peers by investing in your future.

6 month 0% EMI
Total Course Fee is Rs. 30,000.
Check your 0% EMI Eligibility

GET A CHANCE TO WIN A 10% SCHOLARSHIP FOR THIS COURSE

Take Scholarship Test

Frequently Asked Questions

1Who can take your course?

The course is designed for people who want to gain insights into robot motion planning(theoretically and practically) and find new career opportunities in it. The course assumes that students have a basic understanding of programming in C++/Python, mathematical concepts of linear algebra.

2What is included in your course?

The course is a step by step description of the motion planning techniques and practical implementation of it using ROS, C++ and Python.

3What will the student gain from your course?

After the successful completion of the course, students will be able to gain complete insights into different motion planners and program their own robots.

4What software skills are you teaching and how well are these tools used in the industry?

Programming in C++, Python. Robot Programming environment - ROS, Simulation environment - RVIZ, getting used to Linux environment and version control unit git, software development and deployment containers like docker. Programming in C++ and Python are essential parts as a robotics developer along with software tools like ROS. These are quite common across the industry and they use either same or similar tools.

5What is the real world application for the tools and techniques will you teach in this course?

These tools allow students to develop software for robots that are used in real-world like autonomous cars, warehouse robots and so on.

6Which companies use these techniques and for what?

All automotive companies, robotics companies (industrial and home robotics) use these techniques

7How is your course going to help me in my path to MS or PhD?

This is a specialization course in Path planning and provides insights into users for their Masters and PhD in the field of robotics.

8How is this course going to help me get a job?

There is an increasing demand for students skilled in the robotics domain and the course equips students with the required practical and theoretical knowledge for these jobs.


SKILL LYNC WORKS TO GET YOU A JOB

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

Testimonials

Companies hire from us

See all

You Might Also Be Interested In

Related Courses

See all

The Skill-Lync Advantage

See all