İki şey.
Eğer haritalama yapmayı planlıyorsanız, tam teşekküllü bir Eşzamanlı Lokalizasyon ve Haritalama (SLAM) Algoritmasına ihtiyacınız var. Bakınız: Eşzamanlı Lokalizasyon ve Haritalama (SLAM): Kısım I Temel Algoritmalar . SLAM'da robot durumunu tahmin etmek sorunun sadece yarısı kadardır. Bunun nasıl yapılacağı, burada cevaplanabileceğinden daha büyük bir sorudur.
Yerelleştirme ile ilgili olarak (robotun durumunu tahmin etmek), bu bir Kalman Filtresi için bir iş değildir. Geçiş
için bağlı bir doğrusal fonksiyonu değildir açısal ivme ve hızlar. Bu nedenle, bu görev için doğrusal olmayan tahmin edicileri düşünmeniz gerekir. Evet, bunu yapmanın standart yolları var. Evet, literatürde var. Evet, genellikle tüm girişler aynı filtreye konur. Robotun konumu, hızı, yönü ve açısal hızı çıkış olarak kullanılır. Ve Evet, burada ortak temalarına kısa bir giriş yapacağım. Ana kalkışlarx ( t ) = [ x , y, x˙, y˙, θ , θ˙]x ( t + 1 )
- Gyro ve IMU’nun önyargısını eyaletinize dahil edin, aksi halde tahminleriniz farklılık gösterecektir.
- Bu sorun için bir Genişletilmiş Kalman Filtresi (EKF) yaygın olarak kullanılır.
- Uygulamalar sıfırdan türetilebilir ve genellikle "bakılması" gerekmez.
- Yerelleştirme ve SLAM sorununun çoğu için uygulamalar var, bu yüzden gerekenden daha fazla iş yapmayın. Bakınız: Robot İşletim Sistemi ROS
Şimdi EKF'yi sisteminiz bağlamında açıklamak. Bir IMU + Gyro, GPS ve kilometre sayacımız var. Söz konusu robot, belirtildiği gibi diferansiyel bir tahriktir. Filtreleme görevi, robotunun geçerli poz tahminini,
kontrol girişlerini ve her bir sensörden ölçümlerini almak ve bir sonraki adımda adımında tahmini üretmek içindir.
. IMU ölçümlerini , GPS ve odometri, .x^tutztx^t+1ItGtOt
Robot tahmin etmekle ilgilendiğimizi farz ediyorum
. IMU ve Gyros'taki sorun sürükleniyor. EKF'de hesaba katmanız gereken ivmelerde durağan olmayan bir önyargı var. Bu (genellikle) önyargıyı tahmin edilen duruma getirerek yapılır. Bu, her zaman adımında önyargılı doğrudan tahmin etmenizi sağlar.
, önyargı vektörü için .xt=x,y,x˙,y˙,θ,θ˙xt=x,y,x˙,y˙,θ,θ˙,bb
Varsayıyorum:
- Ot = basamakların seyahat ettiği mesafeyi temsil eden iki küçük mesafe ölçümü
- It = üç yönelim ölçümü ve üç ivme ölçümü .α,β,θx¨,y¨,z¨
- Gt = robotun global karedeki konumu,
.Gxt,Gyt
Tipik olarak, kontrol girişlerinin (her basamak için istenen hızlar) sonucunun çıkışlarla eşleştirilmesi zordur (robotun pozundaki değişiklik). Yerine , o (bkz yaygındır Thrun , Odometri Soru kontrolünün "sonucu" olarak Odometri kullanmak için). Bu varsayım, sürtünmesiz bir yüzeyde olmadığınızda iyi çalışır. IMU ve GPS, göreceğimiz gibi kaymanın düzeltilmesine yardımcı olabilir.u
Dolayısıyla ilk görev bir sonraki durumu geçerli durumdan tahmin etmektir:
. Diferansiyel tahrikli bir robot söz konusu olduğunda, bu öngörü doğrudan literatürden elde edilebilir (bkz . Tekerlekli Mobil Robotların Kinematiği veya herhangi bir modern robotik ders kitabındaki daha kısa süreli tedavi) veya burada gösterildiği gibi sıfırdan elde edilebilir: Kilometre Sayacı Sorusu .x^t+1=f(x^t,ut)
Dolayısıyla şimdi . Bu, yayılma veya tahmin aşamasıdır. Sen edebilirsiniz basitçe çoğaltarak bir robot çalışır. değerleri tamamen doğruysa, hiçbir zaman gerçek durumunuza tam olarak eşit olmayan bir tahminine sahip olmayacaksınız. Bu asla pratikte olmaz.x^t+1=f(x^t,Ot)Otx^
Bu sadece önceki tahminden tahmin edilen bir değer verir ve tahminin doğruluğunun zamanla nasıl azaldığını bize söylemez. Bu yüzden, belirsizliği yaymak için EKF denklemlerini (belirsizliği Gauss gürültüsü varsayımları altında kapalı formda yayan) kullanmalısınız, bir parçacık filtresi (örnekleme tabanlı bir yaklaşım kullanan) belirsizliğin yakınlaştırılması) veya başka bir çok değişkenden biri.
EKF durumunda, aşağıdaki şekilde ilerliyoruz. robot halinin kovaryans matrisi olmasına izin verin .
Lineer bir sistem elde etmek için Taylor serisini genişletme işlevini kullanarak işlevini doğrusallaştırır. Kalman Filtresi kullanılarak doğrusal bir sistem kolayca çözülebilir. Süresi en tahmin kovaryansını varsayalım olan , odometri gürültü kabul kovaryans matrisi olarak verilir
(genellikle bir çapraz matris gibi ) . fonksiyonu durumunda , Jacobian vePtftPtUt2×2.1×I2×2f
Fx=∂f∂xFu=∂f∂u, sonra belirsizliği şu şekilde yaymak:
Pt+1=Fx∗Pt∗FTx+Fu∗Ut∗FTu
Şimdi tahmin ve belirsizliği artırabiliriz. Belirsizliğin zaman içinde monoton olarak artacağını unutmayın. Bu bekleniyor. Bunu düzeltmek için tipik olarak yapılan şey, öngörülen durumu güncellemek için ve kullanmaktır . Sensörler robotun durumunun dolaylı bir ölçümünü sağladığından, buna filtreleme işleminin ölçüm adımı denir.ItGt
İlk olarak, robot durumunun bir kısmını GPS, IMU için bir ve fonksiyonu olarak tahmin etmek için her bir sensörü kullanın . Form kalıntısını veya yenilik öngörülen ve ölçülen değerlerin farktır. Ardından, her sensör için tahminin doğruluğunu, tüm sensörler için bir kovaryans matrisi şeklinde tahmin edin ( bu durumda , ). Son olarak, bir Jacobians bulmak aşağıdaki gibi ve devlet tahminini güncellemek:hg()hi()RRgRih
Devlet tahmini olan her bir sensör için ( wikipedia girişini takip edin )szs
vs=zs−hs(x^t+1)
Ss=Hs∗Pt+1∗HTs+Rs
K=Pt+1∗HTsS−1s
x^t+1=x^t+1−K∗v
Pt+1=(I−K∗Hs)∗Pt+1
GPS durumunda, ölçümü , muhtemelen enlem ve boylamdan robotun yerel çerçevesine bir dönüşümdür, yani Jacobian neredeyse kazanacaktır. çoğu durumda doğrudan GPS ünitesi tarafından rapor edilir.H g R gzg=hg()HgRg
IMU + Gyro durumunda, işlevi , ivmelerin bir entegrasyonu ve bir ek önyargı terimidir. IMU'yu kullanmanın bir yolu, istenen zamanda bir konum ve hız tahmini bulmak için ivmeleri sayısal olarak entegre etmektir. her hızlanma tahmini için küçük bir ek gürültü terimi varsa, konum tahmininin doğruluğunu bulmak için bu gürültüyü birleştirmeniz gerekir. O zaman kovaryansı tüm küçük ek gürültü terimlerinin . Önyargı için güncellemeyi dahil etmek daha zor ve uzmanlık alanım dışında. Ancak, düzlemsel hareketle ilgilendiğiniz için muhtemelen problemi basitleştirebilirsiniz. Bunun için literatüre bakmanız gerekecek.p i R i p izi=hi()piRipi
Bazı kafamda olmayan referanslar:
EKF Tabanlı Görme-Atalet Kilometre Sayacının Doğruluğunu Artırma
Çok Robotlu Kooperatif Lokalizasyonu için Gözlenebilirlik Temelli Tutarlı EKF Tahmin Ediciler
INS-GPS için uyarlanabilir iki kademeli EKF, bilinmeyen hata önyargısına sahip gevşek bağlantılı sistem
Bu alan google’ın (bilgin) muhtemelen size çalışan bir uygulama bulabilmesi için yeterince olgun. Bu alanda çok çalışacaksanız, sağlam bir ders kitabı almanızı öneririm. Belki Google Araba Şöhreti S. Thrun tarafından Probablistic Robotik gibi bir şey . (Gece geç saatlerde yapılan uygulamalar için faydalı bir referans buldum).
* Robot İşletim Sisteminde (ROS) PF tabanlı tahmin ediciler vardır
. Ancak, bunlar iç mekan kullanımı için optimize edilmiştir. Parçacık filtreleri, harita tabanlı yerelleştirmeden kaynaklanabilecek çok modlu PDF'lerle ilgilidir (ben bu kapının veya o kapının yanında mıyım ). Dış mekan uygulamalarının çoğunun (özellikle GPS kullanabilenlerin, en azından aralıklı olarak) Genişletilmiş Kalman Filtresi'ni (EKF) kullandığına inanıyorum . Genişletilmiş Kalman Filtresini, diferansiyel tahrikli dış mekan, topraklama rotoru için başarıyla kullandım.