Contents — find the section you need

Change parameters and verify

Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.

Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.

The experiment controls are in English.

Open experiment panel in a new tab

Download reproduction source

조절 기능만을 적응형 선행거리와 비교하세요

Tight curve · regulated를 실행하고 결과를 A로 저장하세요. 그런 다음 Adaptive lookahead only를 실행하세요. 곡률 및 접근 감속이 비활성화되는 동안 경로, 초기 자세, 차량, 목표 속도는 동일하게 유지됩니다. 횡방향 오차와 함께 실제 속도와 종점 통과 시간을 확인하세요. 느린 실행을 오차만으로 순위 매겨서는 안 됩니다.

선행거리와 속도 조절은 별도의 제어 그룹입니다. Fixed lookahead + regulation은 적응 기능만 비활성화합니다. No curvature regulation과 No approach slowdown은 각각의 속도 규칙을 분리합니다. Higher regulation floor는 하한이 감소된 후보값을 어떻게 끌어올릴 수 있는지 보여줍니다. 프리셋은 모든 조건을 복원하므로 A/B 파라미터 차이를 확인하세요.

선행거리는 조향을, 조절은 속도를 결정합니다

적응 기능이 켜져 있으면 현재 모델 속도 v를 사용하여 Ld=clamp(vT,Lmin,Lmax)가 됩니다. 꺼져 있으면 Ld는 고정됩니다. PP/APP의 목표점 기하학이 재사용됩니다. 차량 좌표계의 목표점 (xb,yb)에 대해 κ=2yb/(xb²+yb²)이며, 조향 δ=atan(Lκ)입니다. 원 교점이 없으면 투영된 경로를 따라 Ld만큼 전진하고 종점으로 고정하며, 항상 실제 목표 거리를 사용합니다. 완료 전 차량 뒤쪽에 있거나 일치하는 목표점은 사유와 함께 실행을 종료합니다.

속도는 다음 순서로 계산됩니다.

  1. 곡률 조절은 목표 속도에 min(1,R/Rmin)을 곱합니다. 여기서 R=1/|κ|입니다. 곡률이 0이면 목표 속도는 변하지 않습니다.
  2. 그 후보값을 조절 속도 하한까지 끌어올립니다. 이 하한은 감소분을 약화시킬 수 있으며, 안전 한계가 아닙니다.
  3. 남은 경로 길이가 접근 거리 D보다 엄밀히 작아지면, 유클리드 종점 거리/D로 스케일링합니다. 접근 하한을 적용하되, 접근 이전 값보다 속도를 높이지는 않습니다.
  4. [0, 목표 속도] 범위로 고정합니다. 공통 서보 a=2(요청값−실제 속도)와 플랜트 가속 한계가 실제 속도를 결정합니다.

목표 속도=4m/s, κ=0.25/m, Rmin=8m인 경우, 곡률 후보값은 2m/s입니다. 0.25m/s의 조절 속도 하한은 이 값을 그대로 둡니다. 남은 길이=1.5m, 종점 거리=1.5m, D=3m인 경우, 접근 단계는 0.1m/s 접근 하한을 넘어서는 1m/s를 제공합니다. 남은 길이가 정확히 3m일 때는 접근 스케일링이 아직 시작되지 않습니다.

재생 중 속도 단계를 확인하세요

재생, 일시정지, 단계 이동 또는 탐색이 가능합니다. 선택된 시간 표시는 목표값 → 곡률 후보값 → 하한 → 최종 요청값을 실제 속도와 분리하여 보여줍니다. 속도 그래프에서 회색 점선은 목표값, 녹색은 조절된 요청값, 파란색/주황색은 실제값입니다. A는 점선, B는 실선입니다. 경로, 차량 자세, 선행거리 원, 목표점은 오차, 조향, 선행거리 그래프와 함께 표시됩니다. 수치 표와 JSON은 시뮬레이션 데이터로부터 생성됩니다.

세 가지 활성 지속시간 지표는 각각 독립적으로 구간 dt를 합산하며 서로 겹칠 수 있습니다. 곡률 후보값이 목표값보다 낮은 시간에는 하한이 그 후보값을 대체하는 기간도 포함되므로, 이는 실제 차량 감속 지속시간이 아닙니다.

참조 버전과 모델 차이

스칼라 속도 규칙은 고정된 Nav2 Jazzy 커밋 f4108e5b1c2bce804a1aa0c7be6673a8eb4a1501을 따릅니다. 그 연산/순서는 C++ 참조 구현과 대조하여 확인했지만, 이는 Nav2 실행 결과가 아닙니다. Duskcoil은 공유 후륜차축 모델과 전역 최근접 경로 투영을 사용합니다. 남은 길이는 경로 길이에서 투영된 호길이를 뺀 값입니다. Nav2는 변환/축소된 로컬 경로를 입력받으므로, 그 입력값은 다를 수 있습니다. 조절은 액추에이터 제한이 적용되기 전의 요청된 추적 곡률을 사용합니다.

공통 모델은 최대 30초 동안 0.05초 간격을 사용합니다. 제한값은 속도 8m/s, 가속도 ±2m/s², 조향 ±0.6rad, 조향 변화율 0.8rad/s입니다. 운동은 각각 고정된 곡률 호 위에서 적분됩니다. 실제 속도는 요청값에 즉시 도달하지 않습니다. 관성, 타이어 슬립, 장애물/코스트맵 모델, 충돌 예측, 후진, 방향 전환, 별도의 곡률 선행거리는 없습니다. 이는 하드웨어 성능이나 안전성 평가가 아닙니다.

완료는 샘플링된 종점 통과로, 남은 호길이와 종점 거리가 모두 0.25m 이하이고, 최종 접선 방위각으로부터 0.15rad 이내일 때 성립합니다. 이는 정지를 보장하지 않으며, 양의 접근 하한 속도가 주차를 의미하지도 않습니다. 경로 거리가 10m를 초과하면 경로 이탈로 종료되며, 30초가 시간 제한입니다. 미완료 통과 시간은 "—"로 표시됩니다. CTE와 방위각 RMS는 제곱 샘플의 사다리꼴 적분을 경과 시간으로 나눈 값을 사용합니다. 부분 실행이나 서로 다른 지속 시간을 오차만으로 순위 매기지 마십시오.

파라미터 이름은 릴리스에 따라 다릅니다

브라우저 상의 의미 Jazzy Rolling, 2026-09-21 기준 확인
목표 속도 desired_linear_vel max_linear_vel
속도 스케일링 선행거리 use_velocity_scaled_lookahead_dist 동일
선행 시간 lookahead_time 동일
곡률 조절 use_regulated_linear_velocity_scaling 동일
회전 반경 임계값 regulated_linear_scaling_min_radius 동일
조절 하한 regulated_linear_scaling_min_speed 동일
접근 거리 / 하한 approach_velocity_scaling_dist / min_approach_linear_velocity 동일

접근 켜기/끄기 스위치는 교육적 절제(ablation) 요소이며, Jazzy ROS 파라미터가 아닙니다. Rolling의 동적 윈도우 기능은 여기에 구현되어 있지 않습니다. 연구실의 기본값은 교육용 값이며, 권장되는 Nav2 설정이 아닙니다.

동일한 코드로 생성한 예제

아래의 네이티브 Python 결과는 기본 반지름 5m 곡선, 초기 및 목표 속도 4m/s, 횡방향 오프셋 1m, 휠베이스 2.5m를 사용합니다.

설정 상태 경과 시간 [s] CTE RMS [m]
regulated completed 4.10 0.37348
adaptive only completed 1.80 0.52087
no approach completed 3.00 0.43649

참고 자료 및 관련 연구실

브라우저 실행에는 로컬 Python 설치가 필요하지 않습니다. 소스 다운로드는 선택 사항입니다. 소스 및 모델 노트.

Related reading

Explore another aspect of this fieldMPC 연구실 — 예측 범위와 조향 한계 내에서 곡률 수열을 다시 풀다Explore another aspect of this field경로 추종 비교 연구실 — 동일한 조건에서 PP, APP, RPP, Stanley, MPC 실행하기