Skip to content

AdaCompNUS/despot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Approximate POMDP Planning Online (APPL Online) Toolkit

Copyright © 2014-2018 by National University of Singapore.

APPL Online is a C++ implementation of the DESPOT algorithm for online POMDP planning [1]. It takes as input a POMDP model in the POMDPX file format. It also provides an API for interfacing directly with a blackbox simulator.

For bug reports and suggestions, please email [email protected].

[1] N. Ye, A. Somani, D. Hsu, and W. Lee. DESPOT: Online POMDP planning with regularization. J. Artificial Intelligence Research, 58:231–266, 2017.

Table of Contents

Requirements

Tested Operating Systems:

Linux OS X
Build Status Build Status

Tested Compilers: gcc | g++ 4.2.1 or above

Tested Hardware: Intel Core i7 CPU, 2.0 GB RAM

Download

Clone the repository from Github (Recommended):

$ git clone https://github.com/AdaCompNUS/despot.git

OR manually download the Zip Files. For instructions, use this online Github README.

Installation

Compile using make:

$ cd despot
$ make

(Optional): If you prefer using CMake see the CMakeLists section.

Quick Start

DESPOT can be used to solve a POMDP specified in the POMDPX format or a POMDP specified in C++ according to the API. We illustrate this on the Tiger problem.

(Deprecated) 1.To run Tiger specified in POMDPX format, compile and run:

$ cd despot/examples/pomdpx_models
$ make
$ ./pomdpx -m ./data/Tiger.pomdpx --runs 2 

This command computes and simulates DESPOT's policy for N = 2 runs and reports the performance for the tiger problem specified in POMDPX format. See doc/Usage.txt for more options. For more details on the POMPDX format, see this page

2.To run Tiger specified in C++, compile and run:

$ cd despot/examples/cpp_models/tiger
$ make
$ ./tiger --runs 2

This command computes and simulates DESPOT's policy for N = 2 runs and reports the performance for the tiger problem specified in C++. See doc/Usage.txt for more options.

Most of options in doc/Usage.txt can also be specified the programmatically, see include/despot/config.h for the global parameters to use, and the InitializeDefaultParameters function in this section for an example.

Documentation

Documentation can be found in the "doc" directory.

For a description of our example domains and more POMDP problems see the POMDP page.

Using DESPOT with External Systems

An example of integrating DESPOT with an external Gazebo simulator can be found in the DESPOT tutorials page.

Package Contents

Makefile                  Makefile for compiling the solver library
README.md                 Overview
include                   Header files
src/core                  Core data structures for the solvers
src/solvers               Solvers, including despot, pomcp and aems
src/pomdpx                Pomdpx and its parser
src/util                  Math and logging utilities
license                   Licenses and attributions
examples/cpp_models       POMDP models implemented in C++
examples/pomdpx_models    POMDP models implemented in pomdpx
doc/pomdpx_model_doc      Documentation for POMDPX file format
doc/cpp_model_doc         Documentation for implementing POMDP models in C++
doc/usage.txt             Explanation of command-line options
doc/eclipse_guide.md      Guide for using Eclipse IDE for development

CMakeLists

(Optional)

If you are interested in integrating DESPOT into an existing CMake project or using an IDE for editing, we provide a CMakeLists.txt.

To install DESPOT libraries and header files into your system directory:

$ cd despot
$ mkdir build; cd build
$ cmake ../
$ make
$ sudo make install

To integrate DESPOT into your project, add this to your CMakeLists.txt file:

find_package(Despot CONFIG REQUIRED)

add_executable("YOUR_PROJECT_NAME"
  <your_src_files>
)

target_link_libraries("YOUR_PROJECT_NAME"
  despot
)

More Resources

HyP-DESPOT: A parallel belief tree search algorithm that integrates DESPOT with both CPU and GPU parallelization. Check out the paper and the code.

Acknowledgements

Pocman implementation and memorypool.h in the package are based on David Silver's POMCP code

Bugs and Suggestions

Please use the issue tracker.

Release Notes

2015/09/28 Initial release.

2017/03/07 Public release. Revised documentation.

2018/09/20 New API release.