Jiroskop ve ivmeölçerle kafanın yönü nasıl hesaplanıyor?
Kamerasız bir kafa takip cihazı kafanızı görmüyor. Peki o zaman nereye baktığınızı nasıl biliyor? Cevap, telefonunuzda ve oyun kumandanızda da bulunan iki küçük sensörde: jiroskop ve ivmeölçer. Bu yazıda bu sensörlerin ne ölçtüğünü ve bir yazılımın bu ölçümlerden kafanızın yönünü nasıl çıkardığını anlattık. Formül yok, sadece mantığı var.
Jiroskop: ne kadar hızlı dönüyorsunuz
Jiroskop açıyı değil, dönme hızını ölçüyor. "Kafa şu an 30° sağda" demiyor, "kafa saniyede 50° hızla sağa dönüyor" diyor. Bu hızı üç eksen için ayrı ayrı veriyor.
Açıyı bulmak için yazılımın bu hızları zamanla toplaması gerekiyor. Saniyede 50° hızla yarım saniye dönmüşseniz 25° dönmüş oluyorsunuz. Cihaz bu ölçümü saniyede yüzlerce kez yaptığı için hızlı hareketleri de kaçırmıyor. PiHead Tracker uygulamasının üstünde gördüğünüz Hz değeri, cihazın saniyede kaç ölçüm gönderdiğini gösteriyor.
Jiroskobun zayıf noktası da bu toplama işlemi. Sensör hareketsizken bile tam sıfır göstermiyor, çok küçük bir hata payı var. Toplama sırasında bu hata da birikiyor ve zamanla görüşün bir yana kaymasına yol açıyor. Bunu kayma yazımızda ayrıntılı anlattık.
İvmeölçer: yerçekimi nerede
İvmeölçer adı üstünde ivmeyi ölçüyor. Cihaz hareketsizken üzerine etki eden tek ivme yerçekimi oluyor. Yani ivmeölçer, cihaz dururken "aşağı" nerede onu gösteriyor. Kafanızı öne eğdiğinizde yerçekiminin sensöre göre yönü değişiyor, yazılım da buradan kafanızın ne kadar eğildiğini hesaplıyor.
İvmeölçerin de zayıf noktası var. Kafanızı hızlı çevirdiğinizde yerçekiminin yanında hareketin kendi ivmesini de ölçüyor, bu yüzden anlık ölçümleri titrek oluyor. Bir de yerçekimi sağa sola dönüşü göstermiyor. Kafanızı sağa çevirince "aşağı" hâlâ aynı yerde kalıyor.
İkisini birleştirmek
İki sensörün güçlü ve zayıf yanları birbirini tamamlıyor:
| Jiroskop | İvmeölçer | |
|---|---|---|
| Hızlı hareketler | Çok iyi | Titrek |
| Uzun süre doğruluk | Zamanla kayıyor | Kaymıyor |
| Sağa sola dönüş | Ölçüyor | Ölçemiyor |
Yazılım bu yüzden ikisini birlikte kullanıyor. Buna sensör birleştirme (sensor fusion) deniyor. Anlık hareketi jiroskoptan alıyor, ivmeölçerin gösterdiği yerçekimi yönünü de jiroskobun biriken hatasını yavaşça düzeltmek için kullanıyor. Sonuçta hem hızlı hem de zamanla bozulmayan bir yön bilgisi çıkıyor.
Bu düzeltme yukarı aşağı bakış ve yana eğim için çok iyi çalışıyor. Sağa sola dönüşte ise yerçekimi yardımcı olamadığı için yazılımın başka yöntemler kullanması gerekiyor. Cihaz durduğunda jiroskobun hata payını yeniden ölçmek ve merkeze yakın bakarken merkezi çok yavaşça düzeltmek bunların başında geliyor.
Neden pusula kullanılmıyor
Telefonlarda sağa sola dönüş için bir de manyetometre, yani elektronik pusula kullanılıyor. Kafa takibinde bu pek işe yaramıyor, çünkü cihaz bir kulaklığın üstünde duruyor. Kulaklık hoparlörlerindeki mıknatıslar, masadaki hoparlörler ve bilgisayar kasası manyetik alanı bozuyor. Pusula bu ortamda güvenilir bir yön veremiyor. PiHead Tracker bu yüzden pusula kullanmıyor ve sağa sola dönüşü yazılımla dengeliyor.
Kalibrasyon ne yapıyor
Uygulamadaki iki adım bu sensörlerle doğrudan ilgili:
- Gyro kalibrasyonu: cihaz masada hareketsiz dururken jiroskobun hata payını ölçüp hesaptan çıkarıyor. Kayma belirgin olduğunda işe yarıyor.
- Kurulum sihirbazı: düz bakarken ve öne eğilirken yerçekiminin yönünü ölçüyor. Buradan cihazın kulaklığa hangi yönde takıldığını hesaplıyor. Bu yüzden cihazı istediğiniz yönde takabiliyorsunuz.
Sonuç
Kamerasız bir kafa takip cihazının kalitesini sensörlerin yanında yazılım belirliyor. Aynı sensörle yapılan iki cihaz, birleştirme ve kayma düzeltmesine göre çok farklı hissettirebiliyor. Kafa takibi yöntemlerinin genel karşılaştırması için kafa takibi rehberimize bakabilirsiniz.