What you'll learn

Theory and C++ Simulation Implementation for Autonomous Vehicles and Self Driving Cars!

  • How to use the Linear Kalman Filter to solve linear optimal estimation problems

  • How to use the Extended Kalman Filter to solve non-linear estimation problems

  • How to use the Unscented Kalman Filter to solve non-linear estimation problems

  • How to implement the above 3 Kalman Filter Variants in C++ for an autonomous self-driving car problem

  • How to fuse in measurements of multiple sensors all running at different update rates

  • How to model sensor errors inside the Kalman Filter and use fault detection to remove bad sensor measurements

Watch Intro Video

Course Video

This course includes:

30-Day Money-Back Guarantee

  • 8 hours on-demand video

  • 8 Articles

  • 23 Downloadable Resources

  • C++ Simulation Source Code

  • Full Lifetime Access

  • Certificate of Completion

Course Description

You need to learn know Sensor Fusion and Kalman Filtering! Learn how to use these concepts and implement them with a focus on autonomous vehicles in this course.

The Kalman filter is one of the greatest discoveries in the history of estimation and data fusion theory, and perhaps one of the greatest engineering discoveries in the twentieth century. It has enabled mankind to do and build many things which could not be possible otherwise. It has immediate application in control of complex dynamic systems such as cars, aircraft, ships and spacecraft.

These concepts are used extensively in engineering and manufacturing but they are also used in many other areas such as chemistry, biology, finance, economics, and so on.

Why focus on Sensor Fusion and Kalman Filtering

  • Data Fusion is an amazing tool that is used pretty much in every modern piece of technology that involves any kind of sensing, measurement or automation.

  • The Kalman Filter is one of the most widely used methods for data fusion. By understanding this process you will more easily understand more complicated methods.

  • Sensor fusion is one of the key uses of Kalman Filtering and is extensively used in unmanned vehicles and self-driving cars.

  • Evaluating and tuning the Kalman Filter for best performance can be a bit of a 'black art', we will give you tips and a structure so you know how to do this yourself.

  • So you don’t waste time trying to solve or debug problems that would be easily avoided with this knowledge! Become a Subject Matter Expert!

What you will learn:

You will learn the theory from ground up, so you can completely understand how it works and the implications things have on the end result. You will also learn practical implementation of the techniques, so you know how to put the theory into practice. In this course you will work with a C++ simulation that leads you through the implementation of various Kalman filtering methods for autonomous vehicles.

At the end of the course, the Capstone project is to implement the Unscented Kalman Filter and run it as it would be used in a real self-driving car or autonomous vehicle!

We will cover:

  • Basic Background Probability and Systems Theory

  • Linear Kalman Filtering

  • Extended Kalman Filtering

  • Unscented Kalman Filtering

  • Advanced Topics for Sensor Fusion, such as fault detection and sensor error modelling.

  • C++ Implementation in simulation for a self-driving car sensor fusion problem.

By the end of this course you will know:

  • How to use the Linear Kalman Filter to solve linear optimal estimation problems

  • How to use the Extended Kalman Filter to solve non-linear estimation problems

  • How to use the Unscented Kalman Filter to solve non-linear estimation problems

  • How to fuse in measurements of multiple sensors all running at different update rates

  • How to tune the Kalman Filter for best performance

  • How to correctly initialize the Kalman Filter for robust operation

  • How to model sensor errors inside the Kalman Filter

  • How to use fault detection to remove Bad Sensor measurements

  • How to implement the above 3 Kalman Filter Variants in C++

  • How to implement the LKF in C++ for a 2d Tracking Problem

  • How to implement the EKF and UKF in C++ for an autonomous self-driving car problem

What are the course requirements or prerequisites:

This course is part of the more advanced series and as such it does have a few prerequisites:

  • Basic Calculus: Functions, Derivatives, Integrals

  • Linear Algebra: Matrix and Vector Operations

  • Basic Probability

  • Basic C++ Programming Knowledge

Who is this course for:

  • University students or independent learners.

  • Aspiring robotic or self-driving car engineers or enthusiasts.

  • Working Engineers and Scientists.

  • Engineering professionals who want to brush up on the math theory and skills related to Kalman filtering and Sensor Fusion.

  • Software Developers who wish to understand the basic concepts behind data fusion to aid in implementation or support of developing data fusion code.

  • Anyone already proficient with the math “in theory” and want to learn how to implement the theory in code.

What you will get in this course:

  • >8 hours of video lectures that include explanations and walk thoughts, pictures, diagrams and animations.

  • PDF documents of cheat sheets with important notes and exercises

  • C++ simulation code for a self driving car example.

  • All the source code and friendly support in the Q&A area.

Why am I qualified to teach this course:

I have been employed for the last decade as a Guidance, Navigation and Control engineer for a number of aerospace and automation companies, focusing on sensor fusion for aircraft, missile and vehicle state estimation. I have taught this content to bachelor’s, master’s and PhD students while teaching at university and to engineering professionals.

So what are you waiting for??

Watch the course instruction video and free samples so that you can get an idea of what the course is like. If you think this course will help you then sign up, money back guarantee if this course is not right for you.

I hope to see you soon in the course!

Steve

Who this course is for:

  • University students or independent learners
  • Aspiring robotic or self-driving car engineers
  • Working Engineers and Scientists
  • Engineering professionals who want to brush up on the math theory and skills related to Kalman filtering and Sensor Fusion
  • Software Developers who wish to understand the basic concepts behind data fusion to aid in implementation or support of developing data fusion code
  • Anyone already proficient with the math “in theory” and want to learn how to implement the theory in code

Course curriculum

  • 1

    Welcome to the course!

  • 3

    Background Theory

  • 4

    Linear Kalman Filter

  • 5

    Extended Kalman Filter

    • What is the Extended Kalman Filter?

    • EKF Simulation Framework

    • 2D Vehicle Non-Linear Process Model

    • EKF Prediction Step (Summary)

    • What are Jacobians?

    • EKF Prediction Step (Derivation)

    • EKF Prediction Step (Example)

    • 2D Vehicle EKF Prediction Step Exercise

    • 2D Vehicle EKF Prediction Step Explanation

    • Lidar Measurement Model

    • EKF Measurement Innovation (Summary)

    • EKF Measurement Innovation (Derivation)

    • EKF Measurement Innovation (Example)

    • EKF Update Step (Summary)

    • EKF Update Step (Derivation)

    • EKF Update Step (Example)

    • 2D Vehicle EKF Update Step Exercise

    • 2D Vehicle EKF Update Step Explanation

    • Numerical Jacobian Calculation (Algorithm)

    • Numerical Jacobian Calculation (Example)

    • EKF Understanding and Insights

    • EKF Summary

  • 6

    Unscented Kalman Filter

    • What is the Unscented Kalman Filter?

    • Unscented Transformation

    • UKF Simulation Framework

    • UKF Prediction Step (Summary)

    • Matrix Square Root

    • 2D Vehicle UKF Prediction Step Exercise

    • 2D Vehicle UKF Prediction Step Explanation

    • UKF Measurement Innovation (Summary)

    • UKF Update Step (Summary)

    • UKF Update Step (Derivation)

    • 2D Vehicle UKF Update Step Exercise

    • 2D Vehicle UKF Update Step Explanation

    • UKF Summary

  • 7

    Filtering in the Real World

    • Sensor Models and Errors

    • Dealing with Faulty Data

    • Dealing with Sensor Biases

    • Dealing with Initial Conditions

  • 8

    Capstone Project

    • Project Overview

    • Project Details and Framework

    • Project Hints

  • 9

    Conclusion

    • Conclusion

Instructor(s)

Aerospace Engineer | PhD

Steven Dumble

I am a GN&C (Guidance, Navigation and Control) aerospace engineer who has worked in academia, defense and commercial industries. This has allowed me to work in a wide range of cool areas and projects from lecturing university students to designing and implementing control and navigation systems for missiles all the way to self-driving tractors. I have almost 15 years of experience in teaching, software development, engineering and research. I’ve taught undergraduate students all the way to PhD candidates, my research has lead to numerous scientific journal publications and patent inventions, my code runs on thousands of automated vehicles.