Skip to content

feat(experiment): add single-episode orchestrator - #7

Merged
Staaaaaaaaar merged 1 commit into
mainfrom
feat/single-episode-orchestrator
Aug 17, 2026
Merged

feat(experiment): add single-episode orchestrator#7
Staaaaaaaaar merged 1 commit into
mainfrom
feat/single-episode-orchestrator

Conversation

@Staaaaaaaaar

Copy link
Copy Markdown
Owner

Summary

  • add the rh_experiment ROS 2 package and a ROS-independent single-Episode lifecycle controller
  • load and statically validate an Experiment config, explicitly rejecting multi-Episode configs in the PR 07 scope
  • wait for fresh Env and Agent readiness, then enforce Env reset before Agent reset using bounded steady-time service deadlines
  • publish the authoritative Episode state and support manual/automatic start, operator abort, component failure handling, and one-time termination commit
  • serialize every lifecycle mutation on one control thread and cancel unclaimed control requests that exceed their response deadline
  • perform a bounded safe-stop delivery handshake before publishing FINISHED

Runtime semantics

  • lifecycle: PREPARING -> READY -> RUNNING -> TERMINATING -> FINISHED
  • /roboharness/episode/state has one authoritative publisher
  • component ERROR, stale heartbeat, reset rejection, or reset timeout commits the corresponding infrastructure termination reason
  • manual and automatic execution share the same start transition
  • termination reason is immutable after the first accepted candidate
  • safe stop confirms reliable DDS/RMW delivery of TERMINATING to matched subscriptions; the current wire contract does not provide a stronger component-level semantic acknowledgement

Scope

PointNav task publication, evaluator conditions, result recording, Isaac integration, and multi-Episode iteration remain in later roadmap PRs. PR 08 will insert task publication after Env/Agent reset and before READY.

Validation

  • make dev-check
  • 11 ROS packages built
  • 164 tests passed, 0 errors, 0 failures, 0 skipped
  • ros2 pkg executables rh_experiment reports rh_experiment orchestrator
  • integration coverage includes reset ordering, happy path, illegal start, automatic start, abort, stale status, reset timeout, safe-stop delivery, and one-time termination

@Staaaaaaaaar
Staaaaaaaaar merged commit e2c8884 into main Aug 17, 2026
1 check passed
@Staaaaaaaaar
Staaaaaaaaar deleted the feat/single-episode-orchestrator branch August 17, 2026 08:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant