/a-star-robot

Implements A* algorithm to optimal path from a start to goal point for a non-holonomic rigid robot

Primary LanguagePythonMIT LicenseMIT

A* Robot

Build Status License

Authors

Overview

This project is an implementation of A* algorithm on a rigid non-holonomic robot to traverse through a known environment. The project is divided into 4 phases.

  • Phase-1: Installation of ROS and V-REP
  • Phase-2: Implementation of A* on a non-holonomic robot
  • Phase-3: Implementation of A* on a differential-drive robot
  • Phase-4: Implementation of A* on Turtlebot using ROs

Phase 3 and 4 have been implemented on another repository


Figure 1 - Exploration of a non-holonomic rigid robot using A* to find optimal path from start to goal

Dependencies

  • Python3
  • Python3-tk
  • Python3 Libraries: Numpy, OpenCV-Python, Math

Install Dependencies

  • Install Python3, Python3-tk, and the necessary libraries: (if not already installed)
sudo apt install python3 python3-tk
sudo apt install python3-pip
pip3 install numpy opencv-python
  • 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 tkinter
import numpy
import cv2

Run Instructions

  • Using the terminal, clone this repository and go into the project directory, and run the main program:
git clone https://github.com/namangupta98/a-star-robot
cd a-star-robot
  • If you have a compressed version of the project, extract it, go into project directory, open the terminal, and type:
python3 a_star_robot.py start_x,start_y,start_orientation goal_x,goal_y,goal_orientaion robot_radius,clearance step_size,theta animation
python3 a_star_robot.py 50,30,60 150,150,0 1,1 1,30 1
  • Refer documentation of a-star-robot.py to understand further about input arguments.


Figure 1 - Final path using A* from start to goal

  • Note that the project does not consider the orientation of the robot at the goal point. The goal orientation parameter will be considered in the next phase of the project.