Plugins for the Ignition Gazebo simulator implemented with ScenarIO.
Project description
:warning: This repository is still experimental, expect bugs and breaking changes :warning:
gazebo-scenario-plugins
Ignition Gazebo Plugins implemented with ScenarIO.
Plugins
Name | Description |
---|---|
ActuationDelay |
Simulate actuation delay inserting the targets (joint references) into a FIFO buffer. |
LowPassTarget |
Filter the joint targets (references) with a configurable Butterworth low-pass filter. |
Dependencies
gazebo-scenario-plugins
expects to find installed and configured the following dependencies:
Visit the gym-ignition
repository to check what Ignition distribution is currently supported.
Installation
Install only the C++ resources with:
git clone https://github.com/dic-iit/gazebo-scenario-plugins
cd gazebo-scenario-plugins
cmake -S . -B build
cmake --build build/ --target install
or the complete C++ and Python resources with:
pip3 install gazebo-scenario-plugins
System configuration
If you have installed only the C++ plugins, make sure to add the install prefix to the IGN_GAZEBO_SYSTEM_PLUGIN_PATH
environment variable. This way, Ignition Gazebo will automatically find the plugins without the need to specify the absolute path to their library.
If, instead, you rely to the gazebo-scenario-plugins
Python package, it will automatically configure the environment right after it is import
ed into your project.
Usage
The plugins stored in this repository can be inserted in a simulated world either by including them in the SDF file, or by loading them programmatically from either C++ or Python using the ScenarIO APIs.
The three pieces of information you need to know for loading plugins are the following:
lib_name
: the OS-agnostic name of the plugin library. E.g., if the plugin file islibActuationDelay.so
, the library name isActuationDelay
.class_name
: the name of the class implementing the plugin. E.g.gsp::ActuationDelay
.- Plugin context: the configuration options of the plugin.
From the sdf
Select the plugin you want to add and use the following template to add it to the SDF element they correspond (world, model, joint, ...).
<plugin filename="<lib_name>" name="class_name">
<!-- Optional XML plugin context -->
<optional_config1>bar</optional_config1>
<optional_config2>42</optional_config2>
<optional_config3>l1 l2 l3 l4</optional_config3>
</plugin>
From C++
You can use from your C++ code any of the following methods:
scenario::gazebo::World::insertWorldPlugin
scenario::gazebo::Model::insertModelPlugin
scenario::gazebo::utils::insertPluginToGazeboEntity
Refer to the ScenarIO C++ APIs documentation for more details.
From Python
The low-level APIs to load plugins from your Python code match almost 1:1 the C++ usage:
scenario.bindings.gazebo.World.insert_world_plugin
scenario.bindings.gazebo.Model.insert_model_plugin
scenario.bindings.gazebo.insert_plugin_to_gazebo_entity
Refer to the ScenarIO Python APIs documentation for more details.
In addition to the low-level APIs, this repository provides a gazebo_scenario_plugins
Python package that includes helper classes that simplify building the plugin context. Refer to the gazebo_scenario_plugins.plugins
module for more details.
Contributing
Pull requests are welcome.
For major changes, please open an issue first to discuss what you would like to change.
License
LGPL v2.1 or any later version.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file gazebo_scenario_plugins-0.2.1.tar.gz
.
File metadata
- Download URL: gazebo_scenario_plugins-0.2.1.tar.gz
- Upload date:
- Size: 28.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70a33bf0a9f45341de9c8f450474130276bf2c91b55af7af68f91a6e4007471b |
|
MD5 | fec8dbaf13f1021fd19ed4ab05ce0cd8 |
|
BLAKE2b-256 | 90095ff321838771018c8095c65e53107d29ca75f5ae0333dbf6ab63e9a19f2c |