In this project, you are going to implement the extended Kalman filter in C++. You will be tracking the bicycle's position and velocity and predicting the positon of the object.
There is a simulator provided by Udacity (Term 2 Simulator Release) which can generate noisy LIDAR and RADAR measurements. And you will be using those measurements to predict your object position.
Here is the link to the orginal repository provided by Udaciy.
- cmake: 3.5
- All OSes: click here for installation instructions
- make: 4.1 (Linux and Mac), 3.81 (Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- gcc/g++: 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - install Xcode command line tools
- Windows: recommend using MinGW
- Meet the
Prerequisites/Dependencies
- Intall
uWebSocketIO
on your system
2.1 Windows Installation
2.1.1 Use latest version of Ubuntu Bash 16.04 on Windows 10, here is the step-by-step guide for setting up the utility.
2.1.2 (Optional) Check your version of Ubuntu Bash here. - Open Ubuntu Bash and clone the project repository
- On the command line execute
./install-ubuntu.sh
- Build and run your code.
- starter code in the
src
folder - a README file with instructions on compiling the code
- a
Docs
folder, which contains details about the structure of the code templates CMakeLists.txt
file that will be used when compiling your code (you do not need to change this file)- a data file for testing your extended Kalman filter which the simulator interface provides
- Clone this respository
- At the top level of the project repository, create a build directory:
mkdir build && cd build
- In
/build
directory, compile yoru code withcmake .. && make
- Launch the simulator from Windows
- Execute the run command for the project
./ExtendedKF
(Make sure you also run the simulator on the Windows host machine) If you see * * this message, it is workingListening to port 4567 Connected!!!
Compiled successfully.
2.2 px, py, vx, vy output coordinates must have an RMSE <= [.11, .11, 0.52, 0.52] when using the file: "obj_pose-laser-radar-synthetic-input.txt" which is the same data file the simulator uses for Dataset 1.
Meet
3.1 Your Sensor Fusion algorithm follows the general processing flow as taught in the preceding lessons.
My Kalman Filter implementation is completed at kalman_filter.cpp
The first measurement is handled at FusionEKF.cpp
Line79-130
My Kalman Filter predict function will be called at FusionEKF.cpp
Line132-166
My Kalman Filter update function will be called after predict function at FusionEKF.cpp
Line135-192
My Kalman Filter update function will handle them at FusionEKF.cpp
Line135-192
Yes.
Please (do your best to) stick to Google's C++ style guide.
Video recordings for success cases.
Success to plan path on dataset 1.
Success to plan path on dataset 2.