Skip to main content

Motion planning for single and dual robot arms.

Reason this release was yanked:

License incompatibilities

Project description

airo-planner

Python package for single and dual robot arm motion planning.

Key motivation:

  • 🔗 Provide unified interfaces for different motion planners and collision checkers, such as OMPL's powerful (but robot-agnostic) sampling-based planners and Drake's collision checking for robots.
  • 🦾 Standardize and add other features taylored to robotic arm motion planning such as joint limits and planning to TCP poses.

Overview 🧾

Features: this packages provides two main things:

  • 🤝 Interfaces: specify interfaces for robot arm motion planning
    • SingleArmPlanner
    • DualArmPlanner
  • 🔌 Implementations: reliable and well-tested implementations of these interfaces.
    • OMPL for single and dual arm planning to joint configurations or TCP poses
    • cuRobo for single arm planning to joint configurations or TCP poses

Design goals:

  • Robustness and stability: provide an off-the-shelf motion planner that supports research by reliably covering most (not all) use cases at our labs, prioritizing dependability over niche, cutting-edge features.

  • 🧩 Modularity and flexibility in the core components:

    • 🧭 Motion planning algorithms
    • 💥 Collision checker
    • 🔙 Inverse kinematics
  • 🐛 Debuggability and transparency: many things can go wrong in motion planning, so we log generously and store debugging information (IK solutions, alternative paths) to troubleshoot issues.

  • 🧪 Enable experimentation: Facilitate the benchmarking and exploration of experimental planning algorithms.

Planned features:

  • Drake optimization-based planning

Getting started 🚀

See the getting started notebooks, where we set up:

  • 🎲 OMPL for sampling-based motion planning
  • 🐉 Drake for collision checking
  • 🧮 ur-analytic-ik for inverse kinematics of a UR5e
  • 🟢 cuRobo for GPU-accelerated motion planning

Which planner should I use?

If you have mostly static scenes, use OMPL. It’s well tested, fast, and runs on your CPU. If you have dynamic scenes that change often and have access to a CUDA-supporting GPU, use cuRobo.

Installation 🔧

Dependencies

If you want to use cuRobo with airo-planner, you first need to install it according to these instructions. Note that you will need a CUDA-enabled GPU.

Installing airo-planner

airo-planner is available on PyPI and installable with pip:

pip install airo-planner

For visualization of cuRobo worlds (see notebooks/06_curobo.ipynb), you can use the optional rerun dependency.

pip install airo-planner[rerun]

Custom robots with cuRobo

You can use the official cuRobo instructions to configure a new robot, but this requires Isaac Sim. An easier method is to fill in a YAML file with the output of bubblify.

pip install bubblify
bubblify --urdf_path /path/to/urdf --show_collision

Copy the collision_spheres section to the YAML file of your robot, and you are ready to use your own robot!

Developer guide 🛠️

See the airo-mono developer guide. A very similar process and tools are used for this package.

Releasing 🏷️

See airo-models, releasing airo-planner works the same way.

Project details


Download files

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

Source Distribution

airo_planner-0.0.6.tar.gz (49.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airo_planner-0.0.6-py3-none-any.whl (65.6 kB view details)

Uploaded Python 3

File details

Details for the file airo_planner-0.0.6.tar.gz.

File metadata

  • Download URL: airo_planner-0.0.6.tar.gz
  • Upload date:
  • Size: 49.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for airo_planner-0.0.6.tar.gz
Algorithm Hash digest
SHA256 43530b8db3910a9eff3220c94ed5eb70b767cca3979f87a6b88c94cacc96c703
MD5 88eaa386899c9013648400b46c13e547
BLAKE2b-256 e81c88225df3c38bd5189fd0887ffea8724ef4808343588a4c2cb9f3fb65bc16

See more details on using hashes here.

File details

Details for the file airo_planner-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: airo_planner-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 65.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for airo_planner-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c8aeff699222fd5cde94bc0dc944dd222039d2f98526472180b3441b54ea6fe7
MD5 2334b960b3437dd8807a7f23071d15bc
BLAKE2b-256 1f9465cc505bcd5b2a2220660a8e2c8654099408cd582cf43a09daa533cfb256

See more details on using hashes here.

Supported by

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