The repository contains two simulators -
A python based simulator for path planning algorithms such as A*, JPS, Dijkstra, and other state-of-the-art algorithms.
The project builds upon the Cluster Allocate Cover (CAC) simulator implemented by Prof.Avinash to make it faster and more efficient. The bottle neck, as found by profiling the code was turning out to be the path planning algorithm for the simulator. To tackle this issue, comparative analysis of state-of-the-art path planning and exploration algorithms via simulation and experimentation was performed in this project. The simulation is performed on 50+ custom grid maps of size 50 x 50 on a python based simulator. Experiments are also performed on a Turtlebot, on which a node containing all studied path planning algorithms is written on the ROS Indigo platform and tests on 10+ real maps are performed (On Gazebo/Rviz as well as in the lab). The following graph search algorithms were tested in the study:
JPS was found to be the best performing algorithm on the simulator as well as the Turtlebot.
The srepository also includes implementations of the following frontier based exploration algorithms
A simple extension of the simulator has been implemented in JavaScript for ease of viewing in web browsers. The JavaScript version contains the following algorithms:
Just one map has been created for this simulator, this being the secondary version to the Python Simluator.
A path planning node for Robot Operating System (ROS-Indigo) has been implemented and can be found in the /Turtlebot Node - Path Planning/ folder of this repository. To integrate this node into your ROS package, you may follow this article. This package contains implementations of the following algorithms: