Skip to content

Self-Driving Car Nanodegree Program Starter Code for the Unscented Kalman Filter Project

Notifications You must be signed in to change notification settings

dimaga/CarND-Unscented-Kalman-Filter-Project

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Extended Kalman Filter

My solution of CarND-Unscented-Kalman-Filter-Project assignment from Udacity Self Driving Car nanodegree course, Term 2. See project assignment starter code in https://github.com/udacity/CarND-Unscented-Kalman-Filter-Project


Dependencies

The project compilation and work have been verified under the following platforms:

  • Mac OX Sierra XCode 8.3.1
  • Windows 10 Visual Studio 2015 64-bit

I used cmake 3.7.2 to build project files.

If you have problems linking UnscentedKFTests under VS2015, go to Project Settings and set C\C++->Code Generation->Multithreaded Debug for all projects in Visual Studio IDE, then rebuild.

Code Style

To enforce Google's C++ style guide, I included Google's cpplint.py file available in ./src/Lint folder. This tool expects installed python2.7. To check style of my code, run the following command line (from ./src/Lint):

./cpplint.py ../*.h ../*.cpp

Project Structure

The project consists of UnscentedKF and UnscentedKFTests applications, linking with UnscentedKFLib static library, which implements all the functionality.

UnscentedKF application has the same command line syntax as in the original repo. Use the same build commands to generate and compile project files as described there.

For UnscentedKFTests, I used GoogleTest framework, cloned in ./lib folder.

For more expressive and laconic code, I enforced using C++11 standard in CMake file by -std=c++11 command.

The code consists of the following modules:

  • ukf.h/.cpp implements Unscented Kalman Filter mathematics and CTRV car model with Radar and Lidar sensors
  • tools.h/.cpp implements EvaluateRmse() function to calculate RMSE against data set
  • ground_truth_package.h, measurement_package.h declares structures for ground truth and measurement data
  • main.cpp is an entry point for UnscentedKF application
  • *_test.cpp implement test cases for corresponding modules, run by UnscentedKFTests application

Passing Criteria

UnscentedKF fits obj_pose-laser-radar-synthetic-input.txt with the following RMSE:

Accuracy - RMSE:
0.0618334
0.0837659
 0.318465
 0.213166
Done!

This is below [.09, .10, .40, .30] passing criteria values

About

Self-Driving Car Nanodegree Program Starter Code for the Unscented Kalman Filter Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 91.0%
  • Python 6.5%
  • C 0.8%
  • CMake 0.5%
  • Shell 0.4%
  • Makefile 0.4%
  • Other 0.4%