Skip to main content

Tesseract robotics Python bindings (nanobind)

Project description

Tesseract Python (nanobind)

PyPI Python Linux macOS Windows Documentation license - Apache 2.0

Note: This is a friendly fork of tesseract_python that replaces SWIG bindings with modern nanobind bindings.

Python bindings for Tesseract robotics motion planning using nanobind.

Features

  • Scene loading and management (URDF, SRDF, meshes)
  • Collision checking (Bullet, FCL)
  • Kinematics (KDL, OPW, UR)
  • Motion planning (OMPL, Descartes, TrajOpt)
  • Time parameterization (TOTG, ISP, Ruckig)
  • Task composition and pipelines
  • Pythonic high-level API

Installation

pip install tesseract-robotics-nanobind

Platform support: Linux and windows x86_64, macOS arm64

Quick Start

from tesseract_robotics.planning import (
    Robot, MotionProgram, JointTarget, CartesianTarget,
    Pose, box, create_obstacle, TaskComposer,
)

# Load robot
robot = Robot.from_urdf(
    "package://tesseract_support/urdf/abb_irb2400.urdf",
    "package://tesseract_support/urdf/abb_irb2400.srdf"
)

# Add obstacle
create_obstacle(robot, "box", box(0.5, 0.5, 0.5), Pose.from_xyz(0.5, 0, 0.3))

# Build motion program
program = (MotionProgram("manipulator", tcp_frame="tool0")
    .set_joint_names(robot.get_joint_names("manipulator"))
    .move_to(JointTarget([0, 0, 0, 0, 0, 0]))
    .move_to(CartesianTarget(Pose.from_xyz(0.5, 0.3, 0.8)))
)

# Plan
composer = TaskComposer.from_config()
result = composer.plan(robot, program)

if result.successful:
    for pt in result.trajectory:
        print(pt.positions)

Low-Level API

For direct C++ API access:

from tesseract_robotics.tesseract_environment import Environment
from tesseract_robotics.tesseract_common import GeneralResourceLocator

env = Environment()
locator = GeneralResourceLocator()
env.init("/path/to/robot.urdf", "/path/to/robot.srdf", locator)

print(f"Joints: {env.getJointNames()}")
print(f"Links: {env.getLinkNames()}")

Examples

examples are located at src/tesseract_robotics/examples.

  • basic_cartesian_example.py - Simple Cartesian planning
  • freespace_ompl_example.py - OMPL freespace planning
  • pick_and_place_example.py - Pick and place with TrajOpt
  • puzzle_piece_example.py - Cartesian path following
  • And more...

Versioning

Version follows 0.A.B.C where A.B tracks the upstream Tesseract release and C is the nanobind patch number. For example, 0.34.1.0 wraps Tesseract 0.34.1.

See CHANGELOG.md for release notes.

Development

This project uses pixi exclusively for dependency management and task running — no pip, conda, or venv needed. Pixi manages the build toolchain (cmake, ninja, nanobind), the prebuilt tesseract C++ libraries (from the tesseract-robotics conda channel), and Python deps in a single lockfile.

Prerequisites

Install pixi (docs):

curl -fsSL https://pixi.sh/install.sh | bash

First-time setup

git clone --recurse-submodules https://github.com/tesseract-robotics/tesseract_nanobind.git
cd tesseract_nanobind
pixi run build    # installs prebuilt C++ libs + builds/installs bindings (editable)

pixi run build resolves the pixi env (which pulls the prebuilt tesseract C++ libs from the tesseract-robotics conda channel) and runs install (editable pip install of the Python package). Only the nanobind extensions compile locally — no more from-source C++ build.

Available tasks

Task Description
pixi run build Install C++ libs (conda) + build/install bindings
pixi run install Editable install of the bindings
pixi run test Run pytest with xdist parallelism
pixi run lint Lint with ruff
pixi run fmt Format with ruff
pixi run typecheck Type check with pyright
pixi run docs Live docs server (localhost:8000)
pixi run docs-build Build static docs to site/

Running tests

pixi run test                              # full suite, parallel
pixi shell && pytest tests -x --testmon    # incremental (only changed)

Pre-commit hooks

pixi shell
pre-commit install
pre-commit install --hook-type pre-push

This runs ruff + auto-staging on commit, and pyright + pytest on push (configured in .pre-commit-config.yaml).

Project layout

├── pyproject.toml            # package config + pixi workspace
├── CMakeLists.txt            # nanobind build
├── src/tesseract_robotics/   # Python package + C++ extension modules
├── tests/                    # pytest suite
├── examples/                 # usage examples
├── scripts/                  # build scripts (build_{linux,macos}_wheel.sh)
└── docs/                     # mkdocs-material documentation

Building portable wheels

Editable installs bake absolute paths — not portable. For distributable wheels:

pixi run build-wheel                  # bundles native deps (Linux: patchelf, macOS: delocate)
pip install wheelhouse/tesseract*.whl

Acknowledgments

This project builds upon the excellent work of John Wason and the Tesseract Robotics team. The original tesseract_python SWIG bindings laid the foundation for this nanobind implementation.

Special thanks to:

  • John Wason (Wason Technology, LLC) - Original tesseract_python author and Tesseract maintainer
  • Levi Armstrong - Tesseract core developer
  • Jelle Feringa (Terrestrial) - nanobind port developer
  • Joel Kang (Maihem)
  • The ROS-Industrial consortium for supporting Tesseract development

License

Apache 2.0

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

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

tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-win_amd64.whl (88.2 MB view details)

Uploaded CPython 3.12+Windows x86-64

tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-manylinux_2_35_x86_64.whl (142.6 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-manylinux_2_35_aarch64.whl (136.6 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.35+ ARM64

tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-macosx_14_0_arm64.whl (113.4 MB view details)

Uploaded CPython 3.12+macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-win_amd64.whl (88.3 MB view details)

Uploaded CPython 3.11Windows x86-64

tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-manylinux_2_35_x86_64.whl (142.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-macosx_14_0_arm64.whl (113.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-win_amd64.whl (88.3 MB view details)

Uploaded CPython 3.10Windows x86-64

tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-manylinux_2_35_x86_64.whl (142.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-macosx_14_0_arm64.whl (113.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.35.0.4-cp39-cp39-win_amd64.whl (88.2 MB view details)

Uploaded CPython 3.9Windows x86-64

tesseract_robotics_nanobind-0.35.0.4-cp39-cp39-macosx_14_0_arm64.whl (113.4 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d0b827f2f472b9e6ecdf230f50a7eecdc0cf1ff7acda885690c8f118ee136585
MD5 655cf76dd0aee302d1bfa0c3a629a697
BLAKE2b-256 2cdbd67af02d6533916edad5a8eb1eab3784ee97480626de3048f4aa1d33acf2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-win_amd64.whl:

Publisher: wheels-windows.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b0ae23b17bb21cdcf973cd9de78cd4c0bc46bf3a3e2703fad3856cda29448987
MD5 c0172fb09ec0b77eba2fd5437eb9e558
BLAKE2b-256 9d2303d5895429b08911ac3328ed705bc2dc18d42b6d46cf38613278ff2d0ea4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-manylinux_2_35_x86_64.whl:

Publisher: wheels-linux.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 faa109d8a05a0142856b518a733c7c05166945c4e5f84e848dc5b062256f4ea8
MD5 9e3a25c84fe8b408105cd8b1ccc77ab4
BLAKE2b-256 969e6f3e27820c0a2b3f1f21e847701f8c6dad2627d0808afecdbd54f4008e47

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-manylinux_2_35_aarch64.whl:

Publisher: wheels-linux.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3664d32924d8218caeaa9d79743dc20ea6c44c7bb7f6180f50d698e9e88297e3
MD5 1ebd544e06bd94217897ca4347ee1c5f
BLAKE2b-256 6e3e20826582764c70acc7f9ee51d7a58e5733a083066bc97c2694074fd0681d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp312-abi3-macosx_14_0_arm64.whl:

Publisher: wheels-macos.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 67a77bc9bb5e522032f387976c135c5c1b78d4f99297f744820df6dbeb9d5d31
MD5 3a965c714f2236209700fb642deff006
BLAKE2b-256 0eed0ce67d47dbf27c24b438c72f397a4b61639b1aef0ddc2ff044cd8004ea97

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-win_amd64.whl:

Publisher: wheels-windows.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 fe15f892a9b4f9662e14e66c9547e912d0fde78114531bd82615a88c4de3da8a
MD5 9b1e90aaafc17185ff979381b9a5d0e5
BLAKE2b-256 a3cc5d4c403a506fd2c6a221956612fdaa9d68c00f48dafd18d8060303642eef

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-manylinux_2_35_x86_64.whl:

Publisher: wheels-linux.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6b9c64a7ae7957d8355df19db784e1b46ce03064231c8996585b74f5c36af47e
MD5 b4ff6eaac918d916d687e2d572ab695e
BLAKE2b-256 a90b1ea56040ba916f2fad239d4e96ba859a7f9235d91d508fcc44d8733e4a2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: wheels-macos.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fc0b7e9786884b35fff7193285a64de427426fecde26314deb0ca05802d1e771
MD5 08b20f695208d08aed62d545e6108b4b
BLAKE2b-256 50215fb5fa6b2d3790ad8cc17b8340634e4c7cfed6e5bc3d46d76f44fdcf8768

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-win_amd64.whl:

Publisher: wheels-windows.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 5812dcf11b737e300a7973bd8b32923c32d04ec57181c20321a0e63b1c3f9cf3
MD5 b3712b991fa68adf55fd77887a0df241
BLAKE2b-256 27d9887d26ab0ac051f2488eb26aa6ec31cdc1786470fa0fa575f25f79a2d8e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-manylinux_2_35_x86_64.whl:

Publisher: wheels-linux.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9ce43d3ca34f29d6cee39e45bdda6a51e041d888f815fefaf2170a4946abf68a
MD5 d7f755511e8f2d0037dea30e5b98fb8c
BLAKE2b-256 915b7ac6a9ec66529f835bea6417e3174537082596bfa5f40d5cbf6a5b4ec5c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: wheels-macos.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7d4f4a430f0bc6c32c6ebf0c751abba7889b26d876cb8a2bd9b124e2c02fc343
MD5 65a2d183d1d00383c663db824c757892
BLAKE2b-256 d5990c42480d9128a333ebcb839be179e1bca3283cab91e983f77fc311483f50

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp39-cp39-win_amd64.whl:

Publisher: wheels-windows.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_robotics_nanobind-0.35.0.4-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.4-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 80a70585238cef7e9d2094bbaf9397f15c4af41514075224a26b4da2fbe4de53
MD5 5505a58ef36d55b528cadae7eb52a216
BLAKE2b-256 c6347f6a7d92de50f1317320a0281a723b223e178f6ffa8d11e9fbb0607c7ab8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.4-cp39-cp39-macosx_14_0_arm64.whl:

Publisher: wheels-macos.yml on tesseract-robotics/tesseract_nanobind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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