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.
- Requirements
- Download
- Installation
- Quick Start
- Documentation
- Using DESPOT with External Systems
- Package Contents
- CMakeLists
- Acknowledgements
- Bugs and Suggestions
- Release Notes
Tested Operating Systems:
Linux | OS X |
---|---|
Tested Compilers: gcc | g++ 4.2.1 or above
Tested Hardware: Intel Core i7 CPU, 2.0 GB RAM
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.
Compile using make
:
$ cd despot
$ make
(Optional): If you prefer using CMake
see the CMakeLists section.
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 can be found in the "doc" directory.
For a description of our example domains and more POMDP problems see the POMDP page.
An example of integrating DESPOT with an external Gazebo simulator can be found in the DESPOT tutorials page.
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
(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
)
HyP-DESPOT: A parallel belief tree search algorithm that integrates DESPOT with both CPU and GPU parallelization. Check out the paper and the code.
Pocman implementation and memorypool.h in the package are based on David Silver's POMCP code
Please use the issue tracker.
2015/09/28 Initial release.
2017/03/07 Public release. Revised documentation.
2018/09/20 New API release.