kendama op• 데이터 종류: table → table
• 호출: import fullseye as fs; fs.ledger.catch_success_rate(kp: 'dict', *, n: 'int' = 20, seed: 'int' = 0, noise_pos: 'float' = 0.0, noise_vel: 'float' = 0.0, jitter_pos: 'float' = 0.01, jitter_vel: 'float' = 0.05, lift: 'float' = None, T_lift: 'float' = 0.15, kind: 'str' = 'bang', t_end: 'float' = 1.5, dt: 'float' = 0.001, v_max: 'float' = 2.0, a_max: 'float' = 20.0, v_rel_max: 'float' = 1.0, v_target: 'float' = 0.5, origin=(0.0, 0.0, 0.0), perceiver_factory=None, dodge=(0.0, -0.1, 0.0), clearance: 'bool' = True, keep_runs: 'bool' = False, planner: 'str' = 'staged', contact=None, absorb: 'bool' = True) -> 'dict'(구현을 직접 호출하려면 import kendama; kendama.catch_success_rate(kp: 'dict', *, n: 'int' = 20, seed: 'int' = 0, noise_pos: 'float' = 0.0, noise_vel: 'float' = 0.0, jitter_pos: 'float' = 0.01, jitter_vel: 'float' = 0.05, lift: 'float' = None, T_lift: 'float' = 0.15, kind: 'str' = 'bang', t_end: 'float' = 1.5, dt: 'float' = 0.001, v_max: 'float' = 2.0, a_max: 'float' = 20.0, v_rel_max: 'float' = 1.0, v_target: 'float' = 0.5, origin=(0.0, 0.0, 0.0), perceiver_factory=None, dodge=(0.0, -0.1, 0.0), clearance: 'bool' = True, keep_runs: 'bool' = False, planner: 'str' = 'staged', contact=None, absorb: 'bool' = True) -> 'dict', 원장에서 가져오려면 opsdrive.get("catch_success_rate"))
큰 접시의 성공률: 초기 상태를 n회 흩뜨려(공은 지점(사라도의 실 구멍)의 L 아래에 매달고, 옆으로 σ = jitter_pos, 속도에 σ = jitter_vel(접선 성분)의 가우스 흔들림), swing_up_plan(손잡이 출발점 origin)으로 스윙업하고, catch_plan_ballistic으로 접시를 옮깁니다.
계획: planner="staged"(기본값, catch_plan_staged: hold → carry → absorb, absorb=False 이면 착지에서 내리지 않는다) 또는 "plane"(catch_plan_ballistic, clearance 포함). lift 기본값 None = swing_up_lift(기술마다 꼭짓점이 접시의 h_c + 0.9 r_b 위). contact(hand, p) → 隙間 을 넘기면 켄다마에 닿은 시행은 "hit_ken" 으로 실패.
지각: 기본값은 noisy_perceiver(noise_pos [m], noise_vel [m/s]; 0 이면 참값). perceiver_factory(i) → perceive 를넘기면 그것을 사용한다(시행 i 마다 새로운 지각: kendamaworld.camera_perceiver 로 이미지만으로 예측하는 폐루프). 초기 상태의 흔들림은 지각과 관계없이 seed 로 정해진다(같은 seed 이면 참값과 이미지의 시행이 짝이 된다). 반환값 {"rate", "n", "caught_list", "mean_lateral", "catch_times", "end_reasons", "laterals", "starts"} (mean_lateral = 잡은 시행의 포구 시 횡 어긋남의 평균, 없으면 nan. starts = 각 시행의 (p0, v0)). dodge / clearance 는 swing_up_plan / catch_plan_ballistic 으로(기본값 = 손을 실 구멍 쪽(−y)으로 10 cm 피하고, 공이 큰 접시의 가장자리보다 위로 나온 뒤접시를 되돌린다: 공이 켄다마를 관통하지 않는 자세. 피하지 않는 (0, 0, 0)·False 이면 20 시행 모두에서 공이 접시 몸통을 관통했다 —— 측정하여 기각했다. +y 로 피하면 카메라 2 에서 보아 켄이 공의 앞에 와서 공을 가리고, 이미지 예측의 횡 어긋남이 0.14 → 2.8 mm 로 늘었다). keep_runs=True 이면 각 시행의 kendama_simulate 반환값과지각을 "runs" / "perceivers" 에 남긴다. n ≤ 0 은 ValueError.
빈 입력(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
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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.