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

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.

Görünür bir yol, mevcut pozisyondan uygulanabilir bir hız komutunun var olduğunu garanti etmez. Planlama ve yürütmeyi ayrı ayrı teşhis edin. Bu iş akışı ROS 2/Nav2 Jazzy'yi hedeflemektedir ve dokümantasyona göre kontrol edilmiştir; donanım sürüş raporu değildir.

Durdurulan bir aralığı yakalayın

Küresel yolu, yerel/küresel maliyet haritalarını, ayak izini, TF'yi, odometriyi, hız komutlarını, eylem sonucunu ve günlükleri toplayın. Verileri RViz'de tutarlı zamanlarda ve karelerde üst üste bindirin. Başlangıç verilerini daha sonraki bir anlık görüntüyle eş zamanlıymış gibi karşılaştırmayın. rosbag2 tekrar oynatma girdileri sabit tutmaya yardımcı olur.

Diagram 1 · Use the button to switch views
Nav2 durdurmasının teşhisi için dört aşama.

Fiziksel geometriyi kontrol edin

0,60 m genişliğinde, 0,80 m'lik bir koridorda ortalanmış ve hizalanmış bir robotun her iki tarafında 0,10 m boşluk vardır. Bu statik hesaplama, yerelleştirme hatasını, haritalanmış duvar kalınlığını, yükü ve dönüş sırasındaki köşe taramasını hariç tutar. Bir dikdörtgenin gerekli genişliği yönelimle değişir.

Bir ayak izi bir çokgeni tanımlar; robot_radius dairesel bir yaklaşım sağlar. Yapılandırılmış ana hatı RViz ile karşılaştırın, metreleri, base_link orijinini ve çıkıntılı sensörleri veya yükleri kontrol edin. Nav2 ayar kılavuzu şekil ve maliyet alanlarını kapsar. Bir durdurmayı kaldırmak için ana hattı gerçek robotun altına küçültmeyin.

Maliyet fiziksel bir duvarla aynı değildir

Engel katmanları gözlemleri içerir; şişirme, mesafeye bağlı maliyeti engellerin etrafına yayar. inflation_radius kapsamını belirlerken, cost_scaling_factor üstel azalmayı kontrol eder. Diğer koşullar sabitken, daha büyük bir ölçeklendirme faktörü daha hızlı azalma sağlar. Şişirme Katmanı parametrelerine bakın.

Her yüksek maliyetli bant mutlak olarak yasaklanmış bir bölge değildir ve inflation_radius tek başına garantili minimum gövde açıklığı değildir. Çarpışma kontrolünü, ayak izini ve her planlayıcı/kontrolörün maliyet kullanımını hesaba katın. Küresel harita geçişe izin veriyorsa ancak yerel harita eski engelleri koruyorsa, öncelikle temizleme, gözlem aralığı ve geçerli TF zaman damgalarını inceleyin.

Bir yolu uygulanabilir harekete bağlayın

Bir yol, nereye gidileceğini belirtir. Bir kontrolör, mevcut hız ve kısıtlamalarla tutarlı hareket üretmelidir. Dar alanlarda büyük yön değişiklikleri, minimum dönüş yarıçapına sahip bir araçtan istenen yerinde dönüşler veya ivme sınırları, aday hareketleri uygulanamaz hale getirebilir.

Kontrolör Sunucusu dokümantasyonu kontrolör, ilerleme denetleyicisi ve hedef denetleyicisi seçimini açıklar. İlerleme ve varış farklı koşullardır. Eklentiye özgü kısıtlamaları incelemeden önce eklenti adlarını ve hatalarını kaydedin.

Komutun kaybolduğu yeri izleyin

Gözlem Sonraki kontrol
Kontrolör geçerli bir komut üretemiyor Yerel maliyet haritası, TF, hareket sınırları ve aday yörüngeler
Kontrolör çıkışı sıfır değil ancak son çıkış sıfır Daha yumuşak, çarpışma monitörü, durdurma girişi ve komut önceliği
Son çıkış sıfır değil ancak tekerlekler hareket etmiyor Konu/tip, sürücü, etkinleştirme durumu ve kontrol modu
Robot hareket ediyor ancak hızlıca arıza bildiriyor Odometri ile gerçek hareket ve ilerleme koşulları

/cmd_vel adlı bir konunun son aşama olduğunu varsaymayın. Konfigürasyonlar ara konulara sahiptir ve Twist veya TwistStamped kullanabilir. Gerçek yayıncıyı, aboneyi ve tipi ros2 topic info <actual-topic> --verbose ile inceleyin. Durdurma işlevlerini devre dışı bırakmak yerine, durdurmayı tetikleyen koşulu teşhis edin.

Her seferinde bir değişikliği değerlendirin

Geçiş yolunu, başlangıç pozisyonunu, hedefi, haritayı ve giriş günlüğünü düzeltin. Bir öğeyi değiştirin, ardından minimum açıklığı, durdurma sayısını, komutları ve arıza nedenlerini ve varış zamanını karşılaştırın. 0,10 m aritmetik örneği güvenli çalışma açıklığını belirleyemez; gerçek boyutlar, hatalar ve çalışma koşulları ayrı bir değerlendirme gerektirir.

Başlangıç işlemi güvenilir değilse, minimal Nav2 kurulumuna geri dönün. İstikrarlı bir yapılandırma, eşleme hatalarını sürücü hatalarından ayırt etmeyi kolaylaştırır.

Related reading

Record the same stopped interval for controlled comparisons.rosbag2 kullanarak robot arızalarını yeniden üretme: girdiler, TF ve süreExplore another aspect of this fieldICP'nin başarısız olmasının nedenleri: başlatma, aykırı değerler ve simetrik geometriExplore another aspect of this fieldRobot koordinat dönüşümleri: matrisler, kuaterniyonlar ve TF