Finished aerial maps in under 30 minutes
30분 만에 완성하는 항공 지도 — DJI 드론과 adb 꼼수, 그리고 자체 타일 처리 파이프라인
저자는 DJI Lito X1 드론과 자체 서비스인 Zeitgeist Survey를 이용해 비행 계획 수립부터 정사영상 타일 지도 납품까지 30분 이내에 완료하는 엔드투엔드 워크플로우를 시연합니다. DJI Fly가 미션 임포트를 지원하지 않는 문제를 adb로 KMZ 파일을 직접 덮어쓰는 방식으로 우회한 점이 개발자 독자에게 특히 흥미롭습니다.
- 주제
본문
저자는 최근 구입한 DJI Lito X1 드론의 성능을 시험해 보기 위해 항공 매핑(aerial mapping)에 도전했습니다. 몇 분이면 Google Maps 이미지를 능가하는 해상도의 참조 지도를 영구적으로 확보할 수 있다는 점이 동기였습니다. 전체 과정은 비행 계획(2분), KMZ 파일 전송(1분), DJI Fly에서 Waypoint Flight 선택(1분), 시작 버튼 클릭과 대기(3분), 이미지 다운로드(3분), 업로드(2~4분), 처리 노드로의 오프로드(90초), 스티칭(8분), 완성 타일 회수(9초)로 구성되어 총 30분 이내에 완성됩니다.
미션 계획: 속도와 고도의 삼각함수
비행 계획에서는 카메라가 따라가지 못해 완성 지도에 공백과 정렬 불량이 생기지 않도록 속도를 충분히 낮추는 것이 핵심입니다. 저자는 고도 80m에서 초속 3.5m가 효과적이라는 결론을 얻었습니다. 고도를 낮추면 해상도는 올라가지만 같은 FOV가 더 좁은 면적을 커버하므로 비행 시간이 길어지는 트레이드오프가 있으며, 결국 전부 삼각함수 문제라고 설명합니다.
DJI Fly의 임포트 부재를 adb로 우회하기
가장 눈에 띄는 부분은 DJI Fly가 미션 파일 임포트를 제공하지 않는다는 제약을 우회하는 과정입니다. 먼저 앱에서 Waypoint Flight를 열어 의미 없는 웨이포인트 몇 개를 추가해 플레이스홀더 미션을 만들어야 하는데, 지상에서는 웨이포인트를 추가할 수 없기 때문에 오직 이 작업만을 위해 한 번 이륙해야 합니다. 그러면 기기의 /sdcard/Android/data/dji.go.v5/files/waypoint/<GUID>/<GUID>.kmz 경로에 파일이 생성되는데, 이 디렉터리는 컴퓨터에 연결해야만 볼 수 있습니다. 저자는 adb shell ls로 GUID를 확인하고, adb pull로 플레이스홀더를 백업한 뒤, adb push로 계획해 둔 mission.kmz를 같은 GUID 이름으로 덮어썼습니다. 파일명을 바꾸지 않는 것이 요령이며, 폴더만 보면 아무 변화도 없어 보여야 한다고 조언합니다. 이후 DJI Fly를 열면 임의로 넣었던 웨이포인트는 사라지고 프로그래밍된 비행 경로가 그대로 표시됩니다.
자동 비행과 이미지 수집
시작 버튼을 누르면 드론이 이륙해 첫 지점으로 이동하고, 전체 경로를 따라 사진(이번 경우 36장)을 촬영한 뒤 자동으로 착륙합니다. 저자는 빈 들판보다 볼거리가 많은 지도 화면을 크게 띄워 두었지만, 만일을 대비해 카메라도 주시하라고 권합니다. 착륙 후에는 당일 촬영분을 전부 선택해 다운로드하되, Waypoint Flight에서 본 장수와 맞춰 보면 됩니다. 매핑 후 취미 비행을 했다면 매핑 사진을 먼저 골라야 하고, 애매하면 그냥 다운로드하라고 조언합니다. 모든 이미지는 지오태그되어 있고, 타일 처리 서버가 각 사진의 지리 정보로 지도를 계산하며 짐벌이 정확히 아래를 향하지 않은 이미지는 버리기 때문에, 매핑과 무관한 사진이 섞여 들어가도 문제없다고 설명합니다.
업로드와 온사이트 처리 노드
업로드는 수동 개별 업로드, ZIP 파일 묶음 업로드 등 여러 방식이 가능하며 전용 Android 앱도 곧 출시 예정입니다. 처리에는 Tailscale로 연결된 온사이트 머신을 사용합니다. Zeitgeist Survey가 사진을 전용 타일 처리 노드로 넘기면(90초) 노드가 스티칭을 수행하고(8분), 완성된 타일을 클라우드 서버가 다시 가져오는(9초) 구조입니다. 결과적으로 계획 수립부터 납품까지 30분 이내에 끝나는 Zeitgeist Survey의 엔드투엔드 시연이며, 글 하단 버튼으로 라이브 인터랙티브 지도를 확인할 수 있습니다. 클라우드에 원본 데이터를 올리되 연산은 로컬 인프라에 위임하는 하이브리드 구성이라는 점도 인프라 설계 관점에서 참고할 만합니다.
Lobsters 반응
- @trenchant — 정말 멋지네요. 현재 암반 지도(rock maps) 비용을 지불하고 있는 농업인들에게 큰 힘이 될 것 같습니다.
원문: blog.zm.is / 번역·요약: Trawling