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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.9Windows x86-64

tesseract_robotics_nanobind-0.35.0.5-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.5-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5e78812cad4f6e6aa60eb5c8baed2af2065d87743c607aa2932329b0632993c3
MD5 e538817036f2aec2df5c10f60d5ac247
BLAKE2b-256 a30518f117f5a0e8bb8ed5425fd0d0912053ab3923f2d327d67e3f27d6f4d892

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f93fe13c84fbb58929bc99967f285d79a6c312f4c61541c45ff26d839aa6023c
MD5 6c2e00f1a5154b1928d68324bf521492
BLAKE2b-256 6a6a51882822411555c371ad439f4bdd42ac1fbac3bc1c4e45af8f1b87af87bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp312-abi3-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 f7db693bc05d585a7449c6f50a7754c37e734801b6149ab2be3f434333bafc1d
MD5 64d25da4ee550a0ad4242cda67911956
BLAKE2b-256 b1df98a6d1df68f033cc06972e3e4a9632885bdad3da6eb43822ef77635b8ae1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6739f63b94294a10478483543998cb01d4a486f24853032a3ae1c66748215092
MD5 2c65b35a2eed995b1842891d82560f4b
BLAKE2b-256 e74570bc7f4713e6abbdd857a139d859923470ef5da1729988bef8072189f89b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7ffec1421c10973af0bca14a489b5c410917428ddfd9dd442df5fffdffb0f765
MD5 f73e9e22553ee8b01826ee084dadba75
BLAKE2b-256 7163dd445cff10e88412a71976cd66425fb67a1836cee920eea49edeb8c7f1e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1683429ddf28858900a009b2f3ca8a76c382e7e673c4d674794d59c8de188a93
MD5 d19c60ba51de5ef82125c4ada3bca8f4
BLAKE2b-256 b0b9dc59373ef3fe0428470bd1bbe6becd7da5fac63d6ea3043b764da35d5195

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 825bb2742d3a628348d668bbd4fe5f8ac518287ba6434962126d6d91bc2ac9af
MD5 9eca07d637e72a5742d7a2a25a3b1722
BLAKE2b-256 135c02dcea342dcc5f68b0bdd9e17afea66d870b7b279e5e17d06fc1dd30d728

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bcbd2e0d973e404bac7844f11218dcca7aff18f4afe94e2c7f0e73e24c74f876
MD5 c43b8b3f0494b10744c6344ea72a8d7f
BLAKE2b-256 ec637830fbfb95dc2cc4af239feafa664669840761c7df269671f1802e97ec77

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 11db50a03452fd4e659a053dc2dab7c6362b7210c9996afa351e89d960958b1a
MD5 b263fe05bf87a43a7a4fd26ad3f98f39
BLAKE2b-256 30e94b8d6260cde349b792e02dad9cfefeb946c6f756a676d3c160414c288838

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 96e9b55b1b5e1c0442979894f70a68b27a5bca6dc3eceaac6e3b915a754073a4
MD5 0e4606c4d26fda1f0abda3b8175e32e9
BLAKE2b-256 fb599bf36d57b9cc8b786f3a6cbd517a6ad5930055316b4c2507009ad05c9829

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1da809e45cb8bfa18c03dcddd8852e15c36d0959b8b0d929aab3430bb87fcadb
MD5 a53ab53f5fd87acb4ea643f42e0f015e
BLAKE2b-256 1e0d691152d3f46200ea9e796ffef7b9638916e9339679bd15f555d7f61271e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.5-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 cec41ea3246f8a6f8b9ef6133e95fae8e0b2d52477ea2b902ae8ba7900a076cd
MD5 f24bb2900e3c4daebef4499cb11eb4f0
BLAKE2b-256 9e4223b0bd1987bfd4488361cc8887996cc1e040dcb8c61b7a50f413679f772e

See more details on using hashes here.

Provenance

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