utils#
Gazebo Utils : Classes and functions for robot applications
Maintainer: addisu AT openrobotics DOT org
Gazebo Utils, a component of Gazebo, provides general purpose classes and functions designed for robotic applications.
Table of Contents
Features
Gazebo Utils provides a wide range of functionality, including:
A helper class to implement the PIMPL pattern
A command line parsing utility (vendored CLI11)
Macros to suppress warnings
Install
See the installation tutorial.
Usage
Please refer to the examples directory.
Documentation
API and tutorials can be found at https://gazebosim.org/libs/utils.
You can also generate the documentation from a clone of this repository by following these steps.
You will need Doxygen. On Ubuntu Doxygen can be installed using
sudo apt-get install doxygen
Clone the repository
git clone https://github.com/gazebosim/gz-utils
Configure and build the documentation.
cd gz-utils; mkdir build; cd build; cmake ../; make doc
View the documentation by running the following command from the build directory.
firefox doxygen/html/index.html
Testing
Follow these steps to run tests and static code analysis in your clone of this repository.
Follow the source install instruction.
Run tests.
make test
Static code checker.
make codecheck
Folder Structure
Refer to the following table for information about important directories and files in this repository.
gz-utils
├── cli Gazebo CLI component. Vendored from https://github.com/CLIUtils/CLI11/
├── examples Example programs.
├── include/gz/utils Header files.
├── src Source files and unit tests.
├── test
│ ├── integration Integration tests.
│ ├── performance Performance tests.
│ └── regression Regression tests.
├── tutorials Tutorials, written in markdown.
├── Changelog.md Changelog.
└── CMakeLists.txt CMake build script.
Contributing
Please see CONTRIBUTING.md.
Code of Conduct
Please see CODE_OF_CONDUCT.md
Versioning
This library uses Semantic Versioning. Additionally, this library is part of the Gazebo project which periodically releases a versioned set of compatible and complimentary libraries. See the Gazebo website for version and release information.
License
This library is licensed under Apache 2.0. See also the LICENSE file.
Gazebo Utils 3.x
Gazebo Utils 3.1.0 (2024-11-15)
Build Gazebo Utils with bzlmod
Add bzlmod CI
Add expectations to subprocess test
Fix logging source location
Gazebo Utils 3.0.0 (2024-09-25)
Baseline: this includes all changes from 2.2.0 and earlier.
Add EoL and use SetConsoleSinkLevel in example
Catch spdlog exception thrown when creating file
Include file name in log format
Update logger level and flush_on values
Use common formatter for console and file sinks
Logger updates
Update badges to point to gz-utils3 branch
Update changelog and add prepare for prereleases
Move spdlog::logger to gz-utils
Require cmake version 3.22.1
Add package.xml
bazel: build and test subprocess functionality
Update CI badges in README
Use HIDE_SYMBOLS_BY_DEFAULT
Remove ignition
Bumps in ionic: use gz-cmake4
Infrastructure
⬆️ Bump main to 3.0.0~pre1
Gazebo Utils 2.x
Gazebo Utils 2.2.0 (2023-11-08)
Make the single argument constructor inherit the env
Add new functions for manipulating the environment
Add license checking support to bazel
Include what you use
Ensure all licenses are reflected in the LICENSE file
Not sure why this was here, but it is unused
Gazebo Utils 2.1.0 (2023-09-26)
Documentation fixes
Infrastructure
Extra test macros for ARM32/ARM64
Add a utility for spawning subprocesses
Support for bazel in Garden
Rename COPYING to LICENSE
Add missing config.hh include to gz headers
ign -> gz Migrate Ignition headers
Gazebo Utils 2.0.0 (2022-09-22)
Improve install instructions
Round out ExtraTestMacros
Update GoogleTest to latest version
cli_TEST: Fix compatibility with CLI11 2.0
Include
<functional>
in FormatterFwdign
togz
MigrationInfrastructure
Gazebo Utils 1.x
Gazebo Utils 1.5.1 (2022-12-15)
Add missing config.hh include to gz headers
Gazebo Utils 1.5.0 (2022-12-08)
Ignition to Gazebo header migration.
CI workflow: use checkout v3.
Gazebo Utils 1.4.1 (2022-11-17)
Include
in FormatterFwd. cli_TEST: Fix compatibility with CLI11 2.0.
Add code coverage ignore file.
Gazebo Utils 1.4.0 (2022-03-29)
Enable cpplint
Add doxygen linters
Custom Gazebo CLI11 formatter
Drop all main functions from gtest files
Improvements to enable “-Wconversion”
Gazebo Utils 1.3.0 (2022-02-24)
Fix inline namespace issue with clang6
Move ExtraTestMacros from gz-cmake
Gazebo Utils 1.2.0 (2022-01-28)
Enable cpplint on focal
Add NeverDestroyed utility class
Move environment functionality to utils
ImplPtr Get method
Gazebo Utils 1.1.0 (2021-09-02)
More complete bazel implementation
Add GZ_UTILS_VENDOR_CLI11 CMake option to optionally use external CLI11
Add an example program using CLI11
Gazebo Utils 1.0.0 (2021-03-30)
Add basic support for bazel build system.
Gazebo ImplPtr
Vendor CLI11 library inside gz-utils
Update warning suppression macros
Pre-release cleanup