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.7-cp312-abi3-win_amd64.whl (88.3 MB view details)

Uploaded CPython 3.12+Windows x86-64

tesseract_robotics_nanobind-0.35.0.7-cp312-abi3-manylinux_2_35_x86_64.whl (134.8 MB view details)

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

tesseract_robotics_nanobind-0.35.0.7-cp312-abi3-manylinux_2_35_aarch64.whl (129.2 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.35+ ARM64

tesseract_robotics_nanobind-0.35.0.7-cp312-abi3-macosx_14_0_arm64.whl (113.5 MB view details)

Uploaded CPython 3.12+macOS 14.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

tesseract_robotics_nanobind-0.35.0.7-cp311-cp311-manylinux_2_35_x86_64.whl (134.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.7-cp311-cp311-macosx_14_0_arm64.whl (113.5 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

tesseract_robotics_nanobind-0.35.0.7-cp310-cp310-manylinux_2_35_x86_64.whl (134.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.7-cp310-cp310-macosx_14_0_arm64.whl (113.5 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.35.0.7-cp39-cp39-win_amd64.whl (88.3 MB view details)

Uploaded CPython 3.9Windows x86-64

tesseract_robotics_nanobind-0.35.0.7-cp39-cp39-macosx_14_0_arm64.whl (113.5 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d166539f6c3ae1161b15610e6374e4f0b64880c572952fdee9a42794039aa465
MD5 103697095a445fcb1d1a44ec903f156f
BLAKE2b-256 6bc896c00bbde8af2ff995b99d95f5d42676ad908ed6df6ae48b15406e280b1e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 334edbcdf9562166471de3bf5b6eb40b78e16c3dffbe97e801d0de85ac9d8c42
MD5 0baefe087fcdb6fd34fd48fecdf2f319
BLAKE2b-256 2cc64ceb6317f132ba1cc21202538b2fc56dc64cf0f1c1b8bb874271b13ce6f1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp312-abi3-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 7775d7d417c569fcb3c732a6b15d3d16c72e4647585afa24fbdfe5e7a8235300
MD5 c657e76981189cae96c7c8f248093d8f
BLAKE2b-256 25b4789c5e72a48049dde33c3e10d4d5b6a452112dd344397817b018cad65a67

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9194c7eb048e5b75b53f418314541a1d18cc773c472f96ee69b21c2c63311e12
MD5 b35a95112440ee6a910cffa113388c78
BLAKE2b-256 cee1fd575654e79aadf603598711b5e66bfb8e0267fb5e31caa7074fb698d829

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1057dbe97a0c4cb1885214b38af135e6b37a2f1793175f6ead64f2c3495e8f11
MD5 d43eb87ebd72650d09770c3182504226
BLAKE2b-256 fea117fbd3771bb075e5fa94b387cbb5f4b2ae69b8157a1c351ca01d2b05a5c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 a33a24c5894658ad09614caeba09b64684c489860a4df445184de7b08d6f28c1
MD5 e281336346f72e478e4fed73392f7629
BLAKE2b-256 d8ee12d321b12ce20fb6266838579a00b259887cccd7cb9e5b65dca2f9dd1dac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 009ccc4b22687122b6ba40eb5c7efcab47171d7ac180ba6f1e67e8fc3a58573c
MD5 6140edf549f9a83985b489bc05da355d
BLAKE2b-256 4de7c4a1a3f3db67691cf0bd833630804b62ec10c93cb597aa901cbd60aa378f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e5755cef9e75ac0d9c3ac555a041a0a51dc06a5a7204a85cb7fbd798b3b5281a
MD5 b39eac05b82726528004deaa68e2e844
BLAKE2b-256 db841e0c0ef36ebf2ef118480f2671e734ea9755767173b8a2beaba0184655bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 3cfd4f2c34d8ab6eb1e0550530ee8eb6c54b92928e9464594ad1a36c63cb41db
MD5 50e72713a75d599003d5c9c8e57bf91a
BLAKE2b-256 c518c297c57d7b89a5b46a7c0398fd6d92295a813ee82d82fe4a39ebe92824b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8089599bdbab7d294b900efb6dfc8250e652e92d2b9f0e87ea2ba5a3bd9dffb0
MD5 4db634f9073dd2aec71ae6ebb33e265a
BLAKE2b-256 14b186ae75fb663e8e8c5337d602884174f83e888a00a30db82127d16a5dd4f3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b7c33582ea25f36b803af6eefd5f3aeb923af7402664686a987e46cc3132c03b
MD5 312efec90225170a2b60d8d2e127afc8
BLAKE2b-256 2d8b3f19db190c9cd2b2443e1a3c9cbc77d8ac16edde89c642b55b3db47835c6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.7-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dd433f722ae39af71a34731b873bba34fda8e81e9cd6a36f805ab6f3c351341b
MD5 1c6f45a90be3904946df0b521ec59d6a
BLAKE2b-256 d8579c0201c27c27994c3f8b9ff5f59409068abdcfe3aa14f9ec4b743b13a67b

See more details on using hashes here.

Provenance

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