What you'll learn
- 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
Course content
- Course Outline
- Setting Up C++ Development Environment
- Setting Up C++ Simulation
- C++ Simulation Readme
- Course Resources
- How Does Sensor Fusion Work Notes
- What is the Kalman Filter
- What is the Kalman Filter Notes
- Types of Kalman Filters
- Types of Kalman Filters Notes
- Learning Roadmap
- Basic Probability
- Probability Density Functions
- Multivariate Probability
- Gaussian Probability Density Functions
- Linear Transformation of Uncertainties
- Differential Equations
- State Space Representation
- Continuous and Discrete Time
- Mathematical Models
- Discrete Time Conversions
Requirements
- A curious mind!
- Basic Calculus: Functions, Derivatives, Integrals
- Linear Algebra: Matrix and Vector Operations
- Basic Probability
- Basic C++ Programming Knowledge
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!
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!
- 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