개요

총 4개의 웨이포인트를 거쳐 무인 비행을 수행하는 프로젝트이다.

이 프로젝트에서는 특히 WP2WP3를 지나가는 과정에서 필요한 물체 인식에 목표를 두고 있다.

목표

WP1에서 하강한 이후, 직선 거리에 있는 두 개의 그림 위 포인트를 지나야 한다.

이를 위해 필요한 핵심 조건은 다음과 같다.

  • 물체를 실시간으로 인식할 수 있어야 한다.
  • 인식 과정을 조종자 화면에서 실시간으로 확인할 수 있어야 한다.

과제

  • 온디바이스 실시간 물체 인식
  • 조종자 화면에서의 실시간 확인

세부 과제

1. 온디바이스 실시간 물체 인식

  • Docker + Ubuntu를 통해 서버에 프로그램 올리기
  • Docker + Ubuntu 환경에서 프로젝트 초기 진행

2. 조종자 화면에서의 실시간 확인

  • 영상을 어떻게 송신받을 것인가?
  • 비행 기기에 인터넷을 어떻게 연결할 것인가?

기술 선정 및 문제 해결 방향

문제 1. 온디바이스 실시간 물체 인식

현재 고려 사항

  • Docker + Ubuntu를 통해 서버에 프로그램 올리기
  • Docker + Ubuntu 환경에서 프로젝트 초기 진행

환경 구성

Jetson Nano는 작은 PC처럼 생각하면 된다. 세부 설정은 이 장치 내부에서 진행하게 된다.

물론 장치를 직접 연결한 상태에서 매번 수정하고 테스트할 수도 있다. 다만, 항상 동일한 환경을 가정하고 설정하려면 컨테이너 위에 OS를 올려 진행하는 방식이 가장 확실하다.

** 도커 관련 문제는 현 1순위 문제 아님 **

영상 데이터 테스트

현재는 Jetson Nano가 없는 상태에서도 개발을 진행해야 한다.

그러기 위해서는 연결된 영상 장치가 Ubuntu 환경에서 정상적으로 인식되는지 먼저 확인해야 한다. (다만 예전 개발에서는 이 과정이 쉽지 않았던 경험이 있다.)

확인할 항목:

  • 과제 1: Ubuntu 내에서 영상 장치 인식이 가능한가?

가능성 메모:

  • A1. OpenCV로는 가능하다는 이야기가 있음
  • A2. Jetson Nano에 기본 카메라가 없다면 별도 캠을 구매해야 할 수 있음
  • A3. 그 경우 IP Camera 활용 가능성도 있음

예상 개발 환경

  • Windows
  • WSL2
  • Ubuntu
  • uv (가상환경 + 버전 관리)

메모:

  • Docker는 방향이 확정되면 나중에 한 번에 정리하는 편이 나을 수 있음

마일스톤

  1. Ubuntu 환경에서 장치가 인식되는가
  2. 캡처가 되는가
  3. 실시간 모니터링이 가능한가
  4. YOLO 모델을 임의 적용해 물체 인식이 가능한가
  5. --- 여기까지 1단계 ---
  6. 대회 측에서 제공한 탱크/자동차 예시 이미지를 확보
  7. 유사 이미지 수집 및 augment 진행
  8. train / valid / test 셋 분리 후 훈련
  9. YOLO 모델 커스텀 학습
  10. 이미지 파일 기준으로 검증 성능 평가
  11. 종이 출력물 기준 실시간 카메라 성능 검증
  12. 운전 기능까지 통합

문제 2. 조종자 화면에서의 실시간 확인

핵심 질문

  • 영상을 어떻게 송신받을 것인가?
  • 비행 기기에 인터넷을 어떻게 가능하게 할 것인가?

현재 판단

영상 데이터를 이미지 형태로 전송받으려면, 동일한 인터넷망이 아닌 경우 보안 문제 때문에 지연 없는 실시간 데이터 통신이 쉽지 않다.

예를 들어 다음 같은 추가 구성이 필요할 수 있다.

  • STUN / TURN 서버
  • WebRTC
  • RTSP

하지만 이렇게 가면 시스템이 과도하게 복잡해질 가능성이 있다.

추가 제약:

  • 랜선을 꽂고 비행기를 유선으로 날릴 수는 없다.
  • 모바일 핫스팟 기반 구성은 거리가 멀어지면 연결이 끊길 수 있다.

환경 구성 아이디어

동일망 구성을 위해 아래 조합을 고려해볼 수 있다.

  • 4G LTE 유심 라우터
  • 알뜰폰 유심
  • Tailscale

구상은 다음과 같다.

  1. 유심 라우터를 통해 셀룰러 데이터 사용 가능하게 구성
  2. Tailscale을 통해 복잡한 서버 구축 없이 사실상 동일망처럼 연결
  3. 그 결과, HTTP만으로도 영상 데이터 통신이 가능하도록 단순화

추가로 정리할 그림/구성도

아래 항목은 텍스트보다 다이어그램으로 정리 예정

  • 드론에 Jetson Nano + 카메라 부착
  • 카메라에서 Jetson Nano로 영상을 어떻게 보낼지
  • 카메라 또는 Jetson Nano에서 모니터링 PC로 영상을 어떻게 보낼지

다음에 더 정리하면 좋은 것

  • WP2, WP3의 실제 요구 동작 정의
  • 카메라 입력 방식 후보 비교 (USB 캠, CSI 카메라, IP Camera)
  • 영상 전송 방식 후보 비교 (HTTP, RTSP, WebRTC)
  • Jetson Nano에서 가능한 추론 성능 범위
  • 최종 현장 네트워크 구성도