balltrack op• Data kinds: points → table
• Call: import fullseye as fs; fs.ledger.kalman_ca(z, dt: 'float', *, q: 'float' = 1.0, r: 'float' = 1.0, x0=None, P0: 'float' = 1000.0) -> 'dict' (to call the implementation directly, import balltrack; balltrack.kalman_ca(z, dt: 'float', *, q: 'float' = 1.0, r: 'float' = 1.0, x0=None, P0: 'float' = 1000.0) -> 'dict'; from the registry, opsdrive.get("kalman_ca"))
Kalman filter with a constant-acceleration model (position observations (N, D); state = position, velocity, acceleration × D).
Return value {"x" (N, 3D) 更新後, "x_pred" (N, 3D) 予測, "P" (N, 3D, 3D), "innovation" (N, D)}. q = variance of the change in acceleration (white jerk), r = observation variance. With a true parabola as input (the model is exact), the innovation after convergence → 0, and with r → 0 the updated position = the observation (gate). A NaN observation gets prediction only (missing measurement).
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_air_hockey_intercept — py -3.11 examples/poc_air_hockey_intercept.py
• poc_ball_bounce — py -3.11 examples/poc_ball_bounce.py
table as input)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
balltrack)ball_detect · ball_track · triangulate_dlt · track_triangulate · bounce_detect · marker_direction · spin_from_markers · spin_from_marker_sequence
*Provenance: balltrack.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.