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 毫米),宽度(大板边缘 ~ 小板边缘,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.