balltrack op• Datenarten: points × points → table
• Aufruf: import fullseye as fs; fs.ledger.spin_from_markers(dirs0, dirs1, dt: 'float') -> 'dict' (die Implementierung direkt: import balltrack; balltrack.spin_from_markers(dirs0, dirs1, dt: 'float') -> 'dict'; aus dem Register: opsdrive.get("spin_from_markers"))
Winkelgeschwindigkeitsvektor ω [rad/s] aus Paaren von Markierungsrichtungen (vorher (M, 3), nachher (M, 3), Einheitsvektoren).
Bei M ≥ 2 wird die Drehung R per Kabsch (SVD) angepasst und aus Drehwinkel θ und Achse ω = θ/dt·Achse berechnet (mit einem bekannten ω gedrehte Richtungen werden auf 1e-9 zurückgewonnen = Gate). Bei M = 1 wird die minimale Drehung d₀ → d₁ (Achse = d₀ × d₁) zurückgegeben ("full" = False): Die Komponente um die Markerrichtung ist prinzipiell nicht bestimmbar, und bei großem Drehwinkel zwischen Frames versagt sie auch als Näherung der orthogonalen Komponente von ω (der Marker beschreibt einen Kleinkreis um die ω-Achse, der vom Großkreis der minimalen Drehung abweicht). Ehrlich gesagt: Um ω aus einem einzigen Marker zu gewinnen, dt klein wählen (Drehwinkel ≪ 1 rad); selbst dann braucht die Komponente um die Achse einen weiteren Marker. Rückgabewert {"omega", "angle", "axis", "R", "full", "rms"}.
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• poc_ball_bounce — py -3.11 examples/poc_ball_bounce.py
table als Eingabe)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
balltrack)ball_detect · ball_track · kalman_ca · triangulate_dlt · track_triangulate · bounce_detect · marker_direction · spin_from_marker_sequence
*Provenance: balltrack.py — DRIVE Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.