diabolo op• 데이터 종류: table × matrix × matrix × scalar × table → table
• 호출: import fullseye as fs; fs.ledger.diabolo_dynamics_step(state: 'dict', sticks_prev, sticks_now, dt: 'float', params: 'dict', *, plane_rule: 'str' = 'paper', rotation: 'str' = 'paper', flying_rule: 'str' = 'paper') -> 'dict'(구현을 직접 호출하려면 import diabolo; diabolo.diabolo_dynamics_step(state: 'dict', sticks_prev, sticks_now, dt: 'float', params: 'dict', *, plane_rule: 'str' = 'paper', rotation: 'str' = 'paper', flying_rule: 'str' = 'paper') -> 'dict', 원장에서 가져오려면 opsdrive.get("diabolo_dynamics_step"))
논문의 해석 모형을 1스텝 진행합니다(디아볼로 = 질점 + 보조 회전 타원체 + 중력).
state = {"x", "v", "omega", "mode"}(mode 는 DIABOLO_STATES). 막대 쌍 = matrix (2, 3). 절차(본문의 1–4):
전진 Euler 로 x += v dt, v += g dt → 새 타원체 → 상태 전이 → 실 위에 있고 밖으로 나가면 최근접점으로 되돌리고, v_pull(변위/dt 의안쪽 법선 성분)을 v_origin + v_edge 로 상한 처리(식 3), 팽팽함 근처(간격 > l − 5 cm)에서는 면의 규칙(식 4), 바깥 방향의 법선 속도를지운다(본문은 명기하지 않으며, 공개 구현에 맞췄다)→ 회전(식 2: ω_t = ω_{t−1} + μ Δ_string, Δ_string = d_R 의 증분, μ = μ_acc / μ_dec). 감쇠 계수는 모두 1(공개 구현의 기본값).
선택 가능한 형태(공개 구현과의 비교용): plane_rule = "paper"(식 4: n_plane = x̂ × (x_L − x_R) 의 방향만 남긴다)/ "code"(전후성분만 지운다); rotation = "paper"(식 2, 눈금에 의존하지 않는 망원 합)/ "code"(Δω = k (Δd_R/dt − ω r), k = 0.01. 눈금을 절반으로하면 ω 가 2 배가 된다); flying_rule = "paper"(그림: s > c_F)/ "code"(막대를 잇는 면보다 위).
반환 {"x", "v", "omega", "mode", "s", "pulled", "v_pull_raw"}. Raises ValueError: 선택지의 철자, 모르는 mode, dt ≤ 0, state 키의 누락, 막대 쌍의 형태.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_diabolo_model_and_vision — py -3.11 examples/poc_diabolo_model_and_vision.py
table 를 입력으로 받는 것)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
diabolo)diabolo_params · diabolo_spheroid · spheroid_closest · diabolo_simulate · diabolo_state_sequence · diabolo_throw_catch_truth · string_tension_static · string_tension_from_sag
*Provenance: diabolo.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.