Skip to content

luo-yuanfu/is-despot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IMPORTANCE SAMPLING FOR ONLINE PLANNING UNDER UNCERTAINTY

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.

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/luo-yuanfu/is-despot.git

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

Installation

Compile using make:

$ cd is-despot
$ make

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

Quick Start

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

Documentation can be found in the "doc" directory.

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

Using IS-DESPOT with External Systems

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.

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 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
)

Acknowledgements

The package is implemented based on DESPOT code. 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

2016/07/23 Initial release.

2019/10/27 Public release.

About

importance sampling for online planning under uncertainty

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published