제임스딘딘의
Tech & Life

개발자의 기록 노트/GPS 이야기

[GPS 이야기] TTFF와 Almanac, Ephemeris 그리고, GPS의 start 방식, Cold start/Hot start/Warm Start ?

제임스-딘딘 2017. 4. 13. 22:45



여기서는 GPS에 대해 이야기를 해볼까 합니다.

GPS는 Global Positioning System의 약자인 것은 널리 알려진 내용인데요.


오늘은 GPS의 이야기를 시작하기에 앞서, 몇가지 용어를 알아볼까 해요.



TTFF

TTFF(Time To First Fix)란 GPS 수신기의 전원을 켰을 때 GPS 수신기가 현재 위치를 파악하는 데까지 소요되는 시간을 뜻하며, 상황에 따라 Factory Start, Cold Start, Warm Start, Hot Start로 구분됩니다.

TTFF를 이해하기 위해서는 먼저 Almanac 데이터와 Ephemeris 데이터에 대하여 이해할 필요가 있습니다.

지상의 여러 부 관제국에서 GPS 위성신호를 항시 관측하여 그 데이터를 주 관제국으로 보내고, 주 관제국에서는 그 데이터를 토대로 Almanac 데이터와 Ephemeris 데이터를 작성하여 일정주기로 각 GPS 위성으로 보내며, 이는 다시 GPS 위성신호 중 항법 메시지에 포함되어 지상의 각 GPS 수신기로 송신됩니다.

 

Almanac 데이터

Almanac 데이터는 GPS 위성배치의 개략적인 궤도 파리미터 정보이며, 몇달에 한번씩 갱신됩니다.

GPS 수신기는 Almanac 데이터를 통해 특정 시각의 특정 지점에서 어떤 위성들의 신호를 수신할 수 있는지 미리 파악할 수 있기 때문에 보다 신속하게 자기 위치를 계산할 수 있습니다.

각 위성별로 모든 위성의 Almanac 데이터를 2분 30초 동안에 전송완료 하며, 지속적으로 이를 재전송합니다.

GPS 수신기가 Almanac 데이터를 가지고 있지 않으면 데이터 전체를 수신하며, Almanac 데이터를 가지고 있되 일부가 최신 데이터가 아니면 해당 부분만 수신합니다.

 

Ephemeris 데이터

Ephemeris 데이터는 GPS 위성의 아주 정교한 궤도 및 시각보정 정보이며, 매 5시간마다 새로이 갱신됩니다.

GPS 수신기는 Ephemeris 데이터를 통해 정밀하게 자기 위치를 파악할 수 있습니다.

각 위성별로 해당 위성의 Ephemeris 데이터를 30초 동안에 전송완료 하며, 지속적으로 이를 재전송합니다.

GPS 수신기가 특정 위성의 가장 최신의 Ephemeris 데이터를 가지고 있지 않으면 해당 위성의 가장 최신의 데이터 전체를 수신하는데, GPS 수신기의 전원을 켰을 때 Ephemeris 데이터의 중간부터 수신하기 시작하였다면 다음번 전송 주기에 처음부터 끝까지 전체를 수신하며, 수신과정에서 일시적으로 수신이 끊어진 경우에도 다음번 전송 주기에 다시 전체를 수신합니다.

 

 

GPS 수신기는 최신의 Almanac 데이터를 통해 어떤 위성들의 신호를 수신할 수 있는지 미리 파악하고, 최신의 Ephemeris 데이터를 수신한 위성들 중 한 위성으로부터 신호를 받아 위성들과의 시각동기를 이루고, 다른 2개 이상의 위성들로부터 신호를 받아 각 위성들까지의 거리를 측정하여 자기 위치를 파악하는 것입니다. 이 때, 2개 위성에 대하여 거리를 측정하면 지구타원체(WGS84)상의 경위도 좌표값만 구할 수 있고, 3개 이상의 위성에 대하여 거리를 측정하면 지구타원체(WGS84)상의 경위도 좌표값 및 타원체고를 구할 수 있으며, 이 타원체고는 표준 지오이드 모델을 바탕으로 해발고로 환산되어 표현됩니다.

TTFF는 Almanac 데이터와 Ephemeris 데이터의 수신 여부에 따라 Factory Start, Cold Start, Warm Start, Hot Start로 구분할 수 있습니다.


 

Factory Start

Factory Start는 전원을 켠 후, 위성신호로부터 Almanac 데이터 전체와 신호가 수신되는 위성 중 최소 3개 이상의 위성으로부터 각각의 Ephemeris 데이터 전체를 수신하여 위치를 파악하는 데 소요되는 시간으로 대략 15분 정도입니다.

GPS 수신기가 공장에서 출고될 때에는 특정 시점의 Almanac 데이터 전체와 각 위성의 Ephemeris 데이터 전체가 입력되어 있습니다.

GPS 수신기를 그 시점보다 수개월이 지난 시점에 처음 사용하거나 사용했던 GPS 수신기를 끈 후, 수개월간 사용하지 않다가 다시 사용하는 경우가 이에 해당됩니다.


 

Cold Start

Cold Start는 전원을 켠 후, 위성신호로부터 Almanac 데이터 일부와 신호가 수신되는 위성 중 최소 3개 이상의 위성으로부터 각각의 Ephemeris 데이터 전체를 수신하여 위치를 파악하는 데 소요되는 시간으로 대략 30초에서 1분 30초 정도입니다.

사용했던 GPS 수신기의 전원을 끈 후, 수십일 동안 사용하지 않다가 다시 사용하는 경우가 이에 해당됩니다.


 

Warm Start

Warm Start는 전원을 켠 후, 신호가 수신되는 위성 중 1~2개의 위성으로부터 각각의 Ephemeris 데이터 전체를 수신하여 위치를 파악하는 데 소요되는 시간으로 대략 10초에서 40초 정도입니다.

사용했던 GPS 수신기의 전원을 끈 후, 수시간 이내 다시 사용하는 경우가 이에 해당됩니다.

* 참고 : Cold Start는 신호가 수신되는 위성들 중 대다수가 Ephemeris 데이터의 갱신이 있었던 경우이고, Warm Start는 신호가 수신되는 위성들 중 일부만 Ephemeris 데이터의 갱신이 있었던 경우입니다.



Hot Start

Hot Start는 새로운 데이터의 수신없이 위치를 파악하는 데 소요되는 시간으로 대략 3초에서 20초 정도입니다.

사용했던 GPS 수신기의 전원을 끈 후, 수분 이내 다시 사용하는 경우와 GPS 수신기 사용 중 장애물(건물, 터널 등)에 의해 일시적으로 위성신호를 수신하지 못하여 위치파악을 하지 못하다가 다시 위성신호를 수신하게 된 경우가 이에 해당됩니다.

 

 


GPS 단말기의 위성화면에는 대부분 2개의 동심원이 그려져 있는데 이 중 바깥쪽 원은 현위치 기준의 평면(수평선)을 표시하는 것이고, 안쪽 원은 현위치 기준의 고도각 45도 영역을 표시하는 것입니다.

GPS 수신기는 Almanac 데이터를 바탕으로 위성화면 동심원에 각 위성들의 위치를 표시합니다.

그리고 위성화면 하단에서 막대 그래프의 길이는 각 위성들의 신호강도를 표시하는 것이고, 막대 그래프의 색깔은 Ephemeris 데이터의 활용가능여부를 나타냅니다.

현재 저장되어 있는 특정 위성의 Ephemeris 데이터가 최신 것으로 확인되면 막대 그래프의 색이 채워지고, 그렇지 않은 경우에는 막대 그래프의 테두리 선만 표현되지만 새로운 Ephemeris 데이터의 수신이 완료되면 색이 채워지게 됩니다.

 

 


내용정리

그런데, TTFF는 위에서 설명한 Almanac 데이터와 Ephemeris 데이터의 수신 여부만으로 결정되는 것은 아닙니다.

GPS 수신기의 전원을 끈 채로 1,000km 이상 떨어진 곳으로 이동하여 다시 GPS 수신기의 전원을 켜면 TTFF가 굉장히 길어지는 것을 경험하신 분도 계실 것입니다.

이는 GPS 수신기가 위성들의 원자시계와 정확한 시각동기를 이루기 위한 과정이 길어지기 때문에 발생하는 문제입니다.


GPS 수신기는 각 GPS 위성들로부터 전파(PRN 코드)를 수신하여 전파가 도달한 시간을 측정하고, 이를 통해 해당 위성까지의 거리를 측정합니다.

그런데 문제는 GPS 위성에서 GPS 수신기까지 전파가 도달하는 시간을 측정하려면 GPS 위성과 GPS 수신기의 시각이 아주 정밀하게 일치해야 된다는 것입니다.


실제로 GPS 위성은 원자시계를 탑재하고 있지요.

그런데 GPS 수신기에도 원자시계를 탑재할 경우... GPS 수신기의 무게와 부피는 아주 커지게 되고요, 그 가격 또한 수천만원을 넘게 될 것입니다.

실효성이 떨어지겠지요.

그렇기때문에 실제로 일반적인 제품에서 사용하는 방법은, GPS 신호를 통해 GPS 수신기의 시각동기를 이루는 것입니다.


그런데 여기서 또 문제가 발생합니다.

GPS 위성에서 현재의 정확한 시각정보를 전파에 실어 GPS 수신기로 보내면,

그 신호가 수신기에 도달할 때에는 이미 그 시각이 아니라는 것입니다.


그래서 다시 이 문제를 해결하기 위해 예상소요시간의 개념이 도입는데 이는 GPS 위성과 GPS 수신기의 거리를 고려하여 전파가 도달하는 예상소요시간을 산출하는 것입니다.

즉, GPS의 시각정보가 GPS 위성으로부터 GPS 수신기까지 도달하는 예상소요시간을 고려하여 GPS 수신기의 시각을 동기화 시키는 것입니다.


특정 시각의 GPS 위성 위치는 Ephemeris 데이터를 통해 산출할 수 있지만 문제는 GPS 수신기의 위치는 파악할 수 없다는 것입니다.

그래서 GPS 수신기의 위치는 최후로 위치파악이 되었던 곳을 기준으로 하여 예상소요시간을 산출하고, 시각을 보정하고, 이를 바탕으로 본격적으로 GPS 수신기의 위치파악에 들어갑니다.


만약 최후로 위치파악이 되었던 곳이 아닌 다른 곳에서 다시 GPS 수신기를 사용한다면 당연히 예상소요시간도 틀린 값이며, 시각도 정확하게 동기화 되지 않은 것이며, 좌표값도 산출도 불가능할 것입니다.

이 때, GPS 수신기의 프로세서는 예상소요시간을 가감하며 다시 위치계산을 되풀이 하게 되는데 산출된 결과를 살펴서 보다 신뢰할 수 있는 결과가 나올 수 있도록 예상소요시간을 변경해 갑니다.


여기서 산출된 결과를 살핀다는 것은 글로 설명하기 정말 어려운 부분인데,

예를들어 3개 위성과의 거리(의사거리 : Pseudorange)로 산출한 위치에 4번째 위성과의 거리값을 적용하여도 그 위치가 나오는지 확인하는 것으로,

4번째 위성과의 거리값이 더 길어야 되는지 혹은 더 짧아야 되는지 확인하여 예상소요시간의 가감을 결정하는 것입니다.

예상소요시간의 가감하여 3개 위성을 통해 산출한 위치에 4번째 위성과의 거리값을 적용하여도 정확히 일치하는 결과가 나왔다면 그 좌표값은 신뢰할 수 있는 좌표값이며,

그 때의 예상소요시간은 정확한 소요시간이 되기 때문에 GPS 수신기는 정확한 시각동기를 이룬 것입니다.


다시 본론으로 돌아가 GPS 수신기의 전원을 끈 채로 1,000km 이상 떨어진 곳으로 이동하여 다시 GPS 수신기의 전원을 켜는 경우를 생각해보죠.

GPS 수신기는 1,000km 떨어진 이전의 위치를 기준으로 예상소요시간을 부여하고 위치계산에 들어가게 되는데,

이 예상소요시간은 실제 소요시간과 큰 차이를 보이기 때문에 당연히 정확한 소요시간을 찾아내는 데 많은 시간이 필요하게 됩니다.


이 때, 사용자가 직접 수동으로 GPS 단말기에 자신의 개략적인 위치와 고도 및 시각을 입력해 준다면 GPS 수신기는 Almanac 데이터를 통해 해당 시각과 지점에서 위성위치를 파악할 수 있고,

그 위치를 기준으로 예상소요시간을 부여하기 때문에 좀 더 빨리 정확한 소요시간을 찾아내게 되어 시각동기를 이루게 될 것이고, 곧 위치파악을 할 수 있게 됩니다.

이러한 기능을 초기화(Initialize) 또는 재시작(Restart GPS)이라 합니다.