Contents — find the section you need

Sebuah lintasan bersifat geometris; sebuah trajektori menentukan kapan lintasan tersebut dilalui dan dengan kecepatan, percepatan, dan hentakan (jerk) berapa. Garis tengah lorong tidak memberi tahu troli bermuatan, lengan robot fleksibel, atau manipulator kolaboratif seberapa cepat ia dapat berbelok atau berhenti. Garis poligon bebas tabrakan dari perencana masih dapat menuntut kemudi yang mustahil, menjenuhkan sambungan, memicu getaran, atau menumpahkan muatannya. Pembuatan trajektori menerjemahkan kelayakan geometris menjadi eksekusi yang sadar waktu dan dinamika.

Panduan ini membandingkan profil kecepatan trapesium/segitiga, polinomial kuintik, dan hentakan minimum. Panduan ini juga membahas batasan, keamanan, implementasi, dan batasan ROS 2 dan perencanaan lintasan. Lihat Panduan Perencanaan Jalur, Panduan ROS 2, dan Panduan Visual SLAM.

Kesimpulan Praktis

  • Profil trapesium membuat kecepatan dan percepatan maksimum menjadi jelas. Pergerakan pendek menjadi profil segitiga tanpa segmen jelajah. Langkah percepatan idealnya menyiratkan jerk tak terbatas, yang dapat memicu mekanik dan muatan fleksibel.

  • Polinomial pangkat lima memenuhi kondisi batas posisi, kecepatan, dan percepatan di kedua ujungnya. Titik akhir kecepatan dan percepatan nol membuat posisi melalui percepatan kontinu antar segmen.

  • Jerk minimum meminimalkan \int j(t)^2dt di bawah kondisi titik akhir yang ditentukan; dengan durasi tetap menghasilkan pangkat lima. "Minimum" berlaku untuk tujuan yang dipilih, bukan secara otomatis untuk energi, risiko tabrakan, atau keselamatan.

  • Memantau posisi, kecepatan, percepatan, hentakan, batas, arus, jarak berhenti, kesalahan pelacakan, dan kebaruan peta secara bersamaan. Generator lintasan bukanlah sistem penghenti darurat atau sistem keselamatan tabrakan.

Parameterisasi lintasan berdasarkan waktu

Untuk lintasan spasial p(s) dan kemajuan s\in[0,1] seiring waktu t, lintasannya adalah p(s(t)). Di sini \dot s adalah laju kemajuan:

\dot p=\frac{dp}{ds}\dot s,\qquad \ddot p=\frac{d^2p}{ds^2}\dot s^2+\frac{dp}{ds}\ddot s

Kelengkungan yang tinggi meningkatkan percepatan lateral. Robot bergerak kira-kira mematuhi a_{lat}=v^2\kappa, di mana \kappa adalah kelengkungan, sehingga batas lateral a_{lat,max} memberikan v\le\sqrt{a_{lat,max}/|\kappa|}. Meningkatkan kecepatan tanpa menghaluskan tikungan meminta pelacak untuk melakukan kemudi yang mustahil. Untuk lengan robot, bahkan lintasan ujung efektor yang halus pun dapat menciptakan kecepatan sendi yang tinggi di dekat singularitas kinematik; Batasan tangan, kendaraan, sambungan, dan aktuator harus diperiksa bersama-sama.

Kecepatan trapesium dan segitiga

Untuk jarak D, kecepatan maksimum v_{max}, dan besaran percepatan a_{max}, waktu percepatan adalah t_a=v_{max}/a_{max} dan jarak percepatan/perlambatan saja adalah D_{tri}=v_{max}^2/a_{max}. Batas percepatan adalah a_{max}. Jika D\ge D_{tri}, waktu jelajah adalah

t_c=\frac{D-D_{tri}}{v_{max}}

Jika D<D_{tri}, jelajah hilang dan kecepatan puncak adalah v_p=\sqrt{Da_{max}}. Profil ini transparan dan mudah diterapkan pada penggerak sederhana. Perubahan percepatan sesaatnya tidak bersifat fisik: profil kurva S membatasi hentakan j_{max} dengan meningkatkan percepatan, mengurangi guncangan dan getaran sekaligus memperpanjang pergerakan secara umum.

Diagram 1 · Use the button to switch views
Profil trapesium: posisi, kecepatan, percepatan, dan hentakan

Diagram: Duskcoil, konseptual. Pada trapesium ideal, diskontinuitas percepatan membuat hentakan seperti impuls; ini bukan respons mesin yang terukur.

Polinomial kuintik dan hentakan minimum

Misalkan

p(t)=a_0+a_1t+a_2t^2+a_3t^3+a_4t^4+a_5t^5

Enam kondisi titik akhir—posisi, kecepatan, percepatan pada waktu awal dan T —menentukan enam koefisiennya. Secara singkat, ini adalah p(0),\dot p(0),\ddot p(0),p(T),\dot p(T),\ddot p(T) dan, untuk gerakan diam ke diam, p(0)=0,p(T)=D,\dot p(0)=\dot p(T)=\ddot p(0)=\ddot p(T)=0 . Untuk gerakan diam ke diam melintasi jarak yang dipilih, dengan \tau=t/T ,

p(t)=D(10\tau^3-15\tau^4+6\tau^5)

Solusi jerk minimum

\min_p\int_0^T\left(\frac{d^3p}{dt^3}\right)^2dt

tergantung pada posisi, kecepatan, dan percepatan titik akhir. Kondisi Euler–Lagrange membuat turunan keenam menjadi nol, menghasilkan turunan kelima. Mempersingkat T dengan cepat meningkatkan kecepatan, percepatan, dan jerk yang dibutuhkan, sehingga pemilihan durasi sama pentingnya dengan pemilihan lokasi titik akhir.

Diagram 2 · Use the button to switch views
Perbandingan jerk minimum dan profil trapesium

Diagram: Duskcoil. Perbandingan ini menyangkut kelancaran titik akhir, bukan klaim terukur universal tentang waktu, energi, atau keselamatan.

Implementasi dan koneksi ROS 2

Untuk satu sendi, definisikan pergerakan dari q_0 ke q_f, ambil sampel q_d,\dot q_d,\ddot q_d dari kuadratik dan berikan ke loop posisi/kecepatan/usaha; kecepatan dan percepatan dapat mendukung umpan maju. Interpolasi per sendi saja dapat menggerakkan efektor akhir mendekati rintangan, jadi periksa juga jalur Cartesian, kinematika invers, jangkauan sendi, dan tabrakan diri.

Untuk robot bergerak, haluskan rute dari A* atau RRT, terapkan batas kecepatan yang bergantung pada kelengkungan, pilih hukum waktu trapesium/kurva S/minimum-jerk, dan terjemahkan kecepatan yang dihasilkan v(t) ke kecepatan roda atau kemudi dan percepatan. Jika seseorang muncul dalam peta biaya lokal, mempertahankan kedatangan mulus yang lama kurang penting daripada memperlambat, menghentikan, atau merencanakan ulang. Perencanaan jalur global bukanlah keselamatan lokal.

Di ROS 2, bedakan jalur, lintasan, dan stempel waktu perintah kontrol. Definisikan perilaku untuk lompatan jam, pesan lintasan yang tertunda, pembatalan, penggantian, dan periode kontrol yang terlewat; tolak lintasan yang usang dan hindari diskontinuitas kecepatan pada penggantian. Siklus hidup ROS 2 dan batasan perangkat keras yang dijelaskan dalam ROS 2 Primer membantu mengalokasikan tanggung jawab tersebut, tetapi tidak menjamin keselamatan waktu nyata atau fungsional.

Batasan, keselamatan, dan pemeriksaan

Batasan mencakup |v|\le v_{max}, |a|\le a_{max} dan |j|\le j_{max}, tetapi juga jangkauan sendi, torsi/arus/kapasitas termal, gesekan ban, laju kemudi, muatan, persepsi, latensi komunikasi, dan jarak berhenti. Estimasi sederhana d_{stop}\simeq v^2/(2a_{brake})+v t_{latency} menunjukkan bahwa jarak pengereman meningkat secara kuadratik dengan kecepatan sementara penundaan penginderaan dan komputasi tetap ada. Generator harus diizinkan untuk meninggalkan lintasan ketika kesalahan pelacakan, ketidakpastian posisi, saturasi, deteksi rintangan, atau peta usang melebihi batas.

Masalah Kemungkinan penyebab Monitor Contoh respons
Kesalahan di tikungan ketidaksesuaian kecepatan/kelengkungan kesalahan lateral, saturasi kemudi rute lambat dan halus, batas kelengkungan
Osilasi muatan sentakan tinggi/mode fleksibel IMU, akselerasi, getaran kurva S, waktu lebih lama, hindari resonansi
Lompatan pada perubahan tujuan kecepatan batas diskontinu v,a,j , saat ini sambungan tanpa guncangan dan interpolasi ulang
Tidak dapat berhenti penundaan/pengereman/kesalahan peta kesegaran, jarak berhenti Batas kecepatan dan berhenti aman
Sambungan pada batas Ketidaksesuaian IK/hukum waktu posisi, kecepatan, torsi rencanakan ulang, tolak tujuan, perlambat

Daftar periksa implementasi

  1. Tentukan jalur versus lintasan, bingkai, waktu target, dan periode kontrol.

  2. Tetapkan v,a,j dari aktuator terukur, muatan, dan batas berhenti.

  3. Uji kondisi batas peralihan segitiga/trapesium dan penggantian tujuan.

  4. Periksa turunan maksimum saat mengurangi durasi kuintik.

  5. Buang lintasan lama pada pembaruan peta, lompatan lokalisasi, penyimpangan pelacakan, kehilangan komunikasi, atau deteksi rintangan.

  6. Verifikasi E-stop independen, batas torsi, dan batas perjalanan jika perangkat lunak lintasan gagal.

Periksa pemahaman Anda
Apakah kurva posisi yang mulus menjamin gerakan yang layak?

Pengaturan waktu menentukan kecepatan, percepatan, dan hentakan. Periksa batas-batasnya serta jalur geometrisnya.

Referensi

Related reading

Explore another aspect of this fieldLab MPC — selesaikan ulang urutan kelengkungan dalam horizon dan batas kemudiExplore another aspect of this fieldLab perbandingan pelacakan jalur — jalankan PP, APP, RPP, Stanley, dan MPC dalam kondisi yang sama