Skip to content

About

Desktop workbench for inspecting and operating trusted local Isaac Lab robot-learning tasks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Robot Learning Workbench

Robot Learning Workbench is a classic desktop engineering application for inspecting, launching, monitoring, and comparing trusted local robot-learning tasks. It is a thin learning and orchestration layer over an external task workspace and an existing NVIDIA Isaac Lab installation.

What it is

The Workbench presents workspace readiness, scene assets, task/MDP metadata, exact commands, process output, training metrics, raw episode telemetry, and evaluation comparisons in one tkinter/ttk desktop interface.

Why it exists

Robot-learning workflows often spread task definitions, simulator commands, training logs, and evaluation evidence across separate tools. The Workbench makes those boundaries visible without replacing the simulator or learning framework.

Architecture

WORKBENCH_ROOT: desktop UI and Workbench-owned helper
        |
        | subprocess + explicit JSON output
        v
isaac_probe.py through isaaclab.bat
        |
        +--------------------------+
        |                          |
        v                          v
WORKSPACE_ROOT               ISAACLAB_ROOT
trusted task code            Isaac Lab / Isaac Sim

The three roots are independent. The normal desktop process does not import Isaac Lab, Isaac Sim, PyTorch, RSL-RL, or TensorBoard.

Supported workflow

The UI guides the user through workspace inspection, asset and task discovery, Goal → Success → Observation → Action → Reward → Reset → PPO inspection, GUI review, random baselines, PPO smoke/full command launch, metric inspection, and evaluation comparison. A stage is shown as unavailable when the selected task workspace does not provide a runner for it.

Requirements

  • Python 3.12 or 3.13 with tkinter
  • A trusted local task workspace
  • An external Isaac Lab installation for simulator-aware operations
  • Windows for the validated isaaclab.bat workflow

Isaac Lab, Isaac Sim, PyTorch, RSL-RL, and TensorBoard are not bundled or installed by this project.

Installation

py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"

The dev extra contains only test, lint, type-check, and pre-commit tooling.

Launch

python -m applications.robot_learning_workbench

After installation, the robot-learning-workbench console command is also available. Configure the task workspace and Isaac Lab roots through the File menu. Per-user settings are stored outside the repository under local application data.

Trusted task workspace

WORKSPACE_ROOT owns task registration code, task source, and optional command scripts. Selecting and probing a workspace may execute its Python registration code through the external Isaac runtime. Select only trusted local workspaces. The Workbench is not a sandbox for downloaded or untrusted code.

Standalone workspace manifest

A standalone workspace declares tasks in robot_learning_workbench_tasks.json:

{
  "tasks": [
    {
      "name": "Example task",
      "registration": "tasks/example/registration.py",
      "commands": {
        "gui": "tasks/example/gui_probe.py",
        "evaluate": "tasks/example/evaluate.py"
      }
    }
  ]
}

registration is required. name, number, and commands are optional. Supported command roles are prekit, gui, semantic, random, and evaluate. Registration source defines TASK_ID, may define PLAY_TASK_ID and RUNTIME_MODULE, and must expose register_tasks() when a runtime probe is requested. The legacy experiments/robot/<number>_<name>/registration.py layout is also accepted; both discovery forms normalize to one task model.

Isaac Lab boundary

ISAACLAB_ROOT owns Isaac Lab, Isaac Sim integration, simulator dependencies, and generated runs. Workbench commands use that checkout as their working directory and add WORKSPACE_ROOT to PYTHONPATH. The helper path always comes from WORKBENCH_ROOT, so a selected workspace cannot replace it.

Task probing

The Workbench launches its helper with isaaclab.bat -p. The helper imports the trusted registration module, reads the registered task configuration, and writes normalized JSON. An instantiated probe can attach per-term observation dimensions from the runtime ObservationManager using (group, term_name) identity.

GUI launch

Launch Task GUI starts the selected task in the native Isaac Sim viewer. The Workbench does not embed or replace the simulator viewport. GUI review remains a user-confirmed local workflow step.

Training command preview and launch behavior

Every action displays the exact command before launch. The Workbench owns only the process it starts, streams its output, records its exit state, and stops only that process tree. It does not tune rewards, PPO settings, or task code.

TensorBoard inspection

Training metrics are read by the external helper in the Isaac environment where TensorBoard is already available. TensorBoard is not a Workbench runtime dependency.

Raw telemetry inspection

The desktop can tail an external JSONL telemetry file and display its raw nested values. It does not infer physical units from variable names and does not convert a three-value action into invented Cartesian XYZ or millimetre semantics. Unknown task semantics remain task-defined or unavailable unless authoritative task metadata supplies them.

Evaluation comparison

Existing evaluation JSON files can be opened without modification. The viewer shows available aggregate metrics, region results, task-provided failure labels, and a transition matrix when two results share stable episode IDs.

Tests

python -m pytest tests/unit/test_robot_learning_workbench.py
python -m ruff check applications tests
python -m ruff format --check applications tests
python -m mypy applications/robot_learning_workbench
python -m pre_commit validate-config .pre-commit-config.yaml

These checks do not require Isaac Sim, CUDA, a GPU, robot hardware, or a display.

Limitations

The Workbench does not author scenes or tasks, edit assets, generate rewards, choose checkpoints, optimize hyperparameters, embed a 3D viewport, run cloud jobs, or provide a plugin framework. Task-specific explanations are shown only when supplied by task/runtime metadata.

Security and trust boundary

Workspace metadata is discovered without importing task modules in the desktop process. Simulator-aware probing later executes the selected workspace's registration code in the external Isaac environment. This boundary provides separation and transparency, not sandboxing. Do not select untrusted code or place credentials in manifests, commands, telemetry, or evaluation files.

License

Licensed under the Apache License, Version 2.0. See LICENSE.

About

Desktop workbench for inspecting and operating trusted local Isaac Lab robot-learning tasks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages