0 purchases
robotdescriptionbuilder 0.0.3
Robot-description-builder 🐍
A Python Package for create (valid) Robot descriptions
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 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.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.