GithubHelp home page GithubHelp logo

despot's Introduction

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.

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.

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
)

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.

despot's People

Contributors

cindycia avatar mohitshridhar avatar luo-yuanfu avatar yenan avatar davidyhsu avatar autonomobil avatar zsunberg avatar nehagarg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.