kendama op• 데이터 종류: 없음 → table(인자만으로 정해지는 연산자 —— 이미지나 데이터 입력을 받지 않습니다)
• 호출: import fullseye as fs; fs.ledger.kendama_params(preset: 'str' = 'jka_16_2', *, trick: 'str' = 'ozara', ball_radius: 'float' = None, mass: 'float' = 0.075, string: 'float' = 0.39, cup_radius_big: 'float' = None, cup_depth: 'float' = None, ken_length: 'float' = None, width: 'float' = None, rho: 'float' = 1.2, cd=0.4, cup_offset=None, tie_offset=None, cup_axis=None, g: 'float' = 9.81) -> 'dict'(구현을 직접 호출하려면 import kendama; kendama.kendama_params(preset: 'str' = 'jka_16_2', *, trick: 'str' = 'ozara', ball_radius: 'float' = None, mass: 'float' = 0.075, string: 'float' = 0.39, cup_radius_big: 'float' = None, cup_depth: 'float' = None, ken_length: 'float' = None, width: 'float' = None, rho: 'float' = 1.2, cd=0.4, cup_offset=None, tie_offset=None, cup_axis=None, g: 'float' = 9.81) -> 'dict', 원장에서 가져오려면 opsdrive.get("kendama_params"))
• GPU: 없음(CPU 참조 구현만)
켄다마 표. 기본값 = preset="jka_16_2"(공 60 mm, 가로폭 70 mm, 전장 180 mm는 일본 켄다마 협회(JKA)의 공표값, 켄의 높이 160 mm와 접시 42 / 38 / 35 mm는 사용자가 제공한 JKA 16-2형 설명(1차 자료 미확인)). "recommended_large_cup" = 큰 접시 49 mm·구멍 24 mm.
키 : "ball_radius"0.030, "string"0.39 (실 = 권장 38-40cm), "pendulum_length" = 실 + 공 반경 (매듭 → 공 중심,
구슬의 실 구멍은 큰 구멍의 반대쪽에 놓습니다),cup_radius_big ''/cup_radius_base '' (큰 접시의 깊이. 기본 = 가장자리에 타는 구슬의 하단의 침몰 작은 접시 가장자리, 70 mm), hole_radius'' / hole_depth''(볼의 큰 구멍. 깊이 = 켄 + 볼 - 전체 길이 = 40 mm), "total_length"(조립의 전체 길이 = 켄 + 볼 - 구멍의 깊이), cross_radius'' / ken_radius'' / spike_length'' / cross_from_tip''(가상), mass''(구슬, 가정 75g) 및 ken_mass''(가상 70g). 기술trick(KENDAMA_TRICKS: "ozara" 플래터 / "kozara" 작은 접시 / "chuzara" 중간 접시 / "촛불" = "rousoku")가 자세를 결정합니다 :
R_ken ''(켄의 국소 좌표 → 세계 : 국소는 켄처 + x · 큰 접시 + z · 원점 = 접시 몸통의 중심), "grip"(있는 곳, 국소),받는 접시 catch_cup("big"/"small"/"base"). 거기에서 수중 (= 가지고있는 곳)에 대한 "cup_offset"(받는 접시의 가장자리의 중심), "cup_axis" (받는 접시 축, 세계), "tie_offset"(접시 몸통의 실 구멍 : 국소 (0, -cross_radius, 0)), "top_offset"(켄타마의 가장 높은 곳), cup_radius(받는 접시의 가장자리 반경)를 낸다. 견과 접시 몸통은 1개의 강체(자세는 기술마다 고정, 수중은 병진). cup_offset'' / tie_offset'' / cup_axis를 건네주면 그 값으로 덮어쓰기(0을 건네주면 점의 켄 = 지점 = 접시 = 수중: 정리의 문). catch_window ''= 0.003 m : :func :kendama_simulate는 구슬의 중심이 "인연을 타는 높이 h_c에서 3mm 이내"로 내려온 순간을 포구로한다(구슬이 가장자리에 닿았다 = 착지. 가장자리에서 1.5 r_b 위의 창에 들어간 것만으로는 잡히지 않는다: 정점이 창 속이라면 정점에서 "잡혀"버린다—— 측정해 물러났다). rho''/cd = 공기 밀도 및 항력 계수 (rho = 0으로 진공 : 정리의 문은 이것으로 달린다).
fail-closed: 알 수 없는 preset, 치수 ≤ 0, 접시의 가장자리 ≥ 공 (가장자리에서 받을 수 없음 = 견옥이 아님), 가로폭 < 대접의 직경, 실 ≤ 공의 반경, 구멍 깊이 (0, 볼 직경) 밖, 구멍 반경 ≥ 볼 반경은 ValueError. 견끝과 구멍의 두께는 비교하지 않는다. 반환값에는 파생량 "cup_rest_height" = √(r_b² - r_c²)(받는 접시의 가장자리를 탄 볼의 중심의 높이), "bp"(ballistics.ball_params, 중실구).
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• gallery_drive_kendama_racket — py -3.11 examples/gallery_drive_kendama_racket.py
• gallery_drive_world_objects — py -3.11 examples/gallery_drive_world_objects.py
• 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)elliptic_k_agm · pendulum_period_exact · pendulum_launch_speed · pendulum_rod_simulate · tether_tension_fixed · tether_slack_angle · swing_up_plan · swing_up_apex
*Provenance: kendama.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.