Skip to main content

A libary to create (valid) Robot descriptions

Project description

Robot-description-builder 🐍

A Python Package for create (valid) Robot descriptions

PyPI - Status PyPI PyPI - Implementation PyPI - Python Version PyPI - License Code style: black

robot-description-builder is a Python library for creating robot descriptions in multiple formats, like URDF, for use in various robotics and simulation applications such as ROS and Gazebo Simulator.

The Python version of robot-description-builder is written in Rust using PyO3 by wrapping the robot-description-builder Rust crate. This has been done for the following reasons:

  • Using Rust prevented memory leaks, which would occur in a full Python implementation. (I had not heard of the weakref module, yet.)
  • Using Rust also allows for interesting compile time validation, which is only available in the Rust Language. Resulting in the SmartJointBuilder (Only available in the Rust version).
  • Creating a Rust library and wrapping it in Python creates two libraries with little or no extra work[^1].

[^1]: Famous last words.

Installation

robot-description-builder can be installed from PyPi using the following command:

$ pip install robot-description-builder

Features

  • Support for the Full URDF spec, fully compatible starting at ROS Indigo. (Transmissions are different before ROS Indigo, other features should work)
    • Support for all base URDF geometry types: Box, Cylinder, Sphere and Mesh.
  • Mirroring of Kinematic chains.
  • Easy cloning/renaming Kinematic chains by changing the group_id.
  • ROS independent, can be run on any machine using Python 3.8 and above.
🚧UNDER CONSTRUCTION: EXPAND FEATURE LIST🚧

Compatibility chart

Spec Support State
URDF ✔/🔩 WIP Fully supported
URDF Gazebo 🔩/❌ Extension unsupported, Base URDF compatibility avaible
SDF Planned

Using robot-description-builder

It is recommended to import only the classes needed from the package or import the module as rdb, since the package name (robot_description_builder) is quite long.

import robot_description_builder as rdb
# TODO: EXPAND
🚧UNDER CONSTRUCTION: EXPAND EXAMPLE🚧

Documentation

This Python Package has typing support and comes fully equiped with docstrings and stub files. Documentation pages comming soon(ish).

🚧UNDER CONSTRUCTION: CREATE DOCUMENTATION PAGES🚧

Roadmap

Interesting ideas with questionable feasibility

  • Add SmartJointBuilder, similar to the Rust version

    It would need to be a dynamic class with function injection, (ASSUMPTION) which would not work with IntelliSense making.

Lessons

🚧UNDER CONSTRUCTION: ADD LESSONS/DESIGN DECISIONS🚧

License

robot-description-builder is licensed under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robot_description_builder-0.0.2.tar.gz (120.3 kB view hashes)

Uploaded Source

Built Distributions

robot_description_builder-0.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

robot_description_builder-0.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.8 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

robot_description_builder-0.0.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.6 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

robot_description_builder-0.0.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

robot_description_builder-0.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

robot_description_builder-0.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.5+ i686

robot_description_builder-0.0.2-cp311-none-win_amd64.whl (457.1 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

robot_description_builder-0.0.2-cp311-none-win32.whl (420.4 kB view hashes)

Uploaded CPython 3.11 Windows x86

robot_description_builder-0.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

robot_description_builder-0.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

robot_description_builder-0.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

robot_description_builder-0.0.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

robot_description_builder-0.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

robot_description_builder-0.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.5+ i686

robot_description_builder-0.0.2-cp311-cp311-macosx_11_0_arm64.whl (620.0 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

robot_description_builder-0.0.2-cp311-cp311-macosx_10_7_x86_64.whl (653.1 kB view hashes)

Uploaded CPython 3.11 macOS 10.7+ x86-64

robot_description_builder-0.0.2-cp310-none-win_amd64.whl (457.1 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

robot_description_builder-0.0.2-cp310-none-win32.whl (420.4 kB view hashes)

Uploaded CPython 3.10 Windows x86

robot_description_builder-0.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

robot_description_builder-0.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.8 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

robot_description_builder-0.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

robot_description_builder-0.0.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

robot_description_builder-0.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

robot_description_builder-0.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.5+ i686

robot_description_builder-0.0.2-cp310-cp310-macosx_11_0_arm64.whl (620.0 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

robot_description_builder-0.0.2-cp310-cp310-macosx_10_7_x86_64.whl (653.1 kB view hashes)

Uploaded CPython 3.10 macOS 10.7+ x86-64

robot_description_builder-0.0.2-cp39-none-win_amd64.whl (457.2 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

robot_description_builder-0.0.2-cp39-none-win32.whl (420.5 kB view hashes)

Uploaded CPython 3.9 Windows x86

robot_description_builder-0.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

robot_description_builder-0.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.8 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

robot_description_builder-0.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

robot_description_builder-0.0.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

robot_description_builder-0.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

robot_description_builder-0.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.5+ i686

robot_description_builder-0.0.2-cp39-cp39-macosx_11_0_arm64.whl (620.0 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

robot_description_builder-0.0.2-cp39-cp39-macosx_10_7_x86_64.whl (653.3 kB view hashes)

Uploaded CPython 3.9 macOS 10.7+ x86-64

robot_description_builder-0.0.2-cp38-none-win_amd64.whl (456.7 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

robot_description_builder-0.0.2-cp38-none-win32.whl (419.4 kB view hashes)

Uploaded CPython 3.8 Windows x86

robot_description_builder-0.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

robot_description_builder-0.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.8 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

robot_description_builder-0.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.6 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

robot_description_builder-0.0.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

robot_description_builder-0.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

robot_description_builder-0.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.5+ i686

robot_description_builder-0.0.2-cp38-cp38-macosx_11_0_arm64.whl (620.1 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

robot_description_builder-0.0.2-cp38-cp38-macosx_10_7_x86_64.whl (653.1 kB view hashes)

Uploaded CPython 3.8 macOS 10.7+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page