{"id":49862272,"url":"https://github.com/ncbdrck/multiros","last_synced_at":"2026-05-14T22:01:23.592Z","repository":{"id":176258712,"uuid":"471499078","full_name":"ncbdrck/multiros","owner":"ncbdrck","description":"MultiROS is an open-source ROS based simulation environment designed for concurrent deep reinforcement learning. It provides a flexible and scalable framework for training and evaluating reinforcement learning agents for complex robotic tasks.","archived":false,"fork":false,"pushed_at":"2026-05-14T11:29:30.000Z","size":264,"stargazers_count":39,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"gymnasium","last_synced_at":"2026-05-14T11:38:03.210Z","etag":null,"topics":["deep-reinforcement-learning","gazebo","gym","gymnasium","gymnasium-robotics","multiros","reinforcement-learning","robotics","ros","uniros"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ncbdrck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-03-18T19:55:00.000Z","updated_at":"2026-05-14T11:29:35.000Z","dependencies_parsed_at":"2026-05-14T22:00:36.355Z","dependency_job_id":null,"html_url":"https://github.com/ncbdrck/multiros","commit_stats":null,"previous_names":["ncbdrck/multiros"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ncbdrck/multiros","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncbdrck%2Fmultiros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncbdrck%2Fmultiros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncbdrck%2Fmultiros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncbdrck%2Fmultiros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ncbdrck","download_url":"https://codeload.github.com/ncbdrck/multiros/tar.gz/refs/heads/gymnasium","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncbdrck%2Fmultiros/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33045145,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-reinforcement-learning","gazebo","gym","gymnasium","gymnasium-robotics","multiros","reinforcement-learning","robotics","ros","uniros"],"created_at":"2026-05-14T22:00:26.260Z","updated_at":"2026-05-14T22:01:23.558Z","avatar_url":"https://github.com/ncbdrck.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MultiROS: ROS-Based Robot Simulation Environment for Concurrent Deep Reinforcement Learning\n\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Documentation Status](https://readthedocs.org/projects/uniros/badge/?version=latest)](https://uniros.readthedocs.io/en/latest/?badge=latest)\n\n📚 **Full documentation**: [uniros.readthedocs.io](https://uniros.readthedocs.io/) (ecosystem-wide docs hosted via UniROS)\n\nMultiROS is an open-source Robot Operating System ([ROS](http://wiki.ros.org/))-based simulation environment designed for concurrent deep reinforcement learning. It provides a flexible and scalable framework for training and evaluating reinforcement learning agents for complex robotic tasks.\n\nThis package supports training robots in both simulation and the real world. The simulation environment is based on [Gazebo](https://gazebosim.org/), providing a realistic simulation platform for testing and developing reinforcement learning algorithms. \n\nAdditionally, MultiROS provides interfaces and tools for seamlessly transferring learned policies to real-world robotic systems.\n\nFor more information, please refer to the main [UniROS repository](https://github.com/ncbdrck/UniROS) which integrates MultiROS and [RealROS](https://github.com/ncbdrck/realros).\n## Prerequisites\n\nBefore installing MultiROS, make sure you have the following prerequisites:\n\n### ROS Installation\n\nMultiROS requires a working installation of ROS. If you haven't installed ROS yet, please follow the official [ROS installation guide](http://wiki.ros.org/ROS/Installation) for your specific operating system. This package has been tested with [ROS Noetic](http://wiki.ros.org/noetic) version, and the following instructions will guide you through the installation of ROS Noetic on Ubuntu 20.04:\n```shell\nsudo sh -c 'echo \"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main\" \u003e /etc/apt/sources.list.d/ros-latest.list'\nsudo apt install curl\ncurl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -\nsudo apt update\nsudo apt install ros-noetic-desktop-full\n\necho \"source /opt/ros/noetic/setup.bash\" \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n\nsudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential\nsudo apt install python3-rosdep\nsudo rosdep init\nrosdep update\n```\n### Catkin Tools\nMultiROS uses Catkin as the build system for ROS packages. Install Catkin Tools by running the following command:\n```shell\nsudo apt-get install python3-catkin-tools\n```\n\n### Create ROS Workspace\nBefore using MultiROS, you need to create a ROS workspace to build and run your ROS packages. Follow these steps to create a workspace:\n```shell\ncd ~\nsource /opt/ros/noetic/setup.bash\nmkdir -p ~/catkin_ws/src\ncd ~/catkin_ws/\ncatkin build\necho \"source ~/catkin_ws/devel/setup.bash\" \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n```\n\n### Other Packages \nMultiROS also requires the following additional packages:\n- XTerm for terminal emulation:\n    ```shell\n    sudo apt install xterm\n    ```\n- [MoveIt](https://moveit.ros.org/) for motion planning:\n    ```shell\n    sudo apt install ros-noetic-moveit\n    ```\n- [PyKDL](https://github.com/orocos/orocos_kinematics_dynamics) for Kinematics:\n    ```shell\n  sudo apt install python3-pykdl\n    ```\n- [kdl_parser_py](http://wiki.ros.org/kdl_parser_py) for parsing URDF files (for Kinematics_pyrobot):\n    ```shell\n    sudo apt install ros-noetic-kdl-parser-py\n    ```\n- [trac_ik_python](http://wiki.ros.org/trac_ik_python) for inverse kinematics (for Kinematics_pyrobot):\n    ```shell\n  # Download and install trac_ik_python\n\tsudo apt-get install ros-noetic-trac-ik\n\n    # or\n\t\n    cd ~/catkin_ws/src\n    git clone https://bitbucket.org/traclabs/trac_ik.git\n    ```\n- [pykdl_utils](http://wiki.ros.org/pykdl_utils) for kinematics (for Kinematics_pykdl):\n    ```shell\n    # download the package - modified version of the original package to support ROS Noetic\n    cd ~/catkin_ws/src\n    git clone https://github.com/ncbdrck/hrl-kdl.git\n  \n    # install the pykd_utils\n    cd ~/catkin_ws/src/hrl-kdl/pykdl_utils\n    python3 setup.py build\n    sudo python3 setup.py install\n  \n    # install the hrl_geom\n    cd ~/catkin_ws/src/hrl-kdl/hrl_geom\n    python3 setup.py build\n    sudo python3 setup.py install\n    \n  # Install urdf_parser and urdfdom-py\n    sudo apt-get install ros-noetic-urdf-parser-plugin\n    sudo apt-get install ros-noetic-urdfdom-py\n    \n    # Build the package\n    cd ~/catkin_ws\n    rosdep install --from-paths src --ignore-src -r -y\n    catkin build\n    source devel/setup.bash\n  ```\n\nYou are now ready to proceed with the installation and usage of MultiROS.\n\nPlease note that the instructions assume you are using Ubuntu 20.04 and ROS Noetic. If you are using a different operating system or ROS version, make sure to adapt the commands accordingly.\n\n## Installation\n\n\u003e **Required dependency:** Starting with v0.2.0, MultiROS shares its\n\u003e multiprocessing proxy and ROS utility modules with the\n\u003e [UniROS](https://github.com/ncbdrck/UniROS) package\n\u003e (`multiros.core.MultirosGym` is an alias for `uniros._proxy.GymProxy`,\n\u003e and `multiros.utils.ros_markers` re-exports from\n\u003e `uniros.utils.ros_markers`). **You must clone UniROS into the same\n\u003e catkin workspace.** A standalone clone of MultiROS will fail at\n\u003e import time with `ModuleNotFoundError: No module named 'uniros'`.\n\nTo get started with MultiROS, follow these steps:\n\n1. Clone UniROS (provides the shared `uniros` runtime) and MultiROS into\n   the same catkin workspace:\n    ```shell\n    cd ~/catkin_ws/src\n    git clone -b gymnasium https://github.com/ncbdrck/UniROS.git\n    git clone -b gymnasium https://github.com/ncbdrck/multiros.git\n    ```\n\n2. MultiROS relies on several Python packages. You can install them by running the following command:\n\n    ```shell\n    # Install pip if you haven't already by running this command\n    sudo apt-get install python3-pip\n\n    # install the required Python packages for MultiROS by running\n    cd ~/catkin_ws/src/multiros\n    pip3 install -r requirements.txt\n    ```\n3. Build the ROS packages and source the environment:\n    ```shell\n   cd ~/catkin_ws/\n   rosdep install --from-paths src --ignore-src -r -y\n   catkin build\n   source devel/setup.bash\n    ```\n## Usage\n\nRefer to the [templates](https://github.com/ncbdrck/multiros/tree/main/src/multiros/templates) or the [examples](https://github.com/ncbdrck/rl_environments) to see how MultiROS can create a simulation environment for RL applications.\n\nThe installation instructions for the examples are provided in the respective repositories.\n\n## License\n\nMultiROS is released under the [MIT License](https://opensource.org/licenses/MIT). Please see the LICENSE file for more details.\n\n## Acknowledgements\n\nWe would like to thank the following projects and communities for their valuable contributions, as well as the authors of relevant libraries and tools used in MultiROS.\n- [ROS (Robot Operating System)](https://www.ros.org/)\n- [Gazebo](https://gazebosim.org/)\n- [Gymnasium](https://github.com/Farama-Foundation/Gymnasium)\n- [Gymnasium-Robotics](https://github.com/Farama-Foundation/Gymnasium-Robotics)\n- [OpenAI Gym](https://gym.openai.com/)\n- [openai_ros](http://wiki.ros.org/openai_ros)\n- [frobs_rl](https://frobs-rl.readthedocs.io/en/latest/)\n- [gym-gazebo](https://github.com/erlerobot/gym-gazebo/)\n\n## Documentation\n\nFull ecosystem documentation — covering installation, ready-made\nenvironments, environment creation, training with any\ngymnasium-compatible RL library, and joint sim+real training —\nlives in the [UniROS repository](https://github.com/ncbdrck/UniROS)\nunder `docs/`. MultiROS is documented there alongside RealROS and\nthe rest of the framework.\n\n## Cite\n\nThe journal paper for the framework as a whole:\n\n```bibtex\n@article{kapukotuwa_uniros_2025,\n\ttitle = {{UniROS}: {ROS}-{Based} {Reinforcement} {Learning} Across {Simulated} and {Real}-{World} {Robotics}},\n\tshorttitle = {{UniROS}},\n\tdoi = {10.3390/s25185679},\n\tjournal = {Sensors},\n\tauthor = {Kapukotuwa, Jayasekara and Lee, Brian and Devine, Declan and Qiao, Yuansong},\n\tvolume = {25},\n\tnumber = {18},\n\tmonth = sep,\n\tyear = {2025},\n\tpages = {5679},\n\tpublisher = {{MDPI}},\n\turl = {https://www.mdpi.com/1424-8220/25/18/5679},\n}\n```\n\nThe earlier conference paper specific to MultiROS:\n\n```bibtex\n@inproceedings{kapukotuwa_multiros_2022,\n\ttitle = {{MultiROS}: {ROS}-{Based} {Robot} {Simulation} {Environment} for {Concurrent} {Deep} {Reinforcement} {Learning}},\n\tshorttitle = {{MultiROS}},\n\tdoi = {10.1109/CASE49997.2022.9926475},\n\tbooktitle = {2022 {IEEE} 18th {International} {Conference} on {Automation} {Science} and {Engineering} ({CASE})},\n\tauthor = {Kapukotuwa, Jayasekara and Lee, Brian and Devine, Declan and Qiao, Yuansong},\n\tmonth = aug,\n\tyear = {2022},\n\tnote = {ISSN: 2161-8089},\n\tpages = {1098--1103},\n}\n```\n\nRepository:\n\n```bibtex\n@misc{multiros,\n  author = {Kapukotuwa, Jayasekara},\n  booktitle = {GitHub repository},\n  publisher = {GitHub},\n  title = {MultiROS: ROS-Based Robot Simulation Environment for Concurrent Deep Reinforcement Learning},\n  url = {https://github.com/ncbdrck/multiros},\n  year = {2022}\n}\n```\n\n## Contact\n\nFor questions, suggestions, or collaborations, feel free to reach out to the project maintainer at [j.kapukotuwa@research.ait.ie](mailto:j.kapukotuwa@research.ait.ie).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncbdrck%2Fmultiros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fncbdrck%2Fmultiros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncbdrck%2Fmultiros/lists"}