Robot konumlandırma elde etmek için Kalman filtresi ve yol işaretlerini kullanın

Bu makale, orijinal başlığı olan AI Araştırma Enstitüsü tarafından derlenen teknik bir blogdur:

Kalman Filtreleri ve önemli noktalar ile robot yerelleştirmesi

Yazar | Jannik Zürn

Tercüme | Guo Naiqiao, ThomasGui

Düzeltme | Hayal kırıklığı incelemesi | Sos armut terbiye | Ayakta balık kralı

Orijinal bağlantı:

https://medium.com/@jannik.zuern/robot-localization-with-kalman-filters-and-landmarks-cf97fa44e80b

Tanıtmama izin verin - Robby bir robottur. Teknik olarak konuşursak, aşırı basitleştirilmiş bir sanal robot modelidir, ancak bizim amaçlarımız için yeterlidir. Robby, birçok yer işaretine sahip iki boyutlu bir düzlemden oluşan sanal dünyasında kaybolur. Çevresinin bir haritası var (aslında haritaya gerek yok), ancak çevredeki tam yerini bilmiyor.

Robby (büyük kırmızı daire) ve 2 yer işareti (küçük kırmızı daire)

Bu makalenin amacı, robot konumlandırmasını adım adım gerçekleştirmek için yer işareti algılamayı ve genişletilmiş Kalman filtresini kullanmayı öğretmektir.

Bölüm 1-Doğrusal Kalman Filtresi

Kalman filtresi, gürültüyle dolu bir dünyayı algılamanın bir yolu olarak anlaşılabilir. Robotun yerini belirlemek istediğimizde, bu iki koşula bağlıdır: Robotun bir andan diğerine nasıl hareket ettiğini biliyoruz çünkü ona belirli bir şekilde hareket etmesini emrediyoruz. Buna durum geçişi (yani robotun bir durumdan diğerine nasıl aktarıldığı) denir ve robotun ortamını ölçmek için kameralar, lidar veya yankı dedektörleri (Almanca: milimetre dalga radarı) gibi çeşitli sensörler kullanabiliriz. Sorun, her iki tür bilginin de gürültüden etkilenmesidir. Robotun bir durumdan diğerine ne kadar doğru hareket ettiğini tam olarak bilemeyiz, çünkü yürütme bölümleri mükemmel değildir. Ve nesneler arasındaki mesafeyi sonsuz ve doğru bir şekilde ölçemiyoruz. Kalman filtresinin devreye girdiği yer burasıdır.

Kalman filtresi, robotun genel belirsizliğini ideal şekilde azaltmak için mevcut durumun belirsizliğini ve sensör ölçümünün belirsizliğini birleştirmemize olanak tanır. Bu iki tür belirsizlik genellikle Gauss olasılık dağılımı veya normal dağılım ile tanımlanır. Gauss dağılımının 2 parametresi vardır: ortalama ve varyans. Ortalama değer, en yüksek olasılık değerini belirtir ve varyans, bu ortalama değerin ne kadar belirsizliğe sahip olduğunu düşündüğümüzü gösterir.

Kalman filtresi 2 adımda çalışır. Tahmin aşamasında, Kalman filtresi mevcut durum değişkeni değerleri ile tahmin ve belirsizlik üretir. Bir sonraki ölçüm sonucu gözlemlendiğinde (gürültü dahil belirli bir hata olması gerekir), bu tahminler ağırlıklı ortalama bir şekilde güncellenebilir ve daha kesin tahminlere daha yüksek ağırlık verilir. Algoritma özyinelemelidir. Gerçek zamanlı olarak çalışabilir ve yalnızca mevcut ölçüm girdisine ve önceki hesaplamanın durum ve belirsizlik matrisine ihtiyaç duyar; daha fazla geçmiş bilgiye gerek yoktur.

Wikipedia'nın Kalman filtresi hakkındaki bilgi akış şeması çok iyi olduğu için, onu doğrudan burada kullanacağım:

Kalman filtre resmi: https://upload.wikimedia.org/wikipedia/commons/a/a5/Basic_concept_of_Kalman_filtering.svg

Kalman filtresinin matematiksel hesaplamasının ayrıntılarına girmeyeceğim, çünkü birçok akıllı insan bunu zaten yaptı. Daha derin bir açıklama için Tim Babb'ın blogunu tavsiye edebilirim:

Bir Kalman filtresi nasıl çalışır, resimlerde size Kalman filtresinden bahsetmek zorundayım çünkü yaptığı şey oldukça şaşırtıcı. Şaşırtıcı derecede az sayıda yazılım ...

Bölüm 2-Genişletilmiş Kalman Filtresi

Genişletilmiş Kalman filtresi (adından da anlaşılacağı gibi) "standart" Kalman filtresinin bir uzantısıdır. Önceki bölümde size örtük bir varsayım söylemedim: Kalman filtrelerini kullanırken durum geçişleri ve ölçümler doğrusal modeller olmalıdır. Matematiksel bir bakış açısından, bu, robot durumlarını ve robot ölçümlerini güncellemek için bu varsayımı ve doğrusal cebirin zarafetini kullanabileceğimiz anlamına gelir. Uygulamada bu, durum değişkenlerinin ve ölçülen değerlerin zamanla doğrusal olarak değiştiği anlamına gelir. Örneğin, robotun X konumunu ölçersek. Robotun x1'de t1 zamanında bulunduğunu ve t2 zamanında x2'de bulunması gerektiğini varsayıyoruz. V değişkeni, robotun x yönündeki hızını temsil eder. Robotun gerçekten hızlandığını veya doğrusal olmayan herhangi bir hareketin (bir daire içinde hareket etmek gibi) olduğunu varsayarsak, durum geçiş modeli biraz yanlıştır. Çoğu durumda, çok fazla hata yoktur. Ancak bazı sınır durumlarında, bu doğrusal varsayım gülünç derecede yanlıştır.

Doğrusal ölçüm modellerini varsaymakta da sorunlar vardır. Farz edin ki düz bir yolda ilerliyorsunuz ve önünüzde yolun yanında bir deniz feneri var. Ve siz daha uzaktasınız, deniz fenerine olan mesafeyi ölçüyorsunuz ve görüş alanınızdaki açı neredeyse doğrusal olarak değişiyor (mesafe, aracınızın hızıyla kabaca azalır ve açı temelde değişmez). Ancak yaklaştığınızda, özellikle de yanından geçtiğinizde, açı büyük ölçüde değişir. Bu nedenle Robby, 2-B düzlemine dağılmış yer işaretleriyle 2-D dünyasında gezinirken, artık doğrusal Kalman filtresini kullanamıyorum.

Genişletilmiş Kalman filtresi kurtarıcıdır, doğrusal durum geçişini ve ölçüm modelinin doğrusal sınırlamasını kaldırır. Ayrıca, robot durum geçişinizi ve ölçümünüzü modellemek için doğrusal olmayan herhangi bir işlevi kullanmanıza izin verir. Filtremizde etkili ve basit doğrusal cebirin büyüsünü kullanabilmek için bir numara yaptık: Doğrusallaştırmayı mevcut robot durumunun yakınında kullanıyoruz. Bu, ölçüm modelinin ve durum geçiş modelinin şu anki durumumuz etrafında doğrusalya yakın olduğunu varsaydığımız anlamına gelir (yine yol / deniz feneri örneğine atıfta bulunarak). Ancak her adımdan sonra, güncellemeyi yeni durumun komşuluğunda doğrusallaştırıyoruz. Ve bu yöntem bizi doğrusal olmayan işlevi doğrusallaştırmaya zorlar.

Sonuç bu. Genişletilmiş Kalman filtresi temelde "normal" bir Kalman filtresidir, ancak mevcut doğrusal olmayan durum geçiş modeli ve ölçüm modeli ek olarak doğrusallaştırılmıştır.

Bizim durumumuzda, Robby kaybolmuştur ve bu (tartışmalı) düşmanca ortamda yerelleştirmek istemektedir.Genişletilmiş Kalman filtreleme, Robby'nin yer işaretlerini algılamasını ve buna göre devlet inançlarını güncellemesini sağlar. Durum tahmini ile ölçülen tahmin arasındaki fark yeterince düşükse, Robbie dönüm noktasının konumuna göre konumunu çok hızlı bir şekilde belirleyebilecek çünkü dönüm noktasının tam yerini biliyor ve nerede olduğunu biliyor!

Mutluluk endeksi yükseldi!

Üçüncü Bölüm-Uygulama

Uygulanan kod çok basittir. Önsezi adına, bazı gerekli nesnelerin görüntüsünü gerçekleştirmek için SDL2 kütüphanesini kullanmayı seçtim. Buradan indirebilirsiniz:

Nesne yönelimli programlamaya göre aşağıdaki sınıfları uyguladım:

  • Robert sınıfı

Bu sınıfın en önemli parçaları Poz (x'in konumu, y'nin konumu, yön) ve Hız'tır (doğrusal hız ve açısal hız). İleri, geri, sağa ve sola dönebilir. Yol işaretlerinin yerini ölçmek için, Ölçü İşaretleri yöntemine sahiptir Bu yöntem, gerçek yol işaretlerini elde edebilir ve gözlenen yol işaretlerinin bir listesini elde etmek için yol işaretlerinin ve gözlemlenen gürültünün konumunu dikkate alabilir.

  • KalmanFilter sınıfı

Bu sınıf şüphesiz çok karmaşıktır. Üyeleri matrix. Matris durum geçişi, gözlemi ve kovaryans hesaplaması için kullanılabilir. Ayrıntıların çoğunu gözden geçireceğim çünkü kod yorumları zaten kodun amacı hakkında ipuçları sağlıyor. Filtreleme, localization_landmarks işlevinde uygulanır.

  • Landmark sınıfı

Bu sınıf en basit olanıdır. Bir yeri, kimliği ve kendisini ekranda göstermenin bir yolu var. Hepsi bu kadar.

Ana işlevde, robotun konumu her zaman klavye girişine göre güncellenirken, her şeyi başlatır ve sonsuz bir döngü başlatırız. Robot, çevresini tahmin ediyor, Kalman bir sonraki adımı tahmin etmek ve güncellemek için filtreler.

Tüm kodlar github'da bulunabilir:

https://github.com/jzuern/robot-localization

Bu süreci beğenir misiniz?

Bu makalenin ilgili bağlantılarını ve referanslarını görüntülemeye devam etmek ister misiniz?

[Robot konumlandırmasını gerçekleştirmek için Kalman filtresini ve yol işaretlerini kullan] 'ı tıklayın veya aşağıdaki adresi basılı tutun:

https://ai.yanxishe.com/page/TextTranslation/1437

AI Araştırma Enstitüsü bugün şunları öneriyor: Lei Feng Net Lei Feng Net Lei Feng Net

Li Feifei, koz kartı kursu, bilgisayarla görmenin derinleşme seyri, bilgisayar görüşü alanında sinir ağının uygulanması, görüntü sınıflandırma, konumlandırma, algılama ve diğer görsel tanıma görevlerinin yanı sıra arama, görüntü anlama, uygulama, haritalama, tıp ve sürücüsüz sürüş konularında ders veriyor. Uçaklar ve otonom araçlar alanında en son uygulamalar.

Videoyu ücretsiz izlemek için gruba katılın: https://ai.yanxishe.com/page/groupDetail/19

Stadyumdan sokağa uygun! David Beckham'ın efsanevi hayatı bu adidas çiftinde!
önceki
"Dünyadaki Son Gece": Herkes bir ip yapmaktan mutlu olmak ister, ancak bir kase hüzünlü pilav servis edersiniz
Sonraki
Hiç vintage bir tada sahip alet gördünüz mü? MADNESS x SOPH. Tüm tekil ürünler açıklandı
Zotye saf elektrikli model T300EV yıl sonunda açıklandı veya listelendi
2018'de bizimle film izlediğiniz için teşekkür ederiz!
Toyota Camry bilgilerin ifşa olduğunu açıkladı! Yeni araba Guangzhou Otomobil Fuarı'nda piyasaya sürüldü
"UZI" nin kadın versiyonu bir otelde çıktı Netizenler: Bu çok güzel!
WeChat yasa dışı ve kaçak mal satışını ciddi şekilde cezalandırıyor, 4.000'den fazla hesabı yasaklıyor
"Ghost Blowing Lantern" hayranları ağlıyordu, "Yunnan Solucan Vadisi" nasıl bu kadar kötü olabilirdi!
McLaren 720S 4.054 milyon yuan'a satıldı, siparişler 1.500'ü aştı
Tarihteki en eksiksiz! Yıllar boyunca en iyi CVPR kağıtlarının envanteri (2000-2018)
EDG'nin yedek AD'si, ulusal sunucunun tepesine kolayca tırmanır ve kaderin rotasyonundan kaçınmak Iboy'dan daha iyidir
"Polis ve haydutların vaftiz babası" Lin Lingdong vefat etti
Samsung Galaxy Note9 tam sökme şeması yayınlandı, S Pen bırakmayacak
To Top