catch_plan_staged — DRIVE kendama op

• 数据种类:table → any

• 调用: import fullseye as fs; fs.ledger.catch_plan_staged(kp: 'dict', *, v_max: 'float' = 2.0, a_max: 'float' = 20.0, g: 'float' = None, margin: 'float' = 0.005, absorb_time: 'float' = None, absorb_depth: 'float' = 0.02)(要直接调用实现,import kendama; kendama.catch_plan_staged(kp: 'dict', *, v_max: 'float' = 2.0, a_max: 'float' = 20.0, g: 'float' = None, margin: 'float' = 0.005, absorb_time: 'float' = None, absorb_depth: 'float' = 0.02);从台账取用则 opsdrive.get("catch_plan_staged"))

用法

显式分阶段的接球控制(大皿、小皿、中皿、蜡烛使用同一计划:皿的朝向取自 kp 中招式的姿态)。返回 plan(t, p, v, cup_state) → dict(kendama_simulate 的 catch_plan)。

分阶段(模仿人的诀窍"用膝盖向正上方提起,绳松弛后将皿水平移到球的正下方,着落时下降以吸收冲击(不去舀,而是等待)"):

0. lift / wait(kendama_simulate 一侧): 在甩起期间和松弛之前不调用计划 = 松弛后才动。

1. hold: 在球下端高出剑玉最高处(手部 + kp["top_offset"],+ margin)之前不移动皿(剑不能推球,所以不让剑靠近正在上升的球。若轨道中球升不到那里,则保持 hold = 不接)。

2. carry: 保持皿当前高度,水平地 将其移到球落在边缘上的点的正下方: 取球中心下落到"皿中心 + h_c·轴"的时刻 τ (z(τ) = 皿高度 + h_c·a_z 的较晚的根 = 过了顶点正在下降)的球 xy 减去 h_c·(a_x, a_y) 得到的点。

3. absorb: 从着落前 absorb_time(默认 √(absorb_depth / a_max) = bang-bang 下降动作的折返时间)开始,将目标下降 absorb_depth: 着落瞬间皿正以最高速度 √(a_max·absorb_depth)(20 m/s²、2 cm 时为 0.63 m/s)向下运动 = 减小相对速度。若 absorb_time 取得过长,皿会在着落前降到底并停下,球相应地落得更深、速度更快(0.06 s 时 4 个技巧都在边缘被弹开 —— 经测量后弃用)。

返回值 {"target" (皿の中心の目標), "stage", "landing" (玉が縁に乗る点の真下の皿の中心), "t_land", "wait" (hold の残り), "feasible", "apex", "travel"}。顶点达不到落在边缘上的高度的轨道以 feasible=False 保持 hold。限制(如实说明): 皿的姿态按技巧固定(不转动手腕去迎球),预测中不计阻力(每次都从感知重新开始)。

空输入(kp 为空 dict)会引发 ValueError。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

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

可运行的示例(实际调用该算子并已验证的样例)

• poc_kendama — py -3.11 examples/poc_kendama.py

类型可衔接的下一个算子(可接受 any 作为输入)

course_crank · course_s_curve · course_turnaround · course_slope · course_intersection · course_parallel_parking · course_crossing · course_road

同类别(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.