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.