๐Ÿšจ Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis โ†’
Socket
Book a DemoInstallSign in
Socket

robot-description-builder

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

robot-description-builder

A libary to create (valid) Robot descriptions

pipPyPI
Version
0.0.3
Maintainers
1

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

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

SpecSupportState
URDFโœ”/๐Ÿ”ฉ WIPFully supported TRANSMISIONS ARE CURRENTLY INCORRECT
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

  • Add documentation pages.
  • Add shorthand Link constructors.
  • Add (partial) support for SDFormat.
  • Add support for the Gazebo URDF extension support.
  • (Optional) Add (partial) support for the MIT Drake URDF extension

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.

Footnotes

Keywords

urdf

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts