Code Monkey home page Code Monkey logo

erfan-ashtari / path-planning Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 1.0 32.43 MB

Implementation of "Safe Deep Learning-Based Global Path Planning Using a Fast Collision-Free Path Generator". We present a global path planning method in this project which is based on an LSTM model that predicts safe paths for the desired start and goal points in an environment with polygonal obstacles, using a new loss function (MSE-NER).

Jupyter Notebook 87.11% Python 12.89%
a-star ai2-thor ai2thor-environment artificial-intelligence bug-algorithms collision-avoidance deep-learning global-path-planning loss-functions lstm-neural-networks

path-planning's Introduction


Safe Deep Learning-Based Global Path Planning Using a Fast Collision-Free Path Generator

πŸ“ƒ papers

  • Safe Deep Learning-Based Global Path Planning Using a Fast Collision-Free Path Generator:

  • Synergy of Deep Learning and Artificial Potential Field Methods for Robot Path Planning in the Presence of Static and Dynamic Obstacles:

πŸ“ Authors

  1. Shirin Chehelgami:

  2. Erfan Ashtari:


πŸ’¬ Explanation

The implementation of "Safe Deep Learning-Based Global Path Planning Using a Fast Collision-Free Path Generator" is shared in this repository. We present a safe deep learning-based global path planning method in this project. This method is based on an LSTM model that predicts paths for the desired start and goal points in an environment with polygonal obstacles. To predict safe paths with an appropriate distance from obstacles, a new loss function (MSE-NER) is developed. You can conduct experiments in both the "main" and "main test a sample" notebooks to build the project from scratch or to use pre-trained models. The AI2THOR framework is used for the simulations, and you can test our path planning method on all of its environments. The results of this project resulted in the publication of two papers, which you can access via the links above. Additionally, in the Gallery section, you can see the robot movement for a sample path generated using our method in an AI2THOR environment.

Instructions

βš™ Usage Steps

  1. clone the repository in your google drive.
  2. use the "main" or "main_test a sample" notebooks.
  3. In the second cell of the notebooks, you can change the root directory for accessing AI2THOR_py folder.

πŸ“„ main

Use it for doing all the project from the scratch.
At first, it asks you for the number of your desired environment between 194 different AI2THOR environments. Then it creates a map containing polygonal obstacles and generates as many as path data that is needed for training the LSTM model. After that, you can train the model and see how it performs in the environment forΒ some random starts and goals. Finally, it provides three mp4 files in which you can see the robot's movements between a start point and a goal point in the AI2THOR framework's selected environment from various points of view.


πŸ“„ main_test a smple

Use it for simulating a sample path in AI2THOR environment.
This notebook includes just final steps of the "main" notebook and enables you to simulate the robot movements. You can generate a sample path for the robot using a pre-trained model. The notebook's output contains three videos of the robot's movement from various points of view.


πŸ“ AI2THOR_py

  • ai2thormap: generates a map with polygonal obstacles for AI2THOR environments.

creates map contains obstacle polygons for AI2THOR environments.

  • ai2thorgeneratepatches: contains a function that displays polygons of the considered environment in AI2THOR.

  • ai2thorgeneratesamlpes: contains functions for generating sample points from the environment's free space.

contain functions that generates sample points from free-space in the environment.

  • ai2thorcreatedata: contains functions for generating any amount of path data required for training the LSTM model using the GB method in the desired environment.

contain functions that creates any amount of path data that is needed using GB method for the desired environment.

  • ai2thorprocessdata: contains functions that create the LSTM network's required input and output using the path generated by the GB method.

contains functions that selects the required input and output of the LSTM network using the path create by the GB method.

  • ai2thorloss: tensorflow implementation of the MSE-NER and keras implementation of the MSE loss functions.

  • ai2thormodel: implementation of the LSTM network (OracleNet) used for path planning.

  • ai2thortrain: contains functions for training the LSTM network with the processed data generated by the GB method and saving the model.

contains functions that train the LSTM network using the processed data created by GB method and save the model.

  • ai2thortest: contains functions for evaluating the trained model for both desired and random start and goal points.

contains functions that evaluate the trained model for the desired as well as random start and goal points.

  • AI2THOR_PATH2GIF: Simulates the Robot movement in an AI2THOR environment.

References

πŸ“ƒ Reference paper

  • Neural Path Planning: Fixed Time, Near-Optimal Path Generation via Oracle Imitation :

πŸ€– AI2THOR

🦾 AI2THOR Full-Starter

  • Link:

Gallery

πŸ–Ό Selected AI2THOR environment:

πŸ–Ό Obtained map:

πŸ–Ό generated path:

🎬 Top view:

🎬 Top view (Segmented):

🎬 Robot view:

🎬 Side view (Fixed camera):

path-planning's People

Contributors

erfan-ashtari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

yamashirohermit

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.