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.
Explore footprint geometry in your browser
Change the rectangular body dimensions, corridor width, heading and lateral offset in the panel above. The diagram and signed gaps describe an exact rectangle between two infinite parallel walls. No ROS or local Python is required. The diagnostic workflow below remains separate from this geometry exercise.
The rectangle centre is the supplied reference point. World x runs along the corridor, world y points across it, and positive heading rotates counterclockwise from +x. Length L lies along body x; width B lies along body y. Walls lie at y=±W/2 and the centre at (0,e). For heading θ, the transverse span is S=L|sin θ|+B|cos θ|. The upper-wall gap is W/2−e−S/2, the lower-wall gap is W/2+e−S/2, and the minimum is W/2−|e|−S/2. Positive means separation; zero means contact; negative means overlap with a wall half-plane. These are signed transverse gaps, not general polygon-distance or costmap outputs. The numerical contact label uses a tolerance of 10⁻¹² m, not an operating margin.
The default 0.60 m width in a 0.80 m corridor gives 0.10 m on each side at zero heading and offset. Try a 30° heading, a 0.10 m offset, a 90° heading, or a wider corridor. Changing heading can move a corner into a wall even when the aligned width fits. A/B uses equal x/y scales and a common extent across both results; the table lists all four transformed corners in metres.
The dashed circle has radius R=√(L²+B²)/2. It bounds all orientations during a full rotation about the fixed rectangle centre. The minimum gap over that full rotation is W/2−|e|−R, calculated analytically rather than from sampled angles. This is not the gap for a particular requested turn, a planned swept path or a kinematically feasible manoeuvre. A 90° pose can fit while intermediate orientations overlap. The rectangle dimensions describe the entire assumed outline; there is no additional footprint padding.
All inputs are synthetic teaching choices. There are no map cells, obstacle observations, inflation costs, localization uncertainty, payload model, TF, planner, controller, velocity commands or actual Nav2 execution. A positive geometric gap does not establish passage feasibility or operating safety. The full-turn circle is an explanatory envelope, not a proposed robot_radius configuration. Nav2's tuning guide distinguishes robot footprint choices from inflation potential fields; the inflation parameters describe costs that this exercise does not compute. References reviewed 2026-09-20.
For supplied map/pose/goal checks, use the separate navigation Lab. Continue below to inspect why a real navigation stack may stop.
Jalur yang terlihat tidak menjamin adanya perintah kecepatan yang layak dari posisi saat ini. Diagnosa perencanaan dan eksekusi secara terpisah. Alur kerja ini ditujukan untuk ROS 2/Nav2 Jazzy dan telah diperiksa terhadap dokumentasi; ini bukan laporan penggerak perangkat keras.
Tangkap satu interval berhenti
Kumpulkan jalur global, peta biaya lokal/global, jejak, TF, odometri, perintah kecepatan, hasil tindakan, dan log. Tumpang tindih data pada waktu dan frame yang konsisten di RViz. Jangan bandingkan data startup dengan snapshot selanjutnya seolah-olah keduanya terjadi secara bersamaan. rosbag2 replay membantu menjaga input tetap.
Periksa geometri fisik
Robot selebar 0,60 m yang berpusat dan sejajar di koridor selebar 0,80 m memiliki jarak bebas 0,10 m di setiap sisinya. Perhitungan statis ini tidak termasuk kesalahan lokalisasi, ketebalan dinding yang dipetakan, muatan, dan sapuan sudut selama rotasi. Lebar yang dibutuhkan untuk persegi panjang berubah dengan orientasi.
Jejak kaki menggambarkan poligon; robot_radius memberikan perkiraan melingkar. Bandingkan garis luar yang dikonfigurasi dengan RViz, periksa meter, asal base_link, dan sensor atau beban yang menonjol. Panduan penyetelan Nav2 mencakup bidang bentuk dan biaya. Jangan memperkecil garis luar di bawah robot sebenarnya hanya untuk menghilangkan stop.
Biaya tidak identik dengan dinding fisik
Lapisan penghalang menggabungkan pengamatan; inflasi menyebarkan biaya yang bergantung pada jarak di sekitar penghalang. inflation_radius menetapkan jangkauannya, sementara cost_scaling_factor mengontrol peluruhan eksponensial. Dengan kondisi lain yang tetap, faktor penskalaan yang lebih besar menghasilkan peluruhan yang lebih cepat. Lihat Parameter Lapisan Inflasi.
Tidak setiap pita berbiaya tinggi merupakan wilayah terlarang absolut, dan inflation_radius saja bukanlah jaminan jarak minimum badan. Perhitungkan pemeriksaan tabrakan, jejak, dan penggunaan biaya setiap perencana/pengontrol. Jika peta global mengizinkan lintasan tetapi peta lokal mempertahankan rintangan lama, selidiki pembersihan, jangkauan pengamatan, dan stempel waktu TF yang valid terlebih dahulu.
Hubungkan jalur ke gerakan yang layak
Jalur menentukan ke mana harus bepergian. Pengontrol harus menghasilkan gerakan yang konsisten dengan kecepatan dan batasan saat ini. Perubahan orientasi besar di ruang sempit, belokan di tempat yang diminta dari kendaraan dengan radius putar minimum, atau batasan percepatan dapat membuat gerakan kandidat tidak layak.
Dokumentasi Controller Server menjelaskan pemilihan pengontrol, pemeriksa kemajuan, dan pemeriksa tujuan. Kemajuan dan kedatangan adalah kondisi yang berbeda. Catat nama plugin dan kesalahan sebelum memeriksa batasan khusus plugin.
Lacak di mana perintah menghilang
| Pengamatan | Pemeriksaan berikutnya |
|---|---|
| Pengontrol tidak dapat menghasilkan perintah yang valid | Peta biaya lokal, TF, batasan gerakan, dan lintasan kandidat |
| Output kontroler bukan nol tetapi output akhir nol | Smoother, monitor tabrakan, input berhenti dan prioritas perintah |
| Output akhir bukan nol tetapi roda tidak bergerak | Topik/tipe, driver, status aktifkan dan mode kontrol |
| Robot bergerak tetapi dengan cepat melaporkan kegagalan | Odometri versus pergerakan aktual dan kondisi kemajuan |
Jangan berasumsi bahwa topik bernama /cmd_vel adalah tahap akhir. Konfigurasi memiliki topik perantara dan mungkin menggunakan Twist atau TwistStamped. Periksa penerbit, pelanggan, dan tipe aktual dengan ros2 topic info <actual-topic> --verbose. Diagnosa kondisi yang memicu penghentian alih-alih menonaktifkan fungsi penghentian.
Evaluasi satu perubahan pada satu waktu
Perbaiki lintasan, posisi awal, tujuan, peta, dan log input. Ubah satu item, lalu bandingkan jarak minimum, jumlah penghentian, perintah, dan alasan kegagalan serta kedatangan. Contoh aritmatika 0,10 m tidak dapat menetapkan jarak operasi yang aman; dimensi nyata, kesalahan, dan kondisi operasi perlu dinilai secara terpisah.
Jika proses startup itu sendiri tidak dapat diandalkan, kembalilah ke pengaturan Nav2 minimal. Konfigurasi yang stabil memudahkan untuk membedakan kegagalan pemetaan dari kegagalan driver.
Komentar
Silakan masuk terlebih dahulu.
Belum ada data.