Mobil Robotta Ses Kaynağının Yönünün Kestirilmesi Bertan Dağıstanlı1, Hasan Ocak2 1,2
Mekatronik Mühendisliği Bölümü Kocaeli Üniversitesi, Kocaeli
[email protected],
[email protected]
Özetçe Bu çalışmada ses sinyallerini işleyerek insan gibi işitme algısına sahip, dış dünya ile iletişim kuran bir mobil robot uygulaması gerçekleştirilmiştir. Tasarlanan robot, üzerinde bulunan mikrofonlar yardımıyla ses kaynağının yerini tespit edip kaynağa yönelmektedir. Proje donanımsal olarak, çift çekirdekli bir çokluortam kontrol kartı, redüktörlü ve optik kodlayıcılı dc motorlar, motor sürücü devreleri, optik algılayıcı sinyal dönüştürücü devreleri, mikrofonlar ve mikrofonların ön yükselteç devrelerinden oluşmaktadır. Kontrol kartının programlanmasında C programlama dili kullanılmıştır. Proje geliştirilerek insansız araç projesi yada kurtarma robotu olarak kullanılabilme özelliğine sahiptir.
1. Giriş Robotlar için ortamdaki insanları yada nesneleri algılamak ve takip etmek oldukça önemlidir. Bir kurtarma robotunun yardıma ihtiyacı olan insanla etkileşimde bulunabilmesi için yerini tespit etmesi gerekir. Yer kestirimi çeşitli algılayıcılarla yada kamera sistemleriyle yapılabilir. Ses kaynağının yerinin kestirilmesi de bu tekniklerden birisidir ve diğer tekniklere göre de çeşitli üstünlükleri bulunmaktadır. Ses işleme, görüntü işleme ile karşılaştırılırsa, en önemli artılarından birisi herhangi bir ortam aydınlatmasına ihtiyaç duymamasıdır. Bu özellik kurtarma robotlarının karanlık ortamlarda da daha düşük maliyetle çalışabilmesine olanak tanır. Ayrıca ses tüm, kaynağın bulunduğu ortamın tümüne yayılmaktadır. Görüntüde açı sınırlı iken ses işlemede 360° ‘dir. Ses işleme, tek boyutlu işaret işlemedir ve işlem maliyeti görüntü işlemeye göre düşüktür. Ses kaynağının yerinin tespit edilmesinde kullanılan gerçek zamanlı insan takip sistemlerinde sesin nereden geldiği önemlidir ve genellikle ses kaynağının noktasal bir ses kaynağı olduğu kabul edilir ve bu noktasal kaynağın robotun bulunduğu yere göre açısı tespit edilmeye çalışılır. Ses kaynağının yerinin kestirilmesinde mikrofon dizileri kullanılmaktadır. Bu çalışmada kaynağının yerinin bulunmasında 2 mikrofon yardımı ile memelilerde bulunan işitsel korteksin[1] (İK) işleyiş prensibi kullanılmaktadır. Memelilerde işitsel korteks ses kaynağını iki kulağa gelen sinyaller arasındaki zaman farkından faydalanarak kestirir. Memelilerde hareket kestirimi yatay düzlemde ±1° sapma ile hesaplanır[2]. Farklı alanlardaki ses kaynağının yerinin bilinmesine olan ihtiyaç bu alanda birçok araştırma yapılmasına sebep olmuştur. Buna video konferans sistemlerinde konuşmacının yerinin tespit edilip kameranın çevrilmesine yönelik çalışmalar örnek
verilebilir. Sturim bunun üzerine çalışarak birden fazla konuşmacının konumlarını saptayacak bir sistem geliştirmiştir [3]. Bu sistemde konuşmacıların konumları işaretlerin çapraz bağlanımlarından faydalanılarak bulunur ve ardından Kalman filtre yöntemiyle bulunan değerler düzleştirilir. Benzer şekilde servis robotlarına yönelik çalışmalar bulunmaktadır. Özürlü birisine hizmet eden servis robotu ses kaynağının yerini kestirir ve özürlü kişinin yerini tespit edip hizmet verebilir [4]. Bu çalışmada ses kaynağının yerini iki mikrofon kullanarak hesaplayıp, tespit eden yazılım ve yazılımın yönettiği 2 çeker 1 serbest tekerleğe sahip mobil robot donanımı tasarlanmıştır. Ses kaynağının açısı belirlendikten sonra 2 DC motor encoderlar yardımı ile belirli acılarda döndürülerek mobil robotun ses kaynağına yönelmesi sağlanmıştır.
2. Ses Kaynağının Kestirilmesi Mikrofon dizisi tabanlı ses kaynağının yerinin saptanmasında, en az iki mikrofon kullanılması gerekir. İki mikrofon ile çeşitli ses işareti işleme teknikleri kullanılarak kaynağın koordinatları, pozisyonu oda yada benzeri akustik ortamlarda belirlenebilir. Ses kaynağının, s(t) ses sinyalini yaydığı varsayılırsa, ses dalgaları her bir mikrofona farklı zamanlarda ulaşır ve iki mikrofona gelen ses sinyalleri arasında Şekil 1’de de görüldüğü gibi ölçülebilir bir zaman farkı oluşur.
Şekil 1: Ses kaynağından mikrofonlara gelen sinyaller arasındaki gecikme İki mikrofon tarafından alınan ses sinyalleri g(t) ve h(t) olarak adlandırılırsa, ses kaynağının konumunun
bulunabilmesi için bu sinyaller üst üste getirilmeli ve en uyumlu oldukları durum saptanmalıdır [5]. Bunun için çapraz korelasyon fonksiyonu (1) kullanılabilir. Çapraz korelasyon vektörü bu fonksiyonda g(t) sinyali h(t) sinyali üzerinde zamanda boydan boya kaydırılıp değeri incelenirse, bazı noktalarda en yüksek değerde olduğu gözlemlenebilir. N −1
Corr( g , h) j (t ) ≡ ∑ g j + k hk
vektöründeki en yüksek değer vektörün tam orta noktasında olacaktır [5].
(1)
k =0
Bu durumda korelasyon fonksiyonu iki vektörü karşılaştırmak için kullanılmıştır. Bu fonksiyona giren vektörlerin A (Şekil 2) ve B (Şekil 3) vektörleri olduğunu kabul edersek ve bu vektörler çapraz korelasyon fonksiyonuna sokulduğunda C vektörünü verdiğini varsayarsak, bu iki vektörün korelasyonu sonucu ortaya çıkan C vektörünün uzunluğu;
Uzunluk (C ) = (Uzunluk ( A) + Uzunluk ( B )) − 1
(2)
olarak hesaplanabilir [5].
Şekil 4: Korelasyon vektörünün grafiği Bu şekilde iki kanaldan aldığımız A ve B vektörleri gibi ses işaretleri arasındaki faz kayması yada zaman gecikmesini hesaplarken görüldüğü gibi çapraz korelasyon yöntemini kullanılabilir. 2.1. Zaman Farkı ve Çapraz Korelasyon Kullanılarak Kaynağın Konumunun Saptanması
Şekil 2: Ses kaynağından sağ mikrofona gelen sinyal
Ses kaynağının yerinin tespit edilmesinde açı değeri, korelasyon metodu ile bulunan C vektöründeki en yüksek değerdeki gecikme değerinin (σ) tespit edilmesi ile saptanabilir. Gecikmenin değeri en yüksek saptanan değerin C vektörünün orta noktasına olan uzaklığı ile hesaplanabilir. Eğer ses kaynağı Şekil 5 ‘te görüldüğü gibi iki mikrofonun tam ortasında ise bulunan en yüksek değerin vektör üzerindeki yeri C vektörünün tam ortasında bulunacaktır. Buradan gecikme değerinin vektör üzerindeki konumu elde edilebilir. C vektörü üzerinde bulunan bu en yüksek değerin konumu herhangi bir yönde negatif ( vektörün ortasından geride) yada pozitif (vektörün ortasından ileride) olabilir. Bulunan bu gecikme değeri kullanılarak ses kaynağının konumu tespit edilebilir. Ancak bunun için de yine bazı değişkenlerin hesaplanması gerekmektedir. Belirlenmesi gereken ilk değişken iki örnek değeri arasındaki zaman farkıdır (∆) [5].
Şekil 3: Ses kaynağından sol mikrofona gelen sinyal Yeni bulunan C vektöründeki en yüksek değer bize girişteki iki sinyal arasındaki zaman gecikmesiyle (σ) çapraz korelâsyonu verir. En yüksek korelasyon değeri C vektörünün ortalarında olur (Şekil 4). C vektörünün grafiğinde x ve y olmak üzere iki eksen bulunmaktadır. Burada y ekseni A ve B sinyallerinin herhangi bir zaman gecikmesinde (σ) değerlerini gösterirken, x ekseni ise çapraz korelasyonda hesaplanan değerlerin adım aralıklarını göstermektedir. Eğer çapraz korelasyon vektörüne gelen iki giriş sinyali g(t) ve h(t) arasında zaman gecikmesi olmazsa (sinyal 0° de) C
Şekil 5: Ses kaynağının mikrofonların ortasında olma durumu
(3)
∆ = 1 f s = 1 44 .1 ∗ 10 3 = 2.2676 ∗ 10 −5 s
Burada fs örnekleme frekansı olup, değerinin 44,1 kHz olduğu varsayılmıştır. Örnekleme frekansının 44,1 kHz seçilmesinin sebebi birim zamandaki örnek sayısının artmasıyla algoritmanın hassasiyetinin yükselmesidir. 44,1 kHz üzeri değerlerde de işlem yapılabilir ancak işlem yükü arttığından algoritmanın işleyiş süresi uzadığından tercih edilmemiştir. Ses dalgalarının kaynaktan çıktıktan sonra Şekil 6 ’da görüldüğü gibi kaynağa paralel şekilde b çizgisi yönünde ilerlediğini farz edersek, sesin ses kaynağından geliş açısını hesaplamak için şekildeki üçgen içerisinde bulunan bilinmeyen değişkenleri bulmamız gerekmektedir. Temel trigonometrik fonksiyonlar kullanılarak bu değişkenler hesaplanabilir. Trigonometride kullanılan denklemlerden; a (4) Sinθ = c b (5) Cosθ = c c (6) Tanθ = b
Şekil 7: Sin(x) ve Cos(x) ‘in geometrik diyagramı
Formülde ses hızı normal şartlar altında (24°C oda sıcaklığı ve deniz seviyesinde) V=384m/s olarak alınmıştır. Şekil 6 ‘da a ve c uzunlukları bulunduktan sonra yukarıda verilen trigonometrik denklemler kullanılarak, ses kaynağının iki mikrofonun merkezine göre konumunu veren θ açısı hesaplanabilir (Şekil 7) [5]. a a (11) Sinθ = ⇒ θ = Sin −1 c c (∆ * σ ) * Vses (12) θ = Sin −1 c
3. Ses Mimarisi
Şekil 6: Ses kaynağının açı değerinin hesaplanması Şekil 6’da θ ile gösterilen açının bulunması için öncelikle formüllerden de anlaşılabileceği gibi üçgenin kenar uzunlukları olan a, b ve c den ikisinin uzunluğunun bilinmesi gereklidir. Buradaki c uzunluğu, robot üzerinde bulunan mikrofonlar arası uzaklıktır. Bununla beraber ses hızından ve zaman gecikmesinden faydalanılarak üçgenin a kenarı da hesaplanabilir. a uzunluğunun hesaplanmasında “ses hızı x zaman” formülünden faydalanılır. Bu formülde zamanı hesaplamak için aşağıdaki formül kullanılabilir.
t = ∆ ∗σ
(7)
Burada ∆ değeri, formül (3)’te verilen iki örnek arasındaki zaman farkıdır. σ çapraz korelasyon fonksiyonundan saptanan gecikme örneklerinin sayısıdır. Bu değişkenler bulunduktan sonra, t bulunur ve formül (8)’den a ’nın uzunluğu hesaplanabilir.
Uzunluk = t ∗Vses = (∆ ∗σ ) ∗Vses a = sin(x) b = cos(x )
(8) (9) (10) Şekil 8: Temel Mimari
Şekil 8’de ses kaynağının yerinin tespit edilmesindeki aşamalar gösterilmektedir. Görüldüğü gibi önce aralarındaki uzaklık 30cm olarak ayarlanmış, iki mikrofondan 250ms uzunluğunda ses işaretleri (g(t) ve h(t)), 48kHz örnekleme frekansı ile alındıktan sonra donanım tarafından kaydedilmektedir. Kaydedilen işaretler bu işlemin ardından çapraz korelasyona sokulmaktadır. Çapraz korelasyon sonucunda hesaplanan açı değeri baz alınarak, mobil robot ses kaynağına doğru yönlendirilmektedir.
4. Kullanılan Donanım Bu çalışmada mobil robot uygulamasında Şekil 9’da gösterilen iki adet elektret mikrofondan oluşan mikrofon düzeneği robota takılarak kaynağın yerinin tespit edilip robotun ses kaynağına yönlendirilmesi amaçlanmıştır.
Şekil 11:Önyükselteç devresi
Mikrofonlardan alınan işaretlerin işlemek, motorları sürmek ve motorlara bağlı bulunan kodlayıcıdan alınan işretlerin işlemek üzere şekil 12‘de görülen Analog Devices firmasının BF561 Ez-Kit Lite kontrol kartı tercih edilmiştir. Kullanılan kontrol kartı 600 Mhz çift çekirdek işlemcinin yanı sıra, 64 MB SDRAM bellek ve 8MB Flash bellek bulundurmaktadır. Ses ve görüntü kodlayıcı ve çözücüleri bulunan ses ve görüntü işlemek için tasarlanmış bir donanımdır.
Şekil 9: Tasarlanan mobil robot.
Mobil robot öncelikle mikrofonlar yardımı ile ses kaynağının yerini kestirerek bir açı değeri hesaplar, daha sonra üzerinde bulunan Şekil 10’da gösterilen kodlayıcı ve redüktör bulunduran motorları kontrol ederek ses kaynağına doğru döner ve kaynağa yönelir.
Şekil 12: BF-561 Ez-Kit Lite
Bu kartın ve mikrofon önyükselteç kartının yanı sıra sistem üzerinde motorların optik kodlayıcılarından gelen sinüs işaretleri kontrol kartının algılayabileceği seviyede kare dalga işaretlere dönüştüren Şekil 13’te görülen devre tasarlanmıştır.
Şekil 10: Redüktör ve kodlayıcılı DC motor.
Projede kullanılan mikrofonlar elektret mikrofondur. Elektret mikrofonlardan alınan işaretler mV seviyesinde olduğundan Şekil 11’de şeması görülen önyükselteç devresi tasarlanmış ve kullanılmıştır. Mekanik sistemde 2 adet 12 voltluk DC motor kullanılmıştır. Motorlar redüktörlü ve optik kodlayıcılı motorlardır. Redüktörlü ve yüksek torklu olmaları sayesinde güçlü bir hareket sağlanmıştır. Sistem 2 adet 6V/4Ah piller ile beslenmiştir.
Şekil 13: Sinüs – Kare Dalga Dönştürücü
Motorların işlemciden gelen sinyallere göre istenilen yöne hareket ettirilmesi veya durdurulması için işlemciden gelen sinyalleri algılayıp bu sinyallere göre motorun uçlarına elektrik akımı uygulayan Şekil 14‘te görülen sürücü devresi kullanılmıştır. Sürücü devresinde L293D entegresi tercih edilmiştir. L293D içerisinde 2 motoru birlikte sürebilecek bir yapıya sahiptir. Aynı zamanda bu entegrede motordan geri dönebilecek ters EMK’ ya karşı korumak amacı ile diyodlar motora giden uçlara entegre içerisinde eklenmiştir. Bu projede motorların sürülmesinde PWM frekansı 1 kHz olarak ayarlanmıştır.
7. Kaynakça [1] David McAlpine and Benedikt Grothe. Sound localization and delay lines – do mammals fit the model. TRENDS in Neuroscience. Vol. 26(7) 2003, pages 347350. [2] Harold L. Hawkins, Teresa A McMullen, Arthur N. Popper, Richard R. Fay. Auditory Computation. Springer Handbook of Auditory Research. Springer 1996, pages 334-336. [3] Struim D., Branstein S. ve Silverman H. F., “Tracking multiple trackers using microphone array measurements,” Proceedings of ICASSP, 1997. [4] A. S. Sekmen ve Z. Bingul, “Ses Kaynağının Yerinin Kestirimi Aracılığıyla Otomatik Kamera Kontrolu”, IEEE SIU’ 2000, Antalya, 12-14 Haziran,2000 [5] Murray J. C., Erwin H.and Wermter S. “Robotic SoundSource Localization and Tracking Using Interaural Time Difference and Cross-Correlation”
Şekil 14: L293D motor sürücü devresi
5. Deneysel Sonuçlar Deneyler, açı değeri bilinen ses kaynağından robota ses işareti gönderilerek hesaplanan değer ile bilinen değerin karşılatırılması şeklinde gerçekleştirilmiştir. Sonuçlar Tablo 1’de verilmiştir.
KAYNAĞIN YERİ
Tablo 1:Deneysel sonuçlar AÇI AÇI KESRİRİMİ (derece) (derece)
MUTLAK HATA (derece)
Sağ
30
26.88
3.12
Sol
45
41.16
3.84
Sağ
20
17.67
2.33
Sol
15
13.30
1.70
Sağ
70
63.48
6.52
6. Sonuçlar Bu çalışmada, bulunduğu ortamdaki ses kaynaklarının yerini tespit eden ve ses kaynağına doğru dönüp yönelen bir mobil robot tasarlanmıştır. Öncelikle robotun sesin yönünü kestirebilmesi için gerekli denklemlerin çözümünü hesaplayan yazılım yapısı tasarlanmış ve uygun donanım oluşturulmuştur. Sonuç olarak bilgisayardan tamamen bağımsız mobile çalışan bir sistem tasarlanış ve uygulamaya konulmuştur. Bu proje ilerleyen zamanlarda biraz daha geliştirilerek, doğal afet kurtarma robotu yada insansız araç projesi olarak kullanılabilir.