Skip to content

Shivam-Bhardwaj/OpenStreetMap-Route-Planning

Repository files navigation

Route Planning Project

Udacity - Self-Driving Car NanoDegree NYU Logo

The following project is a part of Udacity’s C++ NanoDegree program. The aim of project is to successfully find the shortest path between two points on the map.

  • Map data from OSM XML file is parsed and the optimal path is plotted using IO2D Library in C++;
  • Used GoogleTest Framework for unit testing.

The Project

The steps of this project are the following:

  • Parsing the data from OpenStreetMap file (.OSM xml file)
  • The user inputs two points on the map and initial and final points
  • Route planner is executed
    • Based on the points input by the user, the closest initial and final nodes are found.
    • A list of feasible open nodes is updated.
    • Based on a heuristic value and the distance from the start node, next node is popped.
    • From the popped node, the open list is again updated.
  • The process is repeated till either the next node is the goal, or the open list is exhausted.
  • The path is returned and plotted used IO2D library.

Cloning

When cloning this project, be sure to use the --recurse-submodules flag.

git clone https://github.com/Shivam-Bhardwaj/OpenStreetMap-Route-Planning --recurse-submodules

Dependencies for Running

Compiling and Running

Compiling

To compile the project, first, create a build directory and change to that directory:

mkdir build && cd build

From within the build directory, then run cmake and make as follows:

cmake ..
make

Running

The executable will be placed in the build directory. From within build, you can run the project as follows:

./OSM_A_star_search

Or to specify a map file:

./OSM_A_star_search -f ../<your_osm_file.osm>

Testing

The testing executable is also placed in the build directory. From within build, you can run the unit tests as follows:

./test

The code was tested on the following specifications

  • CPU: Intel(R) Core(TM) i9-8950HK CPU @ 4.8 Ghz
  • GPU: Nvidia GeForce GTX 1050 Ti Mobile
  • OS: Ubuntu 16.04.6 LTS (Xenial Xerus)
  • Kernal: 4.15.0-48-generic

About

Path-Planning using A* Algorithm for OpenStreetMap Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published