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 를 발생시킨다.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(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.