braidpath op• 데이터 종류: any → table
• 호출: import fullseye as fs; fs.ledger.braid_from_trajectories(trajectories, obstacles=None, angle=0.1, jitter='auto')(구현을 직접 호출하려면 import braidpath; braidpath.braid_from_trajectories(trajectories, obstacles=None, angle=0.1, jitter='auto'), 원장에서 가져오려면 opsdrive.get("braid_from_trajectories"))
• GPU: 없음(CPU 참조 구현만)
평면 궤적들(과 움직이지 않는 장애물 점)로부터 브레이드 단어(교차 부호의 열)를 만든다.
각 스텝 사이에서는 직선으로 움직인다고 보고, 사영 축 x' = x cos θ + y sin θ 위에서 이웃한 두 가닥의 순서가 바뀌는 시각을닫힌 형태로 구하고(상대 운동도 직선이므로 영점은 많아야 1 개), 시각 순으로 문자로 만든다. 왼쪽 가닥이 아래(y' 가 작은 쪽)를지나 오른쪽으로 나가면 +i(반시계 방향 반회전), 위를 지나면 −i.
★사영의 삼중점: 격자의 대칭적인 움직임(2 대가 장애물 점을 사이에 두고 점대칭으로 움직이는 등)에서는 3 가닥이 일직선을 유지한 채 돌아, 어느 각도에서도 3 개의 교차가 동시에 일어난다. jitter="auto" 는 그때만 가닥마다 일정한 작은 어긋남(최소 거리 × JITTER_FRACTION, 방향은 황금각)을 더해 다시 구한다. 어긋남은 최소 거리보다 훨씬 작으므로 브레이드는바뀌지 않는다(게이트로 확인).
trajectories : numpy 의 (K, T, 2) = [x, y], 또는 list 형태의 격자 경로(각 대의 (row, col) 열) / 계획기의 dict(paths).
obstacles : (M, 2) 의 점, 선택. 구멍을 1 점으로 대표시킨다(구멍 안의 점이면 어느 것이든 류는 바뀌지 않는다).
angle : 사영 축의 각도 [rad]. 류의 판정(homotopy_class_compare)은 각도에 의존하지 않지만, 단어 자체는 바뀐다.
jitter : "auto" 또는 어긋남의 크기(0 = 어긋나게 하지 않음, 상한은 최소 거리의 1 %).
dict: word (int 의 1-D 배열), n_strands, n_agents, start_order / end_order(위치 순의 가닥 번호), times(각 문자의 시각, 스텝 단위), angle, jitter(사용한 어긋남), clearance(가닥 사이의 최소 거리).
ValueError: 두 가닥이 같은 점에 온다(충돌에는 브레이드가 없다), jitter=0 에서 삼중점(TriplePointError), 형태가 다름, NaN.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_braid_homotopy_classes — py -3.11 examples/poc_braid_homotopy_classes.py
table 를 입력으로 받는 것)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
braidpath)braid_reduce · braid_artin_images · dynnikov_coordinates · dynnikov_act · braid_equivalent · homotopy_class_compare · pairwise_winding · homotopy_shortest_paths
*Provenance: braidpath.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.