Ham GPS Verilerini Kullanarak Konum Hesaplama (2017)
(telesens.co)- GPS konum hesaplama, uydulara olan sözde mesafe (pseudorange), efemeris ve alıcı saat hatasının birlikte çözülmesi gereken bir problemdir; ham veriler Matlab ile işlenerek gerçek konum kestirimine kadar uygulanır
- Hesaplamalar için enlem·boylamdan çok WGS 84 ECEF koordinat sistemi uygundur; kullanıcıya göre azimut·yükseklik açısı ve hata analizi için ENU yerel koordinat sistemi de kullanılır
- Uydu konumu, GPS Interface Specification prosedürü ve yörünge parametreleriyle bulunur; sinyalin yolculuğu sırasında Dünya döndüğü için, gönderim anındaki koordinatlar alım anındaki ECEF çerçevesine göre düzeltilmelidir
- Kullanıcı konumu ve alıcı saat bias’ı, en az 4 uydunun düzeltilmiş sözde mesafeleriyle iteratif en küçük kareler uygulanarak kestirilir; örnek analizde iyonosfer·troposfer gecikmeleri hariç tutulur
- u-blox NEO-M8T/6T, RTKLib STRSVR, RTCM 1002/1019 ve goGPS kullanılan sabit alıcı deneyinde konum standart sapması East 14.00m, North 39.88m, Up 47.35m oldu; saat bias’ı 4.27e-7sec/sec ile doğrusal drift yaptı
GPS konum hesaplamasının temel problemi
- GPS’in temel görevi kullanıcının konumunu hesaplamaktır
- Enlem·boylam·yükseklik, yeryüzündeki konumu ifade etmek için tanıdık olsa da enlem veya boylamdaki 1 derecelik fark her zaman aynı fiziksel mesafeyi ifade etmediğinden matematiksel hesaplamalar için elverişsizdir
- Boylamda 1 derecelik farkın mesafesi ekvatorda en büyüktür, kutup bölgelerinde ise 0’a yaklaşır
- Hesaplama için birim koordinat farkının sabit bir fiziksel mesafeyi temsil ettiği dik koordinat sistemi gerekir
- GPS, birden fazla uyduya olan mesafeyi ve uydu konumlarını kullanarak kullanıcı konumunu bulur
- Önce uydulara olan mesafe ve her uydunun konumu hesaplanmalıdır
Koordinat sistemleri: ECEF, WGS 84, ENU
- Dünya’ya sabitlenmiş ve onunla birlikte dönen dik koordinat sistemine ECEF (Earth Centered, Earth Fixed) denir
- Yeryüzünde sabit duran bir kullanıcının koordinatları zaman içinde sabit kaldığı için kullanıcı konumunu ifade etmeye uygundur
- En yaygın kullanılan ECEF koordinat sistemi, ABD Savunma Bakanlığı tarafından geliştirilen WGS 84’tür
- Orijin, Dünya’nın kütle merkezidir
- z ekseni CTP’den (Conventional Terrestrial Pole) geçer
- CTP, 1900~1905 yılları arasındaki Dünya kutup konumlarının ortalamasıdır; gerçek kutup konumu yaklaşık 15m yarıçaplı bir çember içinde hareket eder
- x ekseni, CTP ekvator düzlemi ile referans meridyen olan Mean Greenwich Meridian’ın kesişim noktasından geçer
- Uydu hareketini Newton mekaniğine uygun olarak eylemsiz bir koordinat sisteminde ele almak doğaldır; ancak GPS Interface Specification, belirli bir andaki uydu konumunu ECEF çerçevesinde hesaplamak için bir prosedür sağlar
- Yerel uygulamalarda, kullanıcı konumunu orijin alan ENU (East-North-Up) koordinat sistemi kullanışlıdır
- ECEF koordinatları, kullanıcının enlem·boylamı kullanılarak yapılan matris çarpımıyla ENU koordinatlarına dönüştürülebilir
- Uydunun azimut ve yükseklik açısı hesaplamalarında ENU dönüşümü kullanılır
Yükseklik tanımı: referans elipsoidi ve jeoit
- Yükseklik için önce “neyin referans alınacağı” belirlenmelidir
- Referans elipsoidi (reference ellipsoid), Dünya’yı basık bir elipsoid olarak soyutlayan bir modeldir
- Dünya merkezinde yer alır ve dönme ekseni ECEF z ekseniyle çakışır
- Dünya küre kabul edildiğinde yaygın kullanılan 6371km yarıçap, büyük yarıçap ile küçük yarıçap arasında bir değerdir
- Gerçek yeryüzündeki bir nokta referans elipsoidinin üstünde veya altında olabilir
- Jeoit (geoid), aynı yerçekimi potansiyeli değerine sahip noktalar kümesidir ve fiziksel anlamı olan bir yüzeydir
- Jeoide göre yükseklik, ortometrik yükseklik veya ortalama deniz seviyesi (MSL) üzerindeki yükseklik olarak adlandırılır
- Jeoit genellikle referans elipsoidi üzerindeki yükseklik değerleri kümesi olarak belirtilir
- Enlem·boylam·yükseklik elipsoidal koordinatlar olarak tanımlanır
- Jeodezik enlem, P noktasında elipsoid yüzeyine dik olan doğru ile ekvator düzlemi arasındaki açıdır
- Dünya merkezi ile P noktasını birleştiren doğrunun açısı jeosantrik enlemdir; Dünya kusursuz bir küre olsaydı jeodezik enlemle aynı olurdu
- Elipsoidal koordinatlardan dik koordinatlara dönüşüm tek adımda mümkündür; ancak ECEF’ten elipsoidal koordinatlara dönüşüm için hızla yakınsayan iteratif bir prosedür gerekir
Uydu konumu hesaplama
- İdeal uydu yörüngesi, 6 Kepler yörünge elemanı ile tanımlanan eliptik bir yörüngedir
- 5 eleman elipsin boyutunu·şeklini ve yörünge düzleminin yönünü belirler
-
- eleman belirli bir epoch’ta uydunun konumunu belirler
- Gerçek uydu yörüngesi, Dünya’nın bileşimindeki düzensizlikler ile Güneş ve Ay’ın kütleçekim etkileri nedeniyle kusursuz bir elips değildir
- GPS, bu pertürbasyonları düzeltmek için 16 yörünge parametresi yayınlar
- GPS Interface Specification’ın table 20-IV bölümünde yörünge düzeltmelerini de içeren uydu konumu hesaplama prosedürü yer alır
- Kullanıcı konumu alım zamanı t’de hesaplanır; ancak GPS sinyali uydudan t-τ zamanında çıkar
- Uydu konumu, sinyal gönderim anı t-τ’de hesaplanır
- Sinyalin yol aldığı τ süresi boyunca Dünya döndüğünden, uydu konum vektörü Dünya’nın dönüş miktarı kadar döndürülerek alım zamanı t’deki kullanıcı ECEF çerçevesine uydurulur
- Bu, uydu konumunu basitçe t zamanında hesaplamakla aynı şey değildir
Sözde mesafe ve saat bias’ı
- GPS alıcısı, uydu sinyalinde yer alan gönderim zaman damgasını alıcı zamanı ile karşılaştırır ve farkı ışık hızıyla çarparak uyduya olan mesafeyi kabaca hesaplar
- Bu ölçüme sözde mesafe (pseudorange) denir
- Uydu saati ve alıcı saati tamamen senkronize olsaydı ve sinyal vakumda ışık hızıyla düz bir çizgide ilerleseydi gerçek mesafeye eşit olurdu
- Gerçekte ise saat ofsetleri ve atmosferik gecikmeler nedeniyle gerçek mesafeden farklıdır
- Uydu saat bias’ı, konum hatasını binlerce metreye çıkarabileceği için mutlaka düzeltilmelidir
- GPS ephemeris mesajındaki katsayılar kullanılarak bir polinom ve göreli düzeltme terimiyle hesaplanır
- Düzeltmenin büyük kısmını polinom sağlar; göreli etki ise uydu konumuna bağlı olarak yaklaşık 1~10m katkı yapar
- Alıcı saat bias’ı, kullanıcı konumuyla birlikte kestirilmesi gereken bilinmeyen bir değişkendir
- Algoritmada saat bias’ı ışık hızıyla çarpılarak mesafe biriminde ele alınır
- Atmosferik gecikme iyonosfer ve troposfer bileşenlerine ayrılır
- İyonosfer gecikmesi genellikle yaklaşık 25m konum hatasına yol açar
- Troposfer gecikmesi genellikle yaklaşık 2m konum hatasına yol açar
- Metindeki deney analizinde bu gecikmeler yok sayılır
Kullanıcı konumu ve saat bias’ı kestirim algoritması
- Düzeltilmiş sözde mesafe ölçümü, gerçek kullanıcı-uydu mesafesi, alıcı saat bias’ı ve modellenmemiş hataların toplamı olarak ifade edilir
- Kullanıcı konumu ve saat bias’ı, ölçülen sözde mesafe ile tahmin edilen sözde mesafe arasındaki farkı en aza indiren değerler olarak bulunur
- Çözüm, iteratif en küçük kareler prosedürüdür
- Kullanıcı konumu başlangıç değeri
[0 0 0] - Kullanıcı saat bias’ı başlangıç değeri
0 - Her iterasyonda, mevcut konum kestirimine göre uydu yönü birim vektörleri yığılarak G matrisi oluşturulur
- Konum düzeltmesi ve saat bias’ı düzeltmesi çözülür; değişim miktarı eşik değerden küçük olana kadar tekrarlanır
- Kullanıcı konumu başlangıç değeri
- Tam olarak 4 uydu varsa ve konfigürasyon dejenere değilse doğrudan çözüm bulunabilir
- Gökyüzü engellenmiyorsa daha fazla uydu görünür ve genellikle en küçük kareler çözümü kullanılır
- Uygulama prosedürü şu akışı izler
- Ham sözde mesafe ve uydu ephemeris’i girdi olarak alır
- Her uydu için saat bias’ı hesaplanır ve sözde mesafe düzeltilir
- Mümkünse iyonosfer·troposfer düzeltmeleri uygulanır
- Mevcut alıcı saat bias’ına göre sözde mesafe düzeltilir
- Sözde mesafe ışık hızına bölünerek sinyal iletim süresi τ bulunur
- t-τ zamanındaki uydu konumu hesaplanır
- τ süresindeki Dünya dönüşü hesaba katılarak uydu konumu kullanıcı ECEF çerçevesine uydurulur
- G matrisi ve sözde mesafe farkı oluşturulur; konum ve saat bias’ı düzeltmesi hesaplanır
Matlab uygulamasındaki ayrıntılar
- Matlab kodunun çoğu, sağ taraftaki bilinen değerlerle sol taraftaki bilinmeyenleri tek seferde değerlendiren biçimdedir
- Bazı hesaplamaların analitik kapalı biçimli çözümü olmadığı için solver gerekir
- Örnek, uydu konumu hesaplamasında ortalama anomali M’den eksantrik anomali E’yi bulma adımıdır
E - e*sin(E) == Milişkisi kapalı biçimde çözülemediği içinvpasolvekullanılır
- Ek kod şu işlevleri içerir
- Kullanıcı konumu ve saat bias’ı hesaplama
- Uydu konumu hesaplama
- Kullanıcı konumu ve saat bias’ı için en küçük kareler çözümünü hesaplama
- Uydu saat bias’ını hesaplama
- ECEF WGS84 koordinatlarını elipsoidal koordinatlara dönüştürme
- ephemeris veri formatı dönüştürme
Ham GPS verisi toplama yapılandırması
- Ham GPS verisi elde etmek için, yalnızca içeride konumu hesaplayıp dışarı veren sıradan bir GPS cihazı değil, ham sözde mesafe ve uydu ephemeris’i gibi timing bilgilerini çıktı olarak veren bir alıcı gerekir
- u-blox NEO-M8T ve 6T çipleri bu gereksinimleri karşılar
- GPS ünitesi, anten ve seri çıkış portu içeren donanım montajı Amazon’dan yaklaşık 40 dolara satın alınabilir
- Ham GPS sinyalini almak ve saklamak için RTKLib’in STRSVR aracı kullanılır
- RTKLib; GPS, Glonass, Galileo, Baidu gibi GNSS’lerde standart ve hassas konumlandırmayı destekleyen açık kaynaklı bir program paketidir
- STRSVR, u-blox alıcısının özel formatlı çıktısını RTCM standart formatına dönüştürür
- Gerekli bilgiler RTCM mesajları 1002 ve 1019 içinde yer alır
- 1002 ham sözde mesafe bilgisini içerir
- 1019 uydu ephemeris bilgisini içerir
- STRSVR, seri porttan 9600 Baud ile veri alacak ve RTCM 3 formatında dosya olarak kaydedecek şekilde yapılandırılır
- Veri toplama bir apartman binasının çatısında yapılır
- GPS alıcısı gökyüzünün kapanmadığı bir konuma yerleştirilir
- u-blox u-center yazılımıyla yeterli uydunun göründüğü ve iyi bir position fix’in mümkün olduğu doğrulanır
- Yaklaşık 1 saatlik ham GPS verisi toplanır
RTCM işleme ve goGPS kullanımı
- STRSVR ham GPS verilerini ikili RTCM3 formatında saklar
- Matlab’da işlemek için RTCM3 verilerinin decode edilip Matlab veri yapısına dönüştürülmesi gerekir
- Doğrudan RTCM decoder yazmak yerine goGPS Matlab kütüphanesinin
load_streamfonksiyonu kullanılır- RTCM formatındaki dosyayı okur ve RTCM mesajlarını çıkarır
- Çıkarılan verileri
.matdosyası olarak kaydedip konum hesaplama algoritmasının girdisi olarak kullanır
rtcm_datadosyası da sağlanır- WordPress güvenlik kısıtlamaları nedeniyle
.matyerine.txtuzantısıyla sağlanır - İndirdikten sonra yeniden
.matolarak adlandırılmalıdır
- WordPress güvenlik kısıtlamaları nedeniyle
Deney sonuçları: konum değişimi ve saat drift’i
- Alıcı veri toplama sırasında sabit durduğu için, hesaplanan konumun zamana göre değişimi konum hesaplama algoritmasının gerçek performansını gösterir
- Kullanıcı merkezli ENU çerçevesinde konum bileşenlerinin standart sapması şöyledir
- East: 14.00m
- North: 39.88m
- Up: 47.35m
- Konum değişimi East ve North yönlerinde yaklaşık 30m düzeyindedir; Up yönünde daha büyüktür
- Alıcı saat bias’ı sabit değildir, zamanla doğrusal olarak drift yapar
- Saat bias’ı algoritmada mesafe biriminde ele alınır
- Sonuç grafiğinde ışık hızına bölünerek zaman birimine dönüştürülür
- Drift miktarı 4.27e-7sec/sec’dir
Uydu azimut ve yükseklik açısı hesaplama
- Uydunun azimut ve yükseklik açısı kullanıcı bakış açısından tanımlandığı için kullanıcı merkezli ENU çerçevesinde hesaplanır
- Hesaplama prosedürü şöyledir
- ECEF çerçevesinde kullanıcıdan uyduya yönelen konum vektörü hesaplanır
- Kullanıcı konumu elipsoidal koordinatlar olan enlem·boylama dönüştürülür
- İlgili konum vektörü kullanıcı merkezli ENU çerçevesine döndürülür
- ENU koordinatlarıyla azimut ve yükseklik açısı hesaplanır
- Örnek epoch’ta hesaplanan 8 uydunun yükseklik açılarının tamamı pozitiftir
- Azimut hem pozitif hem negatif olabilir
- Kullanıcı ufkun altındaki uyduları göremeyeceği için yükseklik açısının pozitif olması doğaldır
- Birden fazla epoch’ta aynı prosedürle uydu konumları hesaplanırsa GPS işleme yazılımının gösterdiği satellite track chart oluşturulabilir
DOP: konum kestirim kalitesinin geometrik unsuru
- DOP (Dilution of Precision), konum kestiriminin ne kadar iyi olduğunu değerlendiren bir göstergedir
- Konum hatasını yalnızca ölçüm gürültüsü değil, kullanıcı-uydu geometrisi de etkiler
- Sözde mesafe ve uydu konumu ölçümleri ne kadar gürültülüyse konum hatası o kadar büyür
- Uydular azimut ve yükseklik açısında ne kadar geniş yayılmışsa geometri o kadar elverişlidir ve DOP o kadar düşük olur
- Konum ve saat bias’ı hatasının kovaryansı, kullanıcı mesafe hatası ve G matrisinin bir fonksiyonu olarak ayrıştırılır
- G matrisi, kullanıcıdan uydulara yönelen birim vektörlerden oluşur
- ECEF çerçevesindeki G matrisi, DOP hesaplamasını kolaylaştırmak için ENU çerçevesine döndürülür
- DOP bileşenleri East, North, Up yönlerinde tanımlanır
- HDOP, East ve North bileşenlerini birleştiren yatay DOP’tur
- VDOP, Up bileşeninin dikey DOP’udur
- Gerçek veride HDOP ve VDOP çoğunlukla 2.5’in altındadır
- Bu değer yeterli seviye olarak kabul edilir
- VDOP, HDOP’tan büyüktür
- Yeryüzündeki kullanıcılar ufkun altındaki uyduları gözlemleyemez; ufkun 10 derece altındaki uydu sinyalleri de çok gürültülü olduğu için genellikle kullanılmaz, bu nedenle VDOP yükselir
GPS altyapısının ölçeği
- GPS takımyıldızını kurmak yaklaşık 30 milyar dolara mal oldu; ABD hükümeti bakım için yılda yaklaşık 1 milyar dolar harcıyor
- GPS olmadan var olamayacak Uber’in değerinin 70 milyar doların üzerinde olduğu belirtiliyor
- GPS’in mümkün kıldığı çeşitli uygulamalar da dahil edildiğinde, GPS’e yapılan kamu yatırımı çok büyük ekonomik ve teknolojik etki yaratmış bir örnek olarak görülebilir
1 yorum
Hacker News görüşleri
Android, epey zamandır taşıyıcı fazına (carrier phase) erişim sağlıyor ve bu sayede aynı mahalle civarındaki cihazlar arasında, GNSS anteninin cihazın içinde tam olarak nerede saklandığını önemseyecek kadar hassas bağıl konum hesaplamak mümkün
Bu tek başına çok büyük bir şey değil, ama her cihazın ivmeölçeri ve jiroskobuyla birleştirildiğinde daha iyi hale geliyor
GNSS sözde mesafe ölçümlerindeki değişimler durmuyor olsanız bile tahmin edilebilir olduğu için, gerçek zamanlı çalışırken de performans kaybı küçük kalıyor
Örneğin tekerleksiz bir model uçağı kamyon kasasına otomatik iniş yaptırabilir, çizilme riskinden ve çim piste bağımlılıktan kaçınabilirsiniz
Güç tüketimi aşırı kritik değilse, oldukça iyi bir GNSS alıcısını pahalıya mal etmek de gerekmiyor; neden 100 dolara bir çiftinin doğrudan satın alınamadığını bilmiyorum
İşte 30 dolarlık bir GNSS alıcısı. Biraz gereksiz ıvır zıvır da yanında geliyor
Kendi GPS alıcısını yapmak isteyenler için, teoriyi de bolca anlatan tam bir açık kaynak proje var: http://www.aholme.co.uk/GPS/Main.htm
https://lea.hamradio.si/~s53mv/navsats/theory.html
GPS yorumlarında sık sık paylaşılan ama bunun iyi bir nedeni olan bir yazı: https://ciechanow.ski/gps/
Farklı bir açıklama ve muhtemelen daha etkileşimli:
https://ciechanow.ski/gps/
Bir başka iyi açık kaynak uygulama daha var:
https://m.youtube.com/watch?v=dVD1Yws__v0
Bazen, hem de su yüzüne çok kısa süreliğine çıkan sucul canlıların GPS verilerini toplayan araştırmacılar gördüm
Ham veriyi kaydedip sonradan işleyince hem güç tüketimi hem de uydu sinyaline maruz kalınması gereken asgari süre ciddi biçimde azalıyor; maruz kalma süresi 1 saniyenin de altına inebiliyor
“Aşağıdaki şekil, kullanıcı-kaynak geometrisinin kullanıcı konumundaki belirsizliği nasıl etkilediğini gösteriyor” kısmını görünce, telefon harita uygulamalarında konum belirsizliği şeklinin daire yerine böyle bir yay kesişimi biçimi olarak gösterilmesini sağlayan bir ayar olsa güzel olur diye düşündüm
GPS'in, günlük hayatta görelilik etkilerini hesaba katmanız gereken az sayıdaki uygulamadan biri olduğunu duymuştum. O halde üretilen verilerde bu görelilik etkileri zaten çıkarılmış oluyor mu?
Ticari GPS cihazının çıktısından söz ediyorsanız, evet. Çıktının oluşturulması için yapılan alım sonrası işlemede her türlü hata kaynağı etkisi düzeltilir
Bu yazı, çeşitli uydulardan akış halinde gelen ham GPS verisini ele alıyor; burada çıktı değerleri üretmek için işleme gerekir ve doğruluğu artırmak için yer istasyonları ya da diferansiyel düzeltmeler gibi ek girdiler de sıkça kullanılır
Çeşitli GPS ekipmanı sağlayıcıları büyük ölçüde benzer şeyler yapar, ama ayrıntılar kritik önemdedir
Diğer yorumların bağlantı verdiği https://ciechanow.ski/gps/ de okunması keyifli bir kaynak
Gözlemciden daha hızlı hareket eden nesnelerde zaman daha yavaş akar ve uydular epey hızlı hareket eder
GPS'te gözlemci ile uydu arasındaki zamanın senkronize olması gerektiğinden, zaman akışı özel görelilik ve genel görelilik etkilerini yansıtacak şekilde düzeltilir
Bu yüzden görelilik önemlidir, ama kendi konumunuzu çözmek için göreliliği çok iyi bilmeniz gerekmez
Yine de bazı uzun baz hattı / ağ RTK türlerinde daha ayrıntılı modelleme gerekebilir
Bir sonraki adım PPP ya da RTK. GNSS, olasılıklar açısından çok keyifli bir tavşan deliği
Düz Dünya savunucularına alıştırma sorusu: Küresel bir Dünya'nın etrafında dönen uydular olmadan telefonunuzdaki GPS haritasının nasıl çalıştığını açıklayın. Çözüm adımlarını gösterin
Ama önce, uydular olmadan telefonların bunu yapamayacağına dair epey karmaşık bir argüman kurmanız gerekir
Bundan biraz daha kolay ve bir düz Dünya savunucusunun geçiştirmesinin daha zor olduğu örnek ise, ISS'nin çıplak gözle neredeyse görülebildiği ve arka bahçedeki bir teleskopla kesinlikle görülebildiğidir. Starlink uyduları da benzer
Düz Dünya inancı, akıl yürüterek varılmış bir sonuç değil; neredeyse her zaman kafa karışıklığından ya da sarsılmaz çekirdek inançların kaçınılmaz sonucundan doğuyor. Genelde İncil'i aşırı derecede harfi harfine okumaktan ya da “resmî olan her şey yalandır” türü paranoyak sanrılardan kaynaklanıyor