feat(planning): consolidate recorded-route localization and spatial scene

Preserve the completed teach-and-repeat laboratory stage: reference preparation, cascaded acquisition, local tracking and recovery, recording lifecycle, replay qualification, and persistent Rerun scene controls. Document the open grid-picking regression and Rerun upgrade contract. No autonomous driving or loop-closure optimization is claimed.
This commit is contained in:
DCCONSTRUCTIONS
2026-09-21 08:47:19 +03:00
parent be58d589e2
commit e515ab1b8c
189 changed files with 19074 additions and 758 deletions
+27 -6
View File
@@ -31,7 +31,7 @@ def test_live_ingress_keeps_modalities_separately_bounded_and_ordered() -> None:
received_monotonic_ns=200 + sequence,
payload=f"camera-{sequence}".encode(),
)
for sequence in range(9):
for sequence in range(33):
assert ingress.publish(
modality="lidar",
source_id="lixel/application/report/lio_pcl",
@@ -40,7 +40,7 @@ def test_live_ingress_keeps_modalities_separately_bounded_and_ordered() -> None:
received_monotonic_ns=400 + sequence,
payload=f"lidar-{sequence}".encode(),
)
for sequence in range(20):
for sequence in range(36):
assert ingress.publish(
modality="pose",
source_id="lixel/application/report/lio_pose",
@@ -53,9 +53,9 @@ def test_live_ingress_keeps_modalities_separately_bounded_and_ordered() -> None:
snapshot = ingress.snapshot()
assert snapshot["queues"]["camera-frame"]["depth"] == 2
assert snapshot["queues"]["camera-frame"]["dropped_overflow"] == 3
assert snapshot["queues"]["lidar"]["depth"] == 8
assert snapshot["queues"]["lidar"]["depth"] == 32
assert snapshot["queues"]["lidar"]["dropped_overflow"] == 1
assert snapshot["queues"]["pose"]["depth"] == 16
assert snapshot["queues"]["pose"]["depth"] == 32
assert snapshot["queues"]["pose"]["dropped_overflow"] == 4
events = []
@@ -70,10 +70,10 @@ def test_live_ingress_keeps_modalities_separately_bounded_and_ordered() -> None:
4,
]
assert [event.source_sequence for event in events if event.modality == "lidar"] == list(
range(1, 9)
range(1, 33)
)
assert [event.source_sequence for event in events if event.modality == "pose"] == list(
range(4, 20)
range(4, 36)
)
@@ -105,6 +105,27 @@ def test_live_ingress_wire_is_self_delimiting_and_explicitly_non_authoritative()
assert encoded[4 + header_bytes :] == b"init"
def test_spatial_stop_is_identity_bound_idempotent_and_keeps_capture_active() -> None:
ingress = LivePerceptionIngress()
ingress.open_consumer("planning")
ingress.begin_session("A")
assert not ingress.request_spatial_stop("other", 1)
assert not ingress.request_spatial_stop("A", 2)
assert not ingress.snapshot()["spatial_stop_requested"]
assert ingress.request_spatial_stop("A", 1)
assert ingress.request_spatial_stop("A", 1)
assert ingress.snapshot()["active"]
assert ingress.snapshot()["queues"]["control"]["published"] == 2
assert ingress.publish(modality="pose", source_id="pose", source_sequence=1,
captured_at_epoch_ns=1, received_monotonic_ns=1, payload=b"raw")
ingress.end_session("A")
ingress.begin_session("A") # Same name, new generation cannot inherit STOP.
assert not ingress.request_spatial_stop("A", 1)
assert not ingress.snapshot()["spatial_stop_requested"]
assert ingress.snapshot()["active"]
ingress.close()
def test_live_ingress_rejects_oversize_without_affecting_other_modalities() -> None:
ingress = LivePerceptionIngress()
ingress.begin_session("session-1")