Skip to main content

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.
  • PyPop - Learns an unconditional and deterministic generator using the latest evolution strategies. Wrapper around the actively maintained PyPop7 library for population-based (i.e. evolution strategy) techniques.

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

If you use OPOF, please cite us with:

@article{lee23opof,
  author = {Lee, Yiyuan and Lee, Katie and Cai, Panpan and Hsu, David and Kavraki, Lydia E.},
  title = {The Planner Optimization Problem: Formulations and Frameworks},
  booktitle = {arXiv},
  year = {2023},
  doi = {10.48550/ARXIV.2303.06768},
}

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.

Metadata

Release files for opof 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for opof 0.3.1
File Interpreter ABI Platform
opof-0.3.1-py3-none-any.whl Python 3 none any Details

Release files / opof-0.3.1-py3-none-any.whl

Download URL opof-0.3.1-py3-none-any.whl
Size 35.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52e007b5971a489eb957fdc8c109f30ab70a72937ce30c5d119857abb32fc0cb
BLAKE2b-256 checksum
How to use checksums
3d17b53a786ef978ec399685e2d386c94d72d8963fafffc3f2c581caba676dee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

0.3.1 This release

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page