Bir dizi ultrason sensörü kullanarak keşfedilmiş bir alanın haritasını oluşturmak için hangi algoritmayı kullanabilirim?


9

Ultrason sensörleri bu gün inanılmaz derecede ucuz, bu da onları birçok hobi robotu uygulaması için popüler bir seçim haline getiriyor ve bir alanın kaba bir haritasını ( Bu aşamada hareketli nesnelerle uğraşmakla ilgilenmiyorum, sadece durağan olanları saptayarak ilgileniyorum ve konum için GPS kullanacağım. Lazer tarayıcı gibi diğer bileşenlerin çok daha doğru sonuçlar vereceğini anlıyorum, ancak bu tür cihazlar astronomik olarak daha pahalıdır.

Bu amaçla bir algoritma var mı?

Yanıtlar:


5

Hangi sensörleri kullandığınızdan bağımsız olarak algoritmalar aynıdır.

Chris'in üzerinde durduğu asıl mesele, SLAM'ın çok iyi sensörlerle bile zor olmasıdır.

Ultrason, çarpma denemesi için GPS, tekerlek kilometre sayacı ve IMU'nun gerekli olduğunu düşünürdüm.

Sadece ucuz lokalizasyon arıyorsanız, vizyon / kinect tabanlı slam'a da göz atmanızı tavsiye ederim. Hem web kamerası hem de kinect çok ucuz ve görsel slam çok yol kat etti.

Kinect, iç mekanda olduğunuz sürece sensör performansı / maliyeti açısından neredeyse kutsal kâse.

İşte bir robot için bir kinect ve çok fazla matematik örneği: http://www.youtube.com/watch?v=9Y4RQVpp-BY


6

Bu konuda bir edebiyat alanı var. En genel fikir, robotun kendisini bu haritada bulmasıyla aynı anda bir harita oluşturması gereken Eşzamanlı Yerelleştirme ve Haritalama ( SLAM ). Haritalarınızın ne kadar doğru olmasını istediğinize bağlı olarak , robotun yerini bildiğinizi varsayan bir doluluk ızgarası haritası oluşturma konusunda daha basit bir sorun deneyebilirsiniz .

Genel olarak, GPS oldukça korkunçtur, bu nedenle birincil konum kaynağınız olarak sadece GPS kullanarak bir doluluk ızgarası oluşturmak oldukça bulanık haritalar oluşturur. Bununla birlikte, GPS'i dünyada iyi bir konuma yaklaşmak için hızlanma, jiroskoplar, pusulalar, kameralar, tekerlek kodlayıcıları ve diğer sensörlerle entegre etmek mümkündür. Aksi takdirde, sorunlarınızı çözmek için basit bir SLAM sistemine bakmanız gerekecektir.

GraphSLAM için güzel bir açık kaynaklı paket g2o , GPS ve duvarlara göreli konum gibi kısıtlamalar koymanıza izin verir. Tam olarak uymayabilir, ancak oldukça geneldir.


1
Ek bir düşünce, robotun hiçbir şeye çarpmadığından emin olmak için temel kaçınma davranışlarını kullanarak tüm verileri toplamak ve daha sonra bir işleme sonrası grafik SLAM'ı kullanmak olacaktır. Bu, bir nokta için yalnızca önceki verilerin aksine yakalanan tüm verilerden yararlanabilir. Kontrol etmek isteyebilirsiniz: openslam.org/ssa2d.html veya robots.stanford.edu/papers/thrun.graphslam.html
Barrett Ames

2

SLAM yapmak için, nispeten iyi bir konum tahminine ihtiyacınız olacaktır.

Lazer tarayıcı kullanan robotlar, sadece odometri ile yapabilirler, çünkü veriler nispeten doğrudur ve tarayıcı verileri sonraki zaman adımlarında yerelleştirmeye yardımcı olmak için kullanılabilir.

Ultrason sensörleri çok bulanık, genellikle 20+ derecelik bir yön bulanıklığına sahipler ve genel yönde herhangi bir şey tespit edilecek.

Bu nedenle, yerelleştirilmeye yardımcı olmada (çok yapılandırılmış ortamlar hariç) ihmal edilebilir yardımlarda bulunurlar.

Makul bir yerelleştirme elde etmek için bir GPS / IMU kombinasyonu kullanılabilir. Tabii ki, bu robotun ölçeğine bağlıdır ve eğer iç mekandaysa GPS pratik olmayabilir.

Tekerlek kaymasını dikkatlice kontrol edebiliyorsanız, tekerlek kilometre sayacı kısa vadede lokalizasyonu önemli ölçüde artırabilir (mutlak bir lokalizasyon yöntemi tercih edilmesine rağmen). Mutlak bir referans olmadan (örn. GPS), bir lazer tarayıcıyla bile, "döngüyü kapatma" sorununu çözebilmeniz gerekir.

Yapılandırılmış ortamlar daha düşük doğruluk gereksinimine sahip olabilir. Örneğin, düzenli kare ızgara mesafelerinde duvarlara sahip bir labirent benzeri ortam, burada bir ızgara hücresinin her yönünde bir duvarın varlığını tespit etmek kolaydır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.