Sonar karışma ile nasıl başa çıkılır


10

Robotumuzda, aşağıdaki gibi görünen 12 sonar sensörlü dairesel bir dizi vardır:

resim açıklamasını buraya girin

Sonar sensörleri kendilerini oldukça iyi. Gürültü ile başa çıkmak için düşük geçişli bir filtre kullanıyoruz ve okumalar oldukça doğru görünüyor. Ancak, robot duvar gibi düz bir yüzeye rastladığında, garip bir şey olur. Sonarlar bir duvarı gösterecek okumalar göstermez, bunun yerine kavisli bir yüzey gibi görünür.

Aşağıdaki grafik robot bir duvara bakarken yapılmıştır. Düz kırmızı çizgiye kıyasla mavi çizgilerdeki eğriye bakın. Kırmızı çizgi, mavi çizgilerin filtrelenmiş sonar okumaları gösterdiği duvarı tespit etmek için bir kamera kullanılarak üretildi.

resim açıklamasını buraya girin

Bu hatanın, bir sonar sensörünün darbesinin bir açıda duvardan sektiği ve başka bir sensör tarafından alındığı çapraz konuşmadan kaynaklandığına inanıyoruz. Bu sistematik bir hatadır, bu yüzden gürültü ile yaptığımız gibi gerçekten başa çıkamayız. Bunu düzeltmek için herhangi bir çözüm var mı?


ilgili: "Çoklu Ultrasonik Uzaklık Ölçer Sorusu" . Kendi cevabımı oradan buraya kopyalayıp yapıştırmalı mıyım?
David Cary

Yanıtlar:


10

Bu yaygın bir sorundur ve çok sayıda sorundan biridir. Akustik algılama karmaşık bir çalışma alanıdır, bunun önemli bir kısmı bir ses dalgasının onu göndermek ve almak arasında hangi yolu izlediğini tahmin etmek için harcanmaktadır. Fark ettiğiniz gibi, bunun doğrudan dışarı çıktığını ve doğrudan geri döndüğünü varsaymak, pratikte garip sonuçlar doğuracaktır.

Bunu gerçekten çözmek için, her sensöre benzersiz bir frekans ve / veya ton uzunluğu yerleştiren bir sistem kullanmanız gerekir. Bu önemli aşırıya alınabilir, örneğin Frekans Atlamalı Sözde Rastgele Mobil Robotlar Sonar Sensör Crosstalk eleyin için Darbe Genişlik Modülasyonu .

Konseptte oldukça basit olan düşük teknolojili bir çözüm de var. Sadece karışma tespit etmek istiyorsanız, tüm sensörlerin darbelerinin ateşlenmesi arasında tek bir sensörün darbesini ateşlemek meselesi olacaktır. Geri dönüş darbesini başka bir sensörle tespit ederseniz, çapraz konuşma durumunda olduğunuzu bilirsiniz.

Uygulamada, bu oldukça israftır: bunun, alabileceğiniz örnek sayısını etkili bir şekilde yarıya indirdiğine dikkat edin. Böylece sensörleri, grubun her üyesinin diğerlerinden çapraz konuşma almayacakları kadar yeterince uzak olduğu gruplara ayırarak uygulamayı geliştirebilirsiniz. Bu yaklaşımın en sağlam versiyonu , grupların kendilerini sadece zaman içinde ortalamasına izin vermekle kalmayıp, aynı zamanda bireysel bir sensör bazında karışma tespitine yardımcı olan sahte bir hale getirmektir .

Özel durumunuzda, aralıklar için daha doğru bir değer döndürdüğünü gösterdiğiniz bir kamera sensörünün ek avantajına sahipsiniz. Ayrı (ve muhtemelen çelişkili) ölçümleri daha doğru bir tahminde birleştirme stratejileri, kendi çok geniş konusudur ( füzyon , örnek 1 , örnek 2 olarak adlandırılır ), ancak burada yaptığınız şeyle çok ilgili.


5

Maxbotix MB1200 XL-MaxSonar-EZ0 gibi bazı sensörlerde, bir sensörün ölçümü bittikten sonra bir sonraki sensörü tetiklediği yerleşik bir papatya zincirleme sistemi vardır. Bu şekilde N sensörüne sahip olabilir ve bir kerede yalnızca birinin ateş ettiğinden emin olabilirsiniz, ancak ilk sensörün dönüşünü toplar toplamaz bir sonraki sensör patlar. Bu çözüm basittir, ancak birim zaman başına elde ettiğiniz veri miktarını önemli ölçüde azaltır. Ian'ın çözümleri optimum seviyeye çok daha yakın.


4

Tek bir robotta birden fazla ultrasonik sensör kullanmak mümkün müdür? Evet: "Birden Çok Sonar Sensörü Kullanma" .

Daha önce anladığınız gibi, bir sensör genellikle başka bir sensör tarafından gönderilen ping yankılarını alır. Çapraz hassasiyetle başa çıkmak için kabaca en basit sırayla birkaç yol vardır:

  • Bir seferde yalnızca bir dönüştürücüye ping atın, bir sonraki dönüştürücüye ping işlemi yapmadan önce geçerli dönüştürücünün "hayalet yankılarının" ölmesini beklerken diğer tüm dönüştürücüler yok sayılır. Bu, tek bir dönüştürücüyü mekanik olarak döndürmekten çok daha hızlıdır. Belki de robotunuz neredeyse ses hızında şeylere çarpışmadığı sürece bu yeterince hızlı olacaktır.
  • Sensör başına nispeten dar ışın açısı vericileri veya alıcıları (veya her ikisini) kullanın ve bir sensörden diğerine olan açıyı artırın, böylece bir sensör yankıyı duyamaz (transdüserin önündeki şeyler garip yanal yansımalara neden olmadıkça) ) - sensörler, kiriş açısı ile kabaca aynı şekilde açılıdır. Ne yazık ki, nesneler herhangi bir dönüştürücü tarafından görülemeyen dönüştürücüler arasında "kör noktalar" bırakır.
  • Bazı kombinasyonlar - örneğin, bir sensörden diğerine olan açıyı arttırın, böylece bir sensör sadece 2 komşusundan yankıları duyar (ışın açısının yaklaşık yarısı); daha sonra çift transdüserlere pingleme (tek transdüserleri yok sayma) ve tek transdüserlere pingleme (çift transdüserleri yok sayma) arasında geçiş yapın.
  • Her dönüştürücü farklı bir frekansta çalışır. Ne yazık ki, birkaç istisna dışında tüm düşük maliyetli ultrasonik transdüserler 40 kHz'de rezonansa ayarlanmıştır. Çeşitli sinyalleri dinlerken, bu dönüştürücüler yalnızca birkaç kHz 40 kHz içindeki sinyalleri "duyabilir". Dengelemeniz gerekir (a) 40 kHz için tasarlanmış bir dönüştürücüde kullandığınız 40 kHz'den ne kadar uzakta olursanız, o kadar az duyarlıdır, bu nedenle 40 kHz'e "nispeten yakın" bir frekans istiyorsanız; ve (a) Tüm frekanslar birbirine ne kadar yakınsa, aralarında ayrım yapmak o kadar zor olur, bu nedenle "nispeten uzaklara" yayılan bir dizi frekans istersiniz. İyi bir uzlaşma olup olmadığını bilmiyorum - eğer değilse, (c) diğer frekanslara ayarlanmış daha pahalı sensörler kullanın,Belirli bir frekansa ayarlanmamış "geniş bant genişliği" sensörleri .
  • Hayalet yankılarını dışlamak için çeşitli iletim zamanlamaları kullanın. Soldan ilettiğinizi söyleyin, 2 ms geciktirin (yankıların ölmesine izin vermek için neredeyse yeterli değil), sonra sağdan iletin, ... yankılar öldükten sonra soldan iletin, 3 ms geciktirin, sonra iletin doğru. Doğru alıcı iki kez 5 ms sonra bir yankı alırsa, bunun gerçek bir yankı olduğundan emin olabilirsiniz; sağ alıcı ilk kez 5 ms sonra, 6 ms sonra ikinci kez yankı alırsa, muhtemelen sol alıcıdan bir hayalettir. (Birçok vericiyi aynı frekansta aynı anda kullanarak ayırmak için çok daha karmaşık "yayılma spektrumu" teknikleri vardır.)
  • Tüm alıcılardan gelen sinyalleri birleştirin. Her yöne ping yapan bir merkezi vericiniz varsa (veya eşdeğer olarak her yöne yönlendirilmiş vericileriniz varsa ve hepsini aynı anda pinglediğinizde) ve geri aldığınız ilk yankı önce sol alıcıya (daha sonra sağa vurur) alıcı bir yankı duyar), en yakın engelin sol tarafa sağ taraftan daha yakın olduğunu bilirsiniz. (Tüm alıcılardan gelen sinyalleri birleştiren daha karmaşık "aşamalı dizi" teknikleri ve tüm vericilerin iletim sürelerini hafifçe ayarlamak için daha da karmaşık "ışın oluşturma" teknikleri vardır.)

PS: "Kızılötesi ve Ultrasonik - Bilmeniz Gerekenler" i gördünüz mü ?

(Evet, bunu daha önce "Çoklu Ultrasonik Uzaklık Ölçer Sorusu" nda söyledim .)

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.