Coder Social home page Coder Social logo

hyp-despot's Introduction

HyP-DESPO

The HyP-DESPOT package is developed based on the DESPOT package. The API in HyP-DESPOT closely follows that in the DESPOT package. See here for detailed documentations of the DESPOT package.

The algorithm was initially published in our RSS paper:

Cai, P., Luo, Y., Hsu, D. and Lee, W.S., HyP-DESPOT: A Hybrid Parallel Algorithm for Online Planning under Uncertainty. Robotics: Science & System 2018. (PDF)

Getting Started

Pre-requisites

  • Cmake
    • Version >=3.8 is required for CUDA integration
  • CUDA and an NVIDIA GPU with computational capacity >=3.0

1. Download the HyP-DESPOT package:

cd ~/workspace
git clone https://github.com/AdaCompNUS/HyP-DESPOT.git

2. Compile HyP-DESPOT and examples:

cd HyP-DESPOT
mkdir build; cd build
cmake ..
make

Main Extensions in HyP-DESPOT from the DESPOT Package

The source files of HyP-DESPOT and examples are in folder src/HypDespot. Main extensions from DESPOT include:

include/despot/GPUinterface/             Header files: GPU versions of interface classes in DESPOT
include/despot/GPUcore/                  Header files: GPU versions of core classes in DESPOT
include/despot/GPUutil/                  Header files: GPU versions of utility classes in DESPOT
src/GPUinterface                         Source files: GPU versions of interface classes in DESPOT
src/GPUcore                              Source files: GPU versions of core classes in DESPOT
src/GPUutil                              Source files: GPU versions of utility classes in DESPOT
src/solvers/Hyp_despot.cu                Main file of the HyP-DESPOT solver
src/Parallel_planner.cu                  Parallel extension of the planner class in DESPOT
src/GPUrandom_streams.cu                 GPU version of the RandomStreams class in DESPOT

See this GPU model documentation for detailed descriptions on these extensions and how to build a custom GPU POMDP model. Refer to this guide for integration with NVidia Nsight.

Examples

The HyP-DESPOT package contains two examples presented in our RSS paper. They include:

Unc_Navigation/UncNavigation.cpp       CPU POMDP model of the navigation problem
GPU_Unk_nav/GPU_UncNavigation.cu       GPU POMDP model of the navigation problem
Unc_Navigation/main.cu                 The custom planner and the main function
ma_rock_sample/ma_rock_sample.cpp       CPU POMDP model of the car driving problem
GPU_MA_RS/GPU_ma_rock_sample.cu         GPU POMDP model of the MARS problem
ma_rock_sample/main.cu                  The custom planner and the main function

(Optional) Debugging Tools in HyP-DESPOT Package

The tools folder provides tools for debugging HyP-DESPOT when implementing new problems, including:

Particles*.txt                 Text files: particles (starting states of scenarios) for different simulation steps to be loaded and used to fix scenarios in HyP-DESPOT.
Streams*.txt                   Text files: random streams in scenarios for different simulation steps to be loaded and used to fix scenarios in HyP-DESPOT
draw_car_cross.py              Script: to visualize the execution record output by HyP-DESPOT (through cout and cerr)
run_Car_hyp_debug.sh           Script: to run experiments with HyP-DESPOT

The best way to debug is to fix the scenarios and output the search process. This can be acheived by setting the FIX_SCENARIO flag defined in GPUcore/thread_globals.h. Possible vaues to be set are:

0         Normal mode
1         Read scenarios from Particles*.txt and Streams*.txt
2         Run in normal mode and export Particles*.txt and Streams*.txt during each simulation step

Alternatively, setting the DESPOT::Debug_mode defined in despot.cpp to be true will fix all random seeds used in HyP-DESPOT, and thus the search will be fully determinized for easier debugging.

hyp-despot's People

Contributors

cindycia avatar

Watchers

 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.