kendama_params — DRIVE kendama op

• 資料種類:無 → table(僅由參數決定的運算子 —— 不接受影像或資料輸入)

• 呼叫: 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'(要直接呼叫實作,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';從台帳取用則 opsdrive.get("kendama_params"))

• GPU:無(僅 CPU 參考實作)

用法

劍玉參數表。預設 = preset="jka_16_2"(球 60 mm、橫寬 70 mm、全長 180 mm 為日本劍玉協會(JKA)的公開值;劍高 160 mm 與皿 42 / 38 / 35 mm 來自使用者提供的 JKA 16-2 型說明(一手資料未確認))。"recommended_large_cup" = 大皿 49 mm、孔 24 mm。

關鍵:ball_radius 0.030,string 0.39(螺紋 = 建議 38-40 公分),pendulum_length = 螺紋 + 球半徑(結 → 球中心,將球的螺紋孔放在大孔的另一側),cup_radius_big / cup_radius_base / cup_radius_small(邊緣半徑),cup_depth (大板的深度。預設 = 球底邊在邊緣上的下沉 r_b − √(r_b² − r_c²) + 1.5 mm = 球不接觸底部的深度),ken_length(ken 高度 = 尖端 → 中板邊緣,160 毫米),(大板邊緣寬度 ~ 0 毫米小板邊緣,70 毫米小板邊緣,70 毫米小板邊緣,70 毫米小板邊緣,70 毫米)hole_radius / hole_depth(球上的大孔。深度 = Ken + Ball - 總長度 = 40 mm),total_length(組裝總長度 = Ken + Ball - 孔深度),cross_radius / ken_radius / spike_length / cross_from_tip(假設),mass(球,假設 75 g),ken_mass(假設 70 g)。技巧trick(KENDAMA_TRICKS: "ozara" 大盤 / "kozara" 小盤 / "chuzara" 中盤 / "candle" = "rousoku") 決定姿勢: R_ken(ken→世界的局部座標:局部是尖端+x·大板+z·原點=板體中心),grip(握住的地方,局部),接收板 catch_cup(“大”/“小”/“底座”)。從那裡,“cup_offset”(接收板邊緣的中心),“cup_axis”到你的手(=握住的地方)(接收板的軸,世界),tie_offset(板體中的弦孔:local(0,−cross_radius,0)),top_offset(劍玉的最高點),計算“cup_radius”(接收板邊緣的半徑)。劍和身體是一個剛體(每種技能的姿勢是固定的,手是平移的)。如果您傳遞“cup_offset”/“tie_offset”/“cup_axis”,它將被這些值覆蓋(如果您傳遞0,則該點將=支點=板=手:定理之門)。catch_window = 0.003 m:kendama_simulate 認為當球的中心距其停留在邊緣的高度 h_c 3 毫米以內時,球被捕獲。(球接觸邊緣 = 落地。僅進入邊緣上方 1.5 r_b 的窗口將不會捕獲它:如果頂點在窗口內,它將被“捕獲”在頂點處 - 我測量了它並拒絕了它)。rho/cd = 空氣密度/阻力係數(當 rho = 0 時為真空:定理閘以此運轉)。

失敗關閉:未知預設,尺寸 ≤ 0,板邊緣 ≥ 球(邊緣無法接收 = 不是劍玉),寬度 < 板直徑,螺紋 ≤ 球半徑,若孔深度超出(0,球直徑)且孔半徑 ≥ 球半徑,則出現 ValueError。不要比較尖端和孔的厚度。傳回值包括導出量「cup_rest_height」= √(r_b² − r_c²)(接收板邊緣的球中心高度)、「bp」(ballistics.ball_params,實心球)。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• 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 作為輸入)

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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.