This project explores drone navigation in both simulated and real-world environments using two popular pathfinding algorithms: A* and Bellman-Ford. The implementation demonstrates the application of these algorithms to compute optimal paths while considering obstacles and penalties.
Simulations were conducted using:
- MATLAB for grid-based environments.
- Python (with OpenStreetMap data) for large-scale geographical maps of any location.
- A*: Fast, heuristic-driven pathfinding optimized for real-time applications.
- Bellman-Ford: Versatile algorithm capable of handling graphs with negative weights.
- Obstacle Avoidance: Dynamic penalty assignment for obstacle nodes.
- Visualization: Graphical representation of paths and obstacles.
- Programming Languages: Python, MATLAB
- Python Libraries:
OSMnx
: Map data extractionNetworkX
: Graph manipulationMatplotlib
: VisualizationHeapq
: Priority queue implementation
- Clone this repository:
git clone https://github.com/souradeepdutta/Drone-Path-Navigation-Simulation.git
- Navigate to the project directory:
cd python
- Install Python dependencies:
pip install -r requirements.txt
- Open the MATLAB scripts in the
MATLAB
directory. - Run the
Main.m
to simulate pathfinding on a grid.
- Prepare your environment:
- Ensure Python 3.x is installed.
- Install dependencies using the command above.
- Run the Python scripts:
or
python A_star.py
python Bellman_Ford.py
- Visualize the paths on maps of Chennai or Manhattan.
- Your can modify the location according to your preference.
- Grid-based (MATLAB): 10x10 grid with predefined obstacles.
- Geographical Maps (Python): Road networks extracted using OpenStreetMap.
- High-weight nodes.
- Infinite-cost edges.
- Dynamic penalties for obstacle avoidance.
- Computational Time: Measured in seconds.
- Path Length: Measured in number of nodes.
- A*: Faster computation due to heuristic-driven approach.
- Bellman-Ford: More versatile but slower in complex environments.
This project is licensed under the MIT License. See the LICENSE file for details.