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.

Documentation

Maintained in /docs and published to https://tesseract-robotics.github.io/tesseract_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

for an excellent overview of Tesseract's architecture & features see this presentation on Vimeo

Installation

pip install tesseract-robotics-nanobind

Platform support:

  • linux
    • x86_64 - 3.10-3.14
    • aarch64 - 3.12-3.14
  • windows
    • x86_64 - 3.9-3.14
  • macOS
    • arm64 - 3.9-3.14

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 (Tekton Dynamics)
  • 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.6-cp312-abi3-win_amd64.whl (88.2 MB view details)

Uploaded CPython 3.12+Windows x86-64

tesseract_robotics_nanobind-0.35.0.6-cp312-abi3-manylinux_2_35_x86_64.whl (134.7 MB view details)

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

tesseract_robotics_nanobind-0.35.0.6-cp312-abi3-manylinux_2_35_aarch64.whl (129.1 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.35+ ARM64

tesseract_robotics_nanobind-0.35.0.6-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.6-cp311-cp311-win_amd64.whl (88.3 MB view details)

Uploaded CPython 3.11Windows x86-64

tesseract_robotics_nanobind-0.35.0.6-cp311-cp311-manylinux_2_35_x86_64.whl (134.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.6-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.6-cp310-cp310-win_amd64.whl (88.3 MB view details)

Uploaded CPython 3.10Windows x86-64

tesseract_robotics_nanobind-0.35.0.6-cp310-cp310-manylinux_2_35_x86_64.whl (134.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.6-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.6-cp39-cp39-win_amd64.whl (88.2 MB view details)

Uploaded CPython 3.9Windows x86-64

tesseract_robotics_nanobind-0.35.0.6-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.6-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 67a54ebdaa26c0087a36e214547d27a38fffffa1013a008b62b19e71d7878c62
MD5 44201f7f6824885e4b96db3da9bd1357
BLAKE2b-256 1bbd67947a57032b6bc86ece515ad60f5354c680da11b3274fd8a8ef4d0b2bc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp312-abi3-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 28e5582d925cf21a7e155c18f5c7dcf8a63699f631d95d08dc5a51feff0f916f
MD5 84698c181d3e6a65299cc66bb749d289
BLAKE2b-256 7ad845852aa95d92e5fb93a349292d251099ae9488b1f24337f59d0e37bc44e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp312-abi3-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp312-abi3-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 2331b747b1d9aebdd99c70ed40d246f5658c505c2a156ca0fedbd782a42fc1ca
MD5 ff94b7f358deef1fb57fa7221c12ddf2
BLAKE2b-256 0bfeca6ae6db2636115b716448dcb3e1e78d8a39626cf230f59b8926435d8c96

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp312-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ca32462dfb24773eba28d8d105ebc4bd9a5e6e8afec32b282f9e73a8366c4c84
MD5 d52cd453a39589c26a4946012f17bdbd
BLAKE2b-256 db286450f5358c8127775d3dc768b71211e3c3b6bce4b34b29007a807eafdd2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e59cfaf3ef879f456ee8e38fcc95e5bb351a7d7ab6682dbaa6346c8c625a1048
MD5 d6742ce4ca96709bb92fff93bf8b7588
BLAKE2b-256 5731fcef928b391367459f75d2e6efa221e5148d31f3e13901265375a8917ce7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 73ec6225bc7c7d850ce15e47d8d58731f2fde8f42d069b5901c8a50948424c9e
MD5 4e6a28cbf9ae043d1b4ff4db781fcb47
BLAKE2b-256 12a0766f3741242bf02e0cafe784120fab51f8aa8b8a582be8d57ab964fa7621

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 651d31f9a674721657178586834180fadac63bec8165f0e62abaaf3cb1194249
MD5 ae21c630a4336f86b21c66ee4d03a0b9
BLAKE2b-256 83813f1e9a8d3bacf81ff6192ef9c9139704ed36c49d3f91b40bb70dde52534c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9c40375c5fa9c8e9ce5964a7369769d534689f19a72c509409bb9f711beed360
MD5 bf6a147365794d152d2224a1b7cbbc6e
BLAKE2b-256 c6121707b0d8b8cb97f1cddb5a447f4dd2aeaa9dc1fec433d430f9a827703c33

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 ca8c18c447d385350c53d629ee613ddb430c18c5620e06aa6ebba0e3a8873a92
MD5 988d830f0e4f1dc6ca46422fdbe7f242
BLAKE2b-256 d7b271669282f362f321a8c86d4c782c8d124862c4e5741ee1468911a8a74707

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 813ff88e242293b478b0fda60b4c9e72aa2072aedb880feb3209d90cb7b4610f
MD5 589f31825e73b99cca16d0095caa719d
BLAKE2b-256 3b3d3b03e003c7fa55b6f2a72c91a08baa820cf1173721fb353a291e3b13513e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a09249e61df708192ca6c7424e5a15767e12c22085bc463c8bd5ab5d4b8d0d37
MD5 38b906f46651a91c56ba52b7deaff0f0
BLAKE2b-256 478cdb20647667080b76f973b94f142cd187ea988aa8ca7464d4299a71241420

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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.6-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.6-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 834646eafc0d5cda7b5c43289b955950afedae1c2e8bc9707d720dd8e503bf52
MD5 9b92df0f241098d3788c393c92147bdf
BLAKE2b-256 d0b6fa29e9daeb780a0bd73953087054fa4b643240fd14520bc059f0fabd999a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.6-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