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 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. (
Transmission
s 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
🚧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
Lessons
🚧UNDER CONSTRUCTION: ADD LESSONS/DESIGN DECISIONS🚧
License
robot-description-builder
is licensed under the MIT license.