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.0-cp312-abi3-manylinux_2_39_x86_64.whl (85.6 MB view details)

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

tesseract_robotics_nanobind-0.7.0-cp311-cp311-manylinux_2_39_x86_64.whl (85.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

tesseract_robotics_nanobind-0.7.0-cp310-cp310-manylinux_2_39_x86_64.whl (85.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

tesseract_robotics_nanobind-0.7.0-cp39-cp39-manylinux_2_39_x86_64.whl (85.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.39+ x86-64

File details

Details for the file tesseract_robotics_nanobind-0.7.0-cp312-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.0-cp312-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 e894dbed0d5306ea65a1ac098f38a7ade3e9a8420cf99ef0a98fc0d4792e31aa
MD5 ef1e8dab07dc099359266cb63a63d5d1
BLAKE2b-256 d48bae257d47359153a1eb80c5f13b3247989c2ff24b8685657b67193cfac94a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.0-cp312-abi3-manylinux_2_39_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.0-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.0-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 2944f0419cf10fae9ace655df0af260f48de72098230b9cca25e2fbdc46ca832
MD5 02e5b2dec1cf40ca61e78364c349ce0a
BLAKE2b-256 c54be17c8c639b42d2469fd948f9acd5c67ce3c3ed6bbac03e9aacdf77e09ac9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.0-cp311-cp311-manylinux_2_39_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.0-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.0-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 ab7b88522ed80c24b9998d9e94d8e2ef1904184af1381439faf656b3495e5a69
MD5 30f553c343864ff35ac2e5f2a48e6fc6
BLAKE2b-256 9e7a761bc607a158fc1f219907dbf58163d1275b6e1e887311051f3adf2e8d9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.0-cp310-cp310-manylinux_2_39_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.0-cp39-cp39-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.0-cp39-cp39-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 5123078f28ddbf81737e632a20fdf33ab9b848ab2e148bf0b6408a1b9790d655
MD5 41cade73d9666671020e2dc51eae9ed6
BLAKE2b-256 781bbcb3e6511f249d8a047161764744516577c42378da2c0135e072b7b28c6b

See more details on using hashes here.

Provenance

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