uncertainty_model — UncertaintyModel

Purpose

Single owner of all injected truth-noise (camera pose, state, actuation force) and the belief
covariance the planner trusts — so the two cannot drift apart. enable=False is a strict no-op.

Role in the system

  • Constructed by the controller; consulted in breve_controller’s coverage marking
    (perturb_camera_pose) and the control loop (force_noise, advance_step).
  • Closes the perception→planning loop: the camera marks coverage from where it actually points.

Inputs / Outputs

  • In: cfg.uncertainty (enable, seed, per-channel std for camera_pose / state / actuation).
  • Out: a perturbed CameraPose, a force-noise column (3×1), and per-step state offsets (p_c, v_c).

Key methods

  • perturb_camera_pose — position offset + Rodrigues axis tilt — GNC/uncertainty_model.py:38
  • force_noise — actuation force-noise draw (3×1) — :48
  • advance_step — one state-noise realization per control step, held for all consumers — :55
  • _rotate_axis — Rodrigues rotation of a unit axis (helper) — :7

Footguns

enable=False is a strict no-op — do not break it

Under enable=False there are zero RNG draws: perturb_camera_pose returns the pose unchanged,
force_noise returns zeros, advance_step returns immediately. Any draw in this state would desync
the RNG and break baseline byte-identity. (GNC/INSIGHTS.md [baseline])

Three sub-enables, each gated on std > 0

A channel is live only if enable=True and its std > 0 (camera_active / state_active /
force_active). Prevents silent zero-noise draws that would still consume the RNG.

One belief draw per step, shared

advance_step draws p_c_offset / v_c_offset once per control step and holds them for every
consumer that step — a single consistent belief, not independent per-consumer draws.

Pseudocode

__init__:   camera_active = enable and (pos_std>0 or angle_std>0)   # likewise state_active, force_active
perturb_camera_pose(pose):  return pose unless camera_active; else p_e += N(0,σ), z_e tilted by N(0,σ)
advance_step():             return unless state_active; else draw p_c_offset, v_c_offset once

Equations & references

  • Belief / uncertainty model (risk extensions): current_sota.

breve_controller · guidance_classes · terminology