Giter Club home page Giter Club logo

cobra-icaps2015's Introduction

COBRA -- Complete decentralized method for on-line multi-robot trajectory planning in valid infrastructures
===========================================================================================================

This repository contains an implementation of COBRA algorithm and the dataset used for experimental comparision as described in the paper:

M. Čáp, J. Vokřínek, and A. Kleiner, “Complete decentralized method for on-line multi-robot trajectory planning in valid infrastructures,” in International conference on planning and scheduling, ICAPS 2015, 2015.

Dependencies:
-------------

The following software must be installed on the machine where the experiment is executed: 
 * Java JDK 7 or higher
 * Maven
 * GNU parallel
 * R programming language with packages: plyr, ggplot2, rcolorbrewer, gridExtra

In Ubuntu 14.04, all the dependencies can be installed by running

$ sudo apt-get install -y openjdk-7-jdk maven parallel r-base r-cran-plyr r-cran-ggplot2 r-cran-rcolorbrewer
$ sudo Rscript -e "install.packages('gridExtra', repos='http://cran.us.r-project.org')"

1. Recomputing the whole experiment:
--------------------------------

To recompute the entire experiment, run the following command:

$./run-experiment.sh

2. Executing single simulation run:
-----------------------------------

2.1 Compiling
---------
The dependencies are managed using Maven. To compile the project and create a jar archive with dependencies run:	

$ mvn package

The jar archive with all dependencies will be in:

target/map4rt-1.0-SNAPSHOT-jar-with-dependencies.jar

Alternatively, you can open the project in your favorite IDE, i.e. in Eclipse.

2.2 Getting started
---------------

A simulation is run by executing cz.agents.map4rt.ScenarioCreator class.

Parameters:
  -problemfile 		Path to the xml file with problem description.
  -method			Specifies method to be used to solve the problem. One of {COBRA, ORCA}.
  -maxtime			Specifies the maximum time (in miliseconds) considered during trajectory planning.
  -timestep			The discretization of time-dimension used during trajectory planning.
  -timeout          The timeout in miliseconds after which the simulation will be terminated
  -ntasks           Number of random tasks to generate for each robot
  -seed             Random seed used to generate the random tasks for the robots
  -showvis          Turns on/off the visualization.
  
Detailed information can be derived from the source code, in particular from the method cz.agents.admap.creator.ScenarioCreator.createFromArgs().  

Example: 
--------

The following command will run the COBRA on the example problem instance described in file experiment/instances/ubremen-r27/28.xml with 4 tasks for each robot randomly generated with random seed 8.

$java -jar target/map4rt-1.0-SNAPSHOT-jar-with-dependencies.jar cz.agents.map4rt.creator.ScenarioCreator -method COBRA -problemfile experiment/instances/ubremen-r27/28.xml -ntasks 4 -timestep 650 -maxtime 600000 -timeout 600000 -seed 8 -showvis

2.3 Visualization control: 
----------------------

When the visualization window pops-up, use the following keys to toggle various useful visualization layers:
  m - missions/tasks of agents
  t - trajectories of agents
  g - planning graph
  p - polygons representing obstacles 
  
Dragging with right mouse button pressed moves the viewport. Mouse wheel zooms the view.

cobra-icaps2015's People

Contributors

letalvoj avatar mcapino avatar vasekja2 avatar

Forkers

sjm2024

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.