TinyURDF 1.0.0
A modern C++ library for parsing and visualizing urdf models
Loading...
Searching...
No Matches
Contribution Guidelines

Welcome to the Contribution Guide!
Due to time constraints, I am unable to maintain this project constantly. However, the work is in progress, and any contributions are greatly appreciated.
Please refer to the following guidelines for areas where help is needed:


Style

We generally follow the Google Style Guide.
Currently, there is no automated checking pipeline for this, but I will personally review the code. Contributions to add such a pipeline would be highly appreciated.


Current Tasks

Here are some key tasks where contributions are needed:

  • [ ] Complete the development of core modules:
  • [ ] Add support for transmission parsing. Although transmissions cannot be visualized, they can be parsed as part of the model.
  • [ ] Enhance the model to support graph construction for complex robots.
    We can rely on:
    • std::map or std::unordered_map for a simple implementation
    • An external graph library like CXXGraph for advanced graph representation
  • [ ] Avoid using Boost libraries wherever possible.
  • [ ] Add support for rendering collision shapes of links with lighter colors or textures.
  • [ ] Add support for link color display.
  • [ ] Add support for material display and/or texture file parsing and rendering.
  • [ ] Add Collada file support using the collada-dom library.
  • [ ] Ensure each implementation is tested in the test folder.
  • [ ] Add graph computation functions (e.g., computing model roots, leaves, etc.).
  • [ ] Implement utility functions for inertial, volume, and collision computations, such as:
    • Total mass
    • Center of inertia
    • Total volume of the model
    • Density, and more

Additional Features

These additional features would improve the library:

  • [ ] Add a custom project logo.
  • [ ] Create a pipeline to deploy the library upon each release to vcpkg and Conan Center package managers.

If you have any questions or need clarification, feel free to email me.

Thank you for contributing!