Platforma Androida zapewnia dostęp do nieprzetworzonych pomiarów GNSS na kilku urządzeniach z Androidem.
Narzędzia te znajdziesz w repozytorium GPS Measurement Tools na GitHubie, które zawiera kod źródłowy wstępnej wersji GnssLoggera i pliki wykonywalne aplikacji GNSS Analysis na komputery z systemem Linux, Windows i macOS. Instrukcja instalacji i obsługi
Google Smartphone Decimeter Challenge
Google, Institute of Navigation's Satellite Division i Kaggle sponsorują 3. edycję konkursu Smartphone Decimeter Challenge podczas ION GNSS+. Konkurs rozpocznie się 12 września 2023 r. i zakończy 23 maja 2024 r. Publicznie dostępnych będzie ponad 150 nowych śladów zawierających nieprzetworzone pomiary GNSS, dane z czujników i precyzyjne dane podstawowe. Udział w konkursie jest otwarty dla wszystkich. Zachęcamy uczestników do przesłania streszczenia na sesję „Smartphone Decimeter Challenge”, która odbędzie się podczas ION GNSS+ 2024.
Więcej informacji, w tym zasady i regulamin, znajdziesz na stronie konkursu na Kaggle, która zostanie opublikowana 12 września 2023 r. o godzinie 15:30 czasu MDT.
Urządzenia z Androidem obsługujące nieprzetworzone pomiary GNSS
Obsługa nieprzetworzonych pomiarów GNSS jest obowiązkowa na urządzeniach z Androidem 10 (poziom interfejsu API 29) lub nowszym. W przypadku Androida 9 (poziom API 28) i starszych wersji obsługa nieprzetworzonych pomiarów GNSS jest obowiązkowa na wszystkich urządzeniach z Androidem, które mają sprzęt z 2016 roku lub nowszy. Obecnie ponad 90% telefonów z Androidem ma surowe pomiary.
Obsługa niektórych pól nieprzetworzonych pomiarów GNSS jest opcjonalna i może się różnić w zależności od używanego chipsetu GNSS. Przykłady takich pól:
- pseudoodległość i szybkość pseudoodległości,
- Wiadomość nawigacyjna.
- Wartość automatycznej kontroli wzmocnienia (AGC).
- Skumulowany zakres delta (ADR) lub faza nośnej.
- Obsługa wielu częstotliwości
Większość flagowych telefonów Pixel, Motorola, Samsung, Xiaomi, OnePlus i innych dużych producentów obsługuje już częstotliwości L1 i L5. Flagowe telefony Pixel oraz flagowe telefony innych dużych producentów, które nie korzystają z chipsetów Qualcomm Snapdragon, udostępniają ADR (fazę nośnej) w ramach nieprzetworzonych pomiarów.
Baza danych funkcji GNSS różnych urządzeń z Androidem, które zostały przesłane przez społeczność, jest opisana w artykule „Crowdsourcing GNSS features of Android devices”.
Więcej informacji o definicjach pól nieprzetworzonych pomiarów udostępnianych przez urządzenia z Androidem znajdziesz w artykule Globalne systemy nawigacji satelitarnej.
Producenci oryginalnego sprzętu (OEM), deweloperzy i badacze mogą korzystać z narzędzi na tej stronie, aby testować nowe projekty telefonów, sprawdzać funkcje, opracowywać nowe algorytmy, oceniać ulepszenia implementacji systemu GNSS oraz tworzyć aplikacje o wartości dodanej.
Przykładowy kod klienta SUPL
Suplclient to przykładowy kod, który uzyskuje dostęp do supl.google.com w celu uzyskania efemerydy w czasie rzeczywistym. Klasa SuplTester pokazuje, jak korzystać z projektu klienta SUPL. SuplTester konfiguruje specyfikacje połączenia TCP SUPL, a następnie przy danej szerokości i długości geograficznej wysyła żądanie LPP SUPL i drukuje odpowiedź serwera SUPL.
Informacje o kalibracji anteny
Na Androidzie 11 (interfejs API na poziomie 30) i nowszych wersjach możesz używać klasy GnssAntennaInfo, aby uzyskać dostęp do charakterystyki anteny, np. współrzędnych przesunięcia środka fazowego (PCO), korekt zmian środka fazowego (PCV) i korekt wzmocnienia sygnału. Te poprawki można zastosować do nieprzetworzonych pomiarów, aby zwiększyć dokładność.
Podczas korzystania z GnssAntennaInfo pamiętaj o tych zachowaniach systemu. Zostały one zaprojektowane z myślą o zwiększeniu prywatności użytkowników.
- Cechy dostarczane przez ten interfejs API są specyficzne tylko dla modelu urządzenia, a nie dla konkretnego urządzenia.
Zapisywanie nieprzetworzonych pomiarów
Za pomocą Android Studio możesz utworzyć aplikację, która rejestruje nieprzetworzone pomiary GNSS i inne dane o lokalizacji oraz zapisuje je w pliku. Przykładowy kod źródłowy takiej aplikacji znajdziesz w sekcji Narzędzia do pomiaru GPS.
Przykładową aplikacją, która została opracowana z wykorzystaniem tej funkcji, jest Google GNSSLogger. Aby uzyskać dane wyjściowe GNSS za pomocą przykładowej aplikacji, urządzenie musi obsługiwać nieprzetworzone pomiary GNSS.
Po przechwyceniu dziennika GNSS za pomocą aplikacji GNSS Logger możesz skopiować pliki dziennika z urządzenia na komputer w celu dalszej analizy. Z poziomu aplikacji GNSS Logger możesz wysłać pliki do siebie e-mailem lub zapisać je na Dysku Google. Możesz też zapisać pliki za pomocą aplikacji do zarządzania plikami na urządzeniu lub użyć narzędzia Android Debug Bridge (ADB) zgodnie z opisem w artykule Kopiowanie plików na urządzenie i z urządzenia.
Analiza nieprzetworzonych pomiarów
Aplikacja GNSS Analysis odczytuje nieprzetworzone pomiary GPS/GNSS zebrane przez GNSS Logger i używa ich do analizy działania odbiornika GNSS, jak pokazano na rysunku 1.
Możesz pobrać aplikację na systemy Linux, Windows i macOS.

Rysunek 1. GNSS Logger zbiera pomiary, które mogą być wykorzystywane przez GNSS Analysis.
Aplikacja GNSS Analysis jest oparta na MATLAB, ale nie musisz mieć tego oprogramowania, aby ją uruchomić. Aplikacja jest kompilowana do pliku wykonywalnego, który instaluje kopię środowiska wykonawczego MATLAB.
Panel sterowania analizą GNSS
Panel sterowania GNSS Analysis, pokazany na rysunku 2, umożliwia zarządzanie funkcjami aplikacji, takimi jak:
- Wybierz, które satelity mają być wyświetlane.
- Kontroluj pozycję, prędkość i czas (PVT) używane do obliczania błędów pomiaru.
- generować raporty analityczne;
- Zdefiniuj okno w danych między czasem rozpoczęcia i zakończenia.
)
Rysunek 2. Panel sterowania GNSS Analysis
Interaktywne wykresy analizy GNSS
Aplikacja GNSS Analysis udostępnia interaktywne wykresy uporządkowane w kolumnach częstotliwości radiowej (RF), zegarów i pomiarów, jak pokazano na rysunku 3.
)
Rysunek 3. Aplikacja GNSS Analysis wyświetlająca interaktywne wykresy.
Kolumna RF zawiera te dane:
- W przypadku każdej konstelacji – 4 satelity z najsilniejszymi sygnałami.
- Wykres czasowy stosunku sygnału nośnego do gęstości szumu (C/No) dla każdego satelity.
- Wykres nieba z pozycjami satelitów.
Kolumna z zegarem zawiera te dane:
- Pseudoodległości.
Częstotliwość przesunięcia zegara odbiornika, która jest obliczana przy użyciu jednej z tych pozycji referencyjnych:
- Automatycznie obliczana średnia pozycja.
- Szerokość i długość geograficzna oraz wysokość nad poziomem morza podane przez użytkownika.
- Plik National Marine Electronics Association (NMEA) z prawdziwym odniesieniem PVT.
Przesunięcie zegara gotowości, który mierzy czas, gdy odbiornik resetuje cykl pracy głównego oscylatora.
Kolumna z pomiarami zawiera te dane:
- Wyniki pozycji uzyskane metodą ważonych najmniejszych kwadratów na podstawie nieprzetworzonych pseudoodległości. Ważenie odbywa się przy użyciu zgłoszonej niepewności każdego pomiaru, która jest częścią specyfikacji pomiarowego interfejsu API.
- Błędy każdej pseudoodległości dla każdego pomiaru.
Błędy każdego współczynnika pseudoodległości dla każdego pomiaru.
Raport z testu GNSS Analysis
Analiza GNSS może wygenerować raport z testu, jak pokazano na rysunku 4, który ocenia implementację interfejsu API, odebrany sygnał, działanie zegara i dokładność pomiaru. W każdym przypadku aplikacja informuje, czy odbiornik przeszedł test, na podstawie wydajności mierzonej względem znanych testów porównawczych. Raport z testu jest przydatny dla producentów urządzeń, którzy mogą go używać podczas projektowania i wdrażania nowych urządzeń. Aby wygenerować raport z testu, kliknij Utwórz raport.

Rysunek 4. Raport z testu GNSS Analysis
Karta Porównaj zawiera porównanie (pokazane na rysunku 5) wartości C/No z kilku plików dziennika GNSS, co jest przydatne podczas porównywania wydajności RF kilku urządzeń.

Rysunek 5. Porównanie danych C/No z kilku plików dziennika
Interesuje Cię kod źródłowy? Projekt narzędzia do pomiarów GPS udostępnia przykładowy kod open source w języku MATLAB, który umożliwia wykonywanie tych działań przy użyciu sygnałów konstelacji GPS:
- odczytywać dane zarejestrowane za pomocą przykładowej aplikacji GNSS Logger;
- obliczać i wizualizować pseudoodległości;
- Oblicz pozycję i prędkość metodą ważonych najmniejszych kwadratów.
- Wyświetlanie i analizowanie fazy nośnej.
Informacje o wersji 4.6.0.1 aplikacji GNSS Analysis
Aplikacja GNSS Analysis w wersji 4.6.0.1 zawiera te aktualizacje:
- Narzędzie GnssAnalysisTool zostało utworzone w Matlab R2022a, co zapewnia dostęp do nowych funkcji:
- Okno stanu przewija się automatycznie: najnowszy komunikat o stanie jest zawsze widoczny.
- Dodano tabelę porównującą C/N0 według konstelacji oraz porównującą L1 z L5.
- Dodano wykres resztowy szybkości pseudoodległości.
- Usunęliśmy osobne karty dla stacjonarnego i ruchomego referencyjnego PVT, dzięki czemu łatwiej jest sprawdzić, który typ referencyjnego PVT został wybrany.
- Przeniesiono wyniki „Utwórz raport” z HTML do okna stanu.
- Usunięto kartę Planer misji. Użyj gnssmissionplanning.com/ lub www.gnssplanning.com/.
- Poprawki związane z analizą pliku obserwacji RINEX.
- W przypadku niedostępności BKG jako zapasowe źródło efemeryd GPS i GLO jest używane NASA CDDIS.
- Przeniesienie z igs.bkg.bund.de na igs-ftp.bkg.bund.de
- Nie przerywaj analizy, jeśli nie uda się pobrać efemerydy GAL, QZSS lub BDS.
- Twórz analizę CNo anteny, nawet jeśli chipset nie obsługuje BaseBandCNo
Instrukcja instalacji i obsługi
Prześlij opinię
Chcemy ulepszyć obsługę GNSS na Androidzie. Jeśli masz problemy z obsługą GNSS na Androidzie, poinformuj nas o tym za pomocą narzędzia Issue Tracker GNSS. Zanim opublikujesz pytanie, sprawdź, czy nie ma już na nie odpowiedzi w Najczęstszych pytaniach.
Jeśli korzystasz z narzędzi do analizy GNSS, podziel się swoją opinią, wypełniając krótką ankietę. Jeśli masz inne pytania lub potrzebujesz pomocy, zapoznaj się z materiałami pomocy dla deweloperów.
Odpowiedzi na najczęstsze pytania znajdziesz w najczęstszych pytaniach dotyczących narzędzi do analizy GNSS.