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 를 발생시킨다.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL 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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.