Skip to content

urastogi885/sub-optimal-path-finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sub-Optimal-Path-Finder

Build Status License

Overview

This project implements search-based algorithms that yield a sub-optimal path if one exists. Path finding algorithms, such as Weighted A*, have been used to find a sub-optimal path for the robot from the user-defined start to end point. The project also generates animation to visualize the exploration of each of the mentioned search-based methods. It first checks that the user inputs do not lie in the obstacle space. Note that the obstacle space is pre-defined and static.

In Weighted A*, the heuristic cost is multiplied by an inflation factor, epsilon. If epsilon is 1, Weighted A* reduces to A*.

Unlike A* and Weighted A*, Depth-first search(DFS) has no concept of cost-to-come and cost-to-goal. Moreover, it is based on a Last-In-First-Out (LIFO) queue. A LIFO queue is simply known as a stack.


Figure 1 - Comparison of A*, Weighted A*, and DFS

Todo

  • Implement tree based algorithms such as PRM and RRT

Dependencies

  • Python3
  • Python3 Libraries: Numpy, OpenCV-Python, Math, Queue, Time, Sys, Ast

Install Dependencies

  • Install Python3, Python3-tk, and the necessary libraries: (if not already installed)
These commands are based for Linux systems such as Ubuntu
sudo apt install python3
sudo apt install python3-pip
pip3 install numpy opencv-python queue
  • Check if your system successfully installed all the dependencies
  • Open terminal using Ctrl+Alt+T and enter python3
  • The terminal should now present a new area represented by >>> to enter python commands
  • Now use the following commands to check libraries: (Exit python window using Ctrl+Z if an error pops up while running the below commands)
import numpy
import cv2
import queue

Run

  • Using the terminal, clone this repository and go into the project directory, and run the main program:
git clone https://github.com/urastogi885/sub-optimal-path-finder
cd sub-optimal-path-finder
  • If you have a compressed version of the project, extract it, go into project directory, open the terminal, and run the robot explorer.
python3 robot_explorer.py <start_x,start_y> <goal_x,goal_y> <robot_radius> <clearance> <method> <animation>
  • An example for using Weighted A* for a rigid robot:
python3 robot_explorer.py 50,30 150,150 2 1 0 1
  • The output in the Overview section has been generated using the above arguments.

Releases

No releases published

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy