최근들어 LBS(Location Based Service)에 대한 관심이 높아지고 아이폰, 구글폰들이 출시되며 이를 이용한 어플리케이션들이 속속 등장하고 있다. 여기에서 현재 휴대폰의 위치를 알아내는 방법의 원리들에 대해 설명해 보겠다.

먼저 가장 먼저, 널리 사용되는건 GPS이다.

GPS(Global Positioning System)의 기본 원리는 삼각측량법이다.

gps1.jpg

위의 그림에서처럼 지도상에 정확한 위치를 알고 있는 3개 지점에서부터 내 위치까지의 거리를 알 수 있으면 그 각 지점(위의 그림에서는 각 스테이션)을 중심점으로 내 위치까지의 거리를 반지름으로 하는 3개의 원을 그리면 3개의 원은 정확하게 한 점에서 만나게 된다. 그 원들이 만나는 지점이 내 현 위치가 된다.


gps2.jpg

단 여기서 전제조건은 각 스테이션과의 정확한 거리를 알고 있어야 한다는 것이다.

그런데 실제로 거리를 측정할 때 줄자를 가지고 잴 수 있는게 아니고 각 스테이션에서 송출하는 특정 신호를 수신해서 그 신호의 세기를 가지고 거리를 예측하게 된다. 하지만 전파의 특성 상 거리에 반비례해서 신호 세기가 약해지긴 해도 여러가지 조건에 따라 그 약해지는 정도가 항상 변화하기 때문에 대강의 거리를 예측할 뿐 정확한 거리를 알 수가 없다. (실제 GPS에서는 신호 세기가 아니고 시간차를 이용하지만 이 경우에도 정확한 거리를 알 수 없는건 차이가 없다.)


gps3.jpg

대략의 거리를 가지고 원을 그리게 되면 3개의 원이 위의 그림과 같이 한 점에서 만나는게 아니고 그림과 같이 3개의 원으로 둘러 쌓인 부분이 생기게 된다. 예측한 거리의 오차가 크면 클 수록 원으로 표시된 부분의 크기가 커지게 된다. 즉 정확한 위치를 찾을 수 없고 대략 저 둘러 쌓인 부분 내에 있다는 것만 알 수 있게 된다.


gps4.jpg

그래서 더 여러 지점과의 거리를 측정해서 더 많은 원을 그려 더 많은 원들에 둘러 쌓인 부분을 찾으면 그 면적이 줄어들기 때문에 오차를 줄일 수 있게 된다.

그런데 최근에는 GPS를 내장하지 않은 모바일 디바이스들도 무선랜 신호를 이용해 자신의 위치를 상당히 정확하게 찾아내는걸 볼 수 있다. 이 경우는 미리 구축되어 있는 무선 AP목록 DB가 구축되어 있어야 한다. 이 DB는 사업자 핫스팟의 경우는 사업자가 설치된 정확한 주소를 알려줄 수 있지만 개인이 설치한 AP의 경우는 등록된 주소가 없는데 어떻게 위치를 알 수 있을까? 정답은 구글 스트리트 뷰 사진과 유사한 방식으로 War driving을 이용해서 DB를 구축하게 된다.


wd.jpg

자동차에 그림과 같이 무선랜 안테나와 GPS 수신기를 장착하고 차를 몰아 길을 돌아다니면서 각 위치에서 신호가 잡히는 AP의 목록과 신호의 세기를 기록해서 DB를 구축하게 된다.


gps5.jpg

위의 그림에서 각 숫자가 AP이고 알파벳이 자동차가 움직이며 해당 위치에서 신호가 잡히는 AP의 목록을 기록해서 테이블을 만든다.


GPS8.jpg

이렇게 만든 테이블을 이용해 각 AP의 위치 DB를 만든다.

GPS9.jpg

위의 그림과 같이 각각 AP의 신호가 잡히는 지점들을 가지고 있게 된다.


gps6.jpg

그림에서 저 지점에 아이팟 터치가 있다면 13, 15, 17번 AP의 신호를 받을 수 있게 된다.


GPS10.jpg

그럼 그 정보를 이용해 위에 만들어 진 DB를 검색하면 13, 15, 17 모두에 공통으로 들어있는 위치는 M이 된다. 즉 예측할 수 있는 가장 가까운 위치는 M이라고 판단할 수 있게 되는 것이다.

Posted by nautes

댓글을 달아 주세요

  1. 2008.10.31 15:26

    이번에 아이팟 터치 2nd gen. 을 구입하고 맵에서 현재 위치를 찾는 기능을 찾았는데 처음에는 참 생각을 많이 했었죠. 숨겨진 GPS 기능이 있었나... 하다가 문득 생각난게 AP를 이용한 방법이더군요. 누구의 아이디어인지 정말 똑똑한 방법이라고 생각합니다. 거의 정확한 현재 위치를 보여주더군요...

  2. 2009.01.14 17:56

    오호~ 안그래도 어떻게 개인ap 위치를 알아내는가 했더니 War driving 을 이용해서 db를 만드는거였군요; ㅎ
    어쩐지 지방은 안된다 했습니다ㄷㅋ 좋은정보 감사합니다 ㅎ

  3. 2009.03.09 11:51

    좋은 정보 감사합니다.
    블로그로 퍼갑니다 ^^

  4. 2009.07.20 05:55

    좋은자료 감사해요^^ 퍼갑니다^^

3G iPhone에 추가되었다는 A-GPS에 대해 사람들이 착각을 하는 경우가 많다.


main_maps20080609.jpg

Assisted라는 단어 때문에 그 동안 2G iPhone에서 wifi access point를 통하거나 현재 한국에서 위치찾기에 사용하는 식으로 휴대폰 기지국 신호를 가지고 대강의 현재 위치를 파악하는 pseudo GPS같은 방식이라고 생각하는 사람들이 많이 있다.

하지만 실제로 A-GPS는 정확한 위치를 파악하는데 정지궤도상에 떠 있는 GPS위성의 신호를 사용한다. Assisted라는 단어가 앞에 붙은 이유는 GPS의 성능을 향상시키기 위해 추가적으로 wifi나 기지국의 도움을 받기 때문이다. 실제 A-GPS는 미국 FCC가 휴대폰에서 걸려오는 911(응급전화)의 경우 경찰이나 소방서같은 기관에서 휴대폰의 위치를 자동으로 파악할 수 있도록 하는 E911을 의무화 시킴으로서 개발이 가속화 되었다.


사용자 삽입 이미지

GPS시스템은 약 20,200km 상공의 MEO(Medium Earth Orbit)에 24개의 GPS위성이 운용되고 있다. (참고로 원래 GPS는 군용으로 만들어져서 초기에는 군용으로만 사용되었는데 1983년 KAL007편 격추 사건 이후 레이건이 민간에 사용을 허가하도록 했다. 다만 군용에 비해 민간용 코드는 오차범위가 크다)

사용자 삽입 이미지

위의 그림이 GPS의 동작 원리이다. 현 위치에서 최소 3개 이상의 위성에서부터 신호를 수신해서 자신과 각 위성과의 거리를 계산하고 그 거리를 이용해서 삼각측량 방식으로 자신의 위치를 계산해 낼 수 있다. 위 그림에서처럼 3개 위성과의 정확한 거리를 알 수 있으면 3개의 위성만으로도 자신의 정확한 위치를 계산할 수 있지만 실제로는 여러가지 오차들 때문에 위성과의 거리가 100% 정확하지 않기 때문에 3개의 위성만으로는 위치계산이 힘들고 더 많은 위성이 필요하고 그래도 어느 정도의 오차는 피할 수 없다.

현재 사용되고 있는 GPS의 경우 위성에서 신호를 받아오기 위해서는 수신기와 위성간에 LoS (line-of-sight)가 확보되어야 하는데 커다란 나무나 도심의 빌딩들 사이에 있는 경우, 또는 실내에서는 위성의 신호를 제대로 받아올 수 가 없다. 그리고 꺼져있던 수신기가 이런 상황에서 처음으로 켜지면 위성에서 almanac과 ephemeris정보를 다운받을 수가 없기 때문에 나중에 깨끗한 위성신호를 받을 수 있는 곳으로 나가도 위치를 파악하는데 1분 이상이 걸릴 수 있다.

A-GPS는 이런 문제점들을 해결하기 위해 GPS위성신호에 추가적으로 assistance server를 사용한다.


agps.jpg

* Assistance server는 자신의 정확한 위치를 GPS신호를 수신해서 알고 있고 충분한 컴퓨팅 파워가 있기 때문에 휴대폰 신호를 분석해서 휴대폰의 대강의 위치를 계산할 수 있다. 그러므로 E911같은 경우 휴대폰이 GPS신호를 받지 못해 정확한 위치를 제공해주지 않아도 E911에 대강의 위치를 알려줄 수 있다.

* Assistance server는 휴대폰에게 위성의 궤도정보를 제공해 줄 수 있기 때문에 휴대폰이 그 정보를 이용해 빠르고 정확하게 GPS 위성신호를 잡을 수 있게 해 준다.

* Assistance server에서는 GPS신호의 오차에 영향을 미치는 ionospheric condition등에 대해 정확하게 측정할 수 있기 때문에 그 정보를 휴대폰에 전송해 줘서 휴대폰이 위성에서 수신한 신호를 사용해서 훨씬 정확한 위치를 계산할 수 있게 해 줄 수 있다.

일부 A-GPS는 위치를 파악하기 위해 기지국과의 연결이 필수적인 경우도 있고, 다른 경우는 기지국과 연결되면 좀 더 빠르고 정확하게 위치를 파악할 수 있지만 기지국과 연결이 필수적이지 않은 경우도 있다.

--

애플 사이트의 3G iPhone 페이지에 보면 iPhone 3G에 사용한 위치파악 방법에 대해 설명(http://www.apple.com/iphone/features/gps.html)하고 있다.

빠른 시간내에 가장 정확한 위치를 찾아내기 위해 GPS위성, Wi-fi 핫스팟, 셀타워에서의 신호를 사용한다. GPS 신호를 수신할 수 있으면 아이폰은 파란색의 GPS 인디케이터를 표시한다. 하지만 실내인 경우 (GPS위성과의 LoS가 유지되지 않는 경우) 아이폰은 wifi를 사용해서 위치를 파악한다. Wifi 핫스팟의 범위에도 들어있지 않은 경우는 셀타워를 사용해서 위치를 파악한다. 위치를 알려주는 원의 크기를 통해 아이폰이 계산한 위치가 얼마나 정확한가를 알려준다. 즉 원이 작을수록 더 정확한 위치라는 말이다.

--

즉 3G iPhone에서 위치파악하는 기능이 GPS 위성을 사용하는게 아니라거나 셀타워와 연결되어야만 한다는 말은 모두 잘못된 정보이다.

Posted by nautes

댓글을 달아 주세요

  1. 2008.06.19 18:26

    지구가 평면이라면 이론적으로 3개 위성만으로도 정확한 위치파악이 가능합니다.
    그러나 아시다시피 지구는 평면이 아닙니다. 따라서 4개의 위성이 있어야 위치를 제대로 파악할 수 있습니다.
    물론 기본적으로 GPS를 통해 위치계산을 하기 위해서는 해당 지역의 평균 고도값을 주기 때문에, 크게 오차는 나지 않습니다만...

  2. 2008.06.19 20:15

    휴대용 GPS 맵 단말기를 사용중인데요... 일반 GPS 단말기에서도 wifi나 무선망 신호를 받아서, 초기 위성 찾는 시간을 줄여주면 좋겠어요...

    근데, 생각해 보니 몇 년 지나면, 휴대용 GPS 단말기 보다는 그냥 GPS 기능이 있는 휴대폰을 구입하는 것이 더 좋겠네요.. ^^;; 야외에서 사용할 수 있게 배터리 오래가고 튼튼한 GPS 휴대폰 나오면 좋겠습니다. (12시간 이상, AA 배터리 이용, 간단한 방수, 사림 키 정도에서 떨어뜨려도 괜찮은 정도로.. )

  3. 2008.06.20 14:50

    싸이파이님 께서 생각 안하신게 있네요 위성과 지상의 거리는 정해져있기 때문에 3개여도 괜찮습니다.

  4. 2008.06.23 17:50

    불량불곰님.. 위성과 지상의 거리가 정해져있다.. 하심은 어떤 의미이신지...
    지상 고도에 따라서 위성이 오르락내리락 하신다는 말씀은 아니실 것 같고..

    물론 위성의 고도에서 보자면, 지구 전체 표면의 고도 편차가 그렇게 크지 않은 것은 사실이고,
    그것 때문에, 3차원으로 나타나야할 GPS의 위치값에서, 고도 부분의 에러가 제일 크게 나는 것도 사실이지만,
    '이론적'으로는 4개가 되어야 하는게 맞는 것으로 알고 있습니다.

    괜히 Tech Viator님의 좋은 글에 와서 논쟁하는 것 같아서 좀 죄송스럽습니다만...

  5. 2008.08.25 15:57

    자세한 자료 감사합니다.

  6. 2009.04.01 11:09

    gps 위성이 3개가 fix 되면 2차원적인 좌표를 알수가 있고
    4개가 fix 되면 높이까지 알수가 있습니다.

  7. 2009.07.25 10:52

    아이폰의 경우에는 그닥 오차를 모르겠던데요.. 구글지도 펴놓고 자신위치를 정확하게 표시해주던데...

    빌딩사이에 있을 경우... 정확하게 저의 위치인 큰빌딩으로부터 남동쪽 횡단보도 앞에 있으면 잘 표시를 해주던데요...
    (일본 아이폰기준으로...)

    저기에서 말하는 오차라는 건.. 음 좀더 세부적이고 전문적으로의 오차를 뜻하는 건가요?

    지나가다 흥미로운 글을 발견해서 읽고 글을 남기고 있습니다

  8. 2009.08.10 09:24

    agps 수신받는 코드는 어디서 구하는지 아시나여?

    테스트좀 해보려고

    서치중인데 도대체 안나오네요 ㅎㅎ

    sgps랑 수신받는 코드가 틀리나요?

  9. 2009.12.31 17:34

    GPS에대해서 자세히 알아갑니다~ 감사합니다~

  10. 2010.10.04 22:59

    위성개수에 대해 많이 다르게 알고 계신듯 하여 몇글자 적고 갑니다.
    타원이냐 평면이냐는 무관합니다.
    일단 3차원 세계이므로 미지수가 XYZ 3개 입니다. 이 값을 알기 위해서 3개의 위성이 기본적으로 필요합니다.
    그러나...
    삼각측량을 위해서는 위성과 GPS 수신기 사이의 거리를 알아야 합니다.
    이 거리는 위성에 탑재된 초정밀 시계와 수신기의 시간차이를 통해서 구하게 됩니다
    여기서 문제가 발생합니다
    정밀한 위성시계와 비교적 정밀하지 못한 수신기 시계의 차이를 보정하기 위해서 위성이 하나더 필요하게 됩니다.
    그래서 일반적으로 GPS 위성이 위치를 잡기위해서는 4개의 위성이 필요합니다.

    • 2010.10.05 01:23 신고

      위에 써 놓은 내용은 GPS의 기술적 내용을 잘 모르는 사람들을 위해 동작원리를 설명하기 위한 것이지 아주 세부적인 사항까지 포함하지 않은 것입니다. 말씀하신 부분까지 포함하려면 저 정도 분량으로는 어림도 없죠.
      그리고 4개도 최소한의 갯수일 뿐 실제적으로 어느 정도 정확한 위치를 파악하려면 더 여러개의 위성신호를 트래킹해야 합니다.

이전버튼 1 이전버튼