Skip to content

ArthurChenCoding/State-Estimation-and-Localization-for-Self-Driving-Cars

Repository files navigation

State Estimation and Localization for Self-Driving Cars

State estimation is a vital part of any self-driving car software stack, which relies on the sensor measurements consisting of an IMU, a GNSS receiver, and a LiDAR to provide an accurate state estimation. However, since all of the sensors provide measurements of varying reliability and at different rates and reference frames, spatial and temporal multisensor calibration is required.

Design

This project applied the Error-State Extended Kalman Filter (ES-EKF) on the state estimation pipeline to enhance the accuracy and reliability of the state estimation.

flow chart

Credit: University of Toronto Institute for Aerospace Studies

Where the motion model includes the specific force and rotational rates from our IMU and vehicle state consisting of position, velocity, and parametrization of orientation using a unit quaternion.
More details on implementation are provided in implementation_detial.pdf

Tests of reliability and accuracy

Test 1: normal case

First of all, testing the performance of the estimation with normal sensor measurements. The model is able to provide accurate estimate within error range.
drawingdrawing

Test 2: wrong extrinsic calibration

In orfer to test out the reliability of the state estimation, an intentional error is applied on the rotational matrix when transforming the reference frame of the LIDAR, resulting unreliable LIDAR measurements. By increasing the variance of the LIDAR estimated error, the model adapts and still performs well.
drawingdrawing

Test 3: sensor measurement dropout

A portion of the GNSS and LIDAR data is intentionally erased to test the performance of the estimation when only IMU is available. (like vehicle entering a tunnel)
Although there exists a small shift in height estimation due to the wrong estimation of pitch angle, the model quickly adjusted state estimation of pitch angle and can perform as expected within a reasonable time and error range.
drawingdrawing

Installation

Install the official release of NumPy and matplotlib through pip:

python -m pip install -U pip
python -m pip install -U numpy
python -m pip install -U matplotlib

Compilation & Run

python es_ekf.py

Special Thanks

Special thanks to State Estimation and Localization for Self-Driving Cars by the University of Toronto for providing this excellent online course, and my mentor Dr. Tao from Texas A&M University for advising and sharing this information.

Reference

Vinohith
daniel
deepanshut041
qiaoxu123

About

State estimation is a vital part of any self-driving car software stack, which relies on the sensor measurements consisting of an IMU, a GNSS receiver, and a LiDAR to provide an accurate state estimation. However, since all of the sensors provide measurements of varying reliability and at different rates and reference frames, spatial and tempora…

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages