- GPS 보정하기 - 012023년 11월 02일 22시 33분 51초에 업로드 된 글입니다.작성자: 핀수728x90반응형
사실 이 알고리즘은 이전 프로젝트에서 개발 되었던 것인데,
그 프로젝트는 사용자의 정확한 위치를 필요로 했었다.
그런데 부정확한 GPS 때문에 난항을 겪다가 해결 방안 중 하나인 맵 매칭 알고리즘을 검토하게 되었고
이를 프로젝트 성격과 환경에 맞게 수정한 것이었다.
나는 이를 매칭 알고리즘이라고 명명했었는데 알면 알수록 맵 매칭이라고 보기는 좀 그렇고....
GPS 보정 알고리즘(이하 '보정 알고리즘') 정도로...부르는게 맞을 것 같다는 생각이 든다.
위의 글에서도 설명했었지만 이전 알고리즘의 순서는 다음과 같았다.
1. GPS 데이터로부터 현재 위치 추정
2. 현재 위치에서 다음 GPS가 수집될 때까지의 경로 후보군을 생성
3. 후보 경로 중 현재 GPS 데이터와 가장 유사한 경로 찾기
4. 가장 유사한 경로 선택, 그 경로를 따라 사용자의 위치 보정
위의 순서에서 매칭이 원활하게 되지 않아 한번 더 수정을 했었다.
그래서 최종적으로
1. 매칭 대상인 선분 리스트 중 일정 반경 내에 있는 선분들을 수집
2. 각 선분에 보정을 수행한 후 보정값 후보 리스트를 생성
3. 후보들 중 시간, 거리, 각도 등을 고려해 가중 평균이 가장 낮은 것을 최종 보정값으로 채택
이렇게 작성된 알고리즘에서 더 나은 보정 결과를 보여 이대로 마무리를 지었다.
아래 사진을 통해 보정을 실패하던 구간을 해결하였다.
(초록색 선이 실제 GPS가 찍힌 구간
노란 선이 보정이 되어야 하는 구간
빨간 선이 보정을 수행한 결과이다.)
이렇게 마무리 되었던 보정 알고리즘을 현재 프로젝트에 적용해보았다.위의 사진을 보면 알 수 있듯 정확도가 상당히 떨어지는 것을 확인했다.
경로 형식이 변경되었기도 해서 예상했던 결과였지만
생각보다 참담해서 놀랐다..
그래서 각 함수가 제대로 역할을 다하고 있는지 살펴봤더니
아니나 다를까 모두 문제를 하나씩 머금고 있었다.
다음 글에서는 어떤 문제가 있었고, 어떻게 수정 했는지에 대해 간략하게 작성해보려고 한다.
728x90반응형'Android' 카테고리의 다른 글
GPS 보정하기 - 03 (0) 2023.11.22 GPS 보정하기 - 02 (0) 2023.11.20 GPS 보정하기 - 프롤로그 (0) 2023.11.01 [Android] Hilt와 Room (0) 2023.09.29 Clean Architecture를 이해하기 위해 알아보는 SOLID 원칙 (0) 2023.03.07 다음글이 없습니다.이전글이 없습니다.댓글