2017년 3월 19일 일요일

BT-300 Augmented Reality Bicycle Navigation - 4편 (요구사항3. Location based AR)

Tmap open api 를 사용해서 자전거 최단경로 data 도 받았고 이제 AR 스럽게 보여 주는 일을 해야 한다.

1. bt-300 의 GPS 정보를 가져와야 한다.
2. T map 을 사용해서 목적지까지 최단경로를 얻어 와야 한다.
3. bt-300 화면에 좌/우 회전 혹은 유턴을 표시해 주는 방법을 찾아야 한다. 가능하다면 도로에 mapping 을 해 주면 그럴싸 하지 않을까.
4. 도로를 인식하려면 line 검출? 방법을 찾아야 한다.


처음에는 2D Navigation 처럼 그냥 좌/우/유턴 화살표만 보여 줄까 생각을 했었는데 명색이 AR 인데 멋드러지게 보여 주는 방법이 없을까 고민하기 시작했다. 그런 이유로 AR 에 관해서 자료를 읽기 시작했는데...

AR 도 다양한 기술이 있었는데 그 중에서 'Location based AR' 이라는 기술이 내가 하고 싶은 것과 가장 비슷해 보였다. 요즘 유행하는 포켓몬 GO 처럼 이질감 없이 사용할 수 있다면 금상첨화...

음.. 욕심은 많은데.. 과연 이걸 만들 수 있나? 라는 의문이 들었지만...
항상 그래 왔듯이 open source 의 도움을 받으면 되지 않을까 하여 github 를 찾아 봤다.
오래 찾을 필요도 없이 'https://github.com/dat-ng/ar-location-based-android' 를 발견 할 수 있었는데 내가 찾은 '그것' 이었다.

이 친구가 Demo 이미지를 올려 놓았는데 아주 근사했다.
시연 영상

github 에서 찾은 AR Location-based for Android



자.. 이제 솔루션이 준비가 되었으니 내게 맞게 좀 추가 해 볼까~

일단 소스 그대로 빌드를 하여 내 주위의 Point 를 추가 해 주고 실제 동작 하는지 확인해 봤다.
골든 스퀘어 좌표를 넣어서 스타벅스에서 바라본 모습
별 기대 없이 스타벅스 근처 상가를 하나 넣고 실행 해 봤다. 우워.. 오차가 좀 있기는 했지만 이정도면 당장 사용하는데도 무리 없어 보였다.

내친김에 도로 좌표를 넣어서 같이 그려 봤다.
도로 좌표를 넣고 같이 그려준 모습
와.... 이런.. 엄청 재미지다. 테스트를 위해 노트5 에 넣고 카메라를 켜서 했지만 bt-300 에서는 camera 를 켤 필요없이 도로와 지명만 그려 주면 된다.

음.. 감탄은 여기까지 하고 문제점을 객관적으로 찾아 봐야 했다.
GPS 오차.. 이건 어떤 방법으로라도 해결해 줘야 할텐데 현재로서는 도로의 line 을 검출하여 오차 보정을 해 주는 것밖에 떠오르지 않는다.
그리고.. 음.. 이게 문제가 될지 잘 모르겠지만 소스코드에는 고도 정보도 활용하게 되어 있는데 tmap 에서 얻어오는 경로 정보에는 고도 정보가 없기 때문에 어떻게 그려줘야 할지 좀 고민이다.
내가 현재 있는 위치의 고도 기준으로 일괄적으로 넣어버리면 경사가 있는 지역에서 엉뚱한 결과가 나올 수 있기 때문이다. 흠.. 일단 이 걱정은 좀 나중에 다시 해야 겠다.

ㅋ.. 이번 요구사항은 넘사벽 지식이 필요할 거라고 생각했는데 open source 덕분에 아주 쉽게 해결했다. 끝!

댓글 없음: