# Robot-description-builder 🦀 > **A Rust Crate for create (valid) Robot descriptions** [![stability-unstable](https://img.shields.io/badge/stability-unstable-yellow.svg)](https://github.com/emersion/stability-badges#unstable) [![Crates.io](https://img.shields.io/crates/v/robot-description-builder)](https://crates.io/crates/robot-description-builder) [![Crates.io](https://img.shields.io/crates/d/robot-description-builder)](https://crates.io/crates/robot-description-builder) [![Docs.rs](https://img.shields.io/docsrs/robot-description-builder)](https://docs.rs/robot-description-builder) [![License: MIT](https://img.shields.io/crates/l/robot-description-builder)](https://github.com/SuperJappie08/robot-description-builder/blob/master/robot-description-builder/LICENSE) `robot-description-builder` is a Rust crate for creating **robot descriptions** in multiple formats, like **[URDF](http://wiki.ros.org/urdf)**, for use in various **robotics and simulation** applications such as ROS and Gazebo Simulator. ## Installation `robot-description-builder` can be installed from [Crates.io](https://crates.io/crates/robot-description-builder) using the following command: ```shell $ carge add robot-description-builder ``` ## Features - Support for the Full [URDF spec](http://wiki.ros.org/urdf/XML), 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`.
🚧UNDER CONSTRUCTION: EXPAND FEATURE LIST🚧
### Compatibility chart | Spec | Support | State | |:----:|:-------:|:-----:| | [URDF](http://wiki.ros.org/urdf) | ✔/🔩 | Fully supported **TRANSMISIONS ARE CURRENTLY INCORRECT** | | [URDF Gazebo](http://sdformat.org/tutorials?tut=sdformat_urdf_extensions&cat=specification&) | 🔩/❌ | Extension unsupported, Base URDF compatibility avaible | | [SDF](http://sdformat.org/) | ❌ | Planned | ## Using `robot-description-builder` It is recommended to import only the items needed from the function or import the crate as `rdb`, since the crate name (`robot_description_builder`) is quite long. ```rust use robot_description_builder as rdb; use rdb::prelude::*; // TODO: EXPAND ```
🚧UNDER CONSTRUCTION: EXAMPLE🚧
## Documentation The documentation for this Rust Crate can be found on [docs.rs](https://docs.rs/robot-description-builder/latest/robot_description_builder/index.html).
🚧UNDER CONSTRUCTION: DOCUMENTATION IS UNFINISHED🚧
## Roadmap - [ ] Improve documentation. - [ ] Add shorthand [`Link`](https://docs.rs/robot-description-builder/latest/robot_description_builder/struct.Link.html) constructors. - [ ] Add (partial) support for [SDFormat](http://sdformat.org/). - [ ] Add support for the [Gazebo URDF extension](http://sdformat.org/tutorials?tut=sdformat_urdf_extensions&cat=specification&) support. - [ ] \(Optional\) Add (partial) support for the [MIT Drake URDF extension](https://drake.mit.edu/doxygen_cxx/group__multibody__parsing.html#multibody_parsing_drake_extensions) ## Lessons
🚧UNDER CONSTRUCTION: ADD LESSONS/DESIGN DECISIONS🚧
## License `robot-description-builder` is licensed under the [MIT](https://github.com/SuperJappie08/robot-description-builder/blob/master/robot-description-builder/LICENSE) license.