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

브라우저에서 경로를 추종하세요

위 브라우저 패널에서 실행을 누르세요. 회색은 기준 경로이고, 파란색은 후륜차축 궤적입니다. 원은 선행거리를, 점은 목표점을, 선분은 휠베이스를 나타냅니다. 재생, 일시정지, 단계 이동 또는 탐색을 통해 조향이 시작되는 지점을 확인하세요. 수치 표와 다운로드 가능한 JSON에는 계산 결과가 담겨 있습니다.

PP: 거리를 고정합니다

PP는 속도가 변해도 선택한 선행거리 Ld를 고정된 상태로 유지합니다. 기준 곡선을 실행하여 A로 저장한 뒤, 짧은 선행거리와 긴 선행거리를 시도해 보세요. 조향과 완료 여부뿐 아니라 추종 오차도 비교하세요.

컨트롤러 선택기는 PP와 APP를 전환합니다. 고정 선행거리는 PP에만, 시간 및 범위는 APP에만 영향을 미칩니다. A로 실행을 저장하고 컨트롤러만 변경하면 경로, 초기 상태, 속도 명령, 차량을 유지할 수 있습니다. 프리셋은 다른 조건도 재설정하므로 표시되는 파라미터 차이를 확인하세요.

목표점 기하학

가장 가까운 경로 투영점에서 시작하여, 후륜차축을 중심으로 한 반지름 Ld 원과 경로가 만나는 첫 번째 전방 호길이 교점을 선택합니다. 차량 좌표계에서의 목표점 (xb, yb)에 대해, 곡률 κ = 2yb / (xb² + yb²)이며, 조향 δ = atan(Lκ)입니다. 왼쪽이 양수입니다.

교점이 없으면 투영점에서 경로 호길이를 따라 Ld만큼 전진하고 종점으로 고정합니다. 표시는 원, 복구, 종점 목표점을 구분하며, 곡률은 항상 실제 제곱 목표 거리를 사용합니다. 차량 뒤쪽에 있거나 완료 전에 차량과 일치하는 목표점은 사유와 함께 실행을 종료합니다. 이러한 복구 및 종점 규칙은 교육적 선택이며 Nav2를 재현한 것이 아닙니다.

공통 모델과 공정한 비교

상태는 후륜차축 (x, y) [m], 반시계 방향 요(yaw) [rad], 전진 속도 v [m/s]입니다. 방정식은 dx/dt=v cos(yaw), dy/dt=v sin(yaw), dyaw/dt=v tan(δ)/L입니다. 초기 횡방향 오프셋은 첫 구간의 왼쪽이 양수이며, 방위각 오프셋은 그 구간을 기준으로 합니다. 경로는 열린 폴리라인으로, 직선, 반지름 20m 및 반지름 5m 사분원, 또는 S자 곡선입니다. 기본 간격은 0.1m(S자 곡선의 경우 x 방향)입니다.

시간 간격은 최대 30초 동안 0.05초입니다. 제한값은 속도 8m/s, 가속도 ±2m/s², 조향 ±0.6rad, 조향 변화율 0.8rad/s입니다. 초기 조향은 0입니다. 각 구간은 이산 조향 슬루 제한을 적용한 뒤 조향을 고정합니다. 일정 곡률 운동은 속도가 0 또는 최대치에 도달할 때까지의 가속 구간과 이후의 정속 구간을 포함하여 정확히 적분됩니다. 두 컨트롤러 모두 a=2(vtarget−v)를 사용합니다. 마찰, 관성, 타이어 슬립, 장애물, 측정 지연은 모델링되지 않습니다.

횡방향 오차는 가장 가까운 구간으로부터의 부호 있는 왼쪽 법선 변위입니다. 방위각 오차는 차량 요에서 투영된 접선을 뺀 값이며 [-π,π)로 래핑됩니다. RMS는 제곱 샘플의 사다리꼴 시간 적분을 경과 시간으로 나눈 값을 사용합니다. 종방향 종점 오버슈트는 CTE에서 제외되지만 유클리드 경로 거리에는 포함됩니다. 조향 변화율 RMS는 0에서 시작하는 초기 전이를 포함하며 이산 명령을 나타냅니다.

완료는 남은 투영 호길이와 종점 거리가 모두 0.25m 이하이며, 방위각이 마지막 구간에서 0.15rad 이내일 때 성립합니다. 이는 정지나 주차가 아니라 샘플링된 종점 통과이며, 샘플 사이의 통과는 놓칠 수 있습니다. 거리가 10m를 초과하면 경로 이탈로 실행이 종료되며, 30초가 시간 제한입니다. 미완료 통과 시간은 "—"로 표시됩니다. 부분 실행과 서로 다른 경과 시간을 오차만으로 순위 매겨서는 안 됩니다. 동일한 속도 정책이라도 완료 시간은 다를 수 있습니다. 이 합성 모델은 하드웨어 안전성이나 고속 성능을 입증하지 않습니다.

재현 가능한 합성 예제

아래 값들은 동일한 코드로 네이티브 Python에서 생성되었습니다. 완만한 곡선은 초기 및 목표 속도 2m/s, 초기 횡방향 오프셋 1m, 방위각 오프셋 0, 휠베이스 2.5m를 사용합니다.

설정 상태 경과 시간 [s] CTE RMS [m]
short controller_failed 1.80 0.72123
nominal completed 15.70 0.25996
long completed 15.50 0.37896

참고 자료 및 관련 연구실

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

Related reading

예측 제어와 제약 조건에 대해 읽습니다제어공학 입문: 모델 예측 제어 — 제약 조건 내에서 작동하기Explore another aspect of this fieldMPC 연구실 — 예측 범위와 조향 한계 내에서 곡률 수열을 다시 풀다Explore another aspect of this field경로 추종 비교 연구실 — 동일한 조건에서 PP, APP, RPP, Stanley, MPC 실행하기