
Explore theory and practical implementation of the common filter for sensor fusion, with applications to unmanned vehicles and self-driving cars, including linear, extended, and unscented variants and fault detection.
Explore the course outline for advanced Kalman filtering and sensor fusion, covering background theory, linear, extended, and unscented filters, and a capstone project implementing robust filters for real-world problems.
Set up a C++ development and simulation environment on Linux with an Ubuntu virtual machine to implement common filtering for real-time control and sensor fusion.
Sensor fusion integrates data from multiple sensors to produce a more accurate state estimate, reducing noise and bias for safer, robust automation in dynamic systems like aircraft.
Learn how bayesian data fusion treats the state as a probability distribution, predictively evolving it with dynamics and updating with sensor measurements to reduce uncertainty, as in the common filter.
Explore linear, extended, and unscented Kalman filters, and implement them in C++ for real-world sensor fusion, culminating in a self-driving car capstone project.
Explore the C++ simulation environment, learn how to compile and run it, and analyze Kalman filter performance by comparing vehicle state with LiDAR, GPS, and gyroscope measurements across profiles.
Review basic probability and Gaussian distributions, explore multivariate distributions, linear transforms, differential equations, and state-based continuous or discrete time models, framing estimation as a probability problem.
Explore basic probability concepts, including event definitions, mutually exclusive and non mutually exclusive events, and conditional, joint, and marginal probabilities. Apply Bayes theorem for Bayesian inference to update beliefs.
Define joint probability density function for X and Y and compute marginals with double integrals. Examine independence and derive expected values, covariance, and correlation, with covariance matrices for random vectors.
Learn how linear and nonlinear dynamic systems are represented in state-space form with state and input vectors, derive derivatives, relate states and inputs, and predict future states and outputs.
Explore the transition from continuous to discrete time by introducing time steps k, delta t, and recursive state updates, highlighting how discrete models replace derivatives with next-state calculations.
Examine continuous and discrete time models, from nonlinear general forms to linear representations with matrices A, B, F, and G, including time varying and invariant cases.
Convert continuous time linear systems to discrete time by mapping A and B into discrete transition matrix via matrix exponential with Δt, using identity matrix plus A Δt approximation.
Model the state and measurements as random variables with Gaussian distributions, forecast with a dynamic system, and fuse information using Bayes updating to improve the estimate.
Explore the simulation framework for a 2D linear tracking filter that estimates position and velocity from GPS measurements, using a constant velocity model with random acceleration.
Derive the process model for Kalman filtering by converting constant-acceleration dynamics into first-order state equations, formulating the state vector and discrete-time transition, and modeling process noise with an L matrix.
Propagate the state using the current estimate, the state transition matrix, and control input to predict the next state, then update the covariance with the process model noise.
Implement the Kalman filter prediction step for a 2d vehicle model by setting the initial state and covariance, applying the process model with zero input, and predicting state and covariance.
Validate the Kalman filter prediction step by simulating a known initial state without noise, then compare predicted state and covariance evolution to ensure model consistency.
Apply the Kalman update step by integrating current measurements with the prediction using the measurement model, innovation, and gain to refine the state and covariance.
update the Kalman filter with a GPS-like measurement, using a linear model and h to select x and y, with diagonal noise R, compute innovation, and update state and covariance.
Explore the Kalman filter update step and initial state setup, and show how process and measurement noise shape covariance and GPS-driven estimate convergence.
Explore initializing a Kalman filter from the first GPS measurement, setting the state from GPS and covariance to enable fast convergence with non-zero initial conditions.
Explore the EKF simulation framework that fuses GPS position, gyroscope heading, and landmark range-bearing to estimate a 2D vehicle's position, velocity, and orientation.
Derive the extended Kalman filter prediction step from a Taylor series expansion, deriving state and covariance predictions using Jacobians and first-order linearization around the best estimate.
Implement the nonlinear 2d vehicle prediction step for an extended Kalman filter, including the process model, Jacobian, and process noise, and compare with the linear filter using GPS data.
the extended Kalman filter 2D vehicle prediction step uses gyroscope data to enable rapid heading changes, but requires careful initialization with full state and covariance to avoid divergence.
Explore the lidar measurement model, a nonlinear range and relative bearing approach to landmarks that updates the vehicle's position and heading with an extended Kalman filter.
Compute the ekf measurement innovation by subtracting the nonlinear predicted measurement from the sensor reading and derive its covariance with the jacobian of the measurement model.
Derive the EKF measurement innovation and its covariance by applying a first-order Taylor expansion of the nonlinear measurement model around the best state estimate, using the Jacobian.
Explore how Extended Kalman filter updates an a priori state with the current measurement to form a posterior state using the innovation and Kalman gain, updating covariance via Jacobian-based linearization.
Derive the EKF update step for nonlinear systems by expanding the innovation and selecting the optimal Kalman gain to minimize the posterior covariance.
Integrating GPS and lidar in an EKF 2D vehicle filter sharply improves state estimates and heading tracking, reducing uncertainty. It also covers data association and nearest neighbor versus global optimization.
Compute the Jacobian matrices numerically from the process model and function F with respect to X and U using small perturbations and first principles.
Compute the Jacobian numerically for a vehicle process model by perturbing each state and input. Compare the numerical Jacobian to the analytical solution and discuss how delta X influences accuracy.
Explore the unscented transform, which approximates nonlinear transformations of a Gaussian distribution by propagating sigma points to estimate the new mean and covariance.
Explore the unscented ukf simulation framework for a 2d vehicle filter, estimating position, velocity, and orientation from gps, gyroscope, and lidar-like measurements.
Explains the UKF prediction step for additive and non-additive process noise, including sigma-point generation, state augmentation, and covariance recovery using the unscented transform.
Understand the matrix square root for a positive semi-definite covariance matrix: express A = B B^T and compute B via the Sokolsky decomposition A = L L^T.
Explore how the UKF update step uses the measurement innovation to update the a posteriori state and its covariance, using cross covariance and Kalman gain, and contrast with EKF updates.
Derive the ukf update step from the innovation correction, derive the prior-to-posterior covariance relation, and update the state and uncertainty using the predictor-corrective form and the unscented transform.
Examine the ukf 2d vehicle filter update step and compare it with the extended Kalman filter. After the initial transient, convergence yields similar accuracy when the model is near linear.
Examine measurement and sensor models in advanced Kalman filtering, linking state vectors to measurements with linear and nonlinear models, and learn calibrating deterministic and stochastic errors for sensor fusion.
Detect and isolate faulty sensor data to prevent Kalman filter divergence by using innovation checking, spike detection, and chi-square based NIS tests to ignore or exclude corrupted measurements.
Learn to estimate stochastic biases on the fly by augmenting the state with bias parameters, modeling bias dynamics, and using heading information to improve observability.
Initialize the filter's initial conditions near the true value with small error variances to reduce nonlinear effects, and wait for convergence before using the output for control.
Tackle the capstone project by producing estimates of a moving vehicle's position, velocity, and orientation from GPS, gyroscope, and landmark range-bearing data under real-world, noisy conditions and data association challenges.
Explore linear, extended, and unscented Kalman filters for estimating dynamic system states, comparing prediction and correction steps, Jacobians, sigma points, and measurement innovations.
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