From c05e79d30cf42806a75da10c6629b706f9f4c866 Mon Sep 17 00:00:00 2001 From: Paul Huliganga Date: Tue, 5 May 2026 16:07:32 -0400 Subject: [PATCH] fix(exp23): invisible barriers + single-instance guard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - generated_road.unity + generated_track.unity: showBarrierMeshes 1→0. Visible barrier meshes would appear in the camera observation and let the policy learn from an artificial visual cue that won't exist at eval time. - exp23: add PID-file guard — aborts immediately if another instance is already running, preventing multiple cars from spawning in the sim. Co-Authored-By: Claude Sonnet 4.6 --- agent/experiments/exp23_generated_road_clean.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/agent/experiments/exp23_generated_road_clean.py b/agent/experiments/exp23_generated_road_clean.py index a2f70c8..c91811d 100644 --- a/agent/experiments/exp23_generated_road_clean.py +++ b/agent/experiments/exp23_generated_road_clean.py @@ -21,6 +21,19 @@ from datetime import datetime sys.path.insert(0, '/home/paulh/projects/donkeycar-rl-autoresearch/agent') +# Abort if another instance of this experiment is already running. +_PIDFILE = '/home/paulh/projects/donkeycar-rl-autoresearch/agent/models/exp23-generated-road-clean/current.pid' +if os.path.exists(_PIDFILE): + try: + _old = int(open(_PIDFILE).read().strip()) + if _old != os.getpid(): + import signal + os.kill(_old, 0) # raises OSError if process is gone + print(f'[exp23] Another instance already running (PID {_old}). Exiting.', flush=True) + sys.exit(1) + except (OSError, ValueError): + pass # stale pid file — safe to continue + import gymnasium as gym import numpy as np from stable_baselines3 import PPO