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

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

tesseract_robotics_nanobind-0.7.1-cp311-cp311-manylinux_2_39_x86_64.whl (90.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

tesseract_robotics_nanobind-0.7.1-cp310-cp310-manylinux_2_39_x86_64.whl (90.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

tesseract_robotics_nanobind-0.7.1-cp39-cp39-manylinux_2_39_x86_64.whl (90.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.39+ x86-64

File details

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

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.1-cp312-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 fd0f46476375ce0b963beee42c598dd51e90014de09aae98f88cf55e49050577
MD5 f62b2ccaa0e2cddae63b7e7b0aec8160
BLAKE2b-256 c6b1d08947f3dc1707dee023e35c7805f42e0f841d78511e88dbc3e909042856

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.1-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.1-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.1-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 7d40d5e09b1598534116b90d97409c8d9f4615310dee18e144dded91cabda9b5
MD5 7c55d938d8cce242c0a45a4053a5810e
BLAKE2b-256 4a89a7ad128d5ca21851dc1c2038610c591cefc7dd59df1a905551880feaaf77

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.1-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.1-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.1-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 2867c16cd08ee87843ecd2201afecae63b25df938e5b2a55bc0f0e47687113b8
MD5 bd987d86a905e3ee736065ee9a1e78d6
BLAKE2b-256 dcb378f2fb5438c5f444cbd24708ea68427126e563407c0a42dd1696baeaaee7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_robotics_nanobind-0.7.1-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.1-cp39-cp39-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for tesseract_robotics_nanobind-0.7.1-cp39-cp39-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 35ecb2a9405c83fd4e711bf10b1dea633dec2327ad4476f47689a4ab3d03247f
MD5 9798968159099d2cfccdce44884d9b22
BLAKE2b-256 84738a7bc2cba29554c433f5a47f72eaca8ac4a5fcb7454df1d90affbb7096a1

See more details on using hashes here.

Provenance

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