GithubHelp home page GithubHelp logo

bharadwaj-chukkala / path-planning-for-a-point-robot-using-a-star-search-algorithm Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 155 KB

ENPM 661 Project 3: A point robot uses A-star search algorithm to find the goal node in a configuration space while avoiding the obstacles in the map

License: MIT License

Python 100.00%
algorithm numpy path-planning python robotics search-algorithm

path-planning-for-a-point-robot-using-a-star-search-algorithm's Introduction

Path-Planning-for-point-robot-using-A-star-search-algorithm

Project Description

A Star search algorithm was predominantly used as a path planner for autonomous robots a while ago. It has some advantageous characteristics like finding the path with least cost. In this project we will be using A star algorithm to plan the path for a mobile robot in an environment with static variables.

Objective

Implement A* Algorithm to find a path between start and end point on a given map for a mobile robot. We need to make sure that no state is repeated so as to avoid infinite looping.

  • A Star : A* is an informed search algorithm, or a best-first search, meaning that it is formulated in terms of weighted graphs starting from a specific starting node/state, it aims to find a path to the given goal node having the smallest cost (least distance travelled, shortest time, etc.).
  • Action/Move Set : The Action/Move Set that the algorithm uses has 5 actions each having a Euclidean distance threshold of 0.5 unit and a theta threshold of 30 degrees for each action. Using these actions, the algorithm generates new states at every state and checks whether each new state is the required goal state.
  • Distance Metric : We are using the Euclidean Distance as the Metric which is the absolute distance between two points. It's being used with a threshold of 0.5 unit. Euclidean distance is used as a threshold to constraint the maximum extent of actions.
  • Unique State Checker : We implement a set data structure to store all existing states. We will write an algorithm such that every unique state that is being entered into the set will be compared to all other existing states to avoid repitition.

Contents

    ├── Outputs  
    │   └── images
    ├── LICENSE
    ├── README
    └── A-star_path_planner.py

Instructions

Flowchart of the algorithm

TB3

Steps to run my implementation

  1. Clone the repository
git clone https://github.com/bharadwaj-chukkala/Path-Planning-for-a-point-robot-using-A-star-Search-Algorithm.git
  1. Install Python 3.9 and the libraries mentinoned below prior to running the code
  2. Go to the root directory from your IDE.
  3. Open the clonned project file in any IDE. (I used PyCharm)
  4. UnComment the line used for Visualization i.e. '309', which says- "plt.pause(0.00...1)"
  5. Run the Program
  6. In the Console, the program asks for:
    • The Obstacle Clearance and Robot Radius
    • Robot Step Size and
    • The x and y coordinates of Start and Goal Node.
  7. Enter as prompted. example below
    1. Clearance: 5
    2. Robot Radius: 10
    3. Step size: 1
    4. Start: 50, 50
    5. Initial Theta: 30
    6. Goal: 150, 150
    7. Final Theta: 30.
  8. The Output Plot with planned Path should be Visible.

Dependencies

  • NumPy
  • argparse
  • Matplotlib
  • math
  • heapq
  • time

Results

Understanding the Output Plots

  • The Robot movable space is shown in White Color
  • The Pixels in Blue are the Obstacles.
  • The Pixels in Cyan is the Clearance Space.
  • The explored path is marked by Green color.
  • The Planned Path is shown by Red Dotted Lines.

Step size 1
Step size 1

Step size 2
Step size 2

Step size 3
Step size 3

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author Contact

Bharadwaj Chukkala
UID: 118341705
Bharadwaj Chukkala is currently a Master's student in Robotics at the University of Maryland, College Park, MD (Batch of 2023). His interests include Machine Learning, Perception and Path Planning for Autonomous Robots.
Contact LinkedIn GitHub

path-planning-for-a-point-robot-using-a-star-search-algorithm's People

Contributors

bharadwaj-chukkala avatar

Stargazers

 avatar SAI TEJA GILUKARA avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.