Android 프레임워크는 여러 Android 기기에서 원시 GNSS 측정에 관한 액세스를 제공합니다.
GnssLogger의 예비 버전 소스 코드와 Linux, Windows, macOS용 데스크톱 GNSS 분석 앱의 실행 파일이 포함된 GitHub의 GPS 측정 도구 저장소에서 도구를 찾을 수 있습니다. 설치 및 사용자 설명서
Google 스마트폰 데시미터 챌린지
Google, 항법학회 위성 부서, Kaggle은 ION GNSS+에서 3차 스마트폰 데시미터 챌린지를 후원합니다. 이 대회는 2023년 9월 12일에 시작되어 2024년 5월 23일에 종료됩니다. 원시 GNSS 측정값, 센서 데이터, 정확한 실측값이 포함된 150개가 넘는 새로운 트레이스가 공개적으로 제공됩니다. 누구나 이 대회에 참여할 수 있습니다. 참가자는 ION GNSS+ 2024에서 진행되는 '스마트폰 데시미터 챌린지'라는 제목의 세션에 초록을 제출하는 것이 좋습니다.
규칙 및 규정을 비롯한 자세한 내용은 2023년 9월 12일 오후 3시 30분(MDT)에 게시될 Kaggle의 대회 페이지를 참고하세요.
원본 GNSS 측정을 지원하는 Android 기기
Android 10 (API 수준 29) 이상을 실행하는 기기에서는 원시 GNSS 측정 지원이 필수입니다. Android 9 (API 수준 28) 이하에서는 2016년 이후 하드웨어가 포함된 모든 Android 기기에서 원시 GNSS 측정 지원이 필수입니다. 현재 기존 Android 휴대전화의 90% 이상에 원시 측정값이 있습니다.
일부 원시 GNSS 측정 필드의 지원은 선택사항이며 사용되는 GNSS 칩셋에 따라 다를 수 있습니다. 이러한 필드의 예는 다음과 같습니다.
- 의사 거리 및 의사 거리 비율
- 탐색 메시지
- 자동 게인 컨트롤러 (AGC) 값입니다.
- 누적 델타 범위 (ADR) 또는 이동통신사 단계
다음 표에는 Android 지원 기기의 몇 가지 예시와 원본 GNSS 측정의 지원 수준이 나와 있습니다.
모델 | Android 버전 | AGC | ADR (이동통신사 단계) | L5 | 글로벌 시스템 |
---|---|---|---|---|---|
Google Pixel 4/5/6/7 | 12 | 예 | 예 | 예 | GPS GLO GAL BDS QZS |
Xiaomi Mi 9 | 9 | 예 | 아니요 | 예 | GPS GLO GAL BDS QZS |
Xiaomi Mi 8 | 8.1 | 아니요 | 예 | 예 | GPS GLO GAL BDS QZS |
Huawei P30 Pro | 9 | 아니요 | 예 | 예 | GPS GLO GAL BDS |
Huawei Mate 20 | 9 | 아니요 | 예 | 예 | GPS GLO GAL BDS |
One Plus 7 Pro | 9 | 예 | 아니요 | 예 | GPS GLO GAL |
One Plus 7 | 9 | 예 | 아니요 | 예 | GPS GLO GAL |
Samsung Galaxy S20/S21 Ultra (Exynos)* | 12 | 예 | 예 | 예 | GPS GLO GAL BDS QZS |
Samsung Galaxy S9 (Exynos)* | 8.0 | 아니요 | 예 | 아니요 | GPS GLO GAL QZS |
Samsung Galaxy S9+ | 8.0 | 아니요 | 아니요 | 아니요 | GPS GLO GAL |
* 삼성 Galaxy Exynos 버전은 최근 몇 년 동안 ADR을 제공합니다. 삼성 Snapdragon 버전은 아직 ADR을 제공하지 않습니다.
Android 기기에서 제공하는 원시 측정 필드의 정의에 관한 자세한 내용은 글로벌 이동 위성 시스템을 참고하세요.
OEM, 개발자 및 연구원은 이 페이지의 도구를 사용하여 새로운 스마트폰 디자인을 테스트하고 기능을 검사하고 새로운 알고리즘을 개발하고 GNSS 시스템 구현의 개선사항을 평가하고 부가 가치 앱을 개발할 수 있습니다.
SUPL 클라이언트 샘플 코드
Suplclient는 supl.google.com에 액세스하여 실시간 달력을 얻는 샘플 코드입니다. SuplTester
클래스는 SUPL 클라이언트 프로젝트를 사용하는 방법에 관한 예를 제공합니다. SuplTester
는 SUPL TCP 연결 사양을 설정한 다음 주어진 위도와 경도에서 LPP SUPL 요청을 전송하고 SUPL 서버 응답을 인쇄합니다.
안테나 보정 정보
Android 11 (API 수준 30)부터 GnssAntennaInfo
클래스를 사용하여 위상 중심 오프셋 (PCO) 좌표, 위상 중심 변이 (PCV) 교정, 신호 이득 교정과 같은 안테나 특성에 액세스할 수 있습니다. 이러한 수정사항을 원시 측정에 적용하여 정확성을 개선할 수 있습니다.
GnssAntennaInfo
를 사용할 때는 다음 시스템 동작에 유의하세요. 이는 사용자 개인 정보 보호를 강화하기 위해 설계되었습니다.
- 이 API에서 제공하는 특성은 개별 기기가 아닌 기기 모델에만 적용됩니다.
원시 측정값 로깅
Android 스튜디오를 사용하여 원시 GNSS 측정값과 기타 위치 데이터를 캡처하고 파일에 로깅하는 앱을 빌드할 수 있습니다. 이러한 앱의 소스 코드 예는 GPS 측정 도구를 참고하세요.
Google GNSSLogger는 이 기능으로 개발된 샘플 앱입니다. 샘플 앱과 함께 GNSS 출력을 가져오려면 기기에서 원본 GNSS 측정을 지원해야 합니다.
GNSS 로거를 사용하여 GNSS 로그를 캡처한 후 기기의 로그 파일을 컴퓨터에 복사하여 추가로 분석할 수 있습니다. GNSS 로거 내에서 자신의 이메일로 파일을 보내거나 Google Drive에 파일을 저장할 수 있습니다. 또는 기기의 파일 관리 앱을 사용하여 파일을 저장하거나 기기에/기기에서 파일 복사에 설명된 대로 Android 디버그 브리지 (ADB)를 사용할 수 있습니다.
원본 측정값 분석
GNSS 분석 앱은 그림 1과 같이 GNSS 로거에서 수집한 GPS/GNSS 원시 측정값을 읽고 이 측정값을 사용하여 GNSS 수신기 동작을 분석합니다.
Linux, Windows, macOS 시스템용 앱을 다운로드할 수 있습니다.
GNSS 분석 앱은 MATLAB에 빌드되지만 MATLAB을 실행할 필요는 없습니다. 앱은 MATLAB 런타임의 사본을 설치하는 실행 파일로 컴파일됩니다.
GNSS 분석 제어판
그림 2에 표시된 GNSS 분석 제어판을 사용하면 다음과 같은 앱 기능을 관리할 수 있습니다.
- 표시할 위성 선택
- 측정 오류를 계산하는 데 사용되는 기준 위치, 속도, 시간 (PVT) 관리
- 분석 보고서 생성
- 시작 시간과 종료 시간 사이의 데이터에 기간 정의
)
GNSS 분석 양방향 그림
GNSS 분석 앱은 그림 3과 같이 무선 주파수(RF), 시계, 측정값 열로 구성된 양방향 그림을 제공합니다.
)
RF 열에는 다음 데이터가 표시됩니다.
- 별자리별 신호가 가장 강한 위성 4개
- 위성별 이동통신사 대 노이즈 밀도(C/No)의 시간 도표
- 위성 위치의 스카이 플롯
시계 열에는 다음 데이터가 표시됩니다.
- 의사 거리
다음 기준 위치 중 하나를 사용하여 계산된 수신기 시계의 오프셋 주파수:
- 자동으로 계산된 평균 위치
- 사용자가 입력한 위도, 경도 및 고도
- 사실 참조 PVT가 포함된 National Marine Electronics Association (NMEA) 파일
수신기가 기본 오실레이터의 듀티 사이클을 재설정할 때 시간을 기록하는 대기 시계의 오프셋
측정값 열에는 다음 데이터가 표시됩니다.
- 원시 의사 거리에서 얻은 가중치가 적용된 최소 제곱 위치 결과입니다. 가중치는 원시 측정 API 사양의 일부인 각 측정값의 보고된 불확실성을 사용하여 부여됩니다.
- 측정값별 각 의사 거리의 오류
측정값별 각 의사 거리 비율의 오류
GNSS 분석 테스트 보고서
GNSS 분석은 그림 4와 같이 API 구현, 수신된 신호, 시계 동작, 측정 정확도를 평가하는 테스트 보고서를 생성할 수 있습니다. 각각의 경우에 앱은 알려진 벤치마크를 기준으로 측정된 성능을 기반으로 수신기가 테스트를 통과했는지 여부를 보고합니다. 테스트 보고서는 기기 제조업체가 새로운 기기를 설계하고 구현할 때마다 반복하여 유용하게 사용할 수 있습니다. 테스트 보고서를 생성하려면 보고서 만들기를 클릭하세요.
비교 탭에는 그림 5와 같이 여러 GNSS 로그 파일의 C/No가 나란히 비교되어 있습니다. 이 탭은 여러 기기의 RF 성능을 비교하는 데 유용합니다.
소스 코드에 관심이 있으세요? GPS 측정 도구 프로젝트는 GPS 별자리 신호를 사용하여 다음 작업을 실행하는 데 사용할 수 있는 오픈소스 MATLAB 예를 제공합니다.
- GNSS 로거 샘플 앱으로 캡처한 데이터 읽기
- 의사 거리 계산 및 시각화
- 가중치가 적용된 최소 제곱 위치 및 속도 계산
- 이동통신사 단계 보기 및 분석
GNSS 분석 앱 v4.6.0.1 출시 노트
GNSS Analysis 앱 버전 4.6.0.1에는 다음과 같은 업데이트가 포함되어 있습니다.
- Matlab R2022a에 GnssAnalysisTool을 빌드하여 다음과 같은 새로운 기능에 액세스할 수 있습니다.
- 상태 창 자동 스크롤: 최신 상태 메시지가 항상 표시됩니다.
- C/N0 비교 표를 추가했습니다(위성군별, L1과 L5 비교).
- 의사 거리 비율 잔차 플롯을 추가했습니다.
- 참조 PVT 고정 또는 이동에 관한 별도의 탭을 삭제하여 선택된 참조 PVT 유형을 더 쉽게 확인할 수 있도록 했습니다.
- '보고서 작성' 결과를 HTML에서 상태 창으로 이동했습니다.
- 미션 플래너 탭이 삭제되었습니다. gnssmissionplanning.com/ 또는 www.gnssplanning.com/을 사용하세요.
- RINEX 관측 파일 파싱과 관련된 수정사항
- BKG가 작동하지 않을 때 GPS 및 GLO의 NASA CDDIS ephemeris 소스로 대체합니다.
- igs.bkg.bund.de에서 igs-ftp.bkg.bund.de로 이동
- GAL, QZSS 또는 BDS ephemeris 다운로드에 실패해도 분석을 종료하지 마세요.
- 칩셋이 BaseBandCNo를 지원하지 않더라도 안테나 CNo 분석 생성
의견 보내기
Google에서는 Android의 GNSS 지원을 개선하기 위해 노력하고 있습니다. Android의 GNSS 지원에 관한 문제는 GNSS 문제 추적기를 사용하여 알려주세요. 문제를 게시하기 전에 FAQ에서 이미 해결되었는지 확인하세요.
GNSS 분석 도구를 사용한 경우 간단한 설문조사에 답변하여 의견을 보내주세요. 다른 질문이나 지원 요청이 있는 경우 개발자 지원 리소스를 참고하세요.
GNSS 분석 도구 FAQ에서 자주 묻는 질문과 그에 대한 답변을 확인하세요.