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

用法

劍玉參數表。預設 = 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 cm)、pendulum_length = 線 + 玉的半徑(結 → 玉的中心, 玉的穿線孔設在大孔的對側)、cup_radius_big / cup_radius_base / cup_radius_small(邊緣半徑)、cup_depth (大皿的深度。預設 = 搭在邊緣上的玉下端的下沉量 r_b − √(r_b² − r_c²) + 1.5 mm = 玉不觸底的深度,此為假定)、ken_length(劍的高度 = 劍尖 → 中皿邊緣,160 mm)、width(大皿邊緣 〜 小皿邊緣,70 mm)、hole_radius / hole_depth(玉的大孔。深度 = 劍 + 玉 − 全長 = 40 mm)、total_length(組裝後的全長 = 劍 + 玉 − 孔深)、cross_radius / ken_radius / spike_length / cross_from_tip(假定)、mass(玉,假定 75 g)、ken_mass(假定 70 g)。招式 trick(KENDAMA_TRICKS: "ozara" 大皿 / "kozara" 小皿 / "chuzara" 中皿 / 蠟燭 = "rousoku")決定姿勢:

R_ken(劍的局部座標 → 世界: 局部為劍尖 +x、大皿 +z、原點 = 皿胴中心)、grip(握持處,局部)、接球的皿 catch_cup("big" / "small" / "base")。由此求出相對於手部(= 握持處)的 cup_offset(接球皿邊緣的中心)、cup_axis (接球皿的軸,世界)、tie_offset(皿胴的穿線孔: 局部 (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 mm 以內」的瞬間視為接球(玉觸及邊緣 = 著地。僅進入邊緣上方 1.5 r_b 的窗口不算接住: 若頂點在窗口內,會在頂點處「接住」 —— 經量測後排除)。rho/cd = 空氣密度、阻力係數(rho = 0 為真空: 定理的閘門以此執行)。

fail-closed: 未知的 preset、尺寸 ≤ 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.