Skip to main content

Tesseract robotics Python bindings (nanobind)

Project description

Tesseract Python (nanobind)

PyPI Python Linux macOS 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.5-cp312-abi3-win_amd64.whl (82.2 MB view details)

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.9Windows x86-64

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e25ebf2512eab54fa043d0c1dc79c2e8f4ca0586af5d1823361458e58c14a062
MD5 a30c58be59e26cb8ffe1af219f9d05e8
BLAKE2b-256 c55a6bc572a57bcf9488a055ecf6645fd2990dcce984b4e5c32a102e80e70d91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 c0b98d1a90d6897d00f80681fda5c829091a1fb4a809ead672c06553ba763b58
MD5 f73bcae8d84e33b1c0c9528fa11b6a5d
BLAKE2b-256 f5dddcf8dc8880da63b678e9c154b75049ed1e80f0471c7dd318119b9171793f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 66dd83cd93798c12625befe063559f0e71594c721db5bb8470f857e209d982a8
MD5 e458203e4fd9b796b8c9a73455df3a27
BLAKE2b-256 b84ef7e78466f148381637526c932314e8800f72edc4794df7b8660b8e7a8ce7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 57d455672bf8954d67ce5283336828b4842743dbd6b3cc9cd83de76f5d4e16b1
MD5 e73a4734f797b46b2b4b7be74a5c752e
BLAKE2b-256 a6d7863a60f53d341053f4e0587d00bab84687438ea8b19cf571bbf14eb23bda

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 32d0fec304258666079fa7cd8f7be52ec1f9e8f85442867a83f21b0b37bbd4fe
MD5 da745ac7762a420c0d470cd8bcb29ccb
BLAKE2b-256 31d3fa171eff7f26cf30de67c87f3530656b4d67232efd374021048a4e43562b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 200698e3d78732feffdc974b28705cc2bfa90801c279b16b7f5ffb47ccdc1050
MD5 d50c5140841aa9c389f58d1362249e31
BLAKE2b-256 f732b0c68dc6f818e0c0b63bf7b73cf81f8c700f3584889682a16b453d490aee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9db1a78fa365e8c69252905eb7ea5d8dc085b654e5adfb3876735b3c77a7dddf
MD5 9b1cf34e357e4af31bdd9e3c65261a3c
BLAKE2b-256 8f0bf8c049e7b19698d59cd6ca1d1fae462a04703065273d31baf2453f9da89e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 c08f509298cf7a3e6e27506f9faa221ffcfae6a2d9852a8031e4fd549e8f120b
MD5 1331a3b854cc7309575b6e4058971311
BLAKE2b-256 ff59019f0ff510bb3b06c32f414468619e7f8534e827e4dcf629d2e77d89f38e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6bb9cd9327bfedf880c55ed2438f220e0d1401c3ca1a86a5045a9917c9e7fef7
MD5 11f8e011bc134c7b83820d16b0669dae
BLAKE2b-256 2fdb68585b6c4cd0fc334f42d20e063abd1e69a12dca4fa82d92548fa8d78315

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 fe2ddb3b1f76e90e760907d37f778a7684cde5274f0a0814d06e8072e9c0acef
MD5 affdeea222e16ee4cb31f443e25d2bb4
BLAKE2b-256 2ad1d3960c89c55b00ecffc0428800ac8e868cb1a4263660e8cb254a5baa6279

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 78a7ff74d61a8f63be176d8c3acc4ebd8d99a6e97d67605a0ae6e08528bf62ab
MD5 55bdb5a2c57f63db22ad11a4e3104fc9
BLAKE2b-256 490e191674d64e1d6be793fc8d3fac663e4d8d1871dedef2ebd49a420a7fdb07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.34.1.5-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a9c66fc77f040a495e08f96d44861173213d9ae5aee544c3536386f1a931b5c1
MD5 bed7f54ee436f3b22600f5895e44a08a
BLAKE2b-256 05c50f734f2259658f32260ce04cfde7254b1ac34fe584a3c72e845c30db6912

See more details on using hashes here.

Provenance

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