Skip to main content

OPOF domains for sampling-based robot motion planning

Project description

opof-sbmp

OPOF 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.

Build and Test

opof-sbmp is maintained by the Kavraki Lab at Rice University.

Installation

$ pip install opof-sbmp

opof-sbmp is officially tested and supported for Python 3.9, 3.10 and Ubuntu 20.04, 22.04.

Domain: SBMPHyp[env,planner]

from opof_sbmp.domains import SBMPHyp
# Creates a SBMPHyp domain instance for the "Bookshelf" environment using the "RRTConnect" planner.
domain = SBMPHyp("Bookshelf", "RRTConnect") 
Description

We explore doing sampling-based motion planning in a specified environment using a specified planner. Unlike the grid world domains, these planners are much more complex and the relationship between the choice of planning parameters and planner performance is unclear. This makes it particularly suitable for OPOF, since we treat the planner as closed black-box function and specifically assume no knowledge of the planner's internals.

Planner optimization problem

The robot is tasked with moving its arm(s) from a start configuration to a goal configuration by running a sampling-based motion planner. The planner optimization problem is to find a generator $G_\theta(c)$ that maps a problem instance $c$ (in this case, the combination of obstacle poses in the environment and the start and goal robot configurations) to a set of planner hyperparameters (which depend on the planner used), such that the number of planner iterations taken for the motion planner to find a path is minimized.

Planning objective

$\boldsymbol{f}(x; c)$ is given as $-iter / {max\_{iter}}$, where $iter$ is the number of planner iterations taken for the motion planner to find a collision-free path from the start to goal robot configuration, and $max\_iter$ is the maximum allowed planner iterations.

Problem instance distribution

The training set and testing set contain $1000$ and $100$ problem instances respectively. These problem instances are adapted from MotionBenchMaker. Obstacle positions are sampled according to a predefined distribution, while start and goal configurations are sampled using inverse kinematics for some environment-specific task.

Environments

Cage

Description

A (6)-dof UR5 robot is tasked to pick up a block (green) in a cage, starting from a random robot configuration. The position and orientation of the cage, as well as the position of the block in the cage, are randomized.

Bookshelf

Description

A (8)-dof Fetch robot is tasked to reach for a cylinder in a bookshelf, starting from a random robot configuration. The position and orientation of the bookshelf and cylinders, as well as the choice of cylinder to reach for, are randomized.

Table

Description

A (14)-dof dual-arm Baxter robot must fold its arms crossed in a constricted space underneath a table and in between two vertical bars, starting from a random robot configuration. The lateral positions of the vertical bars are randomized.

Planners

RRTConnect

Description

We grow two random search trees from the start and the goal configurations toward randomly sampled target points in the free space, until the two trees connect.

Planner hyperparameters

We tune the following parameters:

  • a weight vector $\in \mathbb{R}^{50}$ with non-negative entries summing to $1$, which controls the sampling of target points using the experience-based sampling scheme adapted from here.

The package currently supports simultaneously optimizing other parameters such as the range parameter. However, the learning of such simultaneous parameters have yet to be properly studied for RRTConnect. Thus, we do not include the these additional parameters by default.

LBKPIECE1

Description

Two random search trees are grown from the start and the goal configurations, but controls the exploration of the configuration space using grid-based projections.

We note that the learning of conditional hyperparameters for LBKPIECE1 has not been well studied. Thus, this planner should be exploratory for now (i.e. it should not be used as a baseline to compare learning algorithms).

Planner hyperparameters

We tune the following parameters:

  • range $\in [0.01, 5.00]$ which determines ho wmuch to extend the trees at each step;
  • border_fraction $\in [0.001, 1]$ which determins how much to focus exploration on unexplored cells;
  • min_valid_path_fraction $\in [0.001, 1]$ which determins the threshold for which partially valid extensions are allowed; and
  • a projection vector $[0, 1]^{2 \times d} \subset \mathbb{R}^{2 \times d}$ which corresponds to the linear projection function used to induce the 2-dimensional exploration grid, where $d$ is the robot's number of degrees of freedom.

Citing

If you use opof-sbmp, 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},
}

@article{lee22apes,
  title={Adaptive Experience Sampling for Motion Planning using the Generator-Critic Framework},
  author = {Lee, Yiyuan and Chamzas, Constantinos and E. Kavraki, Lydia},
  year = {2022},
  month = jul,
  journal={IEEE Robotics and Automation Letters},
}

License

opof-sbmp is licensed under the BSD-3 license.

opof-sbmp includes a copy of the following libraries as dependencies. These copies are protected and distributed according to the corresponding original license.

opof-sbmp is 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 Distributions

opof_sbmp-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (94.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

opof_sbmp-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (94.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

opof_sbmp-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (94.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

File details

Details for the file opof_sbmp-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opof_sbmp-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17da392a7da63e90b7d50bf90ee2b85850fb916255b86496a2bca010baabeff9
MD5 242fe842d06bf7a5cf39a554bcffe734
BLAKE2b-256 6263b953fa83c6b5a20e0c1f0faf779ff65e0554215795d8e7ed09cd7a29ac26

See more details on using hashes here.

File details

Details for the file opof_sbmp-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opof_sbmp-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da7acaf70221fc0f8533cb70c82b6d55b2cd20cd64495d960f59d03e0c7ab10c
MD5 73c172521b6a2beab22e13f17ef0038a
BLAKE2b-256 13e853e9b2f9204b1eb0dabcc5d772ca540ab2ec44dbf597a04f6ba905a4a7e0

See more details on using hashes here.

File details

Details for the file opof_sbmp-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opof_sbmp-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd77aa551d66bb2d37bd6cb82a2a0237caa3d448e018d85eba6aaa1698ae13ee
MD5 32b89c33e4bd68be023af67c38396ab7
BLAKE2b-256 188f082fea5f7089fb8827c8e4415a5854937c9c4c27ba646bfc6c77b8a0a9fa

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