UniROS / MultiROS / RealROS ecosystem

A ROS-based reinforcement-learning framework for robots, spanning Gazebo simulation and real-world hardware. Built on Gymnasium and Stable Baselines 3.

The ecosystem is split into four core framework packages plus two application packages that ship pre-built environments and training scripts. You can use the framework on its own or pull in the applications as ready-made examples.

Core framework: UniROS, MultiROS, RealROS, sb3_ros_support.

Applications: rl_environments, rl_training_validation.

Package

What it provides

UniROS API reference

The unified abstraction layer. Hosts the canonical multiprocessing gym-env proxy class (uniros._proxy.GymProxy) and the shared ROS utility modules used by every package below. Bundles MultiROS and RealROS as git submodules.

MultiROS API reference

Gazebo-based simulation environments. Spawn multiple gym envs in parallel against a single rosmaster, run roscores on arbitrary ports, manage Gazebo physics.

RealROS API reference

The real-hardware counterpart to MultiROS. Same gym API, talks to physical robots instead of Gazebo.

sb3_ros_support API reference

Stable Baselines 3 algorithm wrappers (PPO, A2C, DDPG, TD3, SAC, DQN, plus goal-conditioned variants) configured for ROS-based training scripts.

rl_environments API reference

Pre-built gym environments for the supported robots and tasks.

rl_training_validation API reference

Working training and validation scripts for the pre-built envs.

About these docs

This documentation was drafted in collaboration with two AI assistants — Anthropic’s Claude (for writing and structure) and OpenAI’s Codex CLI (for review passes) — working from the UniROS codebase, the Sensors paper, and design decisions made by the author. Each change was reviewed before being committed.

That said, AI-assisted docs can still contain hallucinated APIs, stale examples, or subtle factual errors. If you find an inaccuracy, please open an issue at github.com/ncbdrck/UniROS/issues.

Citation

If this ecosystem is useful in your work, please cite the paper:

@Article{s25185679,
  AUTHOR  = {Kapukotuwa, Jayasekara and Lee, Brian and Devine, Declan and Qiao, Yuansong},
  TITLE   = {UniROS: ROS-Based Reinforcement Learning Across Simulated and Real-World Robotics},
  JOURNAL = {Sensors},
  VOLUME  = {25},
  YEAR    = {2025},
  NUMBER  = {18},
  PAGES   = {5679},
  URL     = {https://www.mdpi.com/1424-8220/25/18/5679},
  ISSN    = {1424-8220},
  DOI     = {10.3390/s25185679},
}

Indices