This release is a pre-release and may not be stable for production use.
Cleaning Robots Gym
Gymnasium-compatible reinforcement-learning environment for the cleaning-robot MDP described in the paper preprint.
Developed by the IROS Lab team, Faculty of Computer Science (Fasilkom),
Universitas Indonesia. Current planned package version: 0.1.0a1 (alpha).
Installation
pip install -e .
pip install -e ".[research]"
These commands install from this checkout. Once an alpha release is published,
install that exact release with pip install cleaning-robots-gym==0.1.0a1.
The first command installs the environment. The second adds training, plotting,
rendering, and video dependencies. For video only, use pip install -e ".[video]".
Repository Structure
cleaning-robots-gym/
|-- cleaning_robots_gym/ # Installable environment package
| |-- __init__.py # Gymnasium registration and public imports
| |-- envs/
| | `-- cleaning_robot_env.py
| `-- config/
| `-- cleaning_robots_v0.yaml
|-- scripts/ # Training, evaluation, plotting, video
|-- docs/ # Experiment documentation and figures
| `-- media/
|-- logs/ # Local results/models; excluded from Git
|-- README.md
|-- pyproject.toml
`-- requirements.txt # Full research dependencies
The layout follows the package/scripts/docs separation used by BlueSky-Gym.
Only the environment package is installed into the wheel. Research scripts and
generated experiment outputs are maintained separately.
Historical results already tracked in Git are retained under logs/; new,
untracked experiment outputs are ignored.
Experiments
python scripts/train.py --algorithms ppo a2c --seeds 12345
python scripts/simulate.py --algorithm ppo --num_episodes 3
python scripts/aggregate_results.py --help
python scripts/plot_comparison.py
See scripts/README.md and docs/experiments.md.
Usage
The package follows the same usage pattern as third-party Gymnasium libraries:
import gymnasium as gym
import cleaning_robots_gym
cleaning_robots_gym.register_envs()
env = gym.make("CleaningRobots-v0")
obs, info = env.reset(seed=12345)
terminated = truncated = False
while not (terminated or truncated):
action = env.action_space.sample()
obs, reward, terminated, truncated, info = env.step(action)
env.close()
CleaningRobots-v0 loads cleaning_robots_gym/config/cleaning_robots_v0.yaml,
which is the single 7x7 journal configuration previously kept as config_2.yaml.
RecordVideo
Gymnasium records videos from environments that support render_mode="rgb_array".
Install moviepy if Gymnasium asks for it, then wrap the environment:
import gymnasium as gym
from gymnasium.wrappers import RecordVideo
import cleaning_robots_gym
cleaning_robots_gym.register_envs()
env = gym.make("CleaningRobots-v0", render_mode="rgb_array")
env = RecordVideo(
env,
video_folder="logs/videos",
episode_trigger=lambda episode_id: True,
name_prefix="cleaning-robots-v0",
)
obs, info = env.reset(seed=12345)
terminated = truncated = False
while not (terminated or truncated):
action = env.action_space.sample()
obs, reward, terminated, truncated, info = env.step(action)
env.close()
For a ready-to-run example, use:
python scripts/record_video.py --episodes 1 --steps_per_episode 500
License and Releases
The code is licensed under the MIT License. Copyright is attributed to Cleaning Robots Gym contributors; the lab affiliation above does not establish institutional ownership of every contribution.
See the release guide for TestPyPI, Trusted Publishing, version updates, and the journal release checklist.
Metadata
Release files for cleaning-robots-gym 0.1.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cleaning_robots_gym-0.1.0a1.tar.gz | 51.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cleaning_robots_gym-0.1.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.1 kB
Release files / cleaning_robots_gym-0.1.0a1.tar.gz
| Download URL | cleaning_robots_gym-0.1.0a1.tar.gz |
|---|---|
| Size | 51.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
878671f3c774a74ca539bcd606764086e18118ff763003e0c0fc010b22cda365
|
|
BLAKE2b-256 checksum How to use checksums |
ca5e904590fcab510bf2914aa67baae4fcb1c1205e2b1aee5d20049641491010
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency logRelease files / cleaning_robots_gym-0.1.0a1-py3-none-any.whl
| Download URL | cleaning_robots_gym-0.1.0a1-py3-none-any.whl |
|---|---|
| Size | 18.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce8fbe21f3784f6e68f0cdd371269d0f29eecdefc28c66fbde0414ca2f7c2cb6
|
|
BLAKE2b-256 checksum How to use checksums |
3a3fa312327d0358198d622ceeb7d1c57794b0e1cfa1a026aafc143bbc101365
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency log