GithubHelp home page GithubHelp logo

forrest-z / nonholonomicastar Goto Github PK

View Code? Open in Web Editor NEW

This project forked from astha736/nonholonomicastar

0.0 1.0 0.0 1.26 MB

The project explores path planning for non-holonomic mobile robot using A* search Algorithm.

CMake 1.05% C++ 70.55% TeX 17.50% Python 10.90%

nonholonomicastar's Introduction

NonHolonomicAstar

A* is a well-known algorithm widely used for solving graph-based search and path-finding problems. While the traditional algorithm is suited for graph search, it does not seem to be well suited for actual planning because it requires a discretization of the environment and cannot really take into account the nonholonomic constraints governing a mobile robot’s motion.

Though the traditional path-planning approach of discretizing the environment space and using the A* algorithm may not be suited, different other approaches can be devised which utilise the A* technique and also satisfy the nonholonomic constraints governing the robot’s motion. These approaches may promise satisfactory performance. However, this area remains relatively unexplored.

Objective

The objective of the present study is to explore a variation of the traditional path-planning approach which involves discretization of not the environment, but the control inputs to solve path planning problem for a (2,0) robot. An expected outcome is that the discretization happens in lower dimension than when done on the environment, and that the generated path complies with the nonholonomic constraints.

Robot architecture

The (2,0) mobile robot is a two degrees-of-freedom system which contains two independently actuated fixed type wheels (left and right). The robot is controlled via setting the angular velocities of the left and right wheels which determine the overall behaviour of the robot.

Non-holonomic constraints – Constraints which can’t be expressed solely as functions of the coordinate parameters of the system and time elapsed are called non-holonomic constraints. For mobile robots, these constraints dictate what types of motions are feasible. In case of a (2,0) type mobile robot, at any instant, the non-holonomic constraints render the robot capable of:

  • Moving in a straight line along the local axis 𝑿 of the mobile frame at linear velocity 𝒗
  • Rotating about its centre along the 𝒁 axis at angular velocity 𝝎
  • A combination of both

Code Architecture

Note: always make a "results" folder inside the "mazes" folder.

nonholonomicastar's People

Contributors

astha736 avatar sthithpragya avatar

Watchers

James Cloos 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.