Main Content

MATLAB® Support Package for Ryze® Tello Drones를 사용하여 녹색 공 추적

이 예제에서는 MATLAB® Support Package for Ryze® Tello Drones를 사용하여 녹색 공을 추적하는 방법을 보여 줍니다.

소개

MATLAB® Support Package for Ryze® Tello Drones를 사용하면 Ryze 드론에서 이미지를 캡처하고 바로 MATLAB으로 가져와 처리할 수 있습니다.

필요한 하드웨어

이 예제를 실행하려면 다음이 필요합니다.

  • 완전히 충전된 Ryze 드론

  • WiFi 연결이 있는 컴퓨터

작업 1 — 하드웨어 설정

  • Ryze 드론을 켭니다.

  • 컴퓨터를 드론의 WiFi 네트워크에 연결합니다.

작업 2 — ryze 객체 만들기

ryze 객체를 만듭니다.

   ryzeObj = ryze();

작업 3 — 드론의 카메라에 연결

Ryze Tello 드론의 FPV 카메라에 연결합니다.

   cameraObj = camera(ryzeObj);

작업 4 — 드론 이륙

수평면에서 Ryze 드론을 이륙시킵니다.

MATLAB 명령 프롬프트에서 다음 명령을 실행하여 드론을 이륙시킵니다.

   takeoff(ryzeObj);

작업 5 — 공 추적

드론에서 캡처한 이미지에 대해 루프에서 trackBall 함수를 호출합니다. trackBall 함수에는 다음과 같은 입력이 허용됩니다.

  • Ryze Tello 드론에 대한 연결

  • 드론의 FPV 카메라에서 캡처한 이미지

  • 녹색으로 처리할 픽셀의 녹색 성분 농도에 대한 최솟값. 비행 환경을 기반으로 이 값을 조정합니다.

  • 이미지 가운데로부터 드론의 최소 오프셋. 오프셋이 이 값을 초과하면 드론 위치를 조정해야 합니다.

드론이 60초 동안 공을 추적합니다.

   tim = tic;
   duration = 60;
   minGreenIntensity = 40;
   minOffset = 30;
   while(toc(tim) < duration)
   img = snapshot(cameraObj);
   trackBall(ryzeObj, img, minGreenIntensity, minOffset);
   pause(0.1);
   end

녹색 공이 범위를 벗어났습니다. 드론을 이동하여 공이 경계를 넘어가지 않도록 합니다.

이제 녹색 공이 경계 안에 있습니다.

작업 6 — 드론 착륙

드론을 착륙시킵니다.

  land(ryzeObj);

작업 7 — 마무리

작업이 끝났으면 Ryze 드론에 대한 연결을 끊습니다.

  clear ryzeObj;

trackBall 알고리즘

trackBall 알고리즘은 다음과 같은 경우에 사용됩니다.

  • FPV 카메라 이미지에서 RGB 색 성분 추출

  • 이미지에서 녹색 픽셀의 인덱스 찾기

  • 캡처된 이미지에서 녹색 공의 가운데 찾기

  • 이미지의 가운데에서 녹색 공의 변위 찾기

  • 공이 이미지 가운데에 오도록 드론을 이동할 방향 결정

trackBall 함수에 대한 자세한 내용을 알아보려면 TrackGreenBallExample을 열고 MATLAB 명령줄에서 다음 명령을 실행합니다.

  open('trackBall.m')