kendama op• Datenarten: table → table
• Aufruf: import fullseye as fs; fs.ledger.catch_success_rate(kp: 'dict', *, n: 'int' = 20, seed: 'int' = 0, noise_pos: 'float' = 0.0, noise_vel: 'float' = 0.0, jitter_pos: 'float' = 0.01, jitter_vel: 'float' = 0.05, lift: 'float' = None, T_lift: 'float' = 0.15, kind: 'str' = 'bang', t_end: 'float' = 1.5, dt: 'float' = 0.001, v_max: 'float' = 2.0, a_max: 'float' = 20.0, v_rel_max: 'float' = 1.0, v_target: 'float' = 0.5, origin=(0.0, 0.0, 0.0), perceiver_factory=None, dodge=(0.0, -0.1, 0.0), clearance: 'bool' = True, keep_runs: 'bool' = False, planner: 'str' = 'staged', contact=None, absorb: 'bool' = True) -> 'dict' (die Implementierung direkt: import kendama; kendama.catch_success_rate(kp: 'dict', *, n: 'int' = 20, seed: 'int' = 0, noise_pos: 'float' = 0.0, noise_vel: 'float' = 0.0, jitter_pos: 'float' = 0.01, jitter_vel: 'float' = 0.05, lift: 'float' = None, T_lift: 'float' = 0.15, kind: 'str' = 'bang', t_end: 'float' = 1.5, dt: 'float' = 0.001, v_max: 'float' = 2.0, a_max: 'float' = 20.0, v_rel_max: 'float' = 1.0, v_target: 'float' = 0.5, origin=(0.0, 0.0, 0.0), perceiver_factory=None, dodge=(0.0, -0.1, 0.0), clearance: 'bool' = True, keep_runs: 'bool' = False, planner: 'str' = 'staged', contact=None, absorb: 'bool' = True) -> 'dict'; aus dem Register: opsdrive.get("catch_success_rate"))
Erfolgsrate auf der großen Schale: streut den Anfangszustand n-mal (die Kugel hängt L unter dem Aufhängepunkt (Schnurloch des Querstücks), mit Gaußschen Störungen σ = jitter_pos seitlich und σ = jitter_vel auf der Geschwindigkeit (Tangentialkomponente)), schwingt mit swing_up_plan hoch (Startpunkt der Hand origin) und führt die Schale mit catch_plan_ballistic.
Plan: planner="staged" (Standard, catch_plan_staged: hold → carry → absorb; mit absorb=False kein Absenken bei der Landung) oder "plane" (catch_plan_ballistic, mit clearance). lift Standard None = swing_up_lift (je Trick liegt der Scheitel h_c + 0.9 r_b über dem Teller). Wird contact(hand, p) → 隙間 übergeben, scheitern Versuche, bei denen das Kendama berührt wird, mit "hit_ken".
Wahrnehmung: Standard ist noisy_perceiver (noise_pos [m], noise_vel [m/s]; bei 0 Wahrheitswert). Wird perceiver_factory(i) → perceive übergeben, wird dieses verwendet (neue Wahrnehmung je Versuch i: geschlossener Regelkreis, der mit kendamaworld.camera_perceiver nur aus Bildern vorhersagt). Die Streuung des Anfangszustands hängt nicht von der Wahrnehmung ab, sondern vom seed (bei gleichem seed bilden Versuche mit Wahrheitswert und mit Bildern Paare). Rückgabe {"rate", "n", "caught_list", "mean_lateral", "catch_times", "end_reasons", "laterals", "starts"} (mean_lateral = Mittelwert des seitlichen Versatzes beim Fangen über die erfolgreichen Versuche, sonst nan. starts = (p0, v0) jedes Versuchs). dodge / clearance gehen an swing_up_plan / catch_plan_ballistic (Standard = die Hand weicht 10 cm zur Seite des Schnurlochs (−y) aus, und der Teller wird erst zurückgeführt, wenn die Kugel über den Rand des großen Tellers steigt:
eine Haltung, bei der die Kugel nicht durch das Kendama hindurchgeht. Ohne Ausweichen (0, 0, 0) und mit False ging die Kugel in allen 20 Versuchen durch den Tellerkörper — gemessen und verworfen. Bei Ausweichen nach +y kommt der Ken aus Sicht von Kamera 2 vor die Kugel und verdeckt sie, und der seitliche Versatz der Bildvorhersage stieg von 0.14 auf 2.8 mm). Mit keep_runs=True werden die Rückgabewerte von kendama_simulate und die Wahrnehmungen jedes Versuchs in "runs" / "perceivers" behalten. n ≤ 0 löst ValueError aus.
Leere Eingabe (kp ist ein leeres dict) löst ValueError aus.
• 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_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)kendama_params · elliptic_k_agm · pendulum_period_exact · pendulum_launch_speed · pendulum_rod_simulate · tether_tension_fixed · tether_slack_angle · swing_up_plan
*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.