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 x86_64. macOS arm64 coming soon.

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

See the examples/ directory for:

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

Uploaded CPython 3.12+Windows x86-64

tesseract_robotics_nanobind-0.34.1.7-cp312-abi3-manylinux_2_35_x86_64.whl (101.1 MB view details)

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

tesseract_robotics_nanobind-0.34.1.7-cp312-abi3-macosx_14_0_arm64.whl (111.5 MB view details)

Uploaded CPython 3.12+macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.34.1.7-cp311-cp311-win_amd64.whl (82.3 MB view details)

Uploaded CPython 3.11Windows x86-64

tesseract_robotics_nanobind-0.34.1.7-cp311-cp311-manylinux_2_35_x86_64.whl (101.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.34.1.7-cp311-cp311-macosx_14_0_arm64.whl (111.6 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.34.1.7-cp310-cp310-win_amd64.whl (82.3 MB view details)

Uploaded CPython 3.10Windows x86-64

tesseract_robotics_nanobind-0.34.1.7-cp310-cp310-manylinux_2_35_x86_64.whl (101.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.34.1.7-cp310-cp310-macosx_14_0_arm64.whl (111.6 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.34.1.7-cp39-cp39-win_amd64.whl (82.2 MB view details)

Uploaded CPython 3.9Windows x86-64

tesseract_robotics_nanobind-0.34.1.7-cp39-cp39-manylinux_2_35_x86_64.whl (101.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.34.1.7-cp39-cp39-macosx_14_0_arm64.whl (111.6 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f9e8b6460712ee44479c2988d555ef8d5a84bf2c0d94890a7dd819768989ae70
MD5 1a0baf77529521b9da9dc56b8d865c6c
BLAKE2b-256 13c54716e9d3c7805cf9d26c75a31fbe0ef3efd563c5b40f63f72989bccb876e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 ddd3e5f8edb40df0894921e8bbb04d5b57dba87b5b7163236c1d56f96b9a2636
MD5 c448fb08490db38cd1c8750dca25fe99
BLAKE2b-256 3245eb0d101b3387e6010c68d2956408aca942170a8a12fc9b6eb7b1dc7b54f7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f69757f5d8c436266d99743be9f7dd94198b389511ba4464c3872db4e20aab5d
MD5 990759c3fa903455eafbcd80ee7c81a3
BLAKE2b-256 4422c68b3dcab9880f265fbf3ae1fa217e8293b1b2a0a1256c5575907ddc5863

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a919ae1dbd028adab0e4356a12cc6ee29d60aa4891bb3f3be7ac90a6b9eb2500
MD5 23d22d0cbfa8ddce71bc0d1722910f2a
BLAKE2b-256 aa11fe15f825b4e4aeb759c0ef1a61ee62715921ccf734728a7d592d03a428ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 4f14673594349837569771085a8148122759b4f6806180f7c4d05ced02ec76ca
MD5 752d1dfe2477f86dc2d018c246f2accc
BLAKE2b-256 7594f4b3819da5426be28fdc222bd50b4f723d7de9d096ff8d4aec2911f37c54

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7b0ee0bac49efd35084db2e98521646407dd6398e36152ace4b36b3f0b6d5693
MD5 3fa967713bb0f85d5cbbe28c58c71b74
BLAKE2b-256 e5d129398774acf716c3a9e94c3ca4ab1d07b3f8084fd463426f3d6085822600

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 814bd568d8a4c63422ac7aab031e68abadf53c12d5599744b6d1c3bbe270bdf5
MD5 b8fffb71bd2e7394a70827b06e56507d
BLAKE2b-256 43026ca37bdce77962d8ef6b44b6b2b35701de87449402fe82f1af3b8f5f19fa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 42c6d980541ddd9dd5765f991aa2dd94d6bd3d2cd6a70d0b9cd4f392bcab0978
MD5 41f6f7017f06ddcb2e9c108ec0053cae
BLAKE2b-256 af3b318e382c21739a0023c93aa634abea33055b0081a630c31322b7f01a74b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0e5cfbbc1727d1712e5e170b256f6a9a345ef5c073f7da8dffbc3ad38c96480c
MD5 e726598c93cf3034259cfd662f5dc280
BLAKE2b-256 371af3fae0d4d158d95b432cb0699edc3db09265b31842cdd806eee92286f1fa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0df870dce2dbc8292455e4c62058b179c4c9efdf871320615c3bfb93ab8f56f4
MD5 264a45bca8c685c9648ce6c91240f715
BLAKE2b-256 87779986646eeb498d6cd03655972a1059576a921260726849d132bfc9ef8fd9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 71c0d6720c72edd7466232b69d103bb7ece16421aa095073a10a1ae1fd0406e7
MD5 0669b44e3a360fb8673c2414bc84bd0f
BLAKE2b-256 a4e7dcdd81e0845c24269dbb9b2966d6903a3b401e6478f8b2ae647301515191

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.7-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e59f348f7695c305e75db55b0babbd21400984a8eb1e521925faacdc3c85f17a
MD5 7f922da79cba0de611970d5c76e02728
BLAKE2b-256 4f88ed2966d429a597ee8256ccef2da5e76bc7f261ed9808289f0afff72ae763

See more details on using hashes here.

Provenance

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