Skip to content

Runner Module

runner.orchestrator

Benchmark orchestration and execution engine.

This module is the core of the benchmarking system. It handles: - Process lifecycle management (simulator, SLAM, rosbag) - ROS 2 readiness probes - System resource monitoring - Degradation injection - Metrics collection

load_run_config(path)

Load a YAML configuration file.

Parameters:

Name Type Description Default
path str

Path to the YAML config file

required

Returns:

Type Description
dict

Dictionary containing the configuration

Source code in runner/orchestrator.py
def load_run_config(path: str) -> dict:
    """Load a YAML configuration file.

    Args:
        path: Path to the YAML config file

    Returns:
        Dictionary containing the configuration
    """
    with open(path, "r", encoding="utf-8") as f:
        config = yaml.safe_load(f) or {}

    # Define substitutions
    # We assume the orchestrator is run from the project root
    mapping = {
        "${PROJECT_ROOT}": str(Path.cwd()),
        "${HOME}": str(Path.home())
    }

    return recursive_substitute(config, mapping)