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

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

tesseract_robotics_nanobind-0.7.3-cp311-cp311-manylinux_2_35_x86_64.whl (103.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.7.3-cp310-cp310-manylinux_2_35_x86_64.whl (103.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.7.3-cp39-cp39-manylinux_2_35_x86_64.whl (103.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.35+ x86-64

File details

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.3-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 2b9385480bf3dc3fce0dc87d8bdaf79893a9e2f46608d1b0562688b895fa3a79
MD5 3e001c6e097a4a9c86b44c154faaa252
BLAKE2b-256 9d4d6744a52f6e22a93d960b463499a96311b369ee8f43bbbecaad5566d76cea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.3-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d379fb0215e1c0b38a1a6163c9f1eb5d97bd5e3300825dfc6b3dd848de64c16b
MD5 9991ee9db047f8561082bc7426058015
BLAKE2b-256 9d13fccd6a832a5fb577ffe3f9575c41fb73aca0d24239213803d9d821372e5c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.3-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 38e067d3cda106ab183ae025206dd3aceae188dcdd07b98be31c4db530b542fc
MD5 9662763b44ec8ef75ac944d5014c4f5c
BLAKE2b-256 d8c58412ba22880bfdd162322f067fe74b73e832cf939ef945206659290bc1cc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.3-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 3ba6bd9284e5690d8f23553d1ff45764338ee60fea73744ce392b60fe8015704
MD5 f7c1a1857b9fb8d991717744c76f610a
BLAKE2b-256 59265c36063ae0fccf61c9432560317d80088ab16ca9954df8094e9830116a95

See more details on using hashes here.

Provenance

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