All Projects → jsbruglie → Gap

jsbruglie / Gap

Licence: apache-2.0
Gazebo plugins for applying domain randomization

Projects that are alternatives of or similar to Gap

Adaptive Control
Adaptive control methods developed by Karl Johan Åström and Björn Wittenmark from the 70-80's for industrial use
Stars: ✭ 38 (-29.63%)
Mutual labels:  simulation
Bullet3
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
Stars: ✭ 8,714 (+16037.04%)
Mutual labels:  simulation
Sdformat
Simulation Description Format (SDFormat) parser and description files.
Stars: ✭ 51 (-5.56%)
Mutual labels:  simulation
Plant
Trait-Driven Models of Ecology and Evolution 🌲
Stars: ✭ 39 (-27.78%)
Mutual labels:  simulation
Fairroot
C++ simulation, reconstruction and analysis framework for particle physics experiments
Stars: ✭ 41 (-24.07%)
Mutual labels:  simulation
Lammps
Public development project of the LAMMPS MD software package
Stars: ✭ 1,019 (+1787.04%)
Mutual labels:  simulation
Blender Flip Fluids
FLIP Fluids is a powerful liquid simulation plugin that gives you the ability to create high quality fluid effects all within Blender, the free and open source 3D creation suite.
Stars: ✭ 983 (+1720.37%)
Mutual labels:  simulation
Cloudsimsdn
CloudSimSDN is an SDN extension of CloudSim project to simulate SDN and SFC features in the context of a cloud data center.
Stars: ✭ 51 (-5.56%)
Mutual labels:  simulation
Neo simulation
Package to simulate Neobotix robots
Stars: ✭ 41 (-24.07%)
Mutual labels:  simulation
Positionbaseddynamics
PositionBasedDynamics is a library for the physically-based simulation of rigid bodies, deformable solids and fluids.
Stars: ✭ 1,041 (+1827.78%)
Mutual labels:  simulation
Nbody
N body gravity attraction problem solver
Stars: ✭ 40 (-25.93%)
Mutual labels:  simulation
Synthea
Synthetic Patient Population Simulator
Stars: ✭ 1,006 (+1762.96%)
Mutual labels:  simulation
T Flows
Program for Simulation of Turbulent Flows
Stars: ✭ 47 (-12.96%)
Mutual labels:  simulation
Sumo
Eclipse SUMO is an open source, highly portable, microscopic and continuous traffic simulation package designed to handle large networks. It allows for intermodal simulation including pedestrians and comes with a large set of tools for scenario creation.
Stars: ✭ 992 (+1737.04%)
Mutual labels:  simulation
Plankton
Open source simulator for maritime robotics researchers
Stars: ✭ 51 (-5.56%)
Mutual labels:  simulation
Pandemic Simulator
Simulate a pandemic with artificial life objects.
Stars: ✭ 38 (-29.63%)
Mutual labels:  simulation
Qtorch
qTorch (Quantum Tensor Contraction Handler) https://arxiv.org/abs/1709.03636 -> for quantum simulation using tensor networks
Stars: ✭ 43 (-20.37%)
Mutual labels:  simulation
Pcraster
Environmental modeling software
Stars: ✭ 52 (-3.7%)
Mutual labels:  simulation
Ros ship packages
USV simulator for ROS
Stars: ✭ 51 (-5.56%)
Mutual labels:  simulation
Evolve
Artificial Life Simulator Originally Authored by Ken Stauffer
Stars: ✭ 47 (-12.96%)
Mutual labels:  simulation

Gazebo Awesome Plugins


GAP is a set of tools written in C++ for Gazebo which provide an interface to interact programatically with the simulator. We built GAP to support our research in Domain Randomization. Unlike most similar software, these tools do not strictly depend on ROS. They include:

  1. [NEW] Domain Randomization plugin, a multi-purpose plugin to change physical properties of models, as well as visual appearence.

  2. Camera Utils plugin, to control camera objects, namely moving the camera and saving rendered frames at specific instants.

  3. Visual Utils plugin, to control the visual appearance of an object during simulation, including changing the Visual object's pose, material and scale.

  4. World Utils plugin, that allows you to spawn models either by a uri reference or directly with an sdf string.

This project was originally conceived so we could develop a scene generator in Gazebo, employing domain randomisation in an attempt to bridge the reality gap between real life images and synthetically generated frames.

Check out tf-object-detection, in which we trained a state--of--the--art deep CNN using this synthetic dataset.

Examples

Check out the examples and see what you can achieve with these plugins.

shadowhand scene_example

Documentation

Take a look at the automatic documentation for file and class description.

Dependencies

The code has been tested in Gazebo 9.0.0 from the official stable repository as well as built from source 9.4.1 and running on Ubuntu 16.04.5 and 18.04.

Gazebo internal message passing relies on Protobuf, which is why the compiler needs to be installed in order to generate the tools' custom messages. Eigen 3 is required for scene_example.

sudo apt install protobuf-compiler  # Required
sudo apt install libeigen3-dev      # Required for scene_example

For custom texture generation, we have developed a pattern generation tool, which can randomly generate a high number of 4 different types of textures and produces materials in a format Gazebo can recognise.

Compilation

Clone the repository to your workspace directory and build from source.

cd ~/workspace/gap/ &&
mkdir build && cd build && cmake ../ && make -j8

Alternatively you can build each plugin/tool individually in a similar fashion.

Initialization

Make sure you properly initialise the required environment variables. We provide a simple script for this:

cd ~/workspace/gap &&
source setup.sh

Reference

These tools were developed to further our research regarding domain randomisation. We include a published conference paper and its reference for citation purposes.

@inproceedings{borrego2018,
  author = {J. Borrego and R. Figueiredo and A. Dehban and P. Moreno and A. Bernardino and J. Santos-Victor},
  booktitle = {2018 IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC)},
  title = {A generic visual perception domain randomisation framework for Gazebo},
  year = {2018},
  pages = {237-242},
  keywords = {Machine learning;Neural networks;Object detection;Proposals;Robots;Task analysis;Training},
  doi = {10.1109/ICARSC.2018.8374189},
  month = {April}
}

Disclaimer

This project is not directly affiliated with Gazebo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].