GithubHelp home page GithubHelp logo

megayeye / informative-path-planning Goto Github PK

View Code? Open in Web Editor NEW

This project forked from expeditionary-robotics/informative-path-planning

0.0 1.0 0.0 206.3 MB

Informative path planning repository

Jupyter Notebook 97.50% Python 2.46% Shell 0.04%

informative-path-planning's Introduction

Informative Path Planning: Exploring Performance of Robots for Science Missions

Adaptive sampling is a crtical autonomous behavior for robotic systems in a number of contexts -- from selecting actions to perform to refine a gripping/manipulation controller, to selecting the next best place to observe a sample in an uknown environment. The specific focus of this respository is to make a simple adaptive sampling playground for simualted point-robots in smooth, Gaussian environments -- environments that can be commonly found in nature (rolling hills, distribution of flora, fluid dispersion, etc). We frame the problem as a POMDP, and solve it using a Monte Carlo Tree Search (MCTS) instance. A number of parameters can be tuned by a user of this repository, including:

  • planning horizon (supports myopic planning)
  • type of MCTS (vanilla, or double progressive-widening are allowed)
  • selection of obstacles
  • computation and other budgets for mission execution
  • path sets (we support point-to-point navigation, or specified pathsets, all parameerized as dubins curves)
  • reward function for quantifying the value of an observation (UCB, max-value entropy, and expected improvement are supported)

Further, we've built out a number of functions which allow for close analysis of a mission, including:

  • trajectory plotting
  • record of the belief state
  • tracking of accumulated information gain, optimal selections, mean squared error, and more

A quickstart guide is provided in the demo.ipynb notbook; and detailed comments are provided within the scripts themselves.

Relevant Literature

Please note that the basis of most of the fundamental implementation is derived from the following papers:

Necessary Imports and other Logistics

To run the demo notebook and to use some of the libraries, the following packages are necessary:

  • numpy
  • scipy
  • GPy (a Gaussian Process library)
  • dubins (a Dubins curve generation library)
  • matplotlib
  • Ipython

The code is written in Python 2.7+ syntax, and minor adjustments may need to be made to be Python 3 compatible.

informative-path-planning's People

Contributors

vpreston avatar geflaspohler avatar

Watchers

James Cloos 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.