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)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

state = {"x", "v", "omega", "mode"}(mode は DIABOLO_STATES)。棒の組 = matrix (2, 3)。手順(本文の 1–4):

前進 Euler で x += v dt、v += g dt → 新しい楕円体 → 状態遷移 → 糸に乗っていて外に出たら最近点へ戻し、v_pull(変位/dt の内向き法線成分)を v_origin + v_edge で頭打ち(式 3)、張りつめの近く(間隔 > l − 5 cm)では面の規則(式 4)、外向きの法線速度を消す(本文は明記せず、公開実装に合わせた)→ 回転(式 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.