thrust_fit — DRIVE ball op

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

• 호출: import fullseye as fs; fs.ledger.thrust_fit(t, p, bp: 'dict', *, iters: 'int' = 20, dt: 'float' = 0.001) -> 'dict'(구현을 직접 호출하려면 import ballistics; ballistics.thrust_fit(t, p, bp: 'dict', *, iters: 'int' = 20, dt: 'float' = 0.001) -> 'dict', 원장에서 가져오려면 opsdrive.get("thrust_fit"))

• GPU: 없음(CPU 참조 구현만)

사용법

궤적 (t_i, p_i)에 "중력 + 항력 + 일정한 비추력" 모형을 (p₀, v₀, C_d, a_T) 10개 파라미터로 Levenberg–Marquardt(유한차분 야코비안, C_d ≥ 0은 사영으로 유지)로 맞춥니다. p는 (N, 3) 세계 좌표이거나, 단안 측면 영상에서 일으킨 (N, 2) 평면 (x, z)(이때 y 성분은 관측도 미지수도 없으므로 7개 파라미터, n = 2 × 점 수)입니다. bp는 ball_params의 표(질량·전면적·공기 밀도·g. radius는 전면적을 주기 위해서만 사용: 자동차라면 A = πr²가 전면적이 되는 r을 넘깁니다). 반환값 {"p0", "v0", "cd", "thrust" (3,), "thrust_norm", "rms", "rss", "rss_floor", "n", "k", "dims", "cond", "iters", "t0"}(n은 잔차 개수, k는 움직인 파라미터 수. aic_from_rss의 입력). 추력이 있는 참값 궤적이면 a_T는 1e-5 m/s²로 돌아오고, 추력 0으로 만든 궤적이면 thrust_norm은 1e-5 이하입니다(게이트). rss_floor는 RK4 격자를 표본 시각으로 선형보간하는 오차 ≤ a dt²/8가 잔차에 남길 수 있는 제곱합의 상한입니다. dt는 표본 간격 이하(넘으면 모형이 표본 사이에서 구분선형이 됨), iters ≥ 1, 진공(rho = 0)에서는 C_d를 동정할 수 없으므로 모두 ValueError입니다.

빈 입력(t가 0개 요소)은 ValueError.

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

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

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

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

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

• poc_video_physics_consistency — py -3.11 examples/poc_video_physics_consistency.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.