feat(perception): qualify conservative static occupancy

This commit is contained in:
DCCONSTRUCTIONS
2026-08-26 11:51:56 +03:00
parent 932c5216dc
commit 3c81c39a1c
14 changed files with 1286 additions and 1 deletions
+22
View File
@@ -344,6 +344,28 @@ class RecordedGeometryStore:
points.setflags(write=False)
return points
def point_step_candidates_for_frame(self, frame_index: int) -> UInt8Array | None:
"""Expose the sealed low-step diagnostic in the source point index space.
The array is evidence only: a non-zero value may add conservative
occupied/unknown support, but it never clears a cell or claims free
space. Unavailable and surface-invalid frames remain unavailable.
"""
frame = self.frame_for_index(frame_index)
if frame is None or not frame.surface_valid:
return None
offsets = self._source["cloud_offsets"]
start, end = int(offsets[frame_index]), int(offsets[frame_index + 1])
values = np.asarray(
self._surface["point_step_candidate"][start:end],
dtype=np.uint8,
)
if values.shape != (frame.source_point_count,):
raise GeometryProviderError("local-surface step evidence changed")
values.setflags(write=False)
return values
@property
def maximum_current_point_count(self) -> int:
"""Return the immutable source-pack upper bound for one recorded increment."""