Overview
Project 6: Kidnapped Vehicle of Udacity's Self-Driving Car Nanodegree.
Project Introduction
The robot has been kidnapped and transported to a new location! Luckily it has a map of this location, a (noisy) GPS estimate of its initial location, and lots of (noisy) sensor and control data.
In this project a 2 dimensional particle filter will be implemented in C++. A simulator is provided by Udacity. The particle filter will be given a map and some initial localization information (analogous to what a GPS would provide). At each time step the filter will also get observation and control data.
The job is to build out the methods in particle_filter.cpp
until the simulator output says:
Success! Your particle filter passed!
Here is a video of this project.
Running the Code
Following commands are used to clean, compile and run the codes.
./clean.sh
./build.sh
./run.sh
Then a message will be shown to indicate the filter is listening:
Listening to port 4567
Inputs to the Particle Filter
The inputs to the particle filter can be found in the data
directory.
The Map*
map_data.txt
includes the position of landmarks (in meters) on an arbitrary Cartesian coordinate system. Each row has three columns
- x position
- y position
- landmark id
All other data the simulator provides, such as observations and controls.
- Map data provided by 3D Mapping Solutions GmbH.
Success Criteria
the things the grading code is looking for are:
- Accuracy: the particle filter should localize vehicle position and yaw to within the values specified in the
parameters max_translation_error
andmax_yaw_error
insrc/main.cpp
. - Performance: the particle filter should complete execution within the time of 100 seconds.