ExperimentRunnerNode

class suave_runner.suave_runner.ExperimentRunnerNode(**kwargs)

Orchestrate simulation and adaptation experiments.

__init__(**kwargs)

Initialize campaign configuration and process state.

append_array_random_interval(array, value, random_interval, current_delta, min_delta, max_delta, i)

Append a value using a delta refreshed at fixed run intervals.

create_experiment_folder()

Return a resumed or newly created campaign result directory.

detect_broken_run(run_log_dir)

Return a reason string if the finished run hit a known bug, else ‘’.

generate_mission_config_files(result_path)

Generate per-run mission configurations with randomized events.

handle_termination()

Request campaign termination and unblock mission waiting.

initialize_experiment(experiment, exp_idx)

Extract normalized launch and result settings for an experiment.

kill_gz_sim()

Terminate remaining Gazebo Sim processes.

launch_ardupilot(log_path: Path)

Start ArduPilot and redirect its output to a run log.

launch_experiment(exp_launch: str, result_path: str, result_filename: str, mission_config_file: str, log_dir: Path)

Launch the mission and managing system for one experiment run.

launch_suave_simulation(run_idx, log_dir: Path)

Launch the SUAVE simulation for a configured run position.

randomize_experiments_configuration()

Generate reproducible perturbations for all runs.

record_broken_run(result_path, exp_idx, run_idx, manager, result_filename, reason)

Log a broken run and move its metrics row into a rejected file.

run_experiments()

Execute configured campaigns with resumable checkpoints.

shutdown_all_launch_processes()

Request shutdown of every tracked ROS launch process.

shutdown_all_processes()

Stop ArduPilot, ROS launch processes, Gazebo, and log output.

start_launch_process(launch_description: LaunchDescription, log_dir: Path, launch_name: str)

Start a ROS launch description in an isolated child process.

terminate_process(proc, name)

Terminate a running subprocess and its process group.

Methods

__init__(**kwargs)

Initialize campaign configuration and process state.

append_array_random_interval(array, value, ...)

Append a value using a delta refreshed at fixed run intervals.

create_experiment_folder()

Return a resumed or newly created campaign result directory.

detect_broken_run(run_log_dir)

Return a reason string if the finished run hit a known bug, else ''.

generate_mission_config_files(result_path)

Generate per-run mission configurations with randomized events.

handle_termination()

Request campaign termination and unblock mission waiting.

initialize_experiment(experiment, exp_idx)

Extract normalized launch and result settings for an experiment.

kill_gz_sim()

Terminate remaining Gazebo Sim processes.

launch_ardupilot(log_path)

Start ArduPilot and redirect its output to a run log.

launch_experiment(exp_launch, result_path, ...)

Launch the mission and managing system for one experiment run.

launch_suave_simulation(run_idx, log_dir)

Launch the SUAVE simulation for a configured run position.

randomize_experiments_configuration()

Generate reproducible perturbations for all runs.

record_broken_run(result_path, exp_idx, ...)

Log a broken run and move its metrics row into a rejected file.

run_experiments()

Execute configured campaigns with resumable checkpoints.

shutdown_all_launch_processes()

Request shutdown of every tracked ROS launch process.

shutdown_all_processes()

Stop ArduPilot, ROS launch processes, Gazebo, and log output.

start_launch_process(launch_description, ...)

Start a ROS launch description in an isolated child process.

terminate_process(proc, name)

Terminate a running subprocess and its process group.

Attributes