Code Monkey home page Code Monkey logo

rrt_medirl's Introduction

RRT_MEDIRL

RRT_MEDIRL implementation for Tensorflow

Getting Started

For more information about this work please check this paper:

Learning RRT*-based human-aware path planning through Maximum Entropy Deep Inverse Reinforcement Learning by G. Mier, N. Pérez-Higueras, F. Caballero and L. Merino. Submmited to the 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2018)

The data used to train and test the model is here (new data) and here (upo_fcn_learning package).

Prerequisites

The code uses OpenCV, Numpy, Tensorflow and Keras.

To install the python dependencies:

sudo apt install python-pip
sudo pip install -r requirements.txt

Opencv has to be installed to link with your gcc compiler.

Installing

First, download the repo and create a bin folder on it:

cd <workspace>
git clone https://github.com/robotics-upo/RRT_MEDIRL.git
cd RRT_MEDIRL
mkdir bin

Change the variable "RRT_DIR" in the compile.sh file to have the dir of the bin folder. Then, compile the layers as:

sudo chmod +x compile.sh
./compile.sh

Running the tests

Unfortunately, one of our biggest optimization is to compute the array size in compilation time. To modify the parameters of the RRT*, change them in the first lines of the RRTStar.h file.

To run the test, change the parameter RRT_STAR_INPUT_SHAPE_1 to 1. Then, from the main folder, run:

python test_python_rrt.py

This will create two new images in the resources folder. One with the path and other with the map and the path of the test example.

To train or evaluate a network (or predict using it), modify the values train, evaluate and predict in rrt_train file. Values equal to 1 will execute that part of the code. Values equal to 0 won't. Also, the value of batch_size in rrt_train file has to be equal than the RRT_STAR_INPUT_SHAPE_1 in RRTStar.h file.

As the loading of images is really slow, make sure the first time you run a new dataset in the rrt_train file as:

create_npy_files = True
load_npy_files = False

and the other times:

create_npy_files = False
load_npy_files = True

Lastly, in the rrt_train file, variables dataset_dir, testset_dir, save_dir1 and save_dir2 should point to the dataset your going to use (right now pointing to the data folder).

Structure and contents:

In the folders you will find data and scripts to reproduce our experiments and results. About folders and its contents:

Matlab Code Folder:

The code to make the plots used in the paper are in this folder. All the code in this folder use Matlab 2017b.

Results Folder

Results folder will be empty until you execute the rrt_train file in prediction mode.

Resources Folder

The Resources folder contains an example to test the path planning algorithm.

Data Folder

The data folder should contain the dataset to use.

Authors

License

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

rrt_medirl's People

Stargazers

 avatar  avatar Thordreck avatar Michael avatar  avatar Kolja Esders avatar  avatar AnhuiZhang avatar

Watchers

James Cloos avatar Gonzalo Mier avatar Jesus Capitan avatar Luis Merino avatar Fernando Caballero avatar David Alejo Teissière avatar Noé Pérez-Higueras 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.