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...

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

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

tesseract_robotics_nanobind-0.7.2-cp311-cp311-manylinux_2_35_x86_64.whl (101.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.7.2-cp310-cp310-manylinux_2_35_x86_64.whl (101.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

tesseract_robotics_nanobind-0.7.2-cp39-cp39-manylinux_2_35_x86_64.whl (101.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.35+ x86-64

File details

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.2-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 eb498b2f509b7f150e5430aa2a9342bb4256ebf50454b260fbc832427b62d2dd
MD5 af42e6ccaa2c35f9fc5e441b60a5390b
BLAKE2b-256 9287a0bd51a9bd5c49ec5d8582ac6adfa61b355d437b0f04fb9f6a7089f95c68

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.2-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 04497e6f749f3ff81aa1d37725365ac491948e6568ff525c61bf45cb82e046a2
MD5 f9a9b2d5cde38cfbf64eb9d55ae7c8cd
BLAKE2b-256 d164a9c38ae1a4a80c222102a5988d6a283cd653f0708b10816523ec837b178b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.2-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 df8f83bd12eee9f07dcb41ce503bc3265e4ba03e2a606ee9cefefc6edf4bc62a
MD5 45cacd6e5159aaedbf09289798dfdbb8
BLAKE2b-256 b815fb04bcc5c9bb92bec806ae711c5539bc19009bfc552f893d81fca3eac966

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.2-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 7dab1a3bfc6e715d8f2d2082f8c8ff29c3c28fdfc1f3bd694e0594358d9bb1cd
MD5 bdf5ca94526fd3a75e9ca29783ab7bf6
BLAKE2b-256 7f85642409fa1f7593a72004f4c8a2fb4463aa94aa0bf7eeceb77bdf39161e96

See more details on using hashes here.

Provenance

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