Skip to main content

Tesseract robotics Python bindings (nanobind)

Project description

Tesseract Python (nanobind)

PyPI Python Build Status 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...

Development

Enable pre-commit hook (runs test suite before each commit):

pre-commit install
pre-commit install --hook-type pre-push

that'll run the hooks defined in .pre-commit-config.yaml

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.7.4-cp312-abi3-manylinux_2_35_x86_64.whl (103.7 MB view details)

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

tesseract_robotics_nanobind-0.7.4-cp311-cp311-manylinux_2_35_x86_64.whl (103.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.7.4-cp310-cp310-manylinux_2_35_x86_64.whl (103.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.7.4-cp39-cp39-manylinux_2_35_x86_64.whl (103.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.35+ x86-64

File details

Details for the file tesseract_robotics_nanobind-0.7.4-cp312-abi3-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.4-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 2ada8ca107f0a08ef6f991297eee68012bbd2b433a041dffa45e7203ae353ba9
MD5 8c5f9b9dea22a29b580b3cd71c66e884
BLAKE2b-256 833691c51a2228c2cdd67830c09df1659d5dca1f3dbd7a91d4f34accf820a2b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.4-cp312-abi3-manylinux_2_35_x86_64.whl:

Publisher: wheels.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.7.4-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.4-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b6c2e9314cfb146aad075efacab9b326355998c9c5f8821c218966f612a692c5
MD5 aa5877d258afd5ca3aafd6b5aca900db
BLAKE2b-256 d423508af341befb768e9ff2382adcc6f598490a22490c5c80119538a91ebdd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.4-cp311-cp311-manylinux_2_35_x86_64.whl:

Publisher: wheels.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.7.4-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.4-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 6b20f8e5b5a80a0a0de9eef5c40d08eec929e621e626bd6b26f30b497280301e
MD5 a1c8b4beed8960bfc4b269ab586108c1
BLAKE2b-256 1f5a62757fe0ca8619010a39222aa7f9e21af6dd058db3ab3d40a94cd42da139

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.4-cp310-cp310-manylinux_2_35_x86_64.whl:

Publisher: wheels.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.7.4-cp39-cp39-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.4-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 0d50f6b545c1702e6f830ffc0b2fab5c66c94479d42463279f4afe4dc8508023
MD5 04dd46eae3d8666266b5da55c8d27e58
BLAKE2b-256 72db5ce32c602b5ea480156f7ed5be17b7a70f24c0a0800dfa916ced7c48fcff

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.4-cp39-cp39-manylinux_2_35_x86_64.whl:

Publisher: wheels.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