Skip to content

The fifth project in the Udacity Self-Driving Car Engineer Nanodegree: using an extended Kalman filter in C++ to estimate pedestrian pose and trajectory

Notifications You must be signed in to change notification settings

ibvandersluis/udacity-CarND-P05-cpp-ekf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Extended Kalman Filter in C++

The fifth project in the Udacity Self-Driving Car Engineer Nanodegree: using an extended Kalman filter in C++ to estimate pedestrian pose and trajectory given radar and lidar readings.

Description

The EKF code will use simulated output from a radar and lidar sensor to track a moving object. For this project, we will assume that the parsing of the raw sensor data has already been done successfully by another process, and this program will take information from the sensors regarding the location of the detected object.

EKF Process Flowchart

Kalman filters help us combine a prediction and a measurement with an accurate estimation of the state of the object. Here is a one-dimensional illustration:

Kalman Filter Diagram

By applying these concepts to a 2D measurement space and using different update equations for each sensor, we can accurately track an object as it moves around a plane.

Requirements

  • cmake >= 3.10
  • make >= 4.1
  • gcc/g++ >= 5.4
  • uWebSockets
  • Eigen

To install uWebSockets, follow these instructions:

git clone https://github.com/uWebSockets/uWebSockets 
cd uWebSockets
git checkout e94b6e1
mkdir build
cd build
cmake ..
make 
sudo make install
cd ../..
sudo ln -s /usr/lib64/libuWS.so /usr/lib/libuWS.so
sudo rm -r uWebSockets

Build instructions

  1. Clone this repo
git clone https://github.com/ibvandersluis/udacity-CarND-P05-cpp-ekf.git
cd udacity-CarND-P05-cpp-ekf
  1. Make build directory
mkdir build && cd build
  1. Build with cmake
cmake ..
make

Run

To run this project as intended, you will need the Term 2 Udacity Simulator.

  1. Run the EKF
./ekf

You should get back:

Listening to port 4567
  1. Run the simulator and select 'Project 1/2: EKF and UKF'

When you do this, the EKF executable should report:

Connected!!!
  1. Select either Dataset 1 or Dataset 2 and click start. You should see laser measurements appear in red and radar measurements appear in blue. The output of the EKF will appear as green triangle markers and should follow the car smoothly.

EKF Simulator

NOTE: If you want to run the EKF again, click the RESET button but restart the EKF executable before clicking START again!

About

The fifth project in the Udacity Self-Driving Car Engineer Nanodegree: using an extended Kalman filter in C++ to estimate pedestrian pose and trajectory

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published