kendama op• 数据种类:table → table
• 调用: import fullseye as fs; fs.ledger.kendama_catch_check(kp: 'dict', p_ball, v_ball, cup_center, cup_axis=(0.0, 0.0, 1.0), v_cup=(0.0, 0.0, 0.0), v_rel_max: 'float' = 1.0, window: 'float' = None) -> 'dict'(要直接调用实现,import kendama; kendama.kendama_catch_check(kp: 'dict', p_ball, v_ball, cup_center, cup_axis=(0.0, 0.0, 1.0), v_cup=(0.0, 0.0, 0.0), v_rel_max: 'float' = 1.0, window: 'float' = None) -> 'dict';从台账取用则 opsdrive.get("kendama_catch_check"))
判定球(半径 r_b)能否落在皿上(边缘半径 r_c < r_b,边缘中心 cup_center,轴 cup_axis,速度 v_cup)的几何判定。
搭在边缘上的玉的中心位于边缘平面上方 h_c = √(r_b² − r_c²),静态稳定条件为横向偏移 ≤ r_c。用有效的皿(半径 r_c + r_b,中心沿轴向抬高 h_c)调用 ballistics.cup_catch_check(以皿 > 玉为前提)→ 横向偏移 ≤ r_c、距边缘平面的高度 h_c ≤ h ≤ h_c + 1.5 r_b、相对于皿的速度 ≤ v_rel_max。此外 从下方上升的玉(相对速度的轴向分量 > 0)不接 (皿只能从上方接。在支点 = 皿中心的简化下,上升的玉会穿过皿的位置,因此需要此条件)。传入 window 时,将高度窗口缩小到「最初触及边缘的高度」+ window 以下(着地判定: kendama_simulate 使用 kp["catch_window"])。横向偏移 δ 的玉在 √(r_b² − (r_c − δ)²)(δ = 0 时为 h_c)处触及边缘 —— 偏离中心的玉先触及边缘的一侧, 然后滚入皿中(横向偏移 ≤ r_c 则视为接住)。边缘半径为 kp["cup_radius"] (接球的皿,无则为大皿)。返回值 {"caught", "lateral", "height" (縁の面から), "speed" (相対), "descending"}。
空输入(kp 为空的 dict)会引发 ValueError。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• gallery_drive_kendama_racket — py -3.11 examples/gallery_drive_kendama_racket.py
table 作为输入)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
kendama)kendama_params · elliptic_k_agm · pendulum_period_exact · pendulum_launch_speed · pendulum_rod_simulate · tether_tension_fixed · tether_slack_angle · swing_up_plan
*Provenance: kendama.py — DRIVE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.