diabolo op• Data kinds: table × matrix × matrix × scalar × table → table
• Call: import fullseye as fs; fs.ledger.diabolo_dynamics_step(state: 'dict', sticks_prev, sticks_now, dt: 'float', params: 'dict', *, plane_rule: 'str' = 'paper', rotation: 'str' = 'paper', flying_rule: 'str' = 'paper') -> 'dict' (implementation को सीधे call करना हो तो import diabolo; diabolo.diabolo_dynamics_step(state: 'dict', sticks_prev, sticks_now, dt: 'float', params: 'dict', *, plane_rule: 'str' = 'paper', rotation: 'str' = 'paper', flying_rule: 'str' = 'paper') -> 'dict', registry से लेना हो तो opsdrive.get("diabolo_dynamics_step"))
पेपर के analytic model को 1 step आगे बढ़ाता है (diabolo = point mass + सहायक spheroid + gravity)।
state = {"x", "v", "omega", "mode"} (mode DIABOLO_STATES है)। छड़ियों का जोड़ा = matrix (2, 3)। प्रक्रिया (मूल पाठ के 1–4):
अग्र Euler से x += v dt, v += g dt → नया दीर्घवृत्तज → अवस्था-संक्रमण → धागे पर रहते हुए बाहर निकल जाए तो निकटतम बिंदु पर वापस लाकर, v_pull (विस्थापन/dt का भीतर की ओर normal घटक) को v_origin + v_edge पर सीमित करना (सूत्र 3), तनाव के निकट (अंतराल > l − 5 cm) सतह का नियम (सूत्र 4), बाहर की ओर normal वेग को हटाना (मूल पाठ में स्पष्ट नहीं, सार्वजनिक कार्यान्वयन के अनुरूप किया गया) → घूर्णन (सूत्र 2: ω_t = ω_{t−1} + μ Δ_string, Δ_string = d_R की वृद्धि, μ = μ_acc / μ_dec)। सभी अवमंदन गुणांक 1 हैं (सार्वजनिक कार्यान्वयन का डिफ़ॉल्ट)।
चुनने योग्य रूप (सार्वजनिक कार्यान्वयन से तुलना के लिए): plane_rule = "paper" (सूत्र 4: केवल n_plane = x̂ × (x_L − x_R) की दिशा रखना) / "code" (आगे-पीछे का घटक ही हटाना); rotation = "paper" (सूत्र 2, चरण-आकार से स्वतंत्र टेलीस्कोपिक योग) / "code" (Δω = k (Δd_R/dt − ω r), k = 0.01; चरण आधा करने पर ω 2 गुना हो जाता है); flying_rule = "paper" (चित्र: s > c_F) / "code" (छड़ियों को जोड़ने वाले तल से ऊपर)।
रिटर्न {"x", "v", "omega", "mode", "s", "pulled", "v_pull_raw"}। Raises ValueError: विकल्पों की वर्तनी, अज्ञात mode, dt ≤ 0, state की कुंजी अनुपस्थित, छड़ियों के जोड़े का आकार।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• poc_diabolo_model_and_vision — py -3.11 examples/poc_diabolo_model_and_vision.py
table को input के रूप में लेते हैं)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
diabolo)diabolo_params · diabolo_spheroid · spheroid_closest · diabolo_simulate · diabolo_state_sequence · diabolo_throw_catch_truth · string_tension_static · string_tension_from_sag
*Provenance: diabolo.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.