Skip to main content

Open-source framework for solving the Planner Optimization Problem

Project description

OPOF, the Open-Source Planner Optimization Framework, is an open source framework for developing domains and algorithms for planner optimization. It provides a standard API to communicate between optimization algorithms and domains, along with a set of stable algorithm implementations.

Our complete documentation is available at https://opof.kavrakilab.org.

Build and Test

OPOF is developed and maintained by the Kavraki Lab at Rice University.

Algorithms

OPOF includes the following stable algorithm implementations.

  • Generator-Critic (GC) - Learns a conditional and stochastic generator using gradient-based deep learning techniques.
  • SMAC - Learns an unconditional and deterministic generator using the latest Bayesian optimization techniques. Wrapper around the actively maintained SMAC3 Bayesian optimization library.

We expect the list to grow with time, and welcome any additions.

Domains

Domains are available as external packages maintained separately from OPOF. Some existing domain include:

  • opof-grid2d - Simple navigation domains in a 2D grid world to help users familiarize with OPOF. They also act as a sanity check for developing optimization algorithms.
  • opof-sbmp - Sampling-based motion planning (SBMP) domains for high-DoF robots to accomplish real-world picking tasks. They include the optimization of planner hyperparameters, sampling distributions, and projections.
  • opof-pomdp - Online POMDP planning domains for 2D navigation under uncertainty. They include the optimization of macro-actions.

We expect the list to grow with time, and welcome any additions.

Installation

To install OPOF's core library, run pip install opof.

External packages containing additional domains and algorithms may be installed alongside OPOF. Please refer to the specific package's setup instructions.

OPOF is officially tested and supported for Python 3.9, 3.10, 3.11 on Linux.

API

Below is an example of interacting with the RandomWalk2D[11] domain.

from opof_grid2d.domains import RandomWalk2D

domain = RandomWalk2D(11)
problems = domain.create_problem_set()
planner = domain.create_planner()

parameters = [pspace.rand(100).numpy() for pspace in domain.composite_parameter_space()]
for i in range(100):
    result = planner(problems(), [p[i] for p in parameters], [])
    print(result["objective"])

Our complete documentation is available at https://opof.kavrakilab.org.

Citing

TBC

License

OPOF is licensed under the BSD-3 license.

OPOF is developed and maintained by the Kavraki Lab at Rice University, funded in part by NSF RI 2008720 and Rice University funds.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

opof-0.3.0-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

File details

Details for the file opof-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: opof-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 35.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for opof-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 78f1883c60af3a998ed82d08a3952618b84d9ecf7a02cc2f8cd6bf9da3ab59e6
MD5 29dd7ab95bf4d62577b4d3f4ff2700db
BLAKE2b-256 4b23d4aa4e18ee3067df6540bb93f0b773ca7f201e23de33aab71bed2ad837bd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page