kendama_params — DRIVE kendama op

• Data kinds: कोई नहीं → table (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: 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' (implementation को सीधे call करना हो तो 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', registry से लेना हो तो opsdrive.get("kendama_params"))

उपयोग

kendama की table। default = preset="jka_16_2" (गेंद 60 mm, चौड़ाई 70 mm, कुल लंबाई 180 mm Japan Kendama Association के प्रकाशित मान हैं; ken की ऊँचाई 160 mm और cups 42 / 38 / 35 mm उपयोगकर्ता द्वारा दिए गए JKA 16-2 model के विवरण से हैं (primary source अपुष्ट))। "recommended_large_cup" = बड़ा cup 49 mm, छेद 24 mm।

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

鍵: 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(受ける皿の縁の半径)を出す。けんと皿胴は 1 つの剛体(姿勢は技ごとに固定、手元は並進)。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、中実球)。

संदर्भ (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_kendama — py -3.11 examples/poc_kendama.py

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

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

इसी category के (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 operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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