This package is developed as part of a ROS (Robot Operating System) project for path planning. It includes implementations of A* (A star), Dijkstra, and Greedy algorithms for path planning in robotic applications.
In developing the path planning package, certain important assumptions have been made regarding the capabilities and environment of the robot. Firstly, it is assumed that the robot possesses a pre-existing map of its environment, allowing it to navigate effectively. Additionally, the robot is assumed to have accurate knowledge of its own location within this map, facilitating precise path planning. Another crucial assumption is that the environment in which the robot operates remains static and does not undergo any significant changes during the path planning process. Finally, the robot is assumed to have the ability to move in four cardinal directions (up, down, left, or right) within the map, provided that the corresponding spaces are unobstructed. These assumptions form the basis for the design and implementation of the path planning algorithms within the package.
To use this package, follow these steps:
- Clone this repository into your ROS workspace's src directory:
git clone <repository_url>
- Build the package using catkin_make:
cd <path_to_your_ros_workspace>
catkin_make
- Launch the simulation world:
roslaunch unit2_pp simulation_unit2.launch
- Execute the path planning launch file:
roslaunch unit2_pp unit2_exercise.launch
- Choose which algorithm you want to use for path planning in the make_plan.py file:
Example
from algorithms import dijkstra, a_star, greedy
path = greedy(start_index, goal_index, width, height, costmap, resolution, origin, viz)
Following is the example of dijkstra algorithm: