spin_from_markers — DRIVE 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"))

Verwendung

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"}.

Referenzen (Beispieldaten, Literatur)

• 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.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_ball_bounce — py -3.11 examples/poc_ball_bounce.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Gleiche Kategorie (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.