Skip to content

preflight(realism): preregister interaction-conditioned, held-out-by-scene pedestrian-model validation contract before SDD staging #8246

Description

@ll7

Archetype Metadata

archetype: preflight
evidence_tier: idea
linked_policy:
  - docs/maintainer_values.md
  - docs/benchmark_release_protocol.md
  - docs/context/artifact_evidence_vocabulary.md

Parent and dependencies

Goal / Problem

The realism harness (robot_sf/benchmark/pedestrian_realism_validation.py) already computes trajectory RMSE, fundamental-diagram, lane-formation, speed-distribution, and proxemic-distribution families and fails closed to not_available without staged data. What is missing is everything that makes a real-data run a validation study rather than a parameter fit:

  • no interaction-conditioned segmentation (free walking, ped-ped interaction, obstacle avoidance, robot approach, crossing conflict, overtaking, group);
  • no held-out-by-scene split contract (current design would pool frames);
  • no declared baseline hierarchy (constant velocity, vanilla social force, current default, one calibrated variant);
  • no preregistered promotion rule.

Without these, the moment #6530 is unblocked the pilot would produce a pooled average that cannot distinguish "fits free walking" from "reproduces interactions".

Scope

In scope

  • Interaction-conditioned segmenter over a TrackSet: label each frame window by the seven classes above using declared geometric thresholds; emit per-class counts so a scene with too few events is reported, not averaged away.
  • Per-class reporting in the existing scorecard; pooled numbers remain but are labelled secondary.
  • Held-out contract: a small YAML (configs/benchmark/realism_validation_contract.v1.yaml) naming calibration scenes, held-out scenes, baseline arms, metric families, per-class minimum event counts, and the promotion rule: promote a model only if it improves preregistered interaction metrics over vanilla social force on held-out scenes without materially worsening free-walking distributions.
  • Baseline hierarchy wiring for the arms that exist today (constant velocity, social_force_default, and the variants in robot_sf/sim/pedestrian_model_variants.py); ORCA is a planner, not a pedestrian model, and is excluded.
  • Validation on synthetic fixtures only, including a fixture with a known class mix so segmenter recall is checkable.
  • One docs/context note describing the preregistered contract and the exact author packet needed to run it.

Out of scope

Affected files

  • robot_sf/benchmark/pedestrian_realism_validation.py - segmenter and per-class scorecard rows.
  • robot_sf/benchmark/realism_validation_contract.py - new; loads and validates the YAML contract.
  • configs/benchmark/realism_validation_contract.v1.yaml - new.
  • tests/benchmark/test_realism_segmenter.py, tests/benchmark/test_realism_validation_contract.py - new.
  • docs/context/realism_validation_preregistration.md - new.

Worktree

One linked worktree, branch feat/issue-N-realism-validation-preregistration. Owns only the paths above.

Acceptance criteria

Verification

  • uv run pytest tests/benchmark/test_realism_segmenter.py tests/benchmark/test_realism_validation_contract.py tests/benchmark -k realism -q
  • uv run python scripts/dev/check_docs_evidence_integrity.py for the new note.
  • BASE_REF=origin/main scripts/dev/pr_ready_check.sh

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions