Copyright © 2014-2019 by National University of Singapore.
APPL Online is a C++ implementation of the IS-DESPOT algorithm for online POMDP planning [1], [2]. It takes as input a POMDP model specified by a C++ API for interfacing directly with a blackbox simulator.
For bug reports and suggestions, please email yuanfu@comp.nus.edu.sg.
[1] Luo, Y., Bai, H., Hsu, D., & Lee, W. S. (2019). Importance sampling for online planning under uncertainty. The International Journal of Robotics Research, 38(2–3), 162–181.
[2] Luo, Y., Bai, H., Hsu, D., & Lee, W. S. (2016). Importance sampling for online planning under uncertainty. In Algorithmic Foundations of Robotics XII – Proc. Int. Workshop on the Algorithmic Foundations of Robotics (WAFR). 2016.
- Requirements
- Download
- Installation
- Quick Start
- Documentation
- Using IS-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/luo-yuanfu/is-despot.git
OR manually download the Zip Files. For instructions, use this online Github README.
Compile using make
:
$ cd is-despot
$ make
(Optional): If you prefer using CMake
see the CMakeLists section.
IS-DESPOT can be used to solve a POMDP specified in C++ according to the API. We will illustrate this on the Asymmetric Tiger problem.
To run Asymmetric Tiger specified in C++, compile and run:
$ cd is-despot/examples/cpp_models/asymmetric_tiger
$ make
$ ./tiger --runs 2
This command computes and simulates IS-DESPOT's policy for N = 2
runs and reports the
performance for the Asymmetric Tiger problem specified in C++. See doc/Usage.txt for more options.
Documentation can be found in the "doc" directory.
For a description of our example domains and more POMDP problems see the POMDP page.
Like DESPOT, IS-DESPOT can be used with external systems. An example of integrating DESPOT with an external Gazebo simulator can be found in the DESPOT tutorials page. To use IS-DESPOT with external systems, follow the instruction there and replace the despot package with this is-despot package. Note that you also need to specify the importance distribution to use IS-DESPOT.
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 IS-DESPOT into an existing CMake project or using an IDE for editing, we provide a CMakeLists.txt.
To install IS-DESPOT libraries and header files into your system directory:
$ cd is-despot
$ mkdir build; cd build
$ cmake ../
$ make
$ sudo make install
To integrate IS-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
)
The package is implemented based on DESPOT code. Pocman implementation and memorypool.h in the package are based on David Silver's POMCP code
Please use the issue tracker.
2016/07/23 Initial release.
2019/10/27 Public release.