
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.
Set up Ubuntu virtual machine, install dependencies, clone the simulation source, and build in a dedicated build directory using make. Then run the compiled executable to start the simulation.
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.
Understand how the Kalman filter turns data fusion into a linear quadratic estimation problem by estimating the state from noisy measurements while minimizing squared error.
Explore linear, extended, and unscented Kalman filters, highlighting their assumptions about linear or nonlinear dynamics and how each uses covariance prediction and update equations.
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.
Explore probability density functions, random variables, and how the area under the curve represents probability; learn to compute the mean, variance, and skewness using the expectation operator.
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.
The Gaussian distribution compactly expresses an estimate and its uncertainty with a mean and variance, extendable to a mean vector and covariance matrix in multiple dimensions, useful in data fusion.
Learn how linear transformations of gaussian pdfs update means and covariances, transforming uncertainty in Kalman filtering and sensor fusion applications.
A differential equation relates functions to their derivatives, describing motion over time. Differentiate ordinary differential equations from partial ones, and explain linear versus nonlinear systems with motion and sine examples.
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 how the Kalman filter uses Gaussian distributions to fuse data, propagate state and covariance through a discrete prediction-update cycle, and refine estimates with measurements.
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 how the Extended Kalman filter handles nonlinear systems by linearizing around a state and covariance, using nonlinear process and measurement models, predict-correct recursion, and Gaussian noise assumptions.
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.
Explore a 2D non-linear vehicle process model for the extended Kalman filter, with a state comprising position, velocity, and heading to capture motion along the heading.
Apply the EKF prediction step by using the nonlinear process model and Jacobians to propagate the a priori state and its covariance for advanced Kalman filtering and sensor fusion.
Define jacobian as the partial derivatives of the process function with respect to state and noise, evaluated around state estimate; the noise jacobian is the identity matrix with additive noise.
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.
Explore the EKF prediction step using a nonlinear vehicle process model, compute predicted state and Jacobian, and propagate covariance through the prediction equation with zero process noise.
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.
Calculate the ekf measurement innovation for a vehicle observing a landmark, deriving the predictive measurement, jacobians, and innovation covariance from range and relative bearing data.
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.
Apply the ekf update step with a lead measurement model to compute the Kalman gain from covariance, jacobian, and innovation covariance, updating heading and position estimates.
Implement the extended Kalman filter update for 2D vehicle localization by applying the non-linear light measurement model, computing the innovation and Jacobian, and updating the state and 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 extended Kalman filter's linearization of nonlinear uncertainty transformations, assess the Jacobian-based approximation with range and bearing to Cartesian coordinates, and discuss when large estimation errors cause divergence.
Learn how the unscented Kalman filter leverages sigma points and the unscented transform to approximate nonlinear probability distributions, providing higher accuracy than the extended Kalman filter while trading off speed.
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.
Implement the ukf 2d vehicle prediction step by generating sigma points, applying the augmented process model with gyro and acceleration noise, and updating the state and covariance.
See how the ukf 2d vehicle filter uses a nonlinear model with heading and gyroscope data to improve state estimation and reveal initialization challenges.
Compute the measurement innovation and its covariance in the ukf by predicting measurements with the unscented transform, handling additive noise or augmenting the state for non-additive noise.
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.
Implement the UKF 2D vehicle update by augmenting the state with range and bearing noise and applying the lidar measurement model to sigma points, then update with the UKF gain.
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.
Develop a capstone Kalman filter framework that fuses GPS, lidar-like measurements, and gyroscope data to estimate 2D position, velocity, and heading with data association and bias handling.
Explore practical hints for initializing a Kalman filter with GPS and LiDAR landmarks, estimate heading, velocity, and gyro bias, and apply innovation checks and data association to fuse reliable measurements.
Explore linear, extended, and unscented Kalman filters for estimating dynamic system states, comparing prediction and correction steps, Jacobians, sigma points, and measurement innovations.
Enjoy this bonus lecture that thanks you for your support and invites you to visit the IO web page for other courses and exclusive discounts.
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