KR102290732B1 - 클라우드로 오프로드되는 위치 결정 방법 - Google Patents

클라우드로 오프로드되는 위치 결정 방법 Download PDF

Info

Publication number
KR102290732B1
KR102290732B1 KR1020167005018A KR20167005018A KR102290732B1 KR 102290732 B1 KR102290732 B1 KR 102290732B1 KR 1020167005018 A KR1020167005018 A KR 1020167005018A KR 20167005018 A KR20167005018 A KR 20167005018A KR 102290732 B1 KR102290732 B1 KR 102290732B1
Authority
KR
South Korea
Prior art keywords
satellite
gps signal
chunk
satellites
chunks
Prior art date
Application number
KR1020167005018A
Other languages
English (en)
Other versions
KR20160046815A (ko
Inventor
지에 리우
유제 진
테드 씨 하트
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20160046815A publication Critical patent/KR20160046815A/ko
Application granted granted Critical
Publication of KR102290732B1 publication Critical patent/KR102290732B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/03Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers
    • G01S19/09Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers providing processing capability normally carried out by the receiver
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/21Interference related issues ; Issues related to cross-correlation, spoofing or other methods of denial of service
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/28Satellite selection

Abstract

저전력으로 GPS 위치를 간단히 샘플링하는 실시예를 제공한다. 복수의 작은 GPS 신호 청크 및 이에 대응하는 타임 스탬프로부터 모바일 장치가 위치를 결정하는 것을 보조하도록 서버가 구성될 수 있다. 예를 들어, 서버는 각 GPS 신호의 청크로부터 위성 세트를 식별할 수 있으며, 각 GPS 신호 청크에 대해 위성 세트를 서로 비교함으로써 제 2 위성 세트를 결정할 수 있다. 그러면 서버는 제 2 위성 세트에 기반하여 모바일의 위치를 추정할 수 있다.

Description

클라우드로 오프로드되는 위치 결정 방법{CLOUD-OFFLOADED GLOBAL SATELLITE POSITIONING}
GPS(Global Positioning Systems)는 일반적으로 하나의 GPS 수신기 및 복수의 GPS 위성을 포함하는 장치로 구성된다. GPS 수신기는 해당 장치의 위치를 판정하기 위해 GPS 위성으로부터 송출되는 GPS 신호를 수신하고 디코딩하도록 구성된다. 각 GPS 위성 신호는 위성 고유의 인코딩이 된 상태로 전송되는데, 이는 GPS 수신기가 신호를 송출하는 GPS 위성을 식별하는 데 사용될 수 있다. GPS 수신기는 위성 신호를 디코딩하고, 신호를 송출하는 GPS 위성을 식별하며, 디코딩된 신호로부터 얻은 데이터에 대해 일련의 연산을 수행함으로써, 해당 장치의 위치를 추정할 수 있다.
오늘날의 많은 장치들은 GPS 수신기를 포함하고 위치 기반 서비스를 제공하는 애플리케이션을 지원한다. 일반적으로 GPS 시스템은 정확하게 GPS 신호를 디코딩하고 신호를 송출하는 GPS 위성을 식별하기 위해 30초 범위 내에서 GPS 신호를 샘플링한다. 하지만, 안타깝게도 샘플링된 GPS 신호는 전력을 많이 요하는(power-intensive) 프로세스이며, 오늘날 모바일 장치에서 이용 가능한 많은 위치 기반 애플리케이션들은 주기적인 혹은 지속적인 위치 센싱을 요구한다. 따라서 GPS 수신기가 모바일 장치에서 이용할 수 있는 가장 정확하고 확실한 위치 정보를 제공하더라도, 때로는 다른 소스가 더욱 선호되는 경우가 있다. 예를 들어, 모바일 장치는 GPS 수신기, 셀 타워(cell tower) 신호, FM 라디오 신호, 및/또는 WiFi 시그니처를 포함한 다양한 소스 중 하나로부터 위치 정보를 얻을 수 있다.
본 요약은 다양한 개념들을 단순화된 형태로 소개하기 위한 것으로, 이하 발명의 상세한 설명에서 더 자세히 설명된다. 본 요약은 특허청구된 발명의 핵심 특징이나 필수 특징을 확인하기 위한 것이 아니며, 특허청구된 발명의 범위 결정을 돕기 위한 것도 아니다.
모바일 장치의 위치를 결정하는 데 사용되는 GPS를 포함하는 모바일 장치의 실시예가 본 명세서에 개시된다. 일례로, 모바일 장치는 위치 결정을 보조하는 서버를 활용한다. 예를 들어, 이 모바일 장치는 GPS 수신기 및 (서버와 통신하는)통신 인터페이스를 포함한다. 이 모바일 장치는 GPS 수신기를 사용하여 GPS 신호를 샘플링할 수 있고 그 샘플링을 프로세싱을 위해 서버에 제공한다. 일례로, 이 모바일 장치는 GPS 신호를 하나 이상의 수 밀리세컨드(ms) 청크로 샘플링하도록 구성되며, 서버는 청크들을 처리하고 모바일 장치의 위치를 결정하도록 구성된다.
발명의 상세한 설명은 첨부 도면을 참고하여 설명된다. 이 도면에서, 참조 번호의 최대 자리수는 참조 번호가 최초로 등장하는 도면을 나타낸다. 동일한 숫자는 도면에서 동일한 특징과 구성요소를 나타내는 데 사용된다.
도 1은 일 실시예에 따라 GPS 시스템을 그림으로 나타낸 것이다.
도 2는 일 실시예에 따른 GPS 시스템 프레임워크의 블록 다이어그램이다.
도 3은 일 실시예에 따른 모바일 장치 프레임워크의 블록 다이어그램이다.
도 4는 일 실시예에 따라 모바일 장치의 위치를 추정하는 프로세스의 흐름도이다.
도 5는 일 실시예에 따라 가시(visible) 위성 세트를 식별하는 프로세스의 흐름도이다.
도 6은 일 실시예에 따라 가시 위성 세트로부터 양호한 위성 세트를 선택하는 프로세스의 흐름도이다.
도 7은 일 실시예에 따라 모바일 장치의 위치를 추정하는 프로세스의 흐름도이다.
개시된 기술은 모바일 장치에 관한 위치를 결정하는 GPS 시스템의 실시예를 설명한다. 일반적인 시스템에서 GPS 수신기가 활성화되면, GPS 수신기는 모바일 장치의 위치를 결정하고 유지하기 위해 전력을 많이 요하는(power-intensive) 일련의 단계들을 수행한다. 첫째로, GPS 수신기는 수집(acquisition) 단계로 진입한다. 수집 단계에서, GPS 수신기는 각 가시(visible) GPS 위성으로부터 GPS 신호를 샘플링하고 디코딩한다. GPS 신호는 타임 스탬프(time stamp) 및 궤도정보(ephemeris) 데이터(전송 위성의 위치 및 궤도에 관한 데이터)를 포함한다. 둘째로, GPS 수신기는 디코딩된 GPS 신호에서 얻은 타임 스탬프 및 궤도 정보 데이터에 기초한 일련의 연산을 수행하여 초기 위치를 결정한다. 셋째로, GPS 수신기는 모바일 장치의 위치를 유지하는 추적(tracking) 단계에 진입한다.
하나 이상의 GPS 위성으로부터 신호 전부를 샘플링하고 디코딩하기 위해, GPS 수신기는 일반적으로 30초의 간격으로 켜지게 된다. GPS 위성은 매우 낮은 레이트(low rate)로, 일반적으로는 초당 50 비트(50 bps)로 데이터를 전송하도록 구성되고, 32,000여 개의 샘플이 GPS 신호에 들어있는 데이터를 재구성하는 데 사용되기 때문에, GPS 수신기는 상당히 오랜 시간 동안 켜진 채로 있게 된다.
다음으로, GPS 수신기는 모바일 장치의 관점에서 모든 GPS 위성(즉, 수신된 GPS 신호를 송출하는 GPS 위성)의 식별을 시도한다. 이는 GPS 신호에서 하나 이상의 위성 고유의 C/A(Coarse/Acquisition) 코드를 탐지하여 이루어진다. 각 GPS 수신기는 모든 GPS 위성에 대한 C/A 코드를 포함하는 C/A 코드 템플릿을 저장한다. C/A 코드는 서로 직교(orthogonal)하도록 만들어져서 템플릿이 GPS 신호와 비교될 경우 가시 GPS 위성에 대응하는 C/A 코드가 신호 스파이크를 일으키게 한다. 따라서 GPS 수신기는 C/A 템플릿과 수신된 GPS 신호를 비교하여 어느 GPS 위성이 송출을 시작하고 있는지 판단할 수 있다.
하지만 C/A 코드 템플릿과 GPS 신호를 비교할 때, GPS 수신기는 위성과 GPS 수신기의 이동으로 인한 GPS 신호의 도플러 편이(Doppler shift)를 보정한다. 예를 들어, 뜨는(rising) GPS 위성(모바일 장치의 화면으로 들어오는 위성)은 GPS 수신기 쪽으로 최대 800m/s의 속도로 이동하면서 4.2kHz의 주파수 편이를 발생시킨다. 이와 비슷하게, 지는(setting) GPS 위성(모바일 장치의 화면에서 나가는 위성)은 GPS 수신기 반대 방향으로 최대 800m/s의 속도로 이동하면서 - 4. 2kHz의 주파수 편이를 발생시킨다. C/A 코드 템플릿을 사용하여 신호를 송출하는 GPS 위성을 정확하게 식별하기 위해, GPS 수신기는 특정 오차범위 내(가령, 500Hz 내)에서 도플러 편이를 보정할 필요가 있다. 따라서 위성의 이동 뿐 아니라 GPS 수신기의 이동을 보정하기 위해, 가시 GPS 위성의 결정을 확정짓기 전 GPS 수신기는 수많은 도플러 편이 연산과 이에 대응하는 C/A 코드 비교를 수행한다.
또한 초기 위치를 식별하기 위해, GPS 수신기는 의사거리(pseudorange)라 불리는 모바일 장치와 각 가시 GPS 위성 간의 거리를 결정한다. 의사거리는 GPS 신호의 전파 지연을 사용하여 계산될 수 있다. 전파 지연은 두 부분으로 나뉘어지는데, 이는 밀리세컨드 부분과 코드 위상으로 불리는 밀리세컨드 이하(submillisecond) 부분이다. 밀리세컨드 부분은 패킷 프레임으로부터 디코딩될 수 있으며, 코드 위상은 GPS 신호 내 C/A 코드의 1ms 간격 반복을 모니터링함으로써 결정될 수 있다.
GPS 수신기가 가시 위성을 식별하고, GPS 신호를 디코딩하며, 의사거리를 계산하면, GPS 수신기는 초기 위치를 계산한다. 초기 위치가 결정된 후, GPS 수신기는 모바일 장치의 위치를 유지하기 위해 추적 단계로 전환한다. 추적 단계 동안, GPS 수신기는 도플러 주파수 및 전파 지연을 조절하여 시간이 지남에 따른 위성과 모바일 장치의 추가 이동에 의한 편이를 보정한다. 추적을 실행함으로써 GPS 수신기는 빠른 속도와 저비용으로(상대적으로 저 전력 소비율로) 위치 변화를 추정할 수 있다.
그러나 만약 GPS 수신기가 추적 연산을 지속적으로 수행하지 않을 경우, GPS 수신기는 포착 단계를 다시 수행하도록 요구되는데, 이는 위에서 언급했듯이 전력을 많이 필요로 하며 시간 소모가 크다. 따라서 대부분의 GPS 수신기는 항상 활성화되어 있도록 구성되며 모바일 장치에 의해 듀티사이클로 작동(duty-cycled)하지 않는다.
도 1은 일 실시예에 따른 GPS 시스템(100)을 그림으로 나타낸 것이다. GPS 시스템(100)은 모바일 장치(102) 및 GPS 위성들(104, 106, 108, 110, 112)을 포함하며, 이 위성들로부터 모바일 장치가 GPS 신호(114)를 수신할 수 있다. GPS 시스템(100)은 서버(116) 및 네트워크(118)를 포함한다. 일반적으로 모바일 장치(102)는 네트워크(118)를 통해 서버(116)와 데이터를 주고받는다. 모바일 장치(102)는 WLAN(wireless local-area-network)과 같은 무선 네트워크, 블루투스(Bluetooth®)와 같은 근거리 무선 네트워크, 및 CDMA(code-division multiple access) 시스템과 같이 셀 타워(cell tower)를 통해 제공되는 모바일 네트워크를 통해 네트워크(118)와 통신할 수 있다.
모바일 장치(102)는 핸드폰, 스마트폰, 내비게이션 장치, 추적 센서, GPS 센서, 또는 이외의 GPS 수신기를 포함하는 장치와 같이, GPS 가능(GPS-enabled) 장치가 될 수 있다. 본 실시예에서는, 모바일 장치(102)는 스마트폰으로 설명될 수 있다.
GPS 위성들(104 내지 112)은 GPS 위성 내비게이션(sat-nav) 시스템과 관련된 위성을 포함할 수 있다. 또한, 내비게이션 위성들(104 내지 112)은 도면에 다섯 개의 위성으로 도시되었지만, 모바일 장치(102)가 GPS 신호를 수신할 수 있도록 하는 내비게이션 위성이기만 하면 몇 개라도 가능하다. GPS 위성들(104 내지 112)은 상기 설명된 바와 같이, 위성 고유의 C/A 코드에 의해 고유하게 식별 가능하다. 일반적으로, GPS 위성(104 내지 112)은 지형 공간적 위치결정(geo-spatial positioning)에 유용한 GPS 신호를 전송한다. GPS 신호(114)는 인코딩되고, 위치 계산에 유용한 시간 기반 정보를 포함한다.
모바일 장치(102)는 GPS 위성으로부터 GPS 신호(114)를 수신하는데, 모바일 장치(102)는 이를 모바일 장치(102)의 (모바일 장치(102)의 가시선(line-of-sight) 내에 있는) 현재 위치에서 볼 수 있다. 어떤 경우, 모바일 장치(102)에 의해 수신된 GPS 신호(114)는 다양한 장애물에 의해 회절되고, 반사되고, 및/또는 감쇠할 수 있다.
모바일 장치(102)는 GPS 수신기를 포함하는데, 이는 위성(104 내지 112)으로부터의 GPS 신호(114)를 샘플링하여 GPS 신호 샘플을 만들도록 구성된다. GPS 신호 샘플은 모바일 장치(102)에 의해 포착된 GPS 신호(114)에 대한 하나 이상의 인접한 측정값들을 포함한다. 샘플의 분리된 인접 범위 각각을 청크라고 부르며, 이는 적어도 1ms 동안은 지속된다. 만약 샘플에 하나 이상의 청크가 있으면, 그 사이에 적절한 샘플링 간격이 있을 것이다. 일부 경우, 모바일 장치(102)는 신호 데이터(120)를 서버(116)에 제공하기 전에 GPS 신호 샘플을 압축하거나, 처리하거나, 또는 다른 방식으로 다루도록 구성될 수 있다. 예를 들어, 모바일 장치(102)는 미가공(raw) GPS 신호(114), GPS 신호(114)의 압축 버전, 또는 GPS 신호(114)로부터 얻은 데이터, 가령 가시 위성의 ID 및/또는 코드 위상 및 도플러 주파수를 서버에 제공할 수 있다.
모바일 장치(102)는 네트워크(118)를 통해 GPS 신호 데이터(120)를 서버(116)에 제공한다. 일부 예시에서, 모바일 장치(102)는 무선 또는 모바일 통신 인터페이스를 포함하지 않는 GPS 센서 또는 GPS 추적 장치가 되고, 따라서 모바일 장치(102)는 GPS 신호 데이터(120)를 서버(116)에 실시간으로 (GPS 신호가 수신되는 대로) 제공할 수 없다. 본 예시에서, 모바일 장치(102)는 GPS 신호 데이터(102)를 모바일 장치(102)에 통합되는 컴퓨터 판독가능 저장 장치상의 데이터로 저장할 수 있다. 이후 데이터는 서버(116)로 업로드되는데, 이 경우 모바일 장치(102)의 이전 위치는 업로드 시간에 결정되거나 재구성될 수 있다.
서버(116)가 모바일 장치(102)로부터 GPS 신호 데이터(120)를 수신하면, 서버(116)는 모바일 장치(102)의 초기 위치를 결정하고 위치 정보(122)를 네트워크(118)를 통해 모바일 장치(102)로 보낸다. 초기 위치를 결정하기 위해 서버(116)를 사용함으로써, 모바일 장치(102)는 전력을 많이 요하는 수집 단계 동안 일반적으로 소비되는 에너지를 보존하고, 전반적인 배터리 수명을 연장할 수 있다.
본 예시에서, 모바일 장치(102)는 GPS 신호 데이터(120)를 모바일 장치(102)상에서 미리 처리되지 않은 미가공 GPS 샘플 상태로 서버에 제공한다. 다른 예시에서는, 모바일 장치(102)는 GPS 신호 데이터(120)를 서버(116)에 제공하기 전 이를 디코딩하고, 암호화하고, 압축할 수 있다.
서버(116)가 GPS 신호 데이터(120)를 수신할 때, 서버(116)는 위성들(104 내지 112)과 같은 가시 위성 세트를 식별하기 위해 청크를 수집한다. 한 특정 예에서, 이러한 작은 청크들로부터 가시 위성들(104 내지 112)을 식별하기 위해, 서버(116)는 희소 신호 복구(sparse signal recovery)라는 기술을 활용한다. 본 예시에서, 서버(116)는 가시 위성 세트를 빈 세트(an empty set)로 초기화한다 (즉, 서버(116)는 모바일 장치로부터 수신한 청크 내의 어느 C/A 코드 템플릿도 식별하지 않는다.). 다음으로 서버(116)는 가능한 위성 ID, 코드 위상 및 도플러 주파수 조합을 통해 GPS 신호(114)를 검색하여, 모바일 장치(102)에 의해 샘플링된 가장 강한 GPS 신호의 위성을 선택한다. 예를 들어, 서버(116)는 각 위성이 가장 강한 GPS 신호를 식별할 수 있도록, 가능한 도플러 주파수 및 코드 위상에서 C/A 코드 템플릿을 반복한다.
위성이 선택되고 나면, 서버(116)는 선택된 위성과 관련된 GPS 신호를 청크에서 제거하고, 선택된 위성을 가시 위성 세트로 추가한다. 예를 들어, 서버(116)는 선택된 위성의 C/A 코드 템플릿에 의해 결정된 적절한 신호 부분공간(subspace) 상으로의 투영(projection)을 수행함으로써, 선택된 위성과 관련된 GPS 신호를 원래의 청크로부터 제거할 수 있다. 서버(116)는 정지 기준(a stopping criteria)이 충족되거나 (가령, 모바일 장치(102)의 위치가 계산되기에 충분한 위성이 식별되거나) 모든 가시 위성이 식별되거나, 혹은 잔여 신호가 신호를 송출하는 위성을 신뢰할 수 있게 식별할 수 있을 정도로 충분히 크지 않을 때까지, 가장 강한 신호의 위성을 선택하고, 선택된 위성과 관련된 신호를 제거하는 프로세스를 계속 진행한다.
가시 위성 세트가 결정되면, 서버(116)는 여러 청크에 대해 가시 위성 세트와 연관성을 보여준다. 청크가 너무 작기 때문에(가령, 2ms 길이), 예상치 못한 라디오 간섭 또는 다른 노이즈가 모바일 장치(102)에서 수집되는 GPS 신호를 심각하게 저하시킬 수 있으며, 위성이 단일 청크 내에서 부정확하게 발견되게 할 수도 있다. 따라서, 다양한 간격을 두어 복수 청크를 수집하고 식별된 위성을 각 청크 내에서 비교함으로써, 결정된 위치(122)의 전반적인 정확도가 개선될 수 있다.
따라서, 단일 청크를 사용하여 식별된 가시 위성 세트 내의 각 위성은 양호할 수도(즉, 가시 위성), 불량할 수도(즉, 잘못된 식별), 또는 미상(unknown)(즉, 양호하거나 불량한 식별로 분류될 수 없는)일 수도 있다. 일례로, 서버(116)는 GPS 신호의 각 청크에 대해 가시 위성 세트 내의 각 위성을 미상의 상태로 설정한다. 서버(116)는 모든 청크에 대해 각 위성과 관련된 데이터를 비교함으로써 양호한 위성과 불량한 위성을 결정한다. 예를 들어, 일 실시예에서 서버(116)는 모든 청크에 대해 각 위성에 대해 코드 위상 차이가 탐지되면 이를 계산하여, 만약 그 차이가 첫 번째 임계치 이하이면, 서버는 위성을 "양호한" 것으로 식별하며, 만약 그 차이가 두 번째 임계치보다 클 경우에는 위성을 "불량한" 것으로 식별한다. 그러면 단일 청크 내에서만 보일 수 있는 나머지 위성 및 다른 위성은 "미상"으로 식별된다.
위치(122)는 양호한 위성을 사용하여 추정될 수 있다. 예를 들어, 서버(116)는 청크들이 수집된 시간, 양호한 위성의 ID, 양호한 위성과 관련된 궤도 정보(NASA 궤도 데이터베이스로부터 획득하거나 GPS 신호(114)로부터 디코딩된), 및 의사거리를 사용하여 모바일 장치(102)의 위치를 계산할 수 있다.
GPS에 대해서만 설명되었지만, 본 명세서에 설명된 기술은 다른 전역 또는 지역 위성 내비게이션 시스템과 관련되도록 구현될 수 있다. 어떤 경우, 이 기술들은 2 이상의 다른 위성 내비게이션 시스템으로부터 신호를 수신할 수 있는 sat-nav 수신기와 함께 사용된다. 예를 들어, 다른 전역 및/또는 지역 위성 항해 시스템은 GLONASS(Global Navigation Satellite System), Galileo, BeiDou, Compass, IRNSS(Indian Regional Navigation Satellite System), 또는 QZSS(Quasi-Zenith Satellite System) 등을 포함한다.
도 2는 일 실시예에 따른 GPS 시스템 프레임워크의 블록 다이어그램이다. GPS 시스템(200)은 모바일 장치(102), 서버(116), USGS 고도 API 데이터베이스(202), NASA 궤도 데이터베이스(204)를 포함한다.
모바일 장치(102)는 GPS 신호를 샘플링하는 하나 이상의 수신기와, GPS 신호 데이터(120)를 서버(116)에 제공하고 그 대신 위치 정보(122)를 수신하는 하나 이상의 통신 인터페이스를 포함한다. 서버(116)는 하나 이상의 프로세서(206), 통신 인터페이스(208), 및 컴퓨터 판독가능 저장 미디어(210)를 포함한다. 통신 인터페이스(208)는 네트워크, 가령 도 1의 네트워크(118) 상의 모바일 장치(102)와 데이터를 주고받는 프로세서(206)에 의해 접근 가능하다.
임의 개수의 프로그램 모듈, 애플리케이션, 또는 컴포넌트는 가령 위치 필터링 명령(212), 위성 식별 명령(214), 위성 분류 명령(216)을 포함하여 컴퓨터 판독가능 저장 매체(210)에 저장될 수 있다. 위치 필터링 명령(212)은 컴퓨터 판독가능 저장 매체(210)에 저장되며, 프로세서(206)에 의해 서버(116)가 양호한 위성 세트에 기반하여 모바일 장치(102)의 위치를 결정하도록 실행가능하다. 위성 식별 명령(214)은 프로세서(206)에 의해 서버(116)가 GPS 신호 데이터(120)로부터 가시 위성 세트를 식별하도록 실행가능하다. 위성 분류 명령(216)은 위성 식별 명령(214)에서 가시 위성 세트가 결정되면, 프로세서(206)에 의해 서버(116)가 가시 위성 세트로부터 양호한 위성 세트를 식별하도록 실행가능하다.
본 명세서에서 사용된 "컴퓨터 판독가능 매체"는 컴퓨터 저장 매체 및 통신 매체를 포함한다. 컴퓨터 저장 매체는 어떤 정보 저장 방법이나 기술, 가령 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터로 실행되는 휘발성 및 비휘발성, 착탈형 및 비착탈형 매체를 포함한다. 컴퓨터 저장 매체는 RAM(random access memory), ROM(read only memory), EEPROM(electrically erasable programmable ROM), 플래시 메모리, 또는 다른 메모리 기술, CD-ROM(compact disk ROM), DVD(digital versatile disks) 또는 다른 광학 저장부, 자기 카세트, 자기 테이프, 자기 디스크 저장부를 포함하지만, 이에 국한되지는 않는다.
반대로, 통신 매체는 전형적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파(carrier wave)와 같은 변조된 데이터 신호의 다른 데이터를 구현할 수 있다. 본 명세서에 정의된 컴퓨터 저장 매체는 통신 매체를 포함하지 않는다.
USGS 고도 API 데이터베이스(202)는 서버에 의해 통신 인터페이스(208)를 거쳐서 접근 가능한데, 서버(116)는 서버(116)에 의해 결정된 위치와 관련된 고도 데이터를 검색할 수 있다. 일반적으로 서버(116)는 위도 및 경도 좌표를 USGS 고도 API 데이터베이스(202)에 제공하며, 대신 그 좌표와 관련된 고도 데이터를 수신한다.
또한 NASA 궤도 데이터베이스(204) 역시 서버에 의해 통신 인터페이스(208)을 거쳐서 접근 가능하며, GPS 위성(104 내지 112)와 관련된 책력(almanac) 및 궤도 정보 데이터를 검색하는 데 사용된다. 책력 데이터는 지구 궤도 내의 위성의 대략적인 궤도 및 상태와 관계가 있다. 궤도 정보 데이터는 위성의 위치 및 궤적과 관계가 있다.
USGS 고도 API 데이터베이스(202) 및 NASA 궤도 데이터베이스(204)는 서버가 고도, 책력, 궤도 정보 데이터를 검색할 수 있는 다양한 데이터베이스의 두 예시이다. 예를 들어, 미국 측지국(US Geodetic Survey)은 GPS 위성의 궤도, 위치, 궤적을 계산하며, 이 궤도, 위치, 궤적을 웹 상에서 공중이 이용 가능하게 한다.
일례로, 모바일 장치(102)는 언제 GPS 신호가 적어도 하나의 통신 인터페이스(208)을 거쳐 서버(116)로 샘플링되었는지에 대응하는 타임 스탬프 및 복수의 미가공 GPS 신호 청크를 포함하는 GPS 신호 데이터(120)를 제공한다. 일부 경우, GPS 신호 데이터(120)는 모바일 장치(102)로부터 다운로드되며, 다른 경우 GPS 신호 데이터(120)는 모바일 장치(102)의 무선 또는 모바일 네트워크를 통해 수신된다.
GPS 신호 데이터(120)가 수신되면, 위치 필터링 명령(212)은 프로세서로 하여금 모바일 장치(102)의 위치를 결정하게 한다. 모바일 장치(102)의 위치를 계산하기 위해, 서버(116)는 GPS 신호가 샘플링되는 시간, 신호를 송출하는 (가시) GPS위성, 가시 위성과 관계된 궤도 정보, 및 의사거리를 결정할 필요가 있다.
일례로, 서버(116)는 위성 식별 명령(214) 및 위성 분류 명령(216)을 실행함으로써 어느 GPS 위성이 모바일 장치(102)에서 보이는지를 식별한다. 위성 식별 명령(214)은 가시 위성 세트를 식별하기 위해 GPS 신호 데이터(120) 내에 수집된 청크 각각에 대한 수집을 수행한다. 일 실시예에서, 모바일 장치(102)가 어느 C/A 코드 템플릿도 탐지하지 못하면, 위성 식별 명령(214)은 우선 각 청크에 대한 가시 위성 세트를 빈 세트로 초기화한다. 다음으로, 각 청크에 대해 위성 식별 명령(214)은 가능한 위성 ID, 코드 위상 및 도플러 주파수 조합 모두를 통해 GPS 신호를 검색하여 모바일 장치(102)에 의해 샘플링된 가장 강한 GPS 신호의 위성을 선택한다. 상기와 같이, 위성 식별 명령(214)은 각 위성이 가장 강한 GPS 신호를 식별할 수 있도록, 가능한 도플러 주파수 및 코드 위상에서 C/A 코드 템플릿을 반복한다.
위성이 선택되면, 선택된 위성과 관련된 GPS 신호는 청크에서 제거되고, 선택된 위성은 가시 위성 세트에 추가된다. 예를 들어, 위성 식별 명령(214)은 선택된 위성의 C/A 코드 템플릿에 의해 결정되는 적절한 신호 부분공간(subspace) 상으로의 투영(projection)을 수행함으로써, 선택된 위성과 관련된 GPS 신호를 원래의 청크로부터 제거할 수 있다.
위성 식별 명령(214)은 정지 기준이 충족될 때까지 가장 강한 신호의 위성을 선택하는 과정을 반복한다. 예를 들어, 정지 기준은 미리 정해진 수의 위성이 식별되고(가령, 모바일 장치(102)의 위치가 계산되기에 충분한 위성이 식별됨), 모든 가시 위성이 식별되고, 및/또는 청크 내의 잔여 신호가 신호를 송출하는 위성을 확실하게 식별하기에 충분히 강하지 않을 때 충족될 수 있다. 본 절차의 예시로는 매칭 퍼슈잇(matching pursuit) 및 직교 매칭 퍼슈잇 알고리즘이 있다. 이 방식으로, 가시 위성 세트는 모바일 장치(102)가 제공한 GPS 신호(114)의 각 청크에 대해 결정될 수 있다.
가시 위성 세트가 결정되면, 위성 분류 명령(216)은 서버(116)로 하여금 여러 청크에 대해 가시 위성 세트와 연관성을 보여주도록 한다. 청크가 너무 작기 때문에(가령, 2ms 길이), 예상치 못한 라디오 간섭 또는 다른 노이즈가 GPS 신호를 심각하게 저하시킬 수 있으며, 위성이 단일 청크 내에서 부정확하게 발견되게 할 수도 있다. 따라서, 다양한 간격을 두어 복수 청크를 수집하고 식별된 위성을 각 청크 내에서 비교함으로써, 결정된 위치(122)의 전반적인 정확도가 개선될 수 있다.
상기와 같이, 단일 청크를 사용하여 식별된 가시 위성 세트 내의 각 위성은 양호할 수도(즉, 가시 위성), 불량할 수도(즉, 잘못된 식별), 또는 미상(즉, 양호하거나 불량한 식별로 분류될 수 없는)일 수도 있다. 일례로, 위성 분류 명령(216)은 GPS 신호 데이터(120)의 일부로 수신된 각 청크에 대하여 가시 위성 세트 내의 각 위성을 미상(unknown)의 상태로 설정한다.
위성 분류 명령(216)은 모든 청크에 대해 각 위성과 관련된 데이터를 비교함으로써 양호한 위성과 불량한 위성을 결정한다. 가령, 일 실시예에서 위성 분류 명령(216)은 서버로 하여금 특정 위성에 대응하는 각 샘플에 대해 코드 위상 차이가 탐지되면 이를 계산하게 한다. 만약 그 차이가 첫 번째 임계치 이하이면, 그 위성은 "양호한" 것으로 분류되며, 만약 그 차이가 두 번째 임계치보다 클 경우에는 위성은 "불량한" 것으로 분류된다. 단일 청크 내에서만 보일 수 있는 잔여 위성(즉, 차이가 첫 번째 임계치보다는 크지만, 두 번째 임계치보다는 작은 위성) 및 다른 위성은 "미상"으로 식별된다. "양호한" 위성을 사용하여 위치(122)를 추정하기 위해, 서버(116)는 우선 각 GPS 신호가 모바일 장치(102)에 의해 샘플링되는 시간, 양호한 위성과 관련된 궤도 정보, 및 의사거리를 결정한다.
일 실시예에서, 시간은 모바일 장치(102)에 의해 제공되는 타임 스탬프와 같이, 모바일 장치(102)로부터 GPS 신호 데이터(120)의 일부로 수신된다. 다른 실시예에서, 시간은 GPS 신호로부터 추출될 수 있다. 일반적으로 GPS 신호로부터 추출된 시간은 더 정확하지만, 샘플링 시간에 모바일 장치(102)에 의해 적용된 타임 스탬프만으로도 적당한 범위 내(즉, 수 미터 내)로 초기 위치(122)를 계산하기에 충분하다.
궤도 정보는 서버(116)에 의해 NASA 궤도 데이터베이스(204)로부터 검색될 수 있다. 일 실시예에서, 서버(116)는 NASA 궤도 데이터베이스(204)로부터 궤도 정보를 주기적으로 인출(fetch)하며, 추후 사용하기 위해 컴퓨터 판독가능 저장 매체(210)에 정보를 저장하는데, 가령 GPS 신호가 샘플링되고, 모바일 장치(102)에 저장되고, 일정기간 후 서버(116)에 다운로드된다. 다른 실시예에서, 위치 필터링 명령(212)은 서버로 하여금 궤도 정보 데이터를 결정하는 GPS 신호를 디코딩하게 한다.
궤도 정보 및 시간이 서버(116)에 의해 식별되면, 위치 필터링 명령(212)은 서버(116)로 하여금 궤도 정보 데이터와 GPS 신호를 사용하는 양호한 위성 각각에 대한 의사거리(즉, 코드 위상 및 전파 딜레이)를 계산하게 한다. 가령, 만약 모바일 장치(102)의 위치(122)의 150km 반경 내에서 참조 위치(가령, 휴대폰 기지)가 식별된다면, 서버(116)는 CTN(coarse-time navigation)이라는 기술을 사용하여 전파 딜레이를 결정할 수 있다.
각 위성에 대한 타임 스탬프, 코드 위상 및 전파 딜레이가 결정되면, 위치 필터링 명령(212)은 서버(116)로 하여금 모바일 장치(102)의 위치(122)를 추정하게 한다. 하지만, 일부 경우 모바일 장치(102)의 위치(122)를 정확하게 추정하기에는 양호한 위성이 너무 적게 식별될 수 있다. 만약 모바일 장치(102)의 위치(122)를 정확하게 추정하는 양호한 위성이 너무 적게 식별된다면, 위치 필터링 명령(212)은 "미상"으로 분류된 가시 위성을 나열하고, 각 위성을 양호한 위성 세트에 추가하여 위치(122) 식별을 시도한다. 불량한(즉, 부정확하게 식별된) 위성을 사용하여 추정된 위치는 잘못되거나, 불가능하거나 또는 부정확한 위치(가령, 고도가 지표면보다 훨씬 위거나 아래)를 가질 수 있다. 따라서 위치 필터링 명령(212)은 잘못된 위치를 없애기 위해 각 위성을 추가한 후 추정된 위치(122)를 검증한다. 예를 들어, 위치를 지표면 근처의 고도 범위, 가령 500 내지 8000미터로 제한하면 잘못된 위치들을 많이 제거할 수 있다.
안타깝게도, 고도 범위를 설정하는 것 자체만으로는 잘못된 위치를 모두 탐지할 수 없다. 남은 잘못된 위치를 제거하기 위해, 위치 필터링 명령(212)은 서버(116)로 하여금 통신 인터페이스(208)를 통해 USGS 고도 API 데이터베이스(202)에 접근하게 한다. 서버(116)는 위도 및 경도 좌표를 사용하여 남아있는 추정 위치(122) 각각에 대한 지표면의 실제 고도를 검색할 수 있다. 위치 필터링 명령(212)은 결정된 고도와 실제 고도를 비교하고, 일치하지 않는 고도의 위치는 제거한다. 그러나 고도가 USGS 고도 데이터와 일치할 경우, GPS 신호가 샘플링되었을 때의 모바일 장치(102)의 실제 위치(122)는 식별되어 위치(122)로서 모바일 장치(102)로 되돌아간다. USGS 고도 API 데이터베이스(202)를 사용하고, 고도를 비교하는 것은 잘못된 위치를 식별할 수 있는 한 가지 기술일 뿐이고, 다른 기술이 이용될 수 있음을 이해해야 한다.
일정 경우, 일부 위성이 여전히 "미상"으로 분류된 때에도 위치를 추정하도록 충분한 양호한 위성이 식별될 수 있다. 이 미상의 위성을 사용함으로써, 추정된 위치(122)의 정확도가 향상될 수 있다. 예를 들어, 가령, 상기와 같이 USGS 고도 데이터를 사용하여 새 위치가 추정되고 확인될 때 미상의 위성 각각은 양호한 위성 세트로 추가될 수 있다. 다른 경우, 미상의 위성을 사용하여 추정된 새로운 위치가 원 위치와 비교될 수 있으며, 만약 두 위치가 임계 거리 내에 있으면 미상의 위성은 "양호한" 것으로 고려되고, 새로운 위치는 위치(122)로서 모바일 장치(102)로 되돌아간다. 이 과정은 "양호한" 것으로 분류되어 남아있는 모든 미상의 위성이 검증될 때 까지 지속될 수 있다.
모바일 장치(102)의 최종 위치(122)가 식별되면, 위치(122)는 모바일 장치(102)에 지공된다. 다른 실시예에서, 위치(122)는 추후의 분석을 위해 컴퓨터 판독가능 저장 매체에 저장될 수 있으며, 가령, 과학적 연구에서 사용되는 디스플레이에 제공될 수 있다.
도 3은 일 실시예에 따른 모바일 장치 프레임워크의 블록 다이어그램이다. 모바일 장치(102)는 하나 이상의 프로세서(302), 하나 이상의 통신 인터페이스(304), GPS 수신기(306), 클록(308), 컴퓨터 판독가능 저장 매체(310)를 포함한다. 컴퓨터 판독가능 저장 매체(310)는 위성 필터링 명령(312), 위성 식별 명령(314), 위성 분류 명령(316), 및 하나 이상의 GPS 신호 샘플(318)를 저장하는 것으로 설명된다.
통신 인터페이스(304)는 데이터를 서버, 가령 도 1, 도 2의 서버(116)에 전송하는 데 사용된다. 통신 인터페이스(304)는 WLAN(wireless local-area-network)와 같은 무선 네트워크, 블루투스(Bluetooth®)와 같은 근거리 무선 네트워크, 및 CDMA(code-division multiple access) 시스템과 같이 셀 타워(cell tower)를 통해 제공되는 모바일 네트워크를 통해, 또는 USB 인터페이스와 같은 무선 연결을 통해 데이터를 서버에 전달할 수 있다.
GPS 수신기(306)는 하나 이상의 위성, 가령 위성들(104 내지 112)로부터 GPS 신호를 수신하도록 구성된다. GPS 수신기(306)는 모바일 장치(102)와 합쳐진 것으로 보이지만, 일부가 아니라 외부에 있을 수도 있다. 외부 GPS 수신기는 유선(가령, USB), 또는 유선(가령, Bluetooth®) 인터페이스를 통해 모바일 장치(102)와 통신할 수 있다. 일부 경우, GPS 수신기(306)는 하나 이상의 통신 인터페이스(304)와 합쳐진다. 이 통합 모듈은 셀룰러 연결 및 GPS 기능을 제공한다. 일부 예로, 통합 모듈의 안테나는 셀룰러 및 GPS 서브시스템에 의해 공유된다.
클록(308)은 GPS 신호 샘플이 GPS 수신기(306)에 수신되는 시간과 관련된 타임 스탬프를 제공하도록 구성된다. 일례로, 클록(308)은 WWVB 수신기가 된다. WWVB는 무선국(radio sataion)인데, 이는 송신기에 위치한 원자 시계 세트로부터 나오는 지속적인 60 kHz의 반송파를 통해 지구의 보편적인 시간 신호를 송출한다.
일례로, GPS 수신기(306)는 위성들(104 내지 112)로부터 GPS 신호를 주기적으로 샘플링하고, 각 GPS 신호 샘플(318)은 클록(308)에 의해 타임 스탬프 처리된다. 타임 스탬프 처리된 GPS 신호 샘플(318)은 컴퓨터 판독가능 저장 매체(310)에 저장되거나 통신 인터페이스(304)를 통해 서버(116)로 제공된다. GPS 신호 샘플(318)이 서버(116)로 제공되면, 이에 대응하여 모바일 장치(102)는 서버(116)로부터 위치를 수신할 수 있다. GPS 신호 샘플(318)이 저장되면, 신호(318)는 추후 서버(116)로 저장되거나 다운로드될 수 있으며, 또는 모바일 장치(102)는 샘플을 활용하여 위치를 식별할 수 있다.
일부 실시예에서, GPS 신호 샘플(318)은 미가공 샘플로서 서버(116)에 제공된다. 다른 실시예에서, 위치 프로세싱은 서버 및 모바일 장치(102) 사이로 나뉘어질 수 있으며, 가시 위성 세트와 관련 코드 위상 및 도플러 주파수가 서버(116)에 제공될 수 있다. 일부 경우, GPS 신호 샘플(318) 또는 신호 데이터는 전송 전에 압축될 수 있다.
모바일 장치(102)는 범용 또는 특수한 컴퓨터 시스템 구성이나 환경에서 사용될 수 있다. 예로는 개인용 컴퓨터, 포켓용 장치 또는 휴대용 장치, 태블릿 장치, 멀티프로세서 시스템, 멀티프로세서 기반 시스템, 프로그래밍 가능한 가전 장치, 네트워크 PC, 또는 다른 위치 기반 시스템 장치가 있다.
한 특정 실시예에서, 모바일 장치(102)는 서버의 도움 없이도 위치를 식별할 수 있다. 예를 들어, GPS 수신기(306)는 하나 이상의 가시 위성에 의해 송출되고 있는 GPS 신호를 샘플링할 수 있다. GPS 신호 샘플(318)은 매우 짧을 수 있다. 모바일 장치(102)는 클록(308)을 이용하여 각 GPS 신호 샘플(318)을 타임 스탬프 처리하고, 충분한 샘플이 수집되면 모바일 장치는 GPS 신호 샘플(318)을 작은 청크들(가령, 1 또는 2ms 길이)로 분할하고, 가시 위성 세트를 식별하기 위해 청크를 수집한다.
각 청크에 대해, 모바일 장치는 가시 위성 세트를 식별하기 위해 위성 식별 명령(314)을 실행한다. 모바일 장치(102)는 우선 가시 위성 세트를 빈 세트로 초기화한다(즉, 어느 C/A 코드 템플릿도 청크에서 발견되지 않는다. ). 다음으로, 모바일 장치(102)는 가능한 위성 ID, 코드 위상 및 도플러 주파수 조합 모두에 대해 청크를 검색하여 가장 강한 GPS 신호의 위성을 선택한다. 예를 들어, 모바일 장치(102)는 각 위성이 가장 강한 GPS 신호를 식별할 수 있도록, 가능한 도플러 주파수 및 코드 위상에서 C/A 코드 템플릿을 반복한다.
위성이 선택되면, 모바일 장치(102)는 선택된 위성과 관련된 GPS 신호를 청크에서 제거하고, 선택된 위성을 가시 위성 세트로 추가한다. 예를 들어, 모바일 장치(102)는 선택된 위성의 C/A 코드 템플릿에 의해 결정된 적절한 신호 부분공간(subspace) 상으로의 투영(projection)을 수행함으로써, 선택된 위성과 관련된 GPS 신호를 원래의 청크로부터 제거할 수 있다. 모바일 장치(102)는 정지 기준이 충족될 때까지 가장 강한 신호의 위성을 선택하고, 가장 강한 신호를 송출하는 위성과 관련된 신호를 제거하는 프로세스를 계속 진행한다. 예를 들어, 정지 기준은 미리 정해진 수의 위성이 "양호한" 것으로 분류되었거나(가령, 모바일 장치(102)의 위치가 계산되기에 충분한 위성이 식별됨), 모든 가시 위성이 고려되었거나, 또는 청크 내의 잔여 신호가 신호를 송출하는 위성을 확실하게 식별할 정도로 충분히 강하지 않을 때 충족될 수 있다. 본 절차의 예시로는 매칭 퍼슈잇 및 직교 매칭 퍼슈잇 알고리즘이 있다.
가시 위성 세트가 결정되면, 모바일 장치(102)는 위성 분류 명령(316)을 실행하여 여러 청크에 대해 가시 위성 세트와 연관성을 보여준다. 일례로, 모바일 장치(102)는 가시 위성 세트 내의 각 위성을 미상(unknown)의 상태로 설정한다. 모바일 장치(102)는 모든 청크에 대해 각 위성과 관련된 데이터를 비교함으로써 양호한 위성과 불량한 위성을 결정한다. 가령, 일 실시예에서 모바일 장치(102)는 각 위성의 모든 청크에 대해 코드 위상 차이가 탐지되면 이를 계산하고, 만약 그 차이가 첫 번째 임계치 이하이면 그 위성은 "양호한" 것으로 분류되며, 만약 그 차이가 두 번째 임계치보다 클 경우에는 위성은 "불량한" 것으로 분류된다. 단일 청크 내에서만 보일 수 있는 잔여 위성(즉, 차이가 첫 번째 임계치보다는 크지만, 두 번째 임계치보다는 작은 위성) 및 다른 위성은 "미상"으로 식별된다.
모바일 장치(102)는 "양호한" 위성을 사용하여 위치 필터링 명령(212)을 실행함으로써 위치를 결정한다. 예를 들어, 모바일 장치(102)는 클록(308)에 의해 제공되는 타임 스탬프, 양호한 위성의 ID, 가시 위성과 관련된 궤도 정보(NASA 궤도 데이터베이스로부터 획득하거나 GPS 신호(114)로부터 디코딩된), 및 의사거리를 사용하여 위치를 계산할 수 있다. 예를 들어, 전파 딜레이는 궤도 정보, 모바일 장치(102)의 150km 내의 참조 위치(가령, 휴대폰 기지), 및 CTN(coarse-time navigation)이라는 기술을 통한 타임 스탬프를 이용하여 계산될 수 있다.
도 4 내지 도 7은 모바일 장치, 가령 도 1 내지 도 3의 모바일 장치(102)의 위치를 결정하는 예시 프로세스를 설명하는 흐름도이다. 프로세스는 일련의 동작을 나타내는 논리 흐름도에서 블록의 모음으로 설명되는데, 일부 또는 모든 동작은 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 소프트웨어의 관점에서, 블록은 하나 이상의 컴퓨터 판독가능 매체에 저장되는 컴퓨터 실행가능 명령으로 나타나는데, 이 명령은 하나 이상의 프로세서에 의해 실행될 때 열거된 동작을 수행한다. 일반적으로, 컴퓨터 실행가능 명령은 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조, 및 기타 특정 기능을 수행하거나 특정한 추상 데이터 타입을 구현하는 것을 포함한다.
동작의 순서는 범위의 제한으로 해석해서는 안된다. 몇 개의 블록이든지 임의의 순서 및/또는 동시에 조합되어 프로세스, 또는 다른 프로세스를 실행할 수 있으며, 모든 블록이 반드시 실행되어야 될 필요는 없다. 프로세스가 광범위한 프레임워크, 아키텍쳐, 환경으로도 실행될 수 있음에도, 본 프로세스는 논의를 목적으로 본 예시에 설명된 프레임워크, 아키텍쳐, 환경을 참고하여 설명되었다.
도 4는 일 실시예에 따른 모바일 장치(가령, 도 1 내지 도 3의 모바일 장치(102))의 위치를 추정하는 프로세스의 흐름도이다. 블록(402)에서, 서버는 모바일 장치로부터 복수의 GPS 신호 샘플 및 각 샘플에 대한 타임 스탬프를 수신한다. 예를 들어, 모바일 장치는 다양한 간격에서 샘플링된 미가공 GPS 신호의 여러 청크를 모으고 전송할 수 있다. 일부 경우, 샘플의 길이 및/또는 간격은 다양할 수 있다. 예를 들어, 서버는 하나 이상의 긴 GPS 신호 샘플을 수신할 수 있는데, 이는 서버가 청크들로 분할한다. 일 실시예에서, 서버는 GPS 신호가 수집되는 시간과 다른 시간에 모바일 장치로부터 GPS 신호 샘플을 다운로드할 수 있다.
블록(404)에서, 서버는 청크로부터 가시 위성 세트를 식별한다. 예를 들어, 서버는 가능한 위성 ID, 코드 위상 및 도플러 주파수 조합 모두를 통해 각 청크를 검색하여 가장 강한 신호의 위성을 선택할 수 있다. 가령, 서버는 각 위성이 가장 강한 GPS 신호를 식별할 수 있도록, 가능한 도플러 주파수 및 코드 위상에서 C/A 코드 템플릿을 반복한다.
가장 강한 위성이 선택되면, 서버는 가장 강한 위성과 관련된 GPS 신호를 청크에서 제거하고, 선택된 위성을 가시 위성 세트로 추가한다. 예를 들어, 서버는 선택된 위성의 C/A 코드 템플릿에 의해 결정된 적절한 신호 부분공간(subspace) 상으로의 투영(projection)을 수행함으로써, 선택된 위성과 관련된 GPS 신호를 원래의 청크로부터 제거할 수 있다. 서버는 정지 기준이 충족될 때(가령, 가령, 모바일 장치(102)의 위치가 계산되기에 충분한 위성이 식별되거나, 모든 가시 위성이 식별되거나, 또는 청크 내 잔여 신호가 신호를 송출하는 위성을 확실하게 식별하기에 충분히 강하지 않음) 까지 가장 강한 신호의 위성을 선택하고, 가장 강한 신호를 송출하는 위성과 관련된 신호를 제거하는 프로세스를 계속 진행한다. 본 절차의 예시로는 매칭 퍼슈잇 및 직교 매칭 퍼슈잇 알고리즘이 있다. 이러한 방식으로, 각 청크에 대해 가시 위성 세트가 결정될 수 있다.
블록(406)에서, 서버는 가시 위성 세트로부터 양호한 위성 세트를 식별한다. 서버는 가시 위성 세트를 복수의 청크와 연관짓고, 각 가시 위성을 양호하거나(즉, 가시 위성), 불량하거나(즉, 잘못된 식별), 또는 미상(즉, 양호하거나 불량한 식별로 분류될 수 없는)으로 분류함으로써 양호한 위성을 식별한다. 가령, 서버는 우선 각 가시 위성을 "미상"의 상태로 설정한다. 서버는 모든 청크에 대해 각 위성과 관련된 데이터를 비교함으로써 양호한 위성과 불량한 위성을 결정한다. 가령, 서버는 각 청크의 코드 위상 간 차이를 계산한다. 서버는 그 차이를 첫 번째 임계치와 비교하여, 만약 그 차이가 첫 번째 임계치 이하이면, 서버는 위성을 "양호한" 것으로 분류한다. 하지만, 만약 그 차이가 첫 번째 임계치보다 클 경우, 서버는 그 차이와 두 번째 임계치를 비교하는데, 만약 그 차이가 두 번째 임계치보다 클 경우 위성을 "불량한" 것으로 분류한다. 서버는 단일 청크 내에서만 보일 수 있는 위성 뿐만 아니라, 잔여 위성(즉, 차이가 첫 번째 임계치보다는 크지만, 두 번째 임계치보다는 작은 위성)을 "미상"으로 식별한다.
블록(408)에서, 서버는 NASA 궤도 데이터베이스로부터 궤도 정보 데이터를 검색한다. 한 특정 예에서, 서버는 NASA 궤도 데이터베이스로부터 주기적으로 책력 및 궤도 정보 데이터를 검색하고, 추후 사용을 위해 그 정보를 메모리, 가령 컴퓨터 판독가능 저장 매체(310)에 저장한다. 책력 및 궤도 정보 데이터를 저장하는 것은 GPS 신호 샘플이 수집되고, 모바일 장치에 일정 기간 저장되고, 추후 서버로 다운로드될 때 특히 유용하다.
블록(410)에서, 서버는 궤도 정보, 양호한 위성 세트, 타임 스탬프 및 의사거리로부터 모바일 장치의 위치를 추정할 수 있다. 가령, 서버는 참조 위치를 사용하여 CTN을 계산함으로써 전파 딜레이를 계산할 수 있다. 그러면 서버는 위치를 모바일 장치로, 또는 과학적 연구를 위해 하나 이상의 데이터베이스로 다시 제공한다.
도 4는 일련의 GPS 신호 샘플 청크들로부터 위성 세트를 식별함으로써 모바일 장치의 위치를 추정하는 프로세스(400)을 제공한다. 도 5 및 도 6은 위성 세트를 식별할 수 있는 실시예를 더욱 상세하게 제공한다.
도 5는 일 실시예에 따른 가시 위성 세트를 식별하는 프로세스(500)의 흐름도이다. 블록(502)에서 서버는 가시 위성 세트를 빈 세트로 초기화한다(즉, 서버는 모바일 장치로부터 수신한 청크 내의 어느 C/A 코드 템플릿도 식별하지 않았다).
블록(504)에서 서버는 가능한 위성 ID, 코드 위상 및 도플러 주파수 조합을 통해 GPS 신호 청크 중 하나를 검색하여, 최적 매칭을 선택한다. 최적 매칭은 청크 내 가장 강한 GPS 신호의 위성을 식별함으로써 선택될 수 있다. 예를 들어, 서버는 각 위성이 가장 강한 GPS 신호를 식별할 수 있도록, 가능한 도플러 주파수 및 코드 위상에서 C/A 코드 템플릿을 반복할 수 있다.
블록(506)에서, 서버는 최적 매칭(즉, 샘플 내 가장 강한 신호의 위성)을 가시 위성 세트에 추가한다. 예를 들어, 가시 위성 세트는 다음과 같이 표현될 수 있다:
Figure 112016018575535-pct00001
이 때 프로세스(500)에서
Figure 112016018575535-pct00002
는 가시 위성 세트를 나타내며,
Figure 112016018575535-pct00003
는 최적 매칭을, k는 반복 횟수를 나타낸다.
블록(508)에서, 서버는 최적 매칭과 관련된 GPS 신호를 청크로부터 제거한다. 예를 들어, 서버는 선택된 위성의 C/A 코드 템플릿에 의해 결정된 적절한 신호 부분공간(subspace) 상으로의 투영(projection)을 수행함으로써, 선택된 위성과 관련된 GPS 신호를 제거할 수 있다.
매칭 퍼슈잇의 경우, 새로운 신호
Figure 112019080598082-pct00004
는 다음과 같이 이전의 샘플
Figure 112019080598082-pct00005
을 사용하여 계산될 수 있다.
Figure 112016018575535-pct00006
이 때,
Figure 112019080598082-pct00007
는 최적 매칭이고, k는 프로세스(500)에서의 반복 횟수를 나타낸다. 직교 매칭 퍼슈잇의 경우 새로운 신호는 다음과 같이 이전의 샘플을 사용하여 계산될 수 있다.
Figure 112016018575535-pct00008
이 때,
Figure 112021011940552-pct00009
는 현재의 k 회 반복 이전에 식별된 모든 C/A 코드 템플릿에 의해 확장된 부분공간상으로의 직교 투영이다.
블록(510)에서, 서버는 정지 기준이 충족되었는지를 결정한다. 예를 들어, 정지 기준은 미리 정해진 위성 식별 횟수일 수 있고(가령, 모바일 장치의 위치가 계산되기에 충분한 위성이 식별됨), 모든 가시 위성이 식별되거나, 또는 청크 내의 잔여 신호가 신호를 송출하는 위성을 확실하게 식별하기에 충분히 강하지 않을 때 충족될 수 있다. 정지 기준이 충족될 경우, 프로세스(500)는 블록(512)으로 진행하게 되고, 서버는 가시 위성 세트를 출력하며, 그렇지 않을 경우 프로세스(500)는 블록(504)로 되돌아와서 또 다른 최적 매칭을 식별한다.
도 6은 일 실시예에 따라 가시 위성 세트로부터 양호한 위성 세트를 선택하는 프로세스의 흐름도이다. 블록(602)에서, 서버는 가시 위성을 수신한다. 예를 들어, 가시 위성 세트는 상기와 같이 모바일 장치로부터 수신되거나, 프로세스(500)를 사용하여 서버에 의해 발생될 수 있다.
블록(604)에서, 서버는 각 가시위성을 "미상"의 상태로 초기화한다. 각 가시 위성은 양호하거나(즉, 가시 위성), 불량하거나(즉, 잘못된 식별), 또는 미상(즉, 양호하거나 불량한 식별로 분류될 수 없는)으로 분류된다. 위성은 "미상"으로 초기화되는 것은 청크의 작은 크기 때문에, 예기치 않은 전파 혼선 또는 기타 노이즈가 GPS 신호를 심각하게 저하시킬 수 있고, 위성이 부정확하게 탐지될 수 있기 때문이다.
블록(606)에서, 서버는 복수의 GPS 샘플에 대해 각 위성의 코드 위상 간 차이를 계산한다. 가령, 차이 D, 두 GPS 샘플
Figure 112016018575535-pct00010
,
Figure 112016018575535-pct00011
에서 탐지되는 위성 1 내지 k 에 대한 코드 위상
Figure 112016018575535-pct00012
 내지
Figure 112016018575535-pct00013
가 다음과 같이 계산될 수 있다.
Figure 112016018575535-pct00014
만약 GPS 신호가 샘플링되었을 때, 위성이 실제로 모바일 장치에서 보이면, 청크 간 코드 위상의 차이 D는 상대적으로 작게 된다.
블록(608)에서, 서버는 각 위성에 대한 코드 위상의 차이를 임계값과 비교하고, 만약 그 차이가 임계치 이하이면 서버는 위성을 양호한 위성 세트에 추가한다. 하지만 만약 위성의 코드 위상이 임계치보다 클 경우, 서버는 위성을 미상 위성 세트에 남겨두거나, 차이를 두 번째 임계치와 비교하여 만약 차이가 두 번째 임계치보다 클 경우, 위성을 불량한 위성 세트에 추가한다.
도 4 내지 도 6은 일련의 GPS 신호로부터 위성 세트를 식별하는 예시 프로세스를 제공한다. 도 7은 위성 세트를 사용하여 위치를 추정하는 예시 프로세스를 제공한다.
도 7은 일 실시예에 따라, 모바일 장치의 위치를 추정하는 프로세스의 흐름도이다. 블록(702)에서, 서버는 양호한 위성 세트를 수신한다. 예를 들어, 양호한 위성 세트는 프로세스(500) 및 프로세스(600)에 따라 결정될 수 있다. 일부 실시예에서, 서버는 미상 위성 세트 및 가시 위성 세트(즉, 불량한 위성으로 분류된 것을 포함하여 프로세스(500)에서 식별된 위성의 총세트)을 수신할 수도 있다.
블록(704)에서, 서버는 양호한 위성 세트를 사용하여 위치를 추정한다. 상기와 같이, 서버는 GPS 신호가 샘플링된 시간, 양호한 위성의 ID, 궤도 정보 및 책력 데이터(GPS 신호 샘플로부터 디코딩되거나 NASA 궤도 데이터베이스로부터 획득할 수 있는), 의사거리에 기반하여 위치를 추정할 수 있다.
블록(706)에서, 서버는 서버가 양호한 위성 세트로부터 위치를 추정할 수 있는지를 판단한다. 예를 들어, 일부 실시예에서, 위치를 결정하는데 필요한 최소 위성 개수는 양호한 것으로 분류될 수 있으며, 추정된 위치는 확실하지 않거나 잘못될 수 있다. 서버가 위치를 추정할 수 없으면, 프로세스(700)는 블록(708)으로 진행하며, 서버는 가시 위성 세트 내의 나머지 위성들 각각을 양호한 위성 세트로 한번에 하나씩 추가하고, 위치를 재추정한다. 또는, 서버가 위치를 추정할 수 있으면 프로세스는 블록(710)으로 진행하며, 서버는 잔여 미상 위성을 사용하여 원래의 추정된 위치의 정확도 개선을 시도한다.
블록(708)에서, 서버는 검증되지 않은 위성이 있는지를 확인한다. 검증되지 않은 위성이 없고, 서버가 여전히 위치를 추정할 수 없는 경우에는, 프로세스(700)는 블록(712)으로 진행하고 서버는 실패(즉, 모바일 장치로부터 수신되는 GPS 샘플로부터 추정된 위치가 없음)를 출력한다. 아직 검증되지 않은 위성이 있으면, 서버는 일시적으로 검증되지 않은 위성 중 하나를 양호한 위성 세트로 추가하고, 프로세스(700)는 블록(714)으로 진행한다.
블록(714)에서, 서버는 업데이트된 양호한 위성 세트를 사용하여 위치의 재 추정을 시도한다. 불량한(즉, 잘못 식별된) 위성을 사용하여 추정된 위치는 잘못되거나, 불가능한, 또는 부정확한 위치(가령, 고도가 지표면보다 훨씬 위거나 아래)를 가질 수 있다. 따라서 서버는 잘못된 위치를 없애기 위해 각 검증되지 않은 위성을 추가한 후 추정된 위치를 검증한다. 예를 들어, 서버는 유효한 위치를 지표면 근처의 고도 범위, 가령 500 내지 8000미터로 제한할 수 있는데, 이는 불량한 위성을 사용하여 추정된 많은 위치들을 배제할 수 있다. 다른 예로는, 서버는 업데이트된 양호한 위성 세트를 이용하여 추정된 위치 각각에 대한 지표면의 실제 고도를 검색하기 위해 USGS 고도 API 데이터베이스에 접근할 수 있다. USGS 고도 API 데이터베이스에서 검색될 수 있는 실제 고도를 활용함으로써, 서버는 모바일 장치의 잘못된 위치 및 실제 위치 모두를 식별할 수 있다.
블록(716)에서, 서버가 위치를 추정할 수 있으면, 프로세스(700)는 블록(718)으로 진행하고, 서버는 위치를 모바일 장치의 위치로 출력한다. 예를 들어, USGS 고도 API 데이터베이스가 업데이트된 양호한 위성 세트를 사용하여 추정된 위치의 위도와 경도에서 고도를 매칭시킬 때, 서버는 위치를 추정할 수 있다. 하지만 서버가 업데이트 된 양호한 위성 세트를 사용하여 위치를 추정할 수 없으면, 서버는 양호한 위성 세트에 추가된 위성을 제거하고 블록(708)로 돌아와서 블록(708 내지 716)를 되풀이한다. 아무 위성도 검증되지 않은 채로 남아있지 않거나 유효한 위치가 출력될 때 까지 서버는 계속하여 검증되지 않은 위성을 양호한 위성 세트로 추가하고, 위치를 재 추정한다.
블록(706)으로 돌아와서, 위치가 본래 양호한 위성 세트를 사용하여 추정되었으면, 프로세스(700)는 블록(710)으로 진행한다. 블록(710)에서, 서버는 위치와 관련된 정보를 사용하여 잔여 위성이 양호한 위성 세트로 추가될 수 있는지를 확인한다. 예를 들어, 상기와 같이 서버는 업데이트된 양호한 위성 세트를 사용하여 위치를 재 추정하고, 새로운 위치의 위도 및 경도에서 새로운 위치의 고도를 USGS 고도 API 데이터베이스에서 검색된 고도와 비교할 수 있다. 다른 예로, 서버는 본래 위치와 새롭게 추정된 위치 간 거리를 비교하고, 그 거리가 임계거리보다 작은 경우 새로운 위치가 유효한지를 확인할 수 있다.
블록(722)에서, 서버는 식별된 위성으로 양호한 위성 세트를 증가시킨다. 예를 들어, 상기와 같이 위치 정보 분석에 기반하여 서버는 처음에 미상으로 분류된 일부 위성을 양호한 위성 세트로 추가할 수 있다.
블록(724)에서, 서버는 업데이트된 양호한 위성 세트를 사용하여 위치를 재 추정하고, 블록(718)에서, 서버는 새로운 위치를 모바일 장치의 위치로 출력한다. 예를 들어, 서버는 위치를 원래 모바일 장치로 출력하거나, 연구 또는 분석을 위해 위치를 데이터베이스에 저장한다.
발명이 구조적 특징 및/또는 방법론적인 동작에 국한되어 설명되었으나, 첨부된 청구항에 의해 정의되는 발명은 반드시 본 명세서에 설명된 특정한 동작이나 특징에 국한되지는 않는다. 오히려, 본 명세서에 설명된 특정한 동작이나 특징은 청구항의 실시 형태를 예시로 나타낸 것이다.

Claims (20)

  1. 컴퓨팅 장치로서
    하나 이상의 프로세서와,
    동작을 수행하도록 상기 하나 이상의 프로세서에 의해 실행 가능한 명령어를 포함하는 하나 이상의 컴퓨터 판독가능 저장 장치
    를 포함하며,
    상기 동작은
    GPS 신호의 복수의 청크를 수신하는 것 - 상기 복수의 청크의 각각의 청크는 GPS 신호의 세그먼트를 나타내고, 상기 복수의 청크의 각각의 청크는 시간 간격을 두고 이격되어 있으며, 상기 복수의 청크의 각각의 청크의 길이는 1 내지 2 밀리세컨드임 - 과,
    코드 위상 및 도플러 주파수 조합을 통해 상기 복수의 청크 내의 위성 고유의 C/A 코드(Coarse/Acquisition codes)를 검색하여 가시 위성을 식별하는 것과,
    상기 가시 위성 각각에 대해 제 1 코드 위상과 제 2 코드 위상 간의 차이를 계산하는 것 - 상기 제 1 코드 위상은 상기 복수의 청크 중 제 1 청크와 관련이 있고, 상기 제 2 코드 위상은 상기 복수의 청크 중 제 2 청크와 관련이 있음 - 과,
    코드 위상 및 도플러 주파수 조합을 통해 상기 GPS 신호의 상기 복수의 청크의 각각의 GPS 신호 청크에서 위성 고유의 C/A 코드를 검색함으로써 상기 GPS 신호의 상기 복수의 청크로부터 제 1 위성을 식별하는 것과,
    상기 식별된 제 1 위성의 C/A 코드 템플릿에 의해 결정되는 신호 부분공간 상으로의 투영(a projection onto a signal subspace)을 수행함으로써, 상기 GPS 신호의 상기 복수의 청크로부터 제 1 위성과 관련된 신호를 제거하는 것과,
    상기 차이가 임계 차이보다 작은 각 가시 위성을 위성 세트에 추가하는 것과,
    상기 위성 세트에 기반하여 위치를 추정하는 것
    을 포함하는
    컴퓨팅 장치.
  2. 제 1 항에 있어서,
    상기 동작은, 상기 위치와 관련된 데이터에 적어도 부분적으로 기초하여 추가의 위성을 상기 위성 세트에 더 추가하고, 상기 추가의 위성에 적어도 부분적으로 기초하여 상기 위치를 재추정하는 것을 더 포함하는
    컴퓨팅 장치.
  3. 제 1 항에 있어서,
    상기 위성 고유의 C/A 코드를 검색하는 것은 상기 복수의 청크의 각각의 청크에 대해 독립적으로 수행되는
    컴퓨팅 장치.
  4. 제 1 항에 있어서,
    상기 복수의 청크의 각각의 청크의 길이는 1 밀리세컨드인
    컴퓨팅 장치.
  5. 제 1 항에 있어서,
    상기 위치는 상기 복수의 청크가 수집된 시간, 상기 위성 세트, 궤도 데이터 및 상기 위성 세트의 각각의 위성과 관련된 의사거리(pseudorange) 데이터에 기초해서 추정되는
    컴퓨팅 장치.
  6. 제 1 항에 있어서,
    상기 위성 고유의 C/A 코드를 검색하는 것은 정지 기준(a stopping criteria)에 도달할 때까지 반복하여 수행되는
    컴퓨팅 장치.
  7. 제 6 항에 있어서,
    상기 정지 기준은
    사전 결정된 반복 횟수와,
    상기 컴퓨팅 장치가 상기 청크로부터 어떠한 추가 위성도 식별할 수 없는 것
    중 적어도 하나인
    컴퓨팅 장치.
  8. 명령어가 저장된 컴퓨터 판독가능 저장 장치로서,
    상기 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    복수의 GPS 신호 청크를 수신하도록 하고,
    복수의 GPS 신호 청크로부터 식별된 복수의 위성과 관련된 데이터를 수신하도록 하고 - 상기 복수의 GPS 신호 청크의 개개의 청크는 복수의 GPS 신호 샘플 중 하나의 GPS 신호 샘플의 일부를 포함하며, 상기 데이터는 복수의 코드 위상을 포함하며, 복수의 코드 위상의 개개의 코드 위상은 상기 복수의 위상 중 하나 및 상기 복수의 GPS 신호 청크 중 하나와 관련되고, 상기 복수의 GPS 신호 청크의 개개의 청크는 시간 간격을 두고 이격되어 있으며, 상기 시간 간격의 개개의 시간 간격은 동일하지 않고, 상기 개개의 청크는 상기 개개의 청크가 샘플링된 시간을 포함함 - ,
    상기 복수의 위성 각각에 대하여, 상기 복수의 GPS 신호 청크 각각에 대한 상기 복수의 코드 위상의 개개의 코드 위상 간의 차이를 계산하도록 하며,
    상기 복수의 위성 중 하나의 위상에 대한 상기 차이가 임계 차이 이하인지 결정하도록 하고,
    상기 위성을 위성 세트에 추가하도록 하며,
    코드 위상 및 도플러 주파수 조합을 통해 상기 복수의 GPS 신호 청크의 각각의 GPS 신호 청크에서 위성 고유의 C/A 코드를 검색함으로써 상기 복수의 GPS 신호 청크로부터 제 1 위성을 식별하도록 하며,
    상기 식별된 제 1 위성의 C/A 코드 템플릿에 의해 결정되는 신호 부분공간 상으로의 투영을 수행함으로써, 상기 복수의 GPS 신호 청크로부터 상기 제 1 위성과 관련된 신호를 제거하도록 하고,
    상기 위성 세트를 출력하도록 하는
    컴퓨터 판독가능 저장 장치.
  9. 제 8 항에 있어서,
    상기 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 또한,
    상기 제 1 위성과 관련된 신호를 제거한 후에, 상기 코드 위상 및 도플러 주파수 조합을 통해 상기 복수의 GPS 신호 샘플의 각각의 GPS 신호 샘플에서 상기 위성 고유의 C/A 코드를 재검색함으로써 상기 복수의 GPS 신호 청크로부터 제 2 위성을 식별하도록 하며,
    상기 복수의 위성과 관련된 데이터는 상기 제 1 위성 및 상기 제 2 위성과 관련된 데이터인
    컴퓨터 판독가능 저장 장치.
  10. 제 8 항에 있어서,
    상기 복수의 GPS 신호 청크의 길이는 1 내지 2 밀리세컨드인
    컴퓨터 판독가능 저장 장치.
  11. 제 8 항에 있어서,
    상기 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 또한,
    상기 위성 세트를 출력한 후에, 상기 위성 세트에 기초해서 제 1 위치를 추정하도록 하는
    컴퓨터 판독가능 저장 장치.
  12. 제 11 항에 있어서,
    상기 명령어는 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 또한,
    상기 제 1 위치를 추정한 후에,
    상기 복수의 위성의 추가 위성에 대한 상기 복수의 코드 위상의 개개의 코드 위상 간의 차이가 임계 차이 이상인지 결정하도록 하고,
    상기 제 1 위치와 관련된 데이터에 기초해서 상기 추가 위성을 상기 위성 세트에 추가하도록 하며,
    상기 추가 위성에 적어도 부분적으로 기초해서 제 2 위치를 추정하도록 하고,
    상기 제 2 위치를 출력하도록 하는
    컴퓨터 판독가능 저장 장치.
  13. 방법으로서,
    제 1 GPS 신호 청크 및 제 2 GPS 신호 청크를 수신하는 단계 - 상기 제 1 GPS 신호 청크 및 상기 제 2 GPS 신호 청크는 시간 간격을 두고 이격되어 있으며, 상기 제 1 GPS 신호 청크 및 상기 제 2 GPS 신호 청크는 각각 GPS 신호의 세그먼트를 나타내고, 상기 제 1 GPS 신호 청크 및 상기 제 2 GPS 신호 청크 각각은 개개의 청크가 수집된 시간을 포함함 - 와,
    코드 위상 및 도플러 주파수 조합을 통해 상기 제 1 GPS 신호 청크 내의 위성 고유의 C/A 코드를 검색하여 상기 제 1 GPS 신호 청크로부터 제 1 위성을 식별하는 단계와,
    상기 제 1 위성을 위성 세트에 추가하는 단계와,
    상기 식별된 제 1 위성의 C/A 코드 템플릿에 의해 결정되는 신호 부분공간 상으로의 투영을 수행함으로써, 상기 제 1 GPS 신호 청크로부터 상기 제 1 위성과 관련된 신호를 제거하는 단계와,
    상기 코드 위상 및 도플러 주파수 조합을 통해 상기 제 1 GPS 신호 청크에서 상기 위성 고유의 C/A 코드를 검색함으로써 상기 제 1 GPS 신호 청크로부터 제 2 위성을 식별하는 단계와,
    상기 제 2 위성을 상기 위성 세트에 추가하는 단계와,
    상기 위성 세트를 출력하는 단계
    를 포함하는 방법.
  14. 제 13 항에 있어서,
    상기 제 2 위성을 상기 위성 세트에 추가하는 단계 후에,
    상기 제 1 GPS 신호 청크로부터 상기 제 2 위성과 관련된 신호를 제거하는 단계와,
    상기 코드 위상 및 도플러 주파수 조합을 통해 상기 제 1 GPS 신호 청크에서 상기 위성 고유의 C/A 코드를 검색함으로써 상기 제 1 GPS 신호 청크로부터 제 3 위성을 식별하는 단계와,
    상기 위성 세트를 출력하기 전에 상기 제 3 위성을 상기 위성 세트에 추가하는 단계
    를 더 포함하는 방법.
  15. 제 13 항에 있어서,
    상기 위성 세트를 출력하는 단계 후에,
    상기 코드 위상 및 도플러 주파수 조합을 통해 상기 제 2 GPS 신호 청크에서 상기 위성 고유의 C/A 코드를 검색함으로써 상기 제 2 GPS 신호 청크로부터 제 1 추가 위성을 식별하는 단계와,
    상기 제 2 GPS 신호 청크에서 식별된 상기 제 1 추가 위성을 제 2 위성 세트에 추가하는 단계와,
    상기 제 2 GPS 신호 청크에서 식별된 상기 제 1 추가 위성과 관련된 신호를 상기 제 2 GPS 신호 청크로부터 제거하는 단계와,
    상기 코드 위상 및 도플러 주파수 조합을 통해 상기 GPS 신호 청크에서 상기 위성 고유의 C/A 코드를 검색함으로써 상기 제 2 GPS 신호 청크로부터 제 2 위성을 식별하는 단계와,
    상기 제 2 GPS 신호 청크에서 식별된 상기 제 2 위성을 상기 위성 세트에 추가하는 단계와,
    상기 제 2 위성 세트를 출력하는 단계
    를 더 포함하는 방법.
  16. 제 15 항에 있어서,
    상기 제 1 GPS 신호 청크와 관련된 제 1 코드 위상과 상기 제 2 GPS 신호 청크와 관련된 제 2 코드 위상 간의 차이를 결정하는 단계 - 상기 제 1 코드 위상 및 상기 제 2 코드 위상은 하나의 위상과 관련이 있음 - 와,
    상기 차이를 임계 차이와 비교하는 단계와,
    상기 차이가 임계 차이 이하인지 결정하는 단계와,
    상기 제 1 위상과 관련된 데이터에 적어도 부분적으로 기초해서 위치를 추정하는 단계
    를 더 포함하는 방법.
  17. 제 15 항에 있어서,
    상기 제 1 GPS 신호 청크에서 식별된 상기 제 1 위성은 상기 제 2 GPS 신호 청크에서 식별된 상기 제 1 추가 위성과 동일한
    방법.
  18. 제 13 항에 있어서,
    상기 제 1 GPS 신호 청크 및 상기 제 2 GPS 신호 청크의 길이는 1 내지 2 밀리세컨드인
    방법.
  19. 제 13 항에 있어서,
    상기 제 1 위성과 관련된 신호는 매칭 퍼슈잇(matching pursuit) 계산을 수행함으로써 검출되어서 상기 GPS 신호 청크로부터 제거되는
    방법.
  20. 제 13 항에 있어서,
    상기 제 1 위성과 관련된 신호는 직교 매칭 퍼슈잇 계산을 수행함으로써 검출되어서 상기 GPS 신호 청크로부터 제거되는
    방법.
KR1020167005018A 2013-08-27 2014-08-24 클라우드로 오프로드되는 위치 결정 방법 KR102290732B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/011,140 US10317538B2 (en) 2013-08-27 2013-08-27 Cloud-offloaded global satellite positioning
US14/011,140 2013-08-27
PCT/US2014/052429 WO2015031215A1 (en) 2013-08-27 2014-08-24 Cloud-offloaded global satellite positioning

Publications (2)

Publication Number Publication Date
KR20160046815A KR20160046815A (ko) 2016-04-29
KR102290732B1 true KR102290732B1 (ko) 2021-08-17

Family

ID=51690432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167005018A KR102290732B1 (ko) 2013-08-27 2014-08-24 클라우드로 오프로드되는 위치 결정 방법

Country Status (12)

Country Link
US (1) US10317538B2 (ko)
EP (1) EP3039452B1 (ko)
JP (1) JP6377161B2 (ko)
KR (1) KR102290732B1 (ko)
CN (1) CN105492927B (ko)
AU (1) AU2014311494B2 (ko)
BR (1) BR112016003540B1 (ko)
CA (1) CA2919015C (ko)
MX (1) MX366248B (ko)
RU (1) RU2667085C2 (ko)
TW (1) TW201508305A (ko)
WO (1) WO2015031215A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10267923B2 (en) * 2015-02-26 2019-04-23 Src, Inc. Method and systems for restoring a GPS signal
KR20170127912A (ko) * 2016-05-13 2017-11-22 아이엘디바이스 주식회사 서버기반 gnss 위치결정 시스템 및 방법
US10845487B2 (en) 2017-06-13 2020-11-24 Microsoft Technology Licensing, Llc Acquisition in global navigation satellite systems based on previously acquired satellites
US10545244B2 (en) * 2017-06-15 2020-01-28 Microsoft Technology Licensing, Llc Cloud-offloaded position calculation with on-device acquisition
JP7220399B2 (ja) * 2018-10-24 2023-02-10 パナソニックIpマネジメント株式会社 サーバ、衛星測位システム、及び、衛星測位方法
US11341512B2 (en) * 2018-12-20 2022-05-24 Here Global B.V. Distinguishing between pedestrian and vehicle travel modes by mining mix-mode trajectory probe data
JP2020169858A (ja) * 2019-04-02 2020-10-15 富士通株式会社 位置検知システム、位置検知装置および位置検知方法
US11181643B2 (en) * 2019-04-30 2021-11-23 Verizon Patent And Licensing Inc. Providing a location as a service
FR3110975B1 (fr) * 2020-05-29 2023-01-20 Syntony Méthode de positionnement gnss déportée dans le cloud
US20220338014A1 (en) * 2021-04-14 2022-10-20 Here Global B.V. Trustworthiness evaluation for gnss-based location estimates

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546040B1 (en) * 1999-04-21 2003-04-08 Trimble Navigation Limited GPS receiver having improved signal acquisition at a low signal to noise ratio
US20090128407A1 (en) * 2007-11-20 2009-05-21 Sirf Technology, Inc. Systems and Methods for Detecting GPS Measurement Errors
US20110103432A1 (en) * 2008-10-02 2011-05-05 Texas Instruments Incorporated Enhanced cross correlation detection or mitigation circuits, processes, devices, receivers and systems
JP2012173210A (ja) * 2011-02-23 2012-09-10 Kyocera Corp 無線端末装置及び測位方法

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4797677A (en) 1982-10-29 1989-01-10 Istac, Incorporated Method and apparatus for deriving pseudo range from earth-orbiting satellites
GB2241623A (en) 1990-02-28 1991-09-04 Philips Electronic Associated Vehicle location system
US5134407A (en) 1991-04-10 1992-07-28 Ashtech Telesis, Inc. Global positioning system receiver digital processing technique
US6249542B1 (en) 1997-03-28 2001-06-19 Sirf Technology, Inc. Multipath processing for GPS receivers
US6104338A (en) 1998-05-04 2000-08-15 Snaptrack, Inc. Method and apparatus for operating a satellite positioning system receiver
US6313786B1 (en) 1998-07-02 2001-11-06 Snaptrack, Inc. Method and apparatus for measurement processing of satellite positioning system (SPS) signals
US6188351B1 (en) 1998-08-13 2001-02-13 Ericsson Inc. Method for improving signal acquistion in a global positioning system receiver
US6448925B1 (en) 1999-02-04 2002-09-10 Conexant Systems, Inc. Jamming detection and blanking for GPS receivers
US6300899B1 (en) 1999-02-19 2001-10-09 Thomas M. King Fixed site data-aided GPS signal acquisition method and system
US6453237B1 (en) 1999-04-23 2002-09-17 Global Locate, Inc. Method and apparatus for locating and providing services to mobile devices
US6700533B1 (en) 1999-05-06 2004-03-02 Rf Technologies, Inc. Asset and personnel tagging system utilizing GPS
IL150417A0 (en) 2000-01-18 2002-12-01 Cellguide Ltd Locating a mobile unit using coherently processed satellite signals combined with signals from stationary beacons
US6285316B1 (en) 2000-06-02 2001-09-04 Cellguide Ltd. Locating a mobile unit using signals from both mobile beacons and stationary beacons
US6642884B2 (en) 2000-05-08 2003-11-04 Sigtec Navigation Pty Ltd. Satellite-based positioning system receiver for weak signal operation
US7369599B2 (en) 2000-12-18 2008-05-06 Qualcomm Incorporated Method and apparatus for reducing code phase search space
US6583756B2 (en) 2000-08-25 2003-06-24 Qualcomm Incorporated Method and apparatus for using satellite status information in satellite positioning systems
WO2002025829A1 (en) 2000-09-18 2002-03-28 Skybitz, Inc. System and method for fast code phase and carrier frequency acquisition in gps receiver
US6417801B1 (en) 2000-11-17 2002-07-09 Global Locate, Inc. Method and apparatus for time-free processing of GPS signals
US6750818B2 (en) 2000-12-04 2004-06-15 Tensorcomm, Inc. Method and apparatus to compute the geolocation of a communication device using orthogonal projections
JP5020437B2 (ja) 2001-03-21 2012-09-05 本田技研工業株式会社 Gps受信装置
US6731701B2 (en) 2001-08-27 2004-05-04 Topcon Gps Llc Navigation data prediction for GPS and GLONASS weak signal tracking
US6466164B1 (en) 2001-09-10 2002-10-15 Nokia Mobile Phones Ltd. Method and apparatus for calculating pseudorange for use in ranging receivers
US7308016B2 (en) * 2001-09-28 2007-12-11 Raytheon Company System and method for securing signals
JP2005526251A (ja) 2002-05-17 2005-09-02 ノキア コーポレイション 測位システムにおける受信機の位置及び/又はシステム時刻の決定方法
US6828935B1 (en) 2002-07-19 2004-12-07 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Digitally synthesized phased antenna for multibeam global positioning
AU2003283983A1 (en) 2002-10-01 2004-04-23 Sirf Technology, Inc. Fast search gps receiver
KR20040070847A (ko) * 2003-02-04 2004-08-11 주식회사 네비콤 의사위성을 이용한 자동 식별 시스템 및 자동 식별 방법
US6788249B1 (en) 2003-07-23 2004-09-07 Snaptrack Incorporated System for setting coarse GPS time in a mobile station within an asynchronous wireless network
US7432853B2 (en) 2003-10-28 2008-10-07 Trimble Navigation Limited Ambiguity estimation of GNSS signals for three or more carriers
JP2006132949A (ja) 2004-11-02 2006-05-25 Seiko Epson Corp 測位装置、測位方法および測位プログラム
US20060208943A1 (en) 2005-03-21 2006-09-21 Sirf Technology, Inc. Location tagging using post-processing
US7348921B2 (en) 2005-09-19 2008-03-25 Trimble Navigation Limited GPS receiver using stored navigation data bits for a fast determination of GPS clock time
US7893869B2 (en) 2006-01-05 2011-02-22 Qualcomm Incorporated Global navigation satellite system
US9354321B2 (en) 2006-03-06 2016-05-31 Qualcomm Incorporated Method for position determination with measurement stitching
US8026847B2 (en) * 2006-09-14 2011-09-27 Qualcomm Incorporated System and/or method for acquisition of GNSS signals
US8994587B2 (en) * 2010-05-14 2015-03-31 Qualcomm Incorporated Compressed sensing for navigation data
US7595754B2 (en) 2007-12-24 2009-09-29 Qualcomm Incorporated Methods, systems and apparatus for integrated wireless device location determination
EP2288930B1 (en) * 2008-02-28 2013-12-11 Magellan Systems Japan, Inc. Method and apparatus for acquisition, tracking, and sub-microsecond time transfer using weak gps/gnss signals
US8125378B1 (en) 2008-06-02 2012-02-28 Qualcomm Atheros, Inc. System and method for determining position using doppler velocities
TWI378253B (en) 2008-06-06 2012-12-01 Mstar Semiconductor Inc Mixed gps receiving method and associated device and system
US8620306B2 (en) 2008-06-24 2013-12-31 Qualcomm Incorporated Location specific search for regional satellite vehicles
US8024013B2 (en) 2008-07-09 2011-09-20 Sony Ericsson Mobile Communications Ab Regulating power duty cycle of an RF transmitter/receiver responsive to distance moved
US20100283673A1 (en) 2009-05-09 2010-11-11 etherrWhere Corporation Signal processing techniques for improving the sensitivity of GPS receivers
US20110080320A1 (en) 2009-10-02 2011-04-07 etherwhere Corporation Signal processing techniques for improving the sensitivity of GPS receivers
JP2010121725A (ja) 2008-11-20 2010-06-03 Jtekt Corp 転がり軸受装置
JP2010151725A (ja) * 2008-12-26 2010-07-08 Toyota Motor Corp Gnss受信装置及び測位方法
US8390512B2 (en) 2009-06-05 2013-03-05 Qualcomm Incorporated On demand positioning
US9074897B2 (en) 2009-06-15 2015-07-07 Qualcomm Incorporated Real-time data with post-processing
US8462831B2 (en) 2009-07-23 2013-06-11 CSR Technology, Inc. System and method for use of sieving in GPS signal acquisition
US8259010B2 (en) 2009-10-14 2012-09-04 Qualcomm Incorporated Qualifying coarse position injection in position determination systems
KR20110048933A (ko) * 2009-11-03 2011-05-12 한국전자통신연구원 약한 gps c/a 코드 변조 신호 획득 방법 및 장치
JP2011179894A (ja) 2010-02-26 2011-09-15 Furuno Electric Co Ltd 測位方法、測位プログラム、gnss受信装置および移動端末
US8704707B2 (en) 2010-06-02 2014-04-22 Qualcomm Incorporated Position determination using measurements from past and present epochs
WO2012055026A1 (en) 2010-10-26 2012-05-03 Rx Networks Inc. Method and apparatus for determining a position of a gnss receiver
US9684080B2 (en) 2010-12-09 2017-06-20 Microsoft Technology Licensing, Llc Low-energy GPS
US8599067B2 (en) 2011-07-26 2013-12-03 Cambridge Silicon Radio Ltd. Mitigating multipath using state transition detection and measurement
US10386490B2 (en) 2012-07-16 2019-08-20 Microsoft Technology Licensing, Llc Reduced sampling low power GPS
CN103064092B (zh) 2012-12-28 2014-05-21 中国科学院光电研究院 一种导航卫星的选择方法
CN103091687B (zh) 2013-01-08 2014-07-16 南京航空航天大学 北斗接收机多卫星信号联合捕获方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546040B1 (en) * 1999-04-21 2003-04-08 Trimble Navigation Limited GPS receiver having improved signal acquisition at a low signal to noise ratio
US20090128407A1 (en) * 2007-11-20 2009-05-21 Sirf Technology, Inc. Systems and Methods for Detecting GPS Measurement Errors
US20110103432A1 (en) * 2008-10-02 2011-05-05 Texas Instruments Incorporated Enhanced cross correlation detection or mitigation circuits, processes, devices, receivers and systems
JP2012173210A (ja) * 2011-02-23 2012-09-10 Kyocera Corp 無線端末装置及び測位方法

Also Published As

Publication number Publication date
CA2919015C (en) 2021-03-09
MX2016002592A (es) 2016-06-17
CN105492927B (zh) 2018-03-13
JP2016532119A (ja) 2016-10-13
AU2014311494A1 (en) 2016-02-11
CN105492927A (zh) 2016-04-13
MX366248B (es) 2019-07-03
BR112016003540B1 (pt) 2022-10-25
JP6377161B2 (ja) 2018-08-22
US10317538B2 (en) 2019-06-11
US20150061934A1 (en) 2015-03-05
BR112016003540A2 (ko) 2017-08-01
KR20160046815A (ko) 2016-04-29
WO2015031215A1 (en) 2015-03-05
EP3039452B1 (en) 2017-04-12
CA2919015A1 (en) 2015-03-05
EP3039452A1 (en) 2016-07-06
AU2014311494B2 (en) 2017-09-21
TW201508305A (zh) 2015-03-01
RU2016106927A (ru) 2017-08-29
RU2667085C2 (ru) 2018-09-14

Similar Documents

Publication Publication Date Title
KR102290732B1 (ko) 클라우드로 오프로드되는 위치 결정 방법
EP2872922B1 (en) Reduced sampling low power gps
EP2893372B1 (en) Estimating and predicting structures proximate to a mobile device
US20100253578A1 (en) Navigation data acquisition and signal post-processing
WO2013158909A1 (en) Estimating characteristics of objects in environment
CN103842846A (zh) 一种用于低功耗和低成本gnss接收机的系统,方法和计算机程序
ES2393463T3 (es) Procedimiento para optimizar una adquisición de una señal de espectro ensanchado procedente de un satélite por un receptor móvil
KR101183848B1 (ko) 수신된 sps 신호에 대한 시간 기준을 획득하기 위한 시스템 및/또는 방법
KR20130111315A (ko) 내비게이션 비트 경계 결정 장치 및 그의 방법
US20160161614A1 (en) Pseudorange determinator, method for providing a pseudorange information and computer program
WO2018050726A1 (en) Device, system and method for determining an estimate relating to a parameter of a wireless receiver device
US20230384461A1 (en) Systems and Methods for GPS/GNSS Based Real Time Global Asset Tracking
US8629801B2 (en) Event location determination
Pan et al. Determination of High-Precision Tropospheric Delays Using Crowdsourced Smartphone GNSS Data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant