kendama op• Datenarten: keine → table (ein Operator, der allein durch seine Argumente bestimmt ist — er nimmt kein Bild und keine Daten entgegen)
• Aufruf: import fullseye as fs; fs.ledger.kendama_params(preset: 'str' = 'jka_16_2', *, trick: 'str' = 'ozara', ball_radius: 'float' = None, mass: 'float' = 0.075, string: 'float' = 0.39, cup_radius_big: 'float' = None, cup_depth: 'float' = None, ken_length: 'float' = None, width: 'float' = None, rho: 'float' = 1.2, cd=0.4, cup_offset=None, tie_offset=None, cup_axis=None, g: 'float' = 9.81) -> 'dict' (die Implementierung direkt: import kendama; kendama.kendama_params(preset: 'str' = 'jka_16_2', *, trick: 'str' = 'ozara', ball_radius: 'float' = None, mass: 'float' = 0.075, string: 'float' = 0.39, cup_radius_big: 'float' = None, cup_depth: 'float' = None, ken_length: 'float' = None, width: 'float' = None, rho: 'float' = 1.2, cd=0.4, cup_offset=None, tie_offset=None, cup_axis=None, g: 'float' = 9.81) -> 'dict'; aus dem Register: opsdrive.get("kendama_params"))
Kendama-Tabelle. Standard = preset="jka_16_2" (Kugel 60 mm, Breite 70 mm und Gesamtlänge 180 mm sind veröffentlichte Werte der Japan Kendama Association (JKA); Ken-Höhe 160 mm und Schalen 42 / 38 / 35 mm stammen aus einer vom Nutzer gelieferten Beschreibung des Modells JKA 16-2 (Primärquelle nicht geprüft)). "recommended_large_cup" = große Schale 49 mm, Loch 24 mm.
Schlüssel: ball_radius 0.030, string 0.39 (Faden = empfohlen 38–40 cm), pendulum_length = Faden + Kugelradius (Knoten → Kugelmittelpunkt; das Fadenloch der Kugel wird gegenüber dem großen Loch angenommen), cup_radius_big / cup_radius_base / cup_radius_small (Randradien), cup_depth (Tiefe der großen Schale. Standard = Einsinken der Unterseite einer auf dem Rand liegenden Kugel r_b − √(r_b² − r_c²) + 1.5 mm = eine Tiefe, bei der die Kugel den Boden nicht berührt; eine Annahme), ken_length (Höhe des Ken = Ken-Spitze → Rand der Basisschale, 160 mm), width (Rand der großen Schale bis Rand der kleinen Schale, 70 mm), hole_radius / hole_depth (das große Loch der Kugel. Tiefe = Ken + Kugel − Gesamtlänge = 40 mm), total_length (Gesamtlänge zusammengesetzt = Ken + Kugel − Lochtiefe), cross_radius / ken_radius / spike_length / cross_from_tip (angenommen), mass (Kugel, angenommen 75 g), ken_mass (angenommen 70 g). Der Trick trick (KENDAMA_TRICKS: "ozara" große Schale / "kozara" kleine Schale / "chuzara" Basisschale / Kerze = "rousoku") bestimmt die Haltung:
R_ken (lokale Koordinaten des Ken → Welt: lokal Ken-Spitze +x, große Schale +z, Ursprung = Sarado-Mitte), grip (Haltepunkt, lokal) und die fangende Schale catch_cup ("big" / "small" / "base"). Daraus werden relativ zur Hand (= Haltepunkt) cup_offset (Mitte des Rands der fangenden Schale), cup_axis (Achse der fangenden Schale, Welt), tie_offset (Fadenloch des Sarado: lokal (0, −cross_radius, 0)), top_offset (höchster Punkt des Kendama), cup_radius (Randradius der fangenden Schale) bestimmt. Ken und Sarado sind ein starrer Körper (Haltung je Trick fest, die Hand verschiebt sich). Werden cup_offset / tie_offset / cup_axis übergeben, überschreiben sie die Werte (0 ergibt ein punktförmiges Ken = Drehpunkt = Schale = Hand: das Theorem-Gate). catch_window = 0.003 m: kendama_simulate wertet den Moment als Fang, in dem der Kugelmittelpunkt „bis auf 3 mm an die Auflagehöhe h_c auf dem Rand“ herabkommt (Kugel berührt den Rand = Landung. Bloßes Eintreten in ein Fenster 1.5 r_b über dem Rand zählt nicht: liegt der Scheitel im Fenster, würde am Scheitel „gefangen“ —— gemessen und verworfen). rho/cd = Luftdichte und Widerstandsbeiwert (rho = 0 ist Vakuum: das Theorem-Gate läuft damit).
fail-closed: unbekanntes preset, Maß ≤ 0, Schalenrand ≥ Kugel (kann nicht auf dem Rand gefangen werden = kein Kendama), Breite < Durchmesser der großen Schale, Faden ≤ Kugelradius, Lochtiefe außerhalb von (0, Kugeldurchmesser), Ken-Spitze zu dick für das Loch → ValueError. Der Rückgabewert enthält die abgeleiteten Größen "cup_rest_height" = √(r_b² − r_c²) (Höhe des Mittelpunkts einer auf dem Rand der fangenden Schale liegenden Kugel) und "bp" (ballistics.ball_params, Vollkugel).
• 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.
• gallery_drive_kendama_racket — py -3.11 examples/gallery_drive_kendama_racket.py
• gallery_drive_world_objects — py -3.11 examples/gallery_drive_world_objects.py
• poc_kendama — py -3.11 examples/poc_kendama.py
table als Eingabe)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
kendama)elliptic_k_agm · pendulum_period_exact · pendulum_launch_speed · pendulum_rod_simulate · tether_tension_fixed · tether_slack_angle · swing_up_plan · swing_up_apex
*Provenance: kendama.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.