This paper presents Gym-Ignition, a new framework to create reproducible robotic environments for reinforcement learning research. It interfaces with the new generation of Gazebo, part of the Ignition Robotics suite, which provides three main improvements for reinforcement learning applications compared to the alternatives: 1) the modular architecture enables using the simulator as a C++ library, simplifying the interconnection with external software; 2) multiple physics and rendering engines are supported as plugins, simplifying their selection during the execution; 3) the new distributed simulation capability allows simulating complex scenarios while sharing the load on multiple workers and machines. The core of Gym-Ignition is a component that contains the Ignition Gazebo simulator and exposes a simple interface for its configuration and execution. We provide a Python package that allows developers to create robotic environments simulated in Ignition Gazebo. Environments expose the common OpenAI Gym interface, making them compatible out-of-the-box with third-party frameworks containing reinforcement learning algorithms. Simulations can be executed in both headless and GUI mode, the physics engine can run in accelerated mode, and instances can be parallelized. Furthermore, the Gym-Ignition software architecture provides abstraction of the Robot and the Task, making environments agnostic on the specific runtime. This abstraction allows their execution also in a real-time setting on actual robotic platforms, even if driven by different middlewares.
翻译:本文展示了 Gym- Ignition, 这是一个为强化学习研究创造可复制的机器人环境的新框架。 它与新一代的Gazebo 界面, 这是Ignition机器人套件的一部分, 提供了与替代软件相比强化学习应用程序的三大改进:(1) 模块架构使得能够使用模拟器作为 C++ 库, 简化与外部软件的连接; (2) 多种物理和图像引擎被支持为插件, 在执行过程中简化了它们的选择; (3) 新的分布式模拟能力允许模拟复杂情景, 同时共享多个工人和机器的负荷。 Gym- Ignition的核心是一个包含 Ignition Gazebo 模拟器的组件, 并展示了与其配置和执行相比强化学习应用程序的简单界面。 我们提供了一个 Python 套件, 使开发者能够创建以 Ignationalment Gzebo 模拟的机器人环境。 环境暴露了 OpencialAI Gym 界面, 使其与含有强化学习算法的第三方框架兼容。 模拟平台可以同时执行。 模拟程序可以同时执行, 既可以执行, 也可以在 和 Grum IM 操作 模式中运行中 模式, 设置中,, 也可以运行一个同步操作操作操作操作操作操作。