diabolo_dynamics_step — DRIVE 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, साहित्य)

• 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 में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_diabolo_model_and_vision — py -3.11 examples/poc_diabolo_model_and_vision.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

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

इसी category के (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.