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

Tarayıcınızda bir yolu takip edin

Yukarıdaki tarayıcı panelinde Çalıştır'a basın. Gri, referans yoldur; mavi, arka aks yörüngesidir. Daire ileri-bakış mesafesini, nokta hedefi ve segment dingil mesafesini gösterir. Direksiyonun nerede başladığını incelemek için çalıştırmayı oynatın, duraklatın, adım adım ilerletin veya kaydırın. Sayısal tablo ve indirilebilir JSON, hesaplanan sonuçları içerir.

APP: mesafeyi mevcut hızla ölçeklendirin

Bu Laboratuvarda APP, hız-ölçekli ileri-bakış mesafesi anlamına gelir: Ld = clamp(v × T, Lmin, Lmax). Burada v mevcut hızdır, hedef hız değildir; T saniye cinsindendir. Durgun halden ivmelenme, minimum sınırdan geçişi ortaya çıkarır. Bu, RPP'nin eğrilik tabanlı hız düzenlemesini uygulamaz.

Kontrolör seçici PP ve APP arasında geçiş yapar. Sabit ileri-bakış mesafesi yalnızca PP'yi; zaman ve sınırlar yalnızca APP'yi etkiler. Yolu, başlangıç durumunu, hız komutunu ve aracı korumak için bir çalıştırmayı A olarak kaydedin ve yalnızca kontrolörü değiştirin. Ön ayarlar diğer koşulları da sıfırlar, bu yüzden görüntülenen parametre farklarını gözden geçirin.

Hedef geometrisi

En yakın yol izdüşümünden başlayarak, arka aks etrafındaki yarıçap-Ld dairesinin yolla kesiştiği ilk ileri yay uzunluğu noktasını seçin. Araç çerçevesinde hedef (xb, yb) için eğrilik κ = 2 yb / (xb² + yb²), ardından direksiyon δ = atan(L κ). Sol pozitiftir.

Kesişim olmadığında, Ld'yi izdüşümden yol yay uzunluğunca ilerletin ve uç noktaya kırpın. Görüntü, daire, kurtarma ve uç nokta hedeflerini birbirinden ayırır; eğrilik her zaman gerçek karesel hedef mesafesini kullanır. Aracın arkasındaki veya tamamlanmadan önce onunla çakışan bir hedef, çalıştırmayı bir nedenle sonlandırır. Bu kurtarma ve uç nokta kuralları eğitsel tercihlerdir, Nav2 yeniden üretimi değildir.

Ortak model ve adil karşılaştırmalar

Durum, arka aks (x, y) [m], saat yönünün tersine yaw [rad] ve ileri hız v [m/s]'dir. Denklemler dx/dt=v cos(yaw), dy/dt=v sin(yaw), dyaw/dt=v tan(δ)/L'dir. Başlangıç yanal ofseti ilk segmentin solunda pozitiftir; yönelim ofseti bu segmente görecelidir. Yollar açık çoklu çizgilerdir: düz, yarıçap-20 m ve yarıçap-5 m çeyrek daireler veya bir S eğrisi. Varsayılan aralık 0,1 m'dir (S eğrisi için x yönünde).

Zaman adımı, en fazla 30 saniye boyunca 0,05 s'dir. Sınırlar 8 m/s hız, ±2 m/s² ivme, ±0,6 rad direksiyon, 0,8 rad/s direksiyon değişimidir. Başlangıç direksiyonu sıfırdır. Her aralık, ayrık bir direksiyon değişim hızı sınırı uygular, ardından direksiyonu sabit tutar. Sabit-eğrilikli hareket, sıfır/maksimum hıza kadar ivmelenme ve sonrasında sabit hız dahil olmak üzere tam olarak entegre edilir. Her iki kontrolör de a=2(vtarget−v) kullanır. Sürtünme, atalet, lastik kayması, engel veya ölçüm gecikmesi modellenmemiştir.

Çapraz iz hatası, en yakın segmentten işaretli sol-normal yer değiştirmedir. Yönelim hatası, araç yaw'ı eksi izdüşümlü teğet, [-π,π) aralığına sarılmıştır. RMS, kare örneklerin zaman içinde trapezoidal entegrasyonunu geçen süreye böler. Boylamsal uç nokta aşımı, ÇİH'den hariç tutulur ancak Öklid yol mesafesine dahildir. Direksiyon değişim hızı RMS'si, sıfırdan başlangıç geçişini içerir ve ayrık komutları tanımlar.

Tamamlanma, kalan izdüşümlü yay uzunluğu ve uç nokta mesafesinin her ikisinin de ≤0,25 m olması ve yönelimin son segmentin 0,15 rad içinde olmasıdır. Bu, durma veya park etme değil, örneklenmiş uç nokta geçişidir; örnekler arasındaki geçiş kaçırılabilir. 10 m'yi aşan mesafe, çalıştırmayı yol dışı olarak sonlandırır; 30 s zaman sınırıdır. Tamamlanmamış geçiş süresi "—"dir. Kısmi çalıştırmalar ve farklı geçen süreler yalnızca hataya göre sıralanmamalıdır. Eşit hız politikaları yine de farklı tamamlanma süreleri üretebilir. Bu sentetik model, donanım güvenliğini veya yüksek hızlı performansı belirlemez.

Yeniden üretilebilir sentetik örnekler

Bu değerler, aynı koddan native Python tarafından üretildi. Yumuşak eğri, başlangıç ve hedef hız 2 m/s, başlangıç yanal ofseti 1 m, yönelim ofseti sıfır ve dingil mesafesi 2,5 m kullanır.

Ayar Durum Geçen süre [s] ÇİH RMS [m]
short controller_failed 1,80 0,72123
nominal completed 15,70 0,25996
long completed 15,50 0,37896

Referanslar ve ilgili Laboratuvar

Kaynak indirmesi isteğe bağlıdır. Tarayıcıda çalıştırma yerel Python kurulumu gerektirmez. Kaynak + model notları.

Related reading

Öngörülü kontrol ve kısıtlamalar hakkında okuyunKontrol Mühendisliği Temel Bilgileri: Model Tabanlı Öngörücü Kontrol — Kısıtlamalar İçinde Hareket EtmeExplore another aspect of this fieldMPC Laboratuvarı — bir ufuk ve direksiyon sınırları içinde eğrilik dizisini yeniden çözmeExplore another aspect of this fieldYol takibi karşılaştırma Laboratuvarı — PP, APP, RPP, Stanley ve MPC'yi aynı koşullar altında çalıştırın