Thursday 17 August 2017

Gps speed moving average


Im mengembangkan aplikasi android menggunakan GPS. Id ingin menerapkan fitur yang menampilkan kecepatan rata-rata pengguna selama 1515 menit. Sesuatu seperti beban CPU pada unix. Saya dapat menghitung rata-rata dengan mudah dengan mengumpulkan jarak yang ditempuh kedua dengan kedua dan membaginya dengan waktu yang telah berlalu, tapi saya tidak dapat memikirkan cara cerdas untuk menghitung rata-rata bergerak. Tentunya saya bisa mendapatkan id dilakukan dengan meletakkan jarak antara posisi terakhir dan posisi saat ini dalam array setiap detik sambil menghapus nilai yang paling tua. Saya mencari cara yang rapi untuk melakukan ini. Tanya 18 Desember pukul 21:51 Anda perlu menyimpan semua nilai untuk rentang waktu keseluruhan, seperti yang sudah Anda sarankan. Alasannya adalah bahwa Anda entah bagaimana perlu melupakan kontribusi nilai lama ke rata-rata bergerak. Anda tidak dapat melakukannya dengan tepat jika Anda tidak tahu nilai-nilai ini di mana (yaitu jika Anda tidak menyimpannya). Dalam kasus Anda, 1 nilai setiap detik selama 15 menit berjumlah 15 60 900 titik data, seharusnya tidak masalah. Perhatikan bahwa Anda tidak perlu melakukan penjumlahan dari keseluruhan array setiap kali Anda memperbarui: Anda dapat menghitung rata-rata pergerakan baru dari jumlah titik data, nilai baru dan nilai yang Anda lupakan pada saat itu: Di sini, n adalah Jumlah titik data (900 dalam kasus Anda), xforget adalah nilai yang Anda lupakan dan xnew adalah nilai terbaru. Anda kemudian drop xforget dari depan array Anda dan menyimpan xnew di akhir. Alih-alih sebuah array Anda mungkin ingin menggunakan antrian yang diimplementasikan melalui linked list. Menjawab 18 Des 11 at 22:24 Heres satu cara untuk pergi tentang hal itu yang cukup lurus ke depan: Jika Anda adalah posisi sampling setiap detik tetap 901 sampel dalam antrian, thats 15 menit layak (dan 1 ekstra). Posisi 0 adalah pengukuran terbaru, efektif posisi Anda saat ini. Untuk kecepatan rata-rata selama X menit terakhir: kecepatan sekarang satuan jarak per detik, dikonversi menjadi mph, atau kph atau unit apa pun yang Anda butuhkan. Nilai X yang berbeda dapat digunakan untuk rata-rata antara 1 dan 15 menit. Jawab 18 Des 22 di 22:20 Jawaban Anda 2017 Stack Exchange, IncI ada di sini alat yang bisa memberi saya koordinat GPS. Interval waktu yang bisa saya definisikan. Saya ingin menggunakannya untuk menghitung kecepatan rata-rata saat berkendara atau bepergian dengan mobil. Sebenarnya saya menggunakan rumus ortodrome untuk menghitung jarak antara dua titik dan kemudian dibagi dengan interval waktu yang diberikan. Dengan implementasi saya mengikuti istilah ini. Sayangnya saya hanya bisa menemukan tautan Jerman, tapi menurut saya rumusnya harus dapat dimengerti dalam bahasa apa pun) Sayangnya, dengan menggunakan rumus ini dan selang waktu 1 detik memberikan hasil yang sangat tidak tepat. Kecepatan saat berjalan adalah antara 1 km dan 20 km. Jadi saya bertanya-tanya apakah ada referensi umum tentang bagaimana menerapkan perhitungan jarak antara dua koordinat GPS (saya menemukan sesuatu yang serupa di SO) dan khususnya, yang merupakan interval waktu terbaik untuk memperbarui koordinat GPS yang diminta pada 9 Mei 10 di 0:27 saya Asumsikan bahwa Anda menguji ini dengan berjalan dengan kecepatan konstan (menurut saya 5 kph adalah kecepatan berjalan normal) saat mengukur posisi GPS Anda satu kali per detik. Variasi yang Anda lihat dalam kecepatan sesaat (jarak antara masing-masing titik terukur dibagi 1 detik) adalah karena variasi acak pada posisi GPS yang diukur atau Anda tidak mengambil pengukuran Anda persis satu detik (atau bisa juga keduanya sesuatu). Im akan menganggap pengukuran Anda diambil tepat satu detik terpisah. Perangkat GPS genggam jauh kurang akurat dibanding yang diiklankan. Sementara yang sering mengklaim bahwa perangkat akurat ke dalam jarak 10 ft dari posisi sebenarnya, ini hanya isnt begitu. Cara terbaik untuk mengukur dan melaporkan keakuratan perangkat GPS adalah dengan membiarkannya berada di tempat yang dapat melihat satelit dan tidak dihujani, dan mencatat data beberapa hari. Anda kemudian dapat menggunakan Google Maps untuk merencanakan poin - saya telah melakukan ini di sekitar rumah dan di sekitar kantor, yang merupakan cara yang baik untuk memberi Anda skala rasa. Jelas, jika perangkat itu benar-benar akurat, Anda akan melihat semua titik terukur Anda di satu tempat. Atau, jika akurasi 10 ft itu benar, Anda akan melihat semua titik di sebuah cluster kecil di dalam lingkaran berdiameter 20 kaki. Apa yang Anda lihat sebagai gantinya (dengan setiap perangkat berkemampuan GPS yang pernah saya uji) adalah kombinasi dari hamburan posisi yang relatif kecil (kira-kira beberapa puluh kaki) yang terjadi dalam skala beberapa detik, dan jalan acak jangka panjang Dari posisi rata-rata yang bisa bergerak 200 atau 300 ft dalam satu atau dua hari. Ketika merencanakan rumah Anda sendiri, misalnya, mungkin terlihat seperti PDA Anda yang berkelana ke rumah tetangga, lalu di seberang jalan, lalu menyusuri jalan dua rumah, kembali ke arah Anda, dll sambil bergemuruh sekitar 5 atau 10 kaki di sini atau Ada yang suka minum kopi terlalu banyak. GPS bisa lebih akurat dari ini. Surveyor menggunakan perangkat dengan perangkat penerima yang jauh lebih hebat (sehingga mereka mendapatkan pembacaan sinyal satelit yang jauh lebih akurat), dan mereka membiarkannya bertahan selama beberapa hari pada satu waktu sampai rata-rata pengukuran yang berurutan. Perangkat genggam memiliki chip penerima murah dan antena murah dan harus berurusan dengan semua jenis gangguan sinyal. Taruhan terbaik Anda adalah melakukan rata-rata berjalan untuk menghitung kecepatan sesaat Anda. Alih-alih membagi jarak antara titik saat ini dan titik sebelumnya dengan 1 detik, ambil 5 jarak terakhir antara titik dan bagi dengan 5 detik (atau berapa pun jumlah detik yang Anda gunakan). Yang penting untuk tidak hanya mengambil perbedaan antara titik saat ini dan titik 5 detik yang lalu dan membagi jarak ini dengan 5, karena hal itu akan kehilangan pergerakan non-linear. Update: Saya perhatikan dalam sebuah komentar bahwa Anda menggunakan perangkat Android. Apakah Anda tahu jika memiliki receiver GPS bawaan Banyak (kebanyakan) perangkat Android tidak, yang berarti GPS mereka bukan versi GPS triangulasi-on-the-satelit, namun perkiraan tingkat di mana-saya-berbasis - Versi on-the-signal-from-the-cell-towers. Ini jauh kurang akurat secara posisi, karena saya yakin bisa tahu dari deskripsi singkat saya. ) Menjawab 9 Mei pukul 1:09 Tanpa perasaan, seperti yang saya katakan dalam jawaban saya cara terbaik untuk mengukur akurasi perangkat adalah membiarkannya merekam koordinat GPS selama beberapa hari dan kemudian memilah semua poinnya. Saya benar-benar akan menghargai jika Anda melakukan ini dengan kedua perangkat Anda dan kemudian memberi tahu saya apa hasil Anda. Ndash MusiGenesis 9 Mei pukul 2.15 Surveyor biasanya memanfaatkan fakta bahwa walkquot quotrandom yang Anda gambarkan menghasilkan vektor kesalahan yang sangat mirip untuk perangkat GPS yang dekat satu sama lain, jadi perbedaan vektor antara dua GPS jauh lebih akurat daripada yang mereka lakukan. Posisi absolut Sebuah stasiun GPS basis pada titik yang diketahui, perbedaan vektor menghasilkan kesalahan pada kisaran 1-2 meter. Ndash Rafa Dowgird 9 Mei pukul 12:32 Sistem GPS dapat menghasilkan kecepatan sesaat secara langsung, tanpa posisi interpolasi. Saya membaca di suatu tempat bahwa pembacaan kecepatan sebenarnya lebih akurat daripada membaca posisi. Perangkat sistem apa yang Anda gunakan Di Android, coba metode android. location. Location. getSpeed ​​() (bersama dengan hasSpeed ​​()) di dalam penerapan LocationListener Anda. Pembacaan kecepatan mungkin atau mungkin tidak lebih akurat daripada membaca posisi, tapi Anda benar, ini adalah pengukuran yang berbeda dan tidak didasarkan hanya pada perhitungan dengan menggunakan pengukuran posisi. Penerima GPS benar-benar menggunakan pergeseran sinyal satelit Doppler untuk menghitung kecepatan. Ndash MusiGenesis 9 Mei pukul 11:53 Cari di google untuk GPS SPEED ACCURACY, dan Anda akan menemukan laporan yang menyatakan bahwa kecepatan yang dihitung dari posisi vs waktu sepuluh kali lebih buruk daripada hanya menggunakan parameter kecepatan yang keluar langsung dari penerima GPS. . Parameter kecepatan tidak tergantung pada akurasi posisi, namun dihitung dari doppler (perbedaan frekuensi cepat) dari sinyal satelit. Penentuan Lokasi dan Kecepatan Tom Clark, W3IWI Pertama - izinkan saya menjelaskan bagaimana penerima GPS mengukur posisi dan kecepatan . Track receiver Anda setidaknya (4) satelit GPS. Pelacakan pelacakan DSP yang terpasang pada receiver harus mengunci dua bagian sinyal dari masing-masing satelit - kode CA 1.023 Mbs dan frekuensi pembawa 1575.42 MHz. Operasi dual DSP melibatkan dua pelacakan loop - CLL (Code Locked Loop) untuk kode CA, dan PLL (Fase Locked Loop) yang melacak carrier. CLL menghasilkan waktu sinyal GPS WRT (sehubungan dengan) jam internal penerima - ini biasanya dinyatakan dalam unit jarak yang disebut Pseudo-Range (PR) dan mencakup kesalahan pada jam internal receiver yang ditambahkan ke keadaan sebenarnya. Rentang geometrik satelit. Demikian pula, PLL mengukur tingkat fase pembawa (yaitu frekuensi satelit yang jelas sehubungan dengan osilator lokal receiver, biasanya berasal dari osilator kristal yang sama yang digunakan sebagai timing clock) - ini disebut Pseudo-Range Rate (PRR) Dan termasuk kesalahan frekuensi LO receiver dan kontribusi dari pergeseran Doppler yang terkait dengan semua gerakan. Pergeseran Doppler mencakup jumlah vektor dari kecepatan orbit orbital 7 kmsec ditambah kecepatan rotasi 400 msec (pada garis khatulistiwa) ditambah gerakan penerima Anda (dalam mobil yang bergerak, Pada penerima GPS awal, empat PR dari 4 satelit telah dikonversi Ke posisi 3-D (XYZ, LatLonHgt atau apapun) ditambah kalibrasi bias waktu receiver Anda, dan 4 PRRs diubah menjadi kecepatan 3-D ditambah pengukuran kesalahan frekuensi osilator. Receiver yang lebih modern mengambil Semua data PRPRR dari semua satelit N yang dilihat untuk beberapa detik terakhir dan memberi umpan pada 2NT PRPRR untuk sampel itu menjadi satu kotak hitam matematis (BB) (biasanya filter Kalman) untuk menghasilkan perkiraan parameter 8 parameter yang sama. Jadi, pada receiver modern, BB ini menggunakan kombinasi antara PRs dan PRR masa lalu dari banyak satelit untuk memperbaiki estimasi Position, Velocity Time (PVT). Jadi, pernyataan Paul tentang kecepatan yang ditentukan oleh perubahan posisi begitu Rta, sebagian benar, tapi (saat Anda melihat persamaan di dalam BB), frekuensi Doppler yang terukur sebenarnya lebih penting lagi. Selain 1: Bagian dari thread ini menanyakan tentang kemampuan kecepatan dari berbagai receiver Garmin. Garmin memiliki dua tipe receiver generik. Yang pertama, termasuk GPS-20, GPS-38, GPS-45, GPS-45XL dan GPS-II asli menggunakan CPU yang lambat untuk melakukan fungsi tampilan DSPBB. DSP hanya mendukung dua saluran penerima, yang berurutan multiplex di antara berbagai satelit. CPU Brain Dead tampaknya tidak memiliki cukup tenaga kuda untuk menangani bandwidth PRR lebih banyak daripada kecepatan 100 MPH, jadi receiver ini memiliki penjepit perangkat lunak yang membuat mereka tidak berguna di pesawat terbang. Garmin yang lebih baru (GPS-25, GPS-48, GPS-12, GPS-12XL, GPS-II, GPS-III dll) memiliki banyak daya CPU CPU GPS-III saya menggunakan i386ex. Akibatnya, Garmin telah mampu menangani hingga 12 satelit secara bersamaan di DSP, BB dapat menangani kecepatan pesawat, dan GPS-III bahkan mendukung pemetaan massa jalan raya yang rapi. Sekarang kembali ke tutorial - mari kita jawab pertanyaan error speedvelocity. Kesalahan yang Anda dapatkan dalam kecepatan tinggi muncul dari beberapa sumber. Dua yang utama adalah keakuratan sistem GPS (receiver dan satelit GPS Anda), dan suara tambahan dari kejenuhan DoD yang disebut Selective Availability (SA). Untuk melihat yang pertama, mari kita mematikan SA dan menganggap bahwa satelit GPS itu sempurna. Panjang gelombang pembawa sinyal GPS adalah 20 cm sehingga dengan SNR yang sederhana, PLL di receiver dapat melihat (mengukur) fase pembawa sampai sekitar 1 cm (120 dari siklus atau 20 derajat fase listrik). Untuk kesederhanaan, kita asumsikan bahwa kita mengukur selama 1 detik, jadi saya bisa melihat 1 cmsec kecepatan untuk satelit tertentu. Karena biasanya kita tidak berpikir dalam unit ini, 1 cmsec 36 meterhour 0.023 milhour. Untuk faktor dalam geometri dan fakta bahwa kita melihat beberapa satelit, kita memperbanyaknya dengan HDOP (untuk kecepatan horizontal) atau VDOP (untuk kecepatan) karena HDOP jarang 3, ini berarti bahwa kesalahan kecepatan sistem jarang 0,07 milhour. Dan perhatikan bahwa kenyataan bahwa kita mengandalkan laju fase pembawa untuk menentukan kecepatan, kita mengukur frekuensi pembawa L-band relatif (yaitu offset Doppler) sampai 120 dari Hertz Sekarang mari kita lihat SA. Intinya, DoD menurunkan kinerja jam atom yang mengorbit di satelit GPS dengan meletakkan tandu tinju yang dapat diprogram dalam output jam (10.23 MHz), dan mendayung jam dengan urutan pseudo-acak ajaib yang hanya mereka ketahui. . Pengukuran amatir kita telah menunjukkan bahwa mereka menyentak tandu pada rentang waktu skala yang lebih lebar, mulai dari beberapa detik sampai 12 jam, namun rata-rata jangka panjangnya nol. Dengan skala waktu yang lebih lama, variasi tersebut mempengaruhi waktu sinyal jam yang ditransmisikan GPS (seperti kode CA 1.023 Mbs) sehingga pengukuran PR kami sangat bising dan kami melihat posisi jelas kami mengembara. DoD telah menjamin bahwa kesalahan posisi karena SA tidak akan melebihi 100 meter (3-sigma, horizontal) untuk rentang variasi yang mereka tambahkan, bila dilihat dengan jumlah satelit yang layak (seperti dengan HDOP Halaman ini terakhir diubah

No comments:

Post a Comment