{
  "schema_version": 1,
  "product": "Robot Ops",
  "classification": "Saved reference-demo output from a simulated TurtleBot3 warehouse mission",
  "disclosure": "Reference simulation data. This is not a customer deployment or a confirmed root-cause finding.",
  "incident": {
    "incident_id": "INC-1778618747",
    "robot_id": "turtlebot3_waffle_pi_sim",
    "window_start_s": 88.99,
    "window_end_s": 191.69,
    "amcl_metrics": {
      "baseline_trace_mean": 0.21309,
      "peak_incident_trace": 1.653695,
      "spike_ratio": 7.76
    },
    "navigation_abort_count": 22,
    "navigation_abort_count_scope": "All entries in the saved nav2_aborts collection; all 22 fall within the saved incident window.",
    "navigation_abort_time_range_s": {
      "first": 104.721838927,
      "last": 186.691801511
    }
  },
  "triage": {
    "confidence": "medium",
    "confidence_label": "Model-reported confidence; not a performance score",
    "hypothesis_excerpt": "The telemetry suggests a sustained AMCL localization degradation event beginning around t=98s, where the pose covariance trace spikes to 7.76\u00d7 baseline (peak 1.65 vs. 0.21) and coincides with a high-frequency cascade of NavigateWithReplanning aborts \u2014 plausibly indicating that the particle filter lost sufficient scan-to-map correspondence, causing the estimated pose to become unreliable.",
    "investigation_steps": [
      "Replay warehouse_mission.mcap and inspect /amcl_pose and /particlecloud topics during both covariance spike windows (t\u224898\u2013104s and t\u2248249\u2013267s) to visualize particle spread and assess whether the filter is diverging or converging to a wrong mode.",
      "Examine the static transform tree (tf2) for the map\u2192odom\u2192base_link chain at the timestamps of the first abort (t\u2248852050838040 ns) to check for any frame discontinuity, timestamp staleness, or misconfigured laser scan origin that could explain the ~0.50 m constant lateral offset."
    ],
    "data_gaps": [
      "Raw /scan and /map topic data are not included \u2014 scan-to-map overlay visualizations at spike timestamps would be critical to distinguish between feature-sparse localization failure, dynamic obstacle interference, and a static map mismatch.",
      "Odometry (/odom) and wheel encoder data are absent, making it impossible to assess whether the ~0.50 m path deviation reflects a true physical offset or a drift artifact introduced by the odometry model during the abort/recovery cycles.",
      "No costmap snapshots or occupancy grid state are available for the abort timestamps, which would help determine whether the planner was failing due to localization uncertainty inflating the costmap or due to genuine path obstruction."
    ],
    "review_status": "Engineer validation required; human approval is not established by these saved artifacts.",
    "data_gaps_context": "These gaps describe the inputs available to the cached triage report. They do not describe the contents of the MCAP or the replay artifacts; the lidar plots were generated separately from scan messages."
  },
  "curation": {
    "annotation_labels": [
      "incident_window",
      "lidar_degradation"
    ],
    "format": "CVAT XML",
    "human_review_verified": false
  },
  "media": {
    "video": "/assets/evidence/robot-ops-reference-replay.mp4",
    "poster": "/assets/evidence/robot-ops-reference-poster.jpg",
    "description": "Accelerated sequence of lidar comparison plots generated from the reference simulation; not camera footage or a UI recording.",
    "playback_speed": 10,
    "start_s": 89.049,
    "end_s": 190.973
  },
  "provenance": {
    "repository": "robot-ops-demo",
    "source_revision": "6282759718f56d81fa8055a42b4f37a0f74388f9",
    "source_files": [
      "data/incident.json",
      "data/incident_report.json",
      "data/cvat_export/annotations.xml",
      "pipeline/frame_extractor.py"
    ],
    "source_sha256": {
      "data/incident.json": "c52ba8ed73b6953af82b2ded20e812b86fd31d218a56175a43a9680c3da3b02f",
      "data/incident_report.json": "1cf55d43b72310eb4ff39ee04575d33216cd4c32284faff8064571980ce17ed5"
    }
  }
}
