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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

tesseract_robotics_nanobind-0.34.1.6-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.6-cp311-cp311-macosx_14_0_arm64.whl (111.5 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

tesseract_robotics_nanobind-0.34.1.6-cp310-cp310-win_amd64.whl (82.2 MB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.9Windows x86-64

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4b10c94fee9158673f565992ab9c4b470c7ed9f82a861dcdd37e36a5e630ab7c
MD5 15e62b21953797696b7d607488dfc9a2
BLAKE2b-256 5b1ca002eb33f1aa297518a7370f5f149f3f4ecbc15f77e608aefc1f29c1da41

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d269aaa5f015e263b91ebd80bc066f60226f43fafe48b2caaa0d253119182bc3
MD5 1d14a6ed4b7fdda88486ae0239a2cfda
BLAKE2b-256 8db6c087c25324066708126a24bf42f7d1c3726912da64fa0e47eeb0b55a66e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2e37f0b823413f1ead5e53baebbe2f8f95340d8a63d9f45107d8a3cf36691345
MD5 c6046af30a353e8d04aa2a58d8a3df63
BLAKE2b-256 c73f6fa66c168233923b4fe616adcd4c837b9bb07d88d19976c273174882dbc6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 80a64fbb29ffe53adc32c5e35b925c97e4d6df0184d4a09091ff751c7055960d
MD5 7605ac7ae515037cf33fe5ab7017a4d2
BLAKE2b-256 dc8b5543693cdc77de8785f5cdd92adb8f5981f0c46b982f34f42ef6fd828556

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b657e4ae52951ee044aec768f9f8057d7927d26595b0fc2ae44c8394398432de
MD5 82864b0782a67defe0c388946501133a
BLAKE2b-256 b5b42ad760a74bf52dce596827e2de8f9c776dcfb2d5f655e4898e9d4f98e63a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f1c525e34231f56f5a7fed2e8cbeafd6f520ff14ea6c63fa6c0da3cc9ad8f48e
MD5 3a0bc56f1297301d6626baaed1e7acfb
BLAKE2b-256 189cc947cab817e88ee8c8f0f9a4af67a3454e501da2250636b451806d654774

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fa29450854346e8132f592d78a51d6b2d2de4494c4311c69ea099b9a6d3999d8
MD5 5f9c7154e91ea9c8fd16e87aa1153be3
BLAKE2b-256 a20d75132b5015f6454f9445b1c04825eee2386842010d2e609f96136011eb16

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 8eb613994c33cc75ac954d95fef1a11637d5689d817c5bd1bdc5e9061f2de394
MD5 ca2518647728563a866274a01e9b4182
BLAKE2b-256 94e6fd75e44b5ce6ec50ac690409f7d2d2c91c2b3b7ca7c0fdde10f19f40179d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 16d9962ae7d63907225077779f582d8d591b72a467562a65c5ec73850d8a2f27
MD5 d14d018702823e8521a419c601913cb9
BLAKE2b-256 9f617af0a8c1c7b0974e208e3a9b636f85b98f01151edc597b4008fde9ae8942

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 03b13692388fdb377d2305d41ae3a79e748b406a247d6d0732880246e608dbf5
MD5 81872e3d71b07bfab228a104b10d1f7d
BLAKE2b-256 5790d4ed5f2bdc423354208c157da9855fc63120950b392ee309f215185f51c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 a78e02d16d7e296bd116a8dcf773657324341e7fc7f45012422d37a4a44d9a3a
MD5 0d4ce98cc9eebf8836800793eb67a3c0
BLAKE2b-256 b9e5467e5dd85acb33213923306f27a11f18a5a3fc0a3d17e4a45251a624f9f2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.6-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 54257e799a987f7180d1d6fac3b7c64a373e07591843b4c6d86a0046426b80d6
MD5 51d5a813e11e0b80a3d794a1c2eb14ec
BLAKE2b-256 f210908495b4c9217234f80b9bf61bb14a773539430f02ef0b4beba7a3687147

See more details on using hashes here.

Provenance

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