lateral op• 데이터 종류: any → table
• 호출: import fullseye as fs; fs.ledger.curvature_speed_plan(s, kappa, *, v_max, a_lat_max: 'float', a_accel: 'float', a_decel: 'float', a_total: 'Optional[float]' = None, v_start: 'Optional[float]' = None, v_end: 'Optional[float]' = None) -> 'Dict[str, np.ndarray]'(구현을 직접 호출하려면 import drivelateral; drivelateral.curvature_speed_plan(s, kappa, *, v_max, a_lat_max: 'float', a_accel: 'float', a_decel: 'float', a_total: 'Optional[float]' = None, v_start: 'Optional[float]' = None, v_end: 'Optional[float]' = None) -> 'Dict[str, np.ndarray]', 원장에서 가져오려면 opsdrive.get("curvature_speed_plan"))
곡률 열로부터 속도 상한을 만들고, 전방·후방 2패스로 가감속 상한을 지키는 속도 계획(고전적 기법).
> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.
s: 弧長(増加、(N,))。kappa: 各点の曲率(符号は問わない)。v_max: 速度の上限(スカラーまたは (N,)、法定速度・徐行の区間など)。上限 v_lim = min(v_max, √(a_lat_max/|κ|))。刻みの間は v² を s に一次(一定の加減速)。a_total(摩擦円の半径、例 μg)を与えると、縦の加減速を √(a_total² − (v²κ_m)²) でも抑える(κ_m = 刻みの両端の |κ| の大きい方、2 次方程式で解くので刻みの中の どこでも √(a_x² + a_y²) ≤ a_total)。a_lat_max ≤ a_total を要求。
返り値: v, v_limit, ax(刻みごとの縦の加速度、(N−1,))、ay_max(刻みの中の横の加速度の最大)、time(到着時刻、v² 一次の厳密な時間)。
Raises ValueError: 形の誤り、s が増加でない、上限が正でない、a_lat_max > a_total、v_start/v_end が上限超え。
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• poc_driving_lateral — py -3.11 examples/poc_driving_lateral.py
table 를 입력으로 받는 것)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
lateral)friction_circle_usage · curve_speed_limit · design_min_radius · understeer_gradient · steady_cornering · bicycle_model_step · ackermann_steer_angles · offtracking_circle
*Provenance: drivelateral.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.