_images/banner.png license codestyle Documentation Status Continuous Integration Test Coverage

What is EAGERx

You can use EAGERx (Engine Agnostic Graph Environments for Robotics) to easily define new (Gymnasium compatible) environments with modular robot definitions.

It enables users to:

  • Define environments as graphs of nodes

  • Visualize these graph environments interactively in a GUI

  • Use a single graph environment both in reality and with various simulators

EAGERx explicitly addresses the differences in learning between simulation and reality, with native support for essential features such as:

  • Safety layers and various other state, action and time-scale abstractions

  • Delay simulation & domain randomization

  • Real-world reset routines

  • Synchronized parallel computation within a single environment

You can find the open-source code on Github.

_images/pendulum_sim.gif _images/pendulum_real.gif _images/box_pushing_pybullet.gif _images/box_pushing_real.gif _images/drone_landing.gif

Sim2Real: Policies trained in simulation and zero-shot evaluated on real systems using EAGERx. In the top left the successful transfer of a policy for the classic pendulum swing-up problem is shown and in the top right for a box-pushing task. Below that a policy to land a quadrotor on a moving inclined platform is shown.

_images/all.gif

Modular: The modular design of EAGERx allows users to create complex environments easily through composition.

_images/gui.svg

GUI: Users can visualize their graph environment. Here we visualize the graph environment that we built in this tutorial. See the documentation for more information.

_images/use_case.gif _images/swim_sim.gif _images/swim_real.gif

Applications beyond RL: The modular design and unified software pipeline of the framework have utility beyond reinforcement learning. We explored two such instances: interactive language-conditioned imitation learning (left) and classical control with deep learning based perception in a swimming pool environment (right).

Video

Engines

EAGERx enables a unified pipeline for real-world and simulated learning across various simulators. The following engines/simulators are already available for training and evaluation:

Users can easily add their own engines by implementing the Engine interface.

Cite EAGERx

If you are using EAGERx for your scientific publications, please cite:

@article{vanderheijden2024eagerx,
  author={van der Heijden, Bas and Luijkx, Jelle and Ferranti, Laura and Kober, Jens and Babuska, Robert},
  journal={IEEE Robotics \& Automation Magazine},
  title={Engine Agnostic Graph Environments for Robotics (EAGERx): A Graph-Based Framework for Sim2real Robot Learning},
  year={2024},
  volume={},
  number={},
  pages={2-15},
  keywords={Robots;Engines;Robot sensing systems;Delays;Robot learning;Physics;Codes},
  doi={10.1109/MRA.2024.3433172}
}

Maintainers

EAGERx is currently maintained by Bas van der Heijden (@bheijden) and Jelle Luijkx (@jelledouwe).

How to contact us

For any question, send an e-mail to eagerx.dev@gmail.com.

Acknowledgements

EAGERx is funded by the OpenDR Horizon 2020 project.

delft_logo opendr_logo