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_{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 (Maihem)
  • 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.3-cp312-abi3-win_amd64.whl (75.3 MB view details)

Uploaded CPython 3.12+Windows x86-64

tesseract_robotics_nanobind-0.35.0.3-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.3-cp312-abi3-manylinux_2_35_aarch64.whl (95.6 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.35+ ARM64

tesseract_robotics_nanobind-0.35.0.3-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.3-cp311-cp311-win_amd64.whl (75.3 MB view details)

Uploaded CPython 3.11Windows x86-64

tesseract_robotics_nanobind-0.35.0.3-cp311-cp311-manylinux_2_35_x86_64.whl (98.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.3-cp311-cp311-macosx_14_0_arm64.whl (109.0 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

tesseract_robotics_nanobind-0.35.0.3-cp310-cp310-manylinux_2_35_x86_64.whl (98.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.35.0.3-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.3-cp39-cp39-win_amd64.whl (75.3 MB view details)

Uploaded CPython 3.9Windows x86-64

tesseract_robotics_nanobind-0.35.0.3-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.3-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.3-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d56f4846470bc2549e4edfe60b5895df3ab0f32b348597c7c4b128f9f35cac38
MD5 ec98576fe01f4976043845397f88683f
BLAKE2b-256 7fae8ac7e7da4e340d8fbb1ba52c1c8e78b8493bfdb4112179d756dda814b924

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b8882f5c1127246f50c8f0fb0e34c036d24f459da0c8f7d2f9b11a0f7f4c3814
MD5 9c6c56b60da4e779511087655dbbba86
BLAKE2b-256 39cd75ba0f775b187179778c804242286195dd000ac156c7650ea80efcd59dea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp312-abi3-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 e43957c9fca3cf6260f240171cdb1768b18d41abb075e6ae9a751ed78e9e3e25
MD5 b27b2455d965f8a6ea99f1d11e5c1cf0
BLAKE2b-256 2098e231745bed6d86d8383edf94955b3f7a736057a970badb60154dbd5ebabf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 273061de46850f5f90a140e0f004d9a6a090394c24061a6dc6e84526b3d0feff
MD5 a23c9d4dfd6393d96d3aaeaf96693cd4
BLAKE2b-256 645498d940975fb9f9a6fce037abd5a3ca3ad24f32471e5e12557dca367da8c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7c0588740bcd1076c3a37ee4c2869635d03218a699ad79e620c2701732d9bea5
MD5 60b8933f5be630e1e71d39f08e8ce4b2
BLAKE2b-256 a57f8ba836f1957f360d33ea3857f4dfb1ed6a8a6a8b7d850471efa40f8b30fd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 ae27938e95cbaf629cc6bdd12e830eb677e45fd3094b7ebdec6e863e36766e39
MD5 e2f6fd8e54751b569add0682d7209c9a
BLAKE2b-256 12400df6ada6bf8a3987e137866a67720ad45cfc7cf5373990320f10cf88adca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ef78f829e42995e66d01897b5616a8aa6c57661cde30dcd945d1a18e282f87b1
MD5 bbf40eabdf746a35d75684099df1ffc6
BLAKE2b-256 5e1841dc2f1d29fc7c5ce507e349056d014dce1c33f8538de5bb2b728f3e82e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f434831e62f3e58c91120c12ace582a53bd09e23b3d76ccda72699aee734ceb9
MD5 d9f8a1055eb3b88de926b26d6b1f1751
BLAKE2b-256 8541f9c6081a455b4bdb8972b0e2a89ccea770b88ecf65555d5c9672134abfe9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 49f131d337bc4017a800b6f7503b885837c715a1539f76ac31c465f13af52259
MD5 fceec0671c1a6d4c2d1dcdaf5b6b432b
BLAKE2b-256 8987ae058ca0340cf20f70f724262c1b1c6ef3b0fe969c7445c5d1c97666ba4b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 51da62d9d2532843d1d0fb3d5f18dfd6934eac85f2cc9fbacfd058218044f656
MD5 596e8cc90ca91b3d01eea48d17a76fde
BLAKE2b-256 a83ba44abfa0838995c0b4568c3eb7b617b8f66422a8da65a647c128546cc33f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0b53ae26157ccc8e2c861536f13d1bbc2ce1e6ffc1bdc0ab142885161169db74
MD5 590f21379af7e8e1722eebeb6e3d449f
BLAKE2b-256 399c0ba6c1b394479abccd3ef9fc3d3c6502b0ea1747e1d9f82bd793f4dec162

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 31da6883675c797a7440aa351a8cbc6e4703166ad1bcc4adefb11389a6c3cec1
MD5 95dc5703e4f8a38ada093b76e6969121
BLAKE2b-256 fc17a3530a75f58eff0cbda875d302e83c33e4475fe034cfb4f1007109bf51cc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.35.0.3-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3feb3437fad4a7ec310a3f85ea764758a289ca94ba4d71294523bd62aad69e63
MD5 b8bee4325e99644193c80e1f5fbd7fd1
BLAKE2b-256 31cbf410479d9253ae6f8ad1c9c44b4600c259378a369fcec577e2717ee46099

See more details on using hashes here.

Provenance

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