bounce — DRIVE ball op

• 데이터 종류: table × table → table

• 호출: import fullseye as fs; fs.ledger.bounce(v, omega, normal, bp: 'dict', ip: 'dict') -> 'dict'(구현을 직접 호출하려면 import ballistics; ballistics.bounce(v, omega, normal, bp: 'dict', ip: 'dict') -> 'dict', 원장에서 가져오려면 opsdrive.get("bounce"))

사용법

강체 구가 평면에 부딪히는 순간의 속도·각속도 갱신(쿨롱 마찰, Cross 2002 / Garwin 1969의 2개 영역).

접촉점의 미끄럼 속도 s = v_t − r(ω × n)_t. 필요한 접선 역적이 μJ_n 이하이면 미끄럼이 멈추고 구름으로 옮겨 가며(grip), 넘으면 미끄러진 채로(slip, 접선 역적 = μJ_n). 법선은 v_n' = −e v_n(e 는 상수 또는 |v_n| 의 함수). 반환값 {"v", "omega", "regime" ("grip"|"slip"|"none"), "J_n", "J_t", "slip_speed", "e"}. v·n ≥ 0(멀어져 간다)이면 아무것도 하지 않는다(regime "none"). 정리: 접촉점 둘레의 각운동량은 보존된다(contact_angular_momentum).

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

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• gallery_drive_ballistics — py -3.11 examples/gallery_drive_ballistics.py

• poc_ball_bounce — py -3.11 examples/poc_ball_bounce.py

• poc_table_tennis_bounce — py -3.11 examples/poc_table_tennis_bounce.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

같은 카테고리(ball)

ball_params · impact_params · flight_vacuum · flight_ode · flight_simulate · flight_state_at · magnus_lift_coefficient · drag_coefficient_sphere


*Provenance: ballistics.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.