MIT-SPARK / config_utilities

Automatic C++ config structs and tools.
BSD 3-Clause "New" or "Revised" License
28 stars 6 forks source link
config cpp ros tools utilities yaml

CMake: Build ROS Noetic: Build

config_utilities

config_utilities is a minimal but powerful C++ library, providing tools to parse, verify, and print C++ config structs and configurable objects.

Table of contents

Credits

This library was developed by Lukas Schmid and Nathan Hughes at the MIT-SPARK Lab, based on functionalities in ethz-asl/config_utilities and Hydra, and is released under a BSD-3-Clause License! Additional contributions welcome! This work was supported in part by the Swiss National Science Foundation and Amazon.

Why config_utilities?

Among many other, the key features of config_utilities include:

Installation

This package is compatible with catkin and catkin_simple. Just clone it into your workspace and you should be all set!

cd ~/catkin_ws/src
git clone git@github.com:MIT-SPARK/config_utilities.git
catkin build config_utilities

If you want to build and install without catkin/ROS, that is easy, too! Just clone this repository and build via CMake:

git clone git@github.com:MIT-SPARK/config_utilities.git
cd config_utilities/config_utilities
mkdir build
cd build
cmake ..
make -j

# optionally install this package
sudo make install

How to config_utilities

We provide detailed introductions about everything you need to know about config_utilities in the following tutorials and some verbose example demos that you can run.

The (non-ros) demos can be run via the run_demo.py utility in the scripts directory. If you are building this library via catkin, you can run one of the following to see the results of one of the corresponding demo files:

python3 scripts/run_demo.py config
python3 scripts/run_demo.py inheritance
python3 scripts/run_demo.py factory

ℹ️ Note
If you're building via cmake, you can point run_demo.py to the build directory with -b/--build_path.

The ros demo can be run via:

roslaunch config_utilities demo_ros.launch

If you are looking for a specific use case that is not in the tutorials or demos, chances are you can find a good example in the tests/ directory!

Example Projects using config_utilities

Many cool projects are already using config_utilities! If you are using config_utilities and would like to be featured, please open a pull request or reach out!

Academic Open-source Projects

These projects are openly available, check them out to see what config_utilities can do!

Use in Industry

Several leading companies and start-ups in robotics have let us know that they use config_utilities, but we cannot currently list them.