Ready-made environments
The rl_environments repository ships pre-built gymnasium
environments for several robots and tasks. This page is a precise
inventory of what’s currently implemented, registered, and tested
— so you know what works out of the box versus what’s scaffolding.
The matrix will grow as more task implementations land.
Status legend
Symbol |
Meaning |
|---|---|
✓ |
Implemented (code + gymnasium ID registered). |
◐ |
Partial: source files exist in the directory layout, but no gymnasium IDs are registered for this task on this robot. |
— |
Empty placeholder in the directory layout. |
Robot × task implementation matrix
Whether the task env class exists and whether the gym ID is
registered in rl_environments/__init__.py.
Robot |
Sim/reach |
Sim/push |
Sim/pnp |
Real/reach |
Real/(push,pnp) |
|---|---|---|---|---|---|
Trossen RX200 |
✓ |
✓ |
— |
✓ |
— |
Niryo Ned2 |
◐ |
— |
— |
— |
— |
Universal UR5 |
— |
— |
— |
— |
— |
Training script availability
Whether rl_training_validation contains a working
{robot}_{task}_train_*.py and/or
{robot}_{task}_validate_*.py script that wires the env to an
sb3_ros_support algorithm + a YAML config.
Robot / task |
Train sim |
Validate sim |
Train real |
Validate real |
Joint sim+real |
|---|---|---|---|---|---|
RX200 reach |
✓ |
✓ |
✓ |
✓ |
✓ (multi-task) |
RX200 push |
✓ |
— |
— |
— |
— |
Other robot/task combinations don’t have training scripts yet.
Trossen RX200 — simulation, reach
The most exercised path in the ecosystem and the basis for the benchmark experiments in the paper. Multiple variants cover joint-position vs end-effector action spaces, with optional Kinect v2 or ZED 2 cameras for vision-based observations.
Registered gymnasium IDs
Joint-position action space
RX200ReacherSim-v0,-v1,-v2— observation-space variants.RX200ReacherGoalSim-v0— goal-conditioned (use with HER).
End-effector action space
RX200ReacherEESim-v0RX200ReacherEEGoalSim-v0
Kinect v2 vision (RGB / RGB+state / RGB+depth+state, each in joint-space and EE-space variants, each with optional goal-conditioning)
RX200kinectReacherSimRGB-v0and familyRX200kinectReacherEESimRGB-v0and familyRX200kinectReacherGoalSimRGB-v0and familyRX200kinectReacherEEGoalSimRGB-v0and family
ZED 2 vision (same RGB / RGB+state / RGB+depth+state variants)
RX200Zed2ReacherSimRGB-v0and family(same matrix of EE / Goal / Plus / DepthPlus suffixes)
Training scripts
In rl_training_validation/src/rl_training_validation/rx200/reach/:
rx200_reach_train_sim.pyrx200_reach_validate_sim.py
See Training a model for how these tie a gym ID to an
sb3_ros_support algorithm and a YAML config.
Trossen RX200 — simulation, push
Registered gymnasium IDs
RX200PushSim-v0,-v1— joint-space push variants.RX200PushEESim-v0— EE-space push.RX200kinectPushSimRGB-v0and the matching RGB / RGB+state / RGB+depth+state and EE-space variants.
Training script
rx200/push/rx200_push_train_sim.py(sim only; no validation script yet).
Trossen RX200 — real hardware, reach
Registered gymnasium IDs
RX200ReacherReal-v0— joint-space reach.RX200ReacherGoalReal-v0— goal-conditioned, for HER.
Training scripts
In rl_training_validation/src/rl_training_validation/rx200/reach/:
rx200_reach_train_real.pyrx200_reach_validate_real.py
These pair with the matching sim scripts above so a sim-trained policy can be validated directly on hardware (Use Case B in the paper) or co-trained across both domains (Use Case C; see Joint sim + real training).
Niryo Ned2
Robot env source files exist for Ned2 sim, but no gymnasium IDs are registered and no training scripts are wired up. If you want to add a Ned2 reach env, the easiest path is to copy the matching RX200 reach env, adjust joint count / link names / DOF, and register a new gymnasium ID. See Creating a simulation environment.
Universal Robots UR5
UR5 directories exist in rl_environments and
rl_training_validation but they are placeholders today. No
gymnasium IDs are registered and no training scripts exist. See
Creating a simulation environment for the recommended starting point.