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.
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.
Request campaign termination and unblock mission waiting.
initialize_experiment(experiment, exp_idx)Extract normalized launch and result settings for an experiment.
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.
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.
Execute configured campaigns with resumable checkpoints.
Request shutdown of every tracked ROS launch process.
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