s6.vision.output_pose_gateΒΆ

Temporal gating and smoothing for exported T1 output poses.

class s6.vision.output_pose_gate.OutputPoseSnapshot(translation_mm: Vector3D, rotation: Quaternion, timestamp: float)

Bases: object

One accepted or emitted output-pose sample.

translation_mm: Vector3D
rotation: Quaternion
timestamp: float
clone() OutputPoseSnapshot

Return a detached copy of the snapshot.

class s6.vision.output_pose_gate.OutputPoseState(valid: bool, translation: list[float], rotation: list[float] | None)

Bases: object

Export-oriented view of the gate’s latest output state.

valid: bool
translation: list[float]
rotation: list[float] | None
class s6.vision.output_pose_gate.OutputPoseGate(*, stable_frames_required: int, unstable_frames_to_lost: int, max_drop_frames: int, translation_jump_threshold_mm: float, rotation_jump_threshold_deg: float, smoothing_window: int, rotation_smoothing_window: int)

Bases: object

Stateful pose gate with hysteresis, smoothing, and drop tolerance.

static from_config(config: OutputPoseGateConfig) OutputPoseGate

Instantiate a gate from validated configuration.

last_timestamp: float | None
property accepted_snapshots: list[OutputPoseSnapshot]

Return the accepted smoothing history.

property last_emitted: OutputPoseSnapshot | None

Return the last emitted pose, if any.

property has_valid_output: bool

Return whether the gate currently exposes a valid output pose.

property output_state: OutputPoseState

Return the latest export state derived from the gate state.

reset() None

Reset tracking, history, and counters.

update(timestamp: float | None, translation_mm: Vector3D | None, rotation: Quaternion | None, *, valid: bool = True) OutputPoseSnapshot | None

Process one pose sample and return the emitted export pose.

class s6.vision.output_pose_gate.OutputPoseGateConfig(*, stable_frames_required: ConstrainedIntValue = 3, unstable_frames_to_lost: ConstrainedIntValue = 3, max_drop_frames: ConstrainedIntValue = 2, translation_jump_threshold_mm: ConstrainedFloatValue = 2.0, rotation_jump_threshold_deg: ConstrainedFloatValue = 8.0, smoothing_window: ConstrainedIntValue = 3, rotation_smoothing_window: ConstrainedIntValue = 3)

Bases: BaseModel

Configuration for OutputPoseGate construction.

stable_frames_required: int
unstable_frames_to_lost: int
max_drop_frames: int
translation_jump_threshold_mm: float
rotation_jump_threshold_deg: float
smoothing_window: int
rotation_smoothing_window: int