Contents — find the section you need

Bir robotun "1 metre sağa, 2 metre ileri hareket ettiğini" bilmesinin en ilkel yolu, kendi yer değiştirmesini sürekli olarak toplamaktır. Mevcut konumunu tahmin etmek için tekerlek dönüş sayımlarını, motor hızlarını ve IMU açısal hızlarını zaman içinde entegre eder. Bu yönteme ölü hesaplama denir. GPS veya kamera geçici olarak kullanılamadığında bile çalışmaya devam eder, ancak küçük tekerlek kayması veya sensör sapması zamanla büyüyen konum hatasına dönüşür.

RTK GNSS alıcısı kullanan bir ölçüm cihazıMutlak GNSS gözlemi
MPU-6050 ile GY-521 IMU modülüDüşük maliyetli IMU örneği

Görseller: Surveyor RTK Çözümü ile GNSS Alıcısı Kullanımı (SweetCanadianMullet, CC BY 4.0) / GY-521 MPU-6050 modülü (Nevit Dilmen, CC BY-SA 3.0), Wikimedia Commons. Temsili sensörler, zorunlu donanım eşleşmesi değil.

30 Saniyelik Özet

  • Ölü hesaplama, mevcut durumu "önceki durum artı ölçülen yer değiştirme"den tahmin eder. Gözlemler olmadan bile yüksek hızda güncellenebilir.

  • Diferansiyel tahrikli bir robotta, sol ve sağ tekerleklerin yer değiştirmeleri arasındaki fark dönüş açısını belirler ve bunların ortalaması ileri mesafeyi belirler. Tekerlek yarıçapı ve iz genişliğindeki hata sistematik bir eğri olarak ortaya çıkar.

  • Odometri hatası entegrasyon yoluyla birikir. Mutlak bir konum elde etmek, GNSS, LiDAR, kamera veya yansıtıcı işaretleyiciler gibi gözlemlerden düzeltme gerektirir.

  • Bir IMU, kısa vadeli tutum değişikliklerinde güçlüdür, ancak ivme çift entegre edildiğinde konum hızla kayar. Tekerlekleri ve bir IMU'yu bir EKF veya faktör grafiği aracılığıyla birleştirmek yaygın bir yaklaşımdır.

  • Uygulamada, zaman damgaları, koordinat sistemleri, sol/sağ işaret kuralları, tekerlek yarıçapı, kayma tespiti ve kovaryansın tümü baştan doğru şekilde tanımlanmalıdır; bunu yanlış yaparsanız, pahalı sensörler bile sorunu çözemez.

1. Diferansiyel Tahrik Kinematiği

Sol ve sağ tekerlek yarıçaplarını r, tekerlekler arasındaki mesafeyi (iz genişliği) b ve sol/sağ açısal hızları \omega_L,\omega_R olarak kabul edelim. Tekerleklerin doğrusal hızları v_L=r\omega_L ve v_R=r\omega_R olduğundan, araç merkezinin öteleme hızı v ve sapma hızı \dot{\theta} şöyledir:

v=\frac{v_R+v_L}{2},\qquad \dot{\theta}=\frac{v_R-v_L}{b}

k anındaki pozisyonu (x_k,y_k,\theta_k) ve örnekleme periyodunu \Delta t olarak kabul edersek, basit Euler integrasyonu şunu verir:

x_{k+1}=x_k+v\cos\theta_k\Delta t,
y_{k+1}=y_k+v\sin\theta_k\Delta t, \qquad \theta_{k+1}=\theta_k+\dot{\theta}\Delta t

Sabit hızda bir yay çizerken, tam integrasyon (gövde koordinatlarında üstel harita) kullanmak, düşük hızda ve yüksek dönüş hızında bile hatayı küçük tutar.

Diagram 1 · Use the button to switch views
Vehicle centerLeft wheel vLRight wheel vR Tread b vInstantaneous center of rotationIf vR > vL, turns left

Şekil 1 — Diferansiyel tahrikte, sol ve sağ hız arasındaki fark, sapma oranını oluşturur. Bir tekerleğin durması, robotun onun etrafında dönmesine olanak tanır.

2. Odometri Neden Sapar?

Tekerlek yarıçapı %1 hata payı taşıyorsa ve sürüş sırasında sol ve sağın aynı olduğunu varsayarsanız, düz gittiğinizi düşünseniz bile yavaş yavaş dönersiniz. Sol/sağ enkoder çözünürlüğü, dişli boşluğu, zemin düzensizlikleri, lastik aşınması ve yük kaynaklı deformasyonun tümü sistematik hata haline gelir. Bir tekerlek ıslak zeminde veya çakılda kayarsa, ölçülen dönüş ve gerçek yer değiştirme artık eşleşmez.

Yön hatası \delta\theta, yanal konum hatasına neden olur. İleri mesafe s için kısa süreli bir yaklaşım şu sonucu verir:

\delta y\approx s\,\delta\theta

0,5 derecelik açı hatasıyla 1 km sürüş yapıldığında, yanal sapma yaklaşık 8,7 m'ye ulaşır. Konum hatasını basitçe "saniyede şu kadar cm" olarak ifade etmek, düz sürüş, dönüş ve kayma durumlarındaki farklı hata yapılarını yakalayamaz.

Tekerlek odometrisinin kovaryansı, sol/sağ yer değiştirmenin belirsizliğini pozisyona yayar ve buna göre günceller. Uygulamada, kovaryans dönüşler sırasında veya kayma tespit edildiğinde şişirilir, böylece sonraki sensör füzyonu odometriye aşırı güvenmez.

3. IMU Ekleme

IMU'nun jiroskopundan gelen açısal hızı \omega_z entegre etmek şu sonucu verir:

\theta(t)=\theta_0+\int_0^t(\omega_z(\tau)-b_g-n_g)\,d\tau

burada b_g jiroskop sapması ve n_g gürültüdür. Bir tekerleğin kaydığı anda bile, açısal hızdaki kısa süreli değişim ölçülebilir ve bu da tekerleklerin tek başına sağladığından daha düzgün bir konum tahmini sağlar. Hız ve konumu elde etmek için ivmeyi iki kez entegre ederken, sapmadan kaynaklanan hata b_a şu şekilde artar:

\delta p(t)\simeq\frac{1}{2}b_a t^2

bu nedenle tek başına bir IMU, uzun süreli bir konum sensörü olarak hizmet veremez.

Tekerlekleri ve bir IMU'yu birleştirme: tekerlekler düşük frekanslı yer değiştirmeyi, IMU ise yüksek frekanslı açısal hızı ve ivmeyi ele alır. Yuvarlanma/eğim açıları yerçekimi yönünden başlatılır ve manyetometre veya GNSS mevcut olduğunda, mutlak bir sapma referansı da eklenir.

4. EKF veya Faktör Grafiği ile Düzeltme

Örnek bir durum vektörü şöyledir:

\mathbf{x}=[x,y,\theta,v,b_g,b_a]^T

Tahmin adımında, tekerleklerden ve IMU'dan doğrusal olmayan bir hareket modeli f hesaplanır; bir gözlem geldiğinde, artık değer düzeltme için kullanılır.

\mathbf{x}_{k+1}=f(\mathbf{x}_k,\mathbf{u}_k)+\mathbf{w}_k,
\mathbf{z}_k=h(\mathbf{x}_k)+\mathbf{v}_k

Genişletilmiş Kalman Filtresi (EKF), doğrusal olmayan modeli Jacobian aracılığıyla yerel olarak doğrusallaştırır. GNSS konumu, LiDAR tarama eşleştirmesi, kamera özellik noktaları ve bilinen işaretleyici pozisyonları gözlem olarak alınabilir \mathbf{z}. Büyük döngüler veya tekrar ziyaretler için, geçmiş pozisyonlar ve gözlemler bir faktör grafiğinde tutulur ve her şey daha sonra yeniden optimize edilir. ROS 2 için (burada Jazzy standart mesaj tanımlarını varsayarsak), tekerleğin nav_msgs/msg/Odometry, IMU'nun sensor_msgs/msg/Imu ve TF odom → base_link dönüşümü ortak bir zaman tabanı kullanmalıdır. Bu mesaj tipleri, ROS 1 yazımları olan nav_msgs/Odometry ve sensor_msgs/Imu'ya karşılık gelir, ancak ROS 2 uygulama ayrıntıları, QoS ve dağıtım ayarları ayrı olarak kontrol edilmelidir. robot_localization'nin EKF'si uygulama için makul bir başlangıç noktasıdır, ancak kovaryansları sıfırlamak veya aynı bilgiyi iki kez beslemek, tahmini doğal olmayan bir şekilde sertleştirir.

5. Bunun Mevcut Robotlarda Kullanımı

İç mekan otonom mobil robotları (AMR'ler) sürekli olarak tekerlek kodlayıcıları ve bir IMU kullanır ve LiDAR veya kamera harita eşleştirmesi yoluyla sapmayı sıfırlar. Otonom sürüşte, tekerlek hızı, direksiyon açısı, IMU, GNSS ve LiDAR verileri birleştirilerek, GNSS sinyalinin tünelde veya yüksek bir yapının altında kaybolması durumunda bile tahminin saniyelerce hatta onlarca saniye boyunca geçerliliğini koruması sağlanır. Tarım robotlarında, çamur, çukurlar ve eğimler tekerlek kaymasını artırdığı için RTK-GNSS, IMU ve ekipman kuvvet sensörleri birleştirilir.

Sualtı robotları ve uzay araçları uzun mesafeler boyunca GNSS olmadan çalışır. Ölü hesaplamanın kovaryansını kontrol altında tutmak için düşük oranlı mutlak gözlem olarak Doppler hız kaydı (DVL), yıldız izleyici veya arazi eşleştirme eklenir. Önemli olan, tahmini planlama ve kontrole "buna ne kadar güveniyoruz" sorusuyla birlikte iletmektir.

6. Uygulama Kontrol Listesi

  1. Sensör zaman damgalarını ortak bir saate dönüştürün ve gecikmeyi ölçün.

  2. base_link, odom ve map koordinat çerçevelerini ve sağ el kuralına göre işaretlerini çizin.

  3. Gerçek sürüş testleri aracılığıyla tekerlek yarıçapını, iz genişliğini ve kodlayıcı çözünürlüğünü belirleyin.

  4. Düz hat sürüşü, sabit dönüşler, sekiz şekli, tümsekler ve düşük sürtünmeli yüzeyler için hatayı ayrı ayrı değerlendirin.

  5. Kayma veya kesintiler tespit edildiğinde kovaryansı artırın ve mutlak bir gözlem geldiğinde düzeltin.

  6. Aynı girdinin aynı tahmini ürettiğini doğrulamak için kayıtları tekrar oynatın.

Testlerde, sadece uç nokta konum hatasını değil, aynı zamanda tutum hatasını, maksimum hatayı, 95. yüzdelik dilimi ve kesintiler sırasındaki sapma oranını da kaydedin. Genellikle doğru olan ancak bazen çok yanlış olan bir tahmin, güvenli yol planlaması için kullanılamaz.

Özet

Ölü hesaplama, bir robotun hareketini mümkün olan en kısa gecikmeyle tahmin etmenin temel tekniğidir. Tekerlek yer değiştirmesini ve IMU açısal hızını entegre ederek, GNSS, LiDAR veya kameradan gelen mutlak gözlemlerle sapmayı bastırır. Daha fazla sensör eklemeden önce, hareket modelini, zaman damgalarını, koordinat çerçevelerini ve kovaryansı doğru ayarlamak, doğruluğu ve tekrarlanabilirliği belirler.

Anlayışınızı kontrol edin
Hassas tekerlek dönüşü konum hatasını ortadan kaldırır mı?

Kayma ve tekerlek veya montaj geometrisi hataları kalır.

Sensör hassasiyeti ve hareket modeli geçerliliği ayrı konulardır.

Referanslar

Related reading

Explore 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 fieldROS 2'de haritalamadan navigasyona — minimal bir Jazzy ve Nav2 prosedürü