1 poin oleh GN⁺ 2024-07-16 | 1 komentar | Bagikan ke WhatsApp
  • Perhitungan posisi GPS adalah masalah yang harus menyelesaikan pseudorange ke satelit, ephemeris, dan galat jam penerima secara bersamaan; data mentah diproses dengan Matlab hingga mengimplementasikan estimasi posisi nyata
  • Untuk perhitungan, sistem koordinat WGS 84 ECEF lebih cocok daripada lintang dan bujur, dan sistem koordinat lokal ENU juga digunakan untuk azimut, sudut elevasi berbasis pengguna, serta analisis galat
  • Posisi satelit dihitung dengan prosedur GPS Interface Specification dan parameter orbit; karena Bumi berotasi selama sinyal bergerak, koordinat pada saat transmisi harus dikoreksi agar sesuai dengan frame ECEF pada saat penerimaan
  • Posisi pengguna dan bias jam penerima diestimasi dengan melakukan iterative least squares pada pseudorange terkoreksi dari sedikitnya 4 satelit, dan analisis contoh mengecualikan delay ionosfer serta troposfer
  • Dalam eksperimen penerima stasioner yang menggunakan u-blox NEO-M8T/6T, RTKLib STRSVR, RTCM 1002/1019, dan goGPS, simpangan baku posisi adalah East 14,00 m, North 39,88 m, Up 47,35 m, dan bias jam mengalami drift linear sebesar 4.27e-7sec/sec

Masalah dasar perhitungan posisi GPS

  • Tugas inti GPS adalah menghitung posisi pengguna
  • Lintang, bujur, dan ketinggian memang akrab untuk merepresentasikan posisi di permukaan Bumi, tetapi tidak nyaman untuk perhitungan matematis karena selisih 1 derajat lintang atau bujur tidak selalu berarti jarak fisik yang sama
    • Jarak untuk selisih 1 derajat bujur paling besar di khatulistiwa dan mendekati 0 di wilayah kutub
  • Untuk perhitungan, diperlukan sistem koordinat Kartesius di mana selisih satuan koordinat merepresentasikan jarak fisik yang konstan
  • GPS menentukan posisi pengguna menggunakan jarak ke beberapa satelit dan posisi satelit tersebut
    • Pertama, jarak ke satelit dan posisi masing-masing satelit harus dihitung

Sistem koordinat: ECEF, WGS 84, ENU

  • Sistem koordinat Kartesius yang tetap terhadap Bumi dan berotasi bersama Bumi disebut ECEF(Earth Centered, Earth Fixed)
    • Karena koordinat pengguna yang diam di permukaan Bumi tetap konstan seiring waktu, sistem ini cocok untuk merepresentasikan posisi pengguna
  • Sistem koordinat ECEF yang paling umum digunakan adalah WGS 84, yang dikembangkan oleh Departemen Pertahanan AS
    • Titik asalnya adalah pusat massa Bumi
    • Sumbu z melewati CTP(Conventional Terrestrial Pole)
    • CTP adalah rata-rata posisi kutub Bumi pada 1900–1905, sementara posisi kutub sebenarnya bergerak di dalam lingkaran berjari-jari sekitar 15 m
    • Sumbu x melewati titik perpotongan bidang ekuator CTP dan meridian acuan, Mean Greenwich Meridian
  • Gerak satelit secara alami ditangani dalam sistem koordinat inersial sesuai mekanika Newton, tetapi GPS Interface Specification menyediakan prosedur untuk menghitung posisi satelit pada waktu tertentu dalam frame ECEF
  • Untuk aplikasi lokal, sistem koordinat ENU(East-North-Up) yang berpusat pada posisi pengguna lebih praktis
    • Koordinat ECEF dapat dikonversi ke koordinat ENU melalui perkalian matriks menggunakan lintang dan bujur pengguna
    • Transformasi ENU digunakan untuk menghitung azimut dan sudut elevasi satelit

Definisi ketinggian: elipsoid referensi dan geoid

  • Untuk ketinggian, pertama-tama harus ditentukan “diukur relatif terhadap apa”
  • Elipsoid referensi(reference ellipsoid) adalah model yang mengabstraksikan Bumi sebagai elipsoid pepat
    • Berada di pusat Bumi, dan sumbu rotasinya sejajar dengan sumbu z ECEF
    • Radius 6371 km yang umum digunakan ketika menganggap Bumi sebagai bola adalah nilai di antara sumbu semi-mayor dan semi-minor
    • Suatu titik pada permukaan Bumi nyata dapat berada di atas atau di bawah elipsoid referensi
  • Geoid(geoid) adalah himpunan titik-titik yang memiliki nilai potensial gravitasi yang sama, yaitu permukaan yang memiliki makna fisik
    • Ketinggian berbasis geoid disebut tinggi ortometrik atau tinggi di atas permukaan laut rata-rata(MSL)
    • Geoid biasanya ditentukan sebagai himpunan nilai ketinggian di atas elipsoid referensi
  • Lintang, bujur, dan ketinggian didefinisikan sebagai koordinat elipsoidal
    • Lintang geodetik adalah sudut antara garis yang tegak lurus terhadap permukaan elipsoid di titik P dan bidang ekuator
    • Sudut garis yang menghubungkan pusat Bumi dan titik P adalah lintang geosentrik; jika Bumi adalah bola sempurna, nilainya sama dengan lintang geodetik
  • Konversi dari koordinat elipsoidal ke koordinat Kartesius dapat dilakukan dalam satu langkah, tetapi konversi dari ECEF ke koordinat elipsoidal memerlukan prosedur iteratif yang cepat konvergen

Perhitungan posisi satelit

  • Orbit satelit ideal adalah orbit elips yang dideskripsikan oleh 6 elemen orbit Kepler
    • 5 elemen menentukan ukuran dan bentuk elips serta arah bidang orbit
    • Elemen ke-6 menentukan posisi satelit pada epoch tertentu
  • Orbit satelit nyata bukan elips sempurna karena ketidakseragaman komposisi Bumi serta pengaruh gravitasi Matahari dan Bulan
  • GPS menyiarkan 16 parameter orbit untuk mengoreksi perturbasi ini
    • Table 20-IV pada GPS Interface Specification berisi prosedur perhitungan posisi satelit yang mencakup koreksi orbit
  • Posisi pengguna dihitung pada waktu penerimaan t, tetapi sinyal GPS berangkat dari satelit pada waktu t-τ
    • Posisi satelit dihitung pada saat transmisi sinyal t-τ
    • Karena Bumi berotasi selama τ saat sinyal bergerak, vektor posisi satelit diputar sebesar rotasi Bumi agar sesuai dengan frame ECEF pengguna pada saat penerimaan t
    • Ini tidak sama dengan sekadar menghitung posisi satelit pada waktu t

Pseudorange dan bias jam

  • Penerima GPS membandingkan timestamp transmisi yang terdapat dalam sinyal satelit dengan waktu penerima, lalu mengalikan selisihnya dengan kecepatan cahaya untuk memperkirakan jarak ke satelit secara kasar
  • Nilai pengukuran ini adalah pseudorange
    • Jika jam satelit dan jam penerima tersinkronisasi sempurna dan sinyal bergerak dalam garis lurus di vakum dengan kecepatan cahaya, nilainya sama dengan jarak sebenarnya
    • Dalam praktiknya, nilainya berbeda dari jarak sebenarnya karena offset jam dan delay atmosfer
  • Bias jam satelit dapat menyebabkan galat posisi hingga ribuan meter, sehingga harus dikoreksi
    • Dihitung menggunakan polinomial berbasis koefisien dalam pesan GPS ephemeris dan suku relativistik
    • Polinomial menyediakan sebagian besar koreksi, sementara efek relativistik berkontribusi sekitar 1–10 m tergantung posisi satelit
  • Bias jam penerima adalah variabel tak diketahui yang harus diestimasi bersama posisi pengguna
    • Dalam algoritme, bias jam diperlakukan dalam satuan jarak dengan mengalikannya dengan kecepatan cahaya
  • Delay atmosfer dibagi menjadi komponen ionosfer dan troposfer
    • Delay ionosfer biasanya menyebabkan galat posisi sekitar 25 m
    • Delay troposfer biasanya menyebabkan galat posisi sekitar 2 m
    • Dalam analisis eksperimen artikel ini, delay tersebut diabaikan

Algoritme estimasi posisi pengguna dan bias jam

  • Pengukuran pseudorange terkoreksi dinyatakan sebagai jumlah dari jarak pengguna-satelit sebenarnya, bias jam penerima, dan galat yang tidak termodelkan
  • Posisi pengguna dan bias jam dicari sebagai nilai yang meminimalkan selisih antara pseudorange terukur dan pseudorange terprediksi
  • Solusinya adalah prosedur iterative least squares
    • Nilai awal posisi pengguna adalah [0 0 0]
    • Nilai awal bias jam pengguna adalah 0
    • Pada setiap iterasi, matriks G dibentuk dengan menumpuk vektor satuan arah satelit berdasarkan estimasi posisi saat ini
    • Besaran koreksi posisi dan koreksi bias jam diselesaikan, lalu iterasi diulang hingga perubahan lebih kecil dari ambang batas
  • Jika ada tepat 4 satelit dan konfigurasinya tidak degenerat, solusi langsung dapat diperoleh
    • Jika langit tidak terhalang, lebih banyak satelit akan terlihat, dan umumnya digunakan solusi least squares
  • Alur implementasinya sebagai berikut
    • Menerima pseudorange mentah dan ephemeris satelit sebagai input
    • Menghitung bias jam untuk tiap satelit dan mengoreksi pseudorange
    • Jika memungkinkan, menerapkan koreksi ionosfer dan troposfer
    • Mengoreksi pseudorange dengan bias jam penerima saat ini
    • Membagi pseudorange dengan kecepatan cahaya untuk memperoleh waktu tempuh sinyal τ
    • Menghitung posisi satelit pada waktu t-τ
    • Mencocokkan posisi satelit ke frame ECEF pengguna dengan memperhitungkan rotasi Bumi selama τ
    • Membuat matriks G dan selisih pseudorange, lalu menghitung koreksi posisi dan bias jam

Detail implementasi Matlab

  • Sebagian besar kode Matlab berbentuk evaluasi sekaligus terhadap variabel tak diketahui di sisi kiri menggunakan nilai-nilai yang diketahui di sisi kanan
  • Beberapa perhitungan tidak memiliki solusi analitik bentuk tertutup sehingga memerlukan solver
    • Contohnya adalah tahap menghitung eccentric anomaly E dari mean anomaly M dalam perhitungan posisi satelit
    • Relasi E - e*sin(E) == M tidak dapat diselesaikan dalam bentuk tertutup, sehingga digunakan vpasolve
  • Kode lampiran mencakup fungsi-fungsi berikut
    • Perhitungan posisi pengguna dan bias jam
    • Perhitungan posisi satelit
    • Perhitungan solusi least squares untuk posisi pengguna dan bias jam
    • Perhitungan bias jam satelit
    • Konversi koordinat ECEF WGS84 ke koordinat elipsoidal
    • Konversi format data ephemeris

Konfigurasi pengumpulan data GPS mentah

  • Untuk memperoleh data GPS mentah, diperlukan penerima yang mengeluarkan informasi timing seperti pseudorange mentah dan ephemeris satelit, bukan perangkat GPS umum yang hanya menghitung dan mengeluarkan posisi secara internal
  • Chip u-blox NEO-M8T dan 6T memenuhi persyaratan ini
    • Rangkaian hardware yang mencakup unit GPS, antena, dan port output serial dapat dibeli di Amazon dengan harga sekitar 40 dolar
  • Untuk menerima dan menyimpan sinyal GPS mentah, digunakan utilitas STRSVR dari RTKLib
    • RTKLib adalah paket program open-source yang mendukung positioning standar dan presisi untuk GNSS seperti GPS, Glonass, Galileo, dan Baidu
    • STRSVR mengonversi output format kustom dari penerima u-blox ke format standar RTCM
  • Informasi yang diperlukan terdapat dalam pesan RTCM 1002 dan 1019
    • 1002 memuat informasi pseudorange mentah
    • 1019 memuat informasi ephemeris satelit
  • STRSVR dikonfigurasi untuk menerima data melalui port serial 9600 Baud dan menyimpannya sebagai file format RTCM 3
  • Pengumpulan data dilakukan di atap gedung apartemen
    • Penerima GPS ditempatkan di lokasi dengan langit yang tidak terhalang
    • Software u-blox u-center digunakan untuk memastikan cukup banyak satelit terlihat dan position fix yang baik dapat diperoleh
    • Data GPS mentah dikumpulkan selama sekitar 1 jam

Pemrosesan RTCM dan penggunaan goGPS

  • STRSVR menyimpan data GPS mentah dalam format biner RTCM3
  • Untuk memprosesnya di Matlab, data RTCM3 harus didekode menjadi struktur data Matlab
  • Alih-alih menulis decoder RTCM sendiri, digunakan fungsi load_stream dari library Matlab goGPS
    • Membaca file format RTCM dan mengekstrak pesan RTCM
    • Menyimpan data yang diekstrak sebagai file .mat untuk digunakan sebagai input algoritme perhitungan posisi
  • File rtcm_data juga disediakan
    • Karena pembatasan keamanan WordPress, file diberikan dengan ekstensi .txt, bukan .mat
    • Setelah diunduh, namanya harus diubah kembali menjadi .mat

Hasil eksperimen: perubahan posisi dan drift jam

  • Karena penerima diam selama pengumpulan data, perubahan posisi yang dihitung sepanjang waktu menunjukkan kinerja nyata algoritme perhitungan posisi
  • Simpangan baku komponen posisi dalam frame ENU yang berpusat pada pengguna adalah sebagai berikut
    • East: 14.00m
    • North: 39.88m
    • Up: 47.35m
  • Perubahan posisi berada pada kisaran sekitar 30 m di arah East dan North, dan lebih besar di arah Up
  • Bias jam penerima bukan konstanta, melainkan mengalami drift linear seiring waktu
    • Dalam algoritme, bias jam diperlakukan dalam satuan jarak
    • Pada plot hasil, nilainya dibagi dengan kecepatan cahaya untuk dikonversi ke satuan waktu
    • Besar drift adalah 4.27e-7sec/sec

Perhitungan azimut dan sudut elevasi satelit

  • Azimut dan sudut elevasi satelit didefinisikan dari perspektif pengguna, sehingga dihitung dalam frame ENU yang berpusat pada pengguna
  • Prosedur perhitungannya sebagai berikut
    • Menghitung vektor posisi dari pengguna ke satelit dalam frame ECEF
    • Mengonversi posisi pengguna ke koordinat elipsoidal, yaitu lintang dan bujur
    • Memutar vektor posisi tersebut ke frame ENU yang berpusat pada pengguna
    • Menghitung azimut dan sudut elevasi dari koordinat ENU
  • Pada epoch contoh, sudut elevasi dari 8 satelit yang dihitung semuanya bernilai positif
    • Azimut dapat bernilai positif maupun negatif
    • Karena pengguna tidak dapat melihat satelit di bawah horizon, wajar jika sudut elevasi bernilai positif
  • Jika posisi satelit dihitung dengan prosedur yang sama pada beberapa epoch, dapat dibuat satellite track chart seperti yang ditampilkan software pemrosesan GPS

DOP: faktor geometris kualitas estimasi posisi

  • DOP(Dilution of Precision) adalah indikator untuk mengevaluasi seberapa baik estimasi posisi
  • Galat posisi dipengaruhi bukan hanya oleh noise pengukuran, tetapi juga oleh geometri pengguna-satelit
    • Semakin bising pengukuran pseudorange dan posisi satelit, semakin besar galat posisi
    • Semakin tersebar satelit dalam azimut dan sudut elevasi, semakin menguntungkan geometrinya dan semakin rendah DOP
  • Kovarians galat posisi dan bias jam diuraikan sebagai fungsi dari galat jarak pengguna dan matriks G
    • Matriks G terdiri dari vektor-vektor satuan dari pengguna menuju satelit
    • Matriks G dalam frame ECEF diputar ke frame ENU demi kemudahan perhitungan DOP
  • Komponen DOP didefinisikan dalam arah East, North, dan Up
    • HDOP adalah DOP horizontal yang menggabungkan komponen East dan North
    • VDOP adalah DOP vertikal pada komponen Up
  • Pada data nyata, HDOP dan VDOP umumnya di bawah 2,5
    • Nilai ini dianggap memadai
    • VDOP lebih besar daripada HDOP
    • Karena pengguna di permukaan tidak dapat mengamati satelit di bawah horizon, dan sinyal satelit yang berada kurang dari 10 derajat di atas horizon terlalu bising sehingga umumnya tidak digunakan, VDOP menjadi lebih tinggi

Skala infrastruktur GPS

  • Pembangunan konstelasi GPS menelan biaya sekitar 30 miliar dolar, dan pemerintah AS mengeluarkan sekitar 1 miliar dolar per tahun untuk pemeliharaannya
  • Nilai Uber, yang tidak akan mungkin ada tanpa GPS, disebutkan lebih dari 70 miliar dolar
  • Jika mencakup berbagai aplikasi yang dimungkinkan oleh GPS, investasi publik pada GPS dapat dilihat sebagai contoh yang menciptakan dampak ekonomi dan teknis yang sangat besar

1 komentar

 
GN⁺ 2024-07-16
Komentar Hacker News
  • Android sudah sejak lama menyediakan akses ke carrier phase (fase pembawa), dan dengan itu posisi relatif antarperangkat yang berada di kawasan yang sama bisa dihitung dengan presisi sampai-sampai posisi antena GNSS yang tersembunyi di dalam perangkat perlu diperhatikan
    Ini sendiri belum terlalu luar biasa, tetapi menjadi lebih baik jika digabungkan dengan akselerometer dan giroskop tiap perangkat
    Karena perubahan pengukuran pseudorange GNSS dapat diprediksi meski tidak sedang diam, sistem ini bisa bekerja secara real time dengan penurunan performa yang kecil
    Misalnya, pesawat model tanpa roda bisa mendarat otomatis di bak truk, sambil menghindari goresan maupun ketergantungan pada landasan rumput
    Jika konsumsi daya bukan hal yang sangat penting, penerima GNSS yang cukup bagus juga tidak perlu dibuat mahal, jadi saya tidak mengerti kenapa kita tidak bisa begitu saja membeli sepasang seharga 100 dolar

  • Bagi yang ingin membuat penerima GPS sendiri, ada proyek open source lengkap yang juga banyak menjelaskan teorinya: http://www.aholme.co.uk/GPS/Main.htm

  • Tulisan yang sering muncul di komentar GPS, dan memang ada alasannya: https://ciechanow.ski/gps/

  • Penjelasan lain, dan mungkin lebih interaktif:
    https://ciechanow.ski/gps/

  • Ada juga implementasi open source lain yang cukup bagus:
    https://m.youtube.com/watch?v=dVD1Yws__v0

  • Kadang saya melihat peneliti yang mengumpulkan data GPS makhluk akuatik yang hanya muncul ke permukaan, itu pun sangat singkat
    Dengan merekam data mentah lalu memprosesnya belakangan, baik konsumsi daya maupun waktu minimum yang dibutuhkan untuk terpapar sinyal satelit bisa dikurangi drastis, dan waktu paparan bisa turun hingga kurang dari 1 detik

  • Setelah membaca bagian “Gambar di bawah menunjukkan bagaimana geometri pengguna-sumber memengaruhi ketidakpastian posisi pengguna”, saya jadi berpikir akan bagus jika ada pengaturan di aplikasi peta ponsel yang mengubah bentuk ketidakpastian lokasi dari lingkaran menjadi bentuk perpotongan busur seperti ini

  • Saya pernah mendengar bahwa GPS adalah salah satu dari sedikit aplikasi dalam kehidupan sehari-hari yang memang perlu mempertimbangkan efek relativistik. Kalau begitu, apakah benar data yang dihasilkan sudah lebih dulu dikoreksi dari efek relativistik semacam itu?

    • Yang dimaksud dengan “data yang dihasilkan” itu tepatnya apa, dan data yang dihasilkan oleh siapa?
      Jika yang dimaksud adalah keluaran perangkat GPS komersial, maka ya. Dalam pemrosesan pascaakuisisi untuk menghasilkan output, berbagai efek penyebab kesalahan dikoreksi
      Artikel ini membahas data GPS mentah yang dialirkan dari beberapa satelit, dan untuk menghasilkan output dari sana diperlukan pemrosesan, kadang juga masukan tambahan seperti stasiun darat atau koreksi maritim untuk meningkatkan akurasi
      Banyak pemasok perangkat GPS pada dasarnya melakukan hal yang serupa, tetapi detailnya sangat penting
      https://ciechanow.ski/gps/ yang ditautkan komentar lain juga enak dibaca
    • Waktu mengalir berbeda tergantung pada kuatnya “gaya” gravitasi, atau lebih tepatnya pada laju benda jatuh ke dalam kelengkungan ruang-waktu yang disebabkan oleh massa Bumi
      Pada benda yang bergerak lebih cepat daripada pengamat, waktu juga mengalir lebih lambat, dan satelit bergerak cukup cepat
      GPS membutuhkan sinkronisasi waktu antara pengamat dan satelit, jadi laju waktu dikoreksi agar mencerminkan efek relativitas khusus dan relativitas umum
    • Dalam anggaran galat pseudorange ke satelit, ada beberapa faktor yang muncul karena relativitas, tetapi di dalam persoalan kuadrat terkecil yang diselesaikan untuk mendapatkan estimasi posisi, semuanya hanya masuk sebagai bagian dari suku galat
      Jadi relativitas memang penting, tetapi Anda tidak perlu tahu banyak tentang relativitas untuk menyelesaikan posisi Anda sendiri
      Meski begitu, berbagai bentuk baseline panjang/network RTK mungkin memerlukan pemodelan yang lebih canggih
    • Efek relativistik itu sendiri adalah bagian dari cara kerja GPS
  • Langkah berikutnya adalah PPP atau RTK. GNSS adalah lubang kelinci kemungkinan yang sangat menyenangkan

  • Soal latihan untuk penganut bumi datar: coba jelaskan bagaimana peta GPS di ponsel bisa bekerja tanpa satelit yang mengorbit Bumi bulat. Tunjukkan langkah pengerjaannya

    • Jika Anda cukup kuat percaya bahwa pemerintah sedang menipu Anda, Anda juga bisa berpikir bahwa fisika satelit yang kita pelajari adalah parallel construction(https://en.m.wikipedia.org/wiki/Parallel_construction) dan bahwa kenyataannya itu bekerja dengan banyak colokan listrik yang dipasang agar cocok dengan Bumi datar
    • Anda bisa bilang bahwa ponsel memakai “sihir” acak, yaitu teknologi, untuk mendapatkan posisi akurat
      Namun pertama-tama Anda harus membuat argumen yang cukup rumit bahwa ponsel tidak bisa melakukannya tanpa satelit
      Contoh yang agak lebih mudah dan sulit diabaikan oleh penganut bumi datar adalah bahwa ISS hampir bisa dilihat dengan mata telanjang dan pasti bisa dilihat dengan teleskop halaman belakang. Satelit Starlink juga serupa
    • Menurut pengalaman saya, penganut bumi datar tidak melakukan penyelidikan yang ketat sampai cukup jauh untuk benar-benar mencoba menjawab pertanyaan ini
      Paham bumi datar bukanlah posisi yang dicapai lewat nalar, melainkan hampir selalu muncul dari kebingungan atau sebagai konsekuensi tak terhindarkan dari keyakinan inti yang tak tergoyahkan. Biasanya berasal dari pembacaan Alkitab yang sangat harfiah, atau dari delusi paranois bahwa “semua yang resmi itu bohong”