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.
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.
Modular: The modular design of EAGERx allows users to create complex environments easily through composition.
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.
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:
RealEngine for real-world experiments
PybulletEngine for PyBullet simulations
OdeEngine for simulations based on ordinary differential equations (ODEs)
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.