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.
Ikuti jalur di peramban Anda
Tekan Run pada panel peramban di atas. Abu-abu adalah jalur referensi; biru adalah lintasan poros belakang. Lingkaran menunjukkan lookahead, titik adalah target, dan segmen adalah wheelbase. Play, pause, step, atau scrub melalui jalannya untuk memeriksa di mana kemudi dimulai. Tabel numerik dan JSON yang dapat diunduh berisi hasil yang dihitung.
APP: skalakan jarak dengan kecepatan saat ini
APP dalam Lab ini berarti lookahead berskala-kecepatan: Ld = clamp(v × T, Lmin, Lmax). Di sini v adalah kecepatan saat ini, bukan kecepatan target, dan T dalam detik. Akselerasi dari diam mengungkap transisi dari batas minimum. Ini tidak mengimplementasikan regulasi kecepatan berbasis-kurvatur RPP.
Pemilih pengontrol beralih antara PP dan APP. Lookahead tetap hanya memengaruhi PP; waktu dan batas hanya memengaruhi APP. Simpan jalan sebagai A dan ubah hanya pengontrol untuk mempertahankan jalur, state awal, perintah kecepatan, dan kendaraan. Preset juga mengatur ulang kondisi lain, jadi tinjau perbedaan parameter yang ditampilkan.
Geometri target
Dimulai dari proyeksi jalur terdekat, pilih perpotongan panjang-busur maju pertama dari jalur dengan lingkaran radius-Ld di sekitar poros belakang. Untuk target (xb, yb) dalam kerangka kendaraan, kurvatur κ = 2 yb / (xb² + yb²), lalu kemudi δ = atan(L κ). Kiri bernilai positif.
Ketika tidak ada perpotongan, majukan Ld dalam panjang-busur jalur dari proyeksi dan clamp ke titik akhir. Tampilan membedakan target lingkaran, pemulihan, dan titik akhir; kurvatur selalu menggunakan jarak target kuadrat aktual. Target di belakang kendaraan, atau berimpit dengannya sebelum penyelesaian, mengakhiri jalannya dengan suatu alasan. Aturan pemulihan dan titik akhir ini adalah pilihan edukatif, bukan reproduksi Nav2.
Model bersama dan perbandingan yang adil
State adalah poros belakang (x, y) [m], yaw berlawanan arah jarum jam [rad], dan kecepatan maju v [m/s]. Persamaannya adalah dx/dt=v cos(yaw), dy/dt=v sin(yaw), dyaw/dt=v tan(δ)/L. Offset lateral awal positif di kiri segmen pertama; offset heading relatif terhadap segmen tersebut. Jalur adalah polyline terbuka: garis lurus, seperempat lingkaran radius-20 m dan radius-5 m, atau kurva S. Spasi default adalah 0,1 m (dalam x untuk kurva S).
Langkah waktu adalah 0,05 dtk selama paling lama 30 dtk. Batasnya adalah kecepatan 8 m/dtk, akselerasi ±2 m/dtk², kemudi ±0,6 rad, perubahan kemudi 0,8 rad/dtk. Kemudi awal adalah nol. Setiap interval menerapkan batas slew kemudi diskret lalu menahan kemudi tetap. Gerak kurvatur konstan diintegrasikan secara eksak, termasuk akselerasi hingga kecepatan nol/maksimum dan kecepatan konstan setelahnya. Kedua pengontrol menggunakan a=2(vtarget−v). Tidak ada gesekan, inersia, slip ban, rintangan, atau penundaan pengukuran yang dimodelkan.
Cross-track error adalah perpindahan normal-kiri bertanda dari segmen terdekat. Kesalahan heading adalah yaw kendaraan dikurangi tangen terproyeksi, di-wrap ke [-π,π). RMS menggunakan integrasi waktu trapesium dari sampel kuadrat dibagi waktu yang berlalu. Overshoot titik akhir longitudinal dikecualikan dari CTE tetapi disertakan dalam jarak jalur Euclidean. RMS laju-kemudi mencakup transisi awal dari nol dan menjelaskan perintah diskret.
Penyelesaian berarti panjang-busur terproyeksi tersisa dan jarak titik akhir keduanya ≤0,25 m, dengan heading dalam 0,15 rad dari segmen terakhir. Ini adalah lintasan titik akhir yang disampel, bukan berhenti atau parkir; lintasan antar sampel dapat terlewat. Jarak melebihi 10 m mengakhiri jalannya sebagai off-path; 30 dtk adalah batas waktu. Waktu lintasan yang tidak lengkap adalah "—". Jalan yang parsial dan waktu berlalu yang berbeda tidak boleh diperingkat hanya berdasarkan kesalahan. Kebijakan kecepatan yang sama tetap dapat menghasilkan waktu penyelesaian yang berbeda. Model sintetis ini tidak menetapkan keamanan perangkat keras atau kinerja kecepatan tinggi.
Contoh sintetis yang dapat direproduksi
Nilai-nilai ini dihasilkan oleh Python native dari kode yang sama. Kurva landai menggunakan kecepatan awal dan target 2 m/dtk, offset lateral awal 1 m, offset heading nol, dan wheelbase 2,5 m.
| Setting | Status | Elapsed [s] | CTE RMS [m] |
|---|---|---|---|
| short | controller_failed | 1.80 | 0.72123 |
| nominal | completed | 15.70 | 0.25996 |
| long | completed | 15.50 | 0.37896 |
Referensi dan Lab terkait
- Coulter, Implementation of the Pure Pursuit Path Tracking Algorithm (1992): Referensi pursuit geometris.
- Dokumentasi Nav2 Iron RPP: Referensi untuk konvensi APP berskala-kecepatan; Lab ini bukan implementasi Nav2 lengkap.
- Lab PP
- MPC
Unduhan sumber bersifat opsional. Eksekusi peramban tidak memerlukan instalasi Python lokal. Sumber + catatan model.
Komentar
Silakan masuk terlebih dahulu.
Belum ada data.