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 both the C++ toolchain (cmake, eigen, boost, bullet, ompl, ...) 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    # builds C++ libs + installs bindings (editable)

pixi run build chains two steps: build-cpp (compiles tesseract C++ via colcon) → install (editable pip install of the Python package). First build takes ~15 min; subsequent rebuilds are incremental.

Available tasks

Task Description
pixi run build Build C++ libs + install bindings
pixi run build-cpp Build only the C++ libs
pixi run install Editable install (assumes C++ already built)
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
├── ws/                       # C++ workspace (colcon src/ + install/)
├── scripts/                  # build scripts (build_tesseract_cpp.sh, build_wheel.sh)
└── docs/                     # mkdocs-material documentation

Building portable wheels

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

./scripts/build_wheel.sh              # builds + delocates (bundles dylibs)
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
  • 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.1-cp312-abi3-win_amd64.whl (75.3 MB view details)

Uploaded CPython 3.12+Windows x86-64

tesseract_robotics_nanobind-0.35.0.1-cp312-abi3-manylinux_2_35_x86_64.whl (98.8 MB view details)

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

tesseract_robotics_nanobind-0.35.0.1-cp312-abi3-macosx_14_0_arm64.whl (108.9 MB view details)

Uploaded CPython 3.12+macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.35.0.1-cp311-cp311-win_amd64.whl (75.3 MB view details)

Uploaded CPython 3.11Windows x86-64

tesseract_robotics_nanobind-0.35.0.1-cp311-cp311-manylinux_2_35_x86_64.whl (98.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.1-cp311-cp311-macosx_14_0_arm64.whl (108.9 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.35.0.1-cp310-cp310-win_amd64.whl (75.3 MB view details)

Uploaded CPython 3.10Windows x86-64

tesseract_robotics_nanobind-0.35.0.1-cp310-cp310-manylinux_2_35_x86_64.whl (98.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.1-cp310-cp310-macosx_14_0_arm64.whl (109.0 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.35.0.1-cp39-cp39-win_amd64.whl (75.3 MB view details)

Uploaded CPython 3.9Windows x86-64

tesseract_robotics_nanobind-0.35.0.1-cp39-cp39-manylinux_2_35_x86_64.whl (98.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.1-cp39-cp39-macosx_14_0_arm64.whl (109.0 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 aa313af023fe9ccd40256a11a07a68f053935207acd06dadb87094e0d07af878
MD5 61878a3343b0f78623eceffb18009486
BLAKE2b-256 7e5c5270a3f4126e2b6cc4eeda129c103a3f6a421c8e79a17ff749a1ef2c58f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 59f2834796d844a0ca326dd5eb3be6df308c0ccd4f2902ce47069e3791efc42f
MD5 f54736dcb06b2198bb39d6f2446ad1b8
BLAKE2b-256 2dbfa8bbcaca09cb31f82d29bc29339a2923b813174c207ecd368d927e1efad4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 782e4047bb7aecb770678de783456fa9189b6a531cfde5066a8cd65d178fbe8e
MD5 98613036a8bb8b1f6018ee5ca5a43912
BLAKE2b-256 69dc14f0192940c81216ab0673265db7f469e763e120c6aa73d94f0891e40824

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e5e31bcb25016a9adcd3c5fd3628167ac86e2a89429cdd645b93f2b21f77672f
MD5 86fc695a110fe5f0a7b895bfe4676d84
BLAKE2b-256 ab07aadd759973ec888e48388bac4e8546a853dd17f6734eef4bd1048267fed9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1e09b63aad1818f83080e469d5059880f0d18272e88f562efacab391470ff2e6
MD5 b6813e3bca35aa94908dec70ec980c0b
BLAKE2b-256 19fbd21bd7f0aea91b31989176ebbdb0f576044fdc4c67c8c938c2cf41e49459

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8ba59530ae8056cbfb9c624aadc60dcbb85b84356a97089120142afd461df7a8
MD5 beb3f15fcb798e73b72245d2de7a8d45
BLAKE2b-256 94e8596a6b34b33073e4a3bfd2ac11b261817084105465a018d599b55ec4ab9b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4a437c23d2c88f38e39a66efe6a98019bbd0716bf89e5cbc85c16f69a1a50959
MD5 7349680bb6000e7f696d2606df823e91
BLAKE2b-256 25c80cd0c490b0de937686bb23c2727172799b21682df1db5fe45f85a0c4560f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 9959928be1011b6fb94a735bc239347a0b4186d7a51b2f9ecbc607159785dde7
MD5 b3e01ff88075040b013f896ebbade7e3
BLAKE2b-256 d0c4331c96704f9d64d0f3749fd3a25b39225ecc9be6b1f0167975d98de1b145

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 727445420ac5385597d9f5666b9f835fda2a507bc5528c90f34ba9ce6159c24f
MD5 950d280e6c0ea9f6cf52b552b7e4503d
BLAKE2b-256 7e863d238849178163f328f20ae832d13aa46d2b28bc0849888963df734ac97e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ed6df1773de1395eb9c50a8ac9eec25f0ad7b19d01f41dcf1654378eeedf7594
MD5 79d702966ba0eb07bdac7ac355c74102
BLAKE2b-256 42f861cd54a9364ff0923773bfe920c354438c14fe1581c649e64f1655c34733

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.35.0.1-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.1-cp39-cp39-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 4df858261495de52a2474aa6aafeef8901135678852e877b7ab7f255f5c51342
MD5 12f867f1c44e3757ce41a7272dce8d8c
BLAKE2b-256 f323e54f8efad479f3082f4009d1696e6bb8762e6a64faa649b57d5a37def3f9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4fe01f5d7c305c95cdc40845d05d73de196c5be04b1a86a0a233b1ac59ddcb12
MD5 4fc4eec8574b93f469e10f603e812151
BLAKE2b-256 bab4341c0f87ef23d3111686d78fffcc1451332a1721a438a13506ec291fac8d

See more details on using hashes here.

Provenance

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