← Kembali ke Portofolio
Design, building and performance testing of GPS and computer vision combination for increasing landing precision of quad-copter drone

Design, building and performance testing of GPS and computer vision combination for increasing landing precision of quad-copter drone

📅 02 April 2021🏷️ ResearchComputer VisionDrone

Ringkasan

Paper ini membahas upaya peningkatan akurasi pendaratan otonom quadcopter pada landing pad dengan menggabungkan GPS dan computer vision. Penelitian ini berhasil membangun dan menguji sistem yang mampu mengenali serta menangkap gambar dari landing pad menggunakan metode Canny Edge detection, kemudian menggunakannya untuk mengendalikan quadcopter selama mode pendaratan.

Gambar 1: Ilustrasi Quadcopter
Gambar 1: Ilustrasi Quadcopter

Latar Belakang Riset

GPS saja tidak cukup akurat untuk pendaratan presisi quadcopter, terutama di lingkungan yang sempit.

Pernyataan ini menjadi titik tolak penelitian. Selama ini, quadcopter mengandalkan GPS untuk navigasi termasuk saat fase pendaratan. Namun GPS memiliki nilai error dalam menentukan koordinat latitude dan longitude, sehingga kurang direkomendasikan untuk misi landing. Melalui penelitian ini, kami mengkombinasikan GPS dengan computer vision sebagai solusi untuk meningkatkan akurasi pendaratan.

Perkembangan UAV/Drone

Perkembangan Unmanned Aerial Vehicle (UAV) atau drone saat ini berkembang pesat. Drone diaplikasikan di berbagai bidang:

  • Pertanian (monitoring kondisi hingga penyemprotan pestisida)
  • Remote sensing perkotaan (lingkungan pesisir, manajemen lingkungan)
  • Pemantauan infrastruktur dan fasilitas
  • Misi penyelamatan (pengiriman data gambar atau audio-video)
  • Sinematografi (multi-view videography level ahli)

Jenis-jenis UAV

Terdapat beberapa jenis UAV:

  • Fixed wing (pesawat) - keunggulan: area coverage luas, kekurangan: tidak bisa hover
  • Single rotor (helikopter) - keunggulan: efisiensi energi, kekurangan: kompleksitas mekanik
  • Multirotor (quadcopter, hexacopter, octocopter) - keunggulan: manuver, kemampuan hover, VTOL, desain sederhana
  • Hybrid VTOL - keunggulan: fleksibilitas take-off landing

Quadcopter dipilih karena memiliki keunggulan: kemampuan manuver, kemampuan hover di udara, dapat digunakan di dalam dan luar ruangan, kemampuan Vertical Take Off and Landing (VTOL), dan desain yang relatif sederhana.

Fokus Utama Publikasi

Dalam penelitian ini, tim merancang dan menguji sistem autonomous landing quadcopter dengan dua skenario perbandingan.

Komponen Sistem yang Dikembangkan

Hardware:

  • Frame quadcopter ukuran diagonal 450 mm
  • Pixhawk flight controller
  • Raspberry Pi 3B+ (processor untuk image processing)
  • PiCamera (kamera untuk menangkap gambar landing pad)
  • GPS module untuk navigasi
  • 4 brushless DC motor (2312 920 kV)
  • Electronic Speed Controller (ESC) Simonok 30A
  • Battery POWER 2800 mAh 25 C
  • Propeller 9 x 4.5 inch

Spesifikasi Quadcopter:

  • Tinggi: 27 cm
  • Total berat: 1330 gram
  • Safe flight time: ± 5-7 menit

Landing Pad:

  • Material: plywood (tidak reflektif terhadap cahaya)
  • Bentuk: 3 lingkaran konsentris hitam putih
  • Lingkaran dalam (terkecil): radius 25 cm (hitam)
  • Lingkaran tengah: radius 60 cm
  • Lingkaran terluar: radius 100 cm (hitam)
  • Total dimensi: 120 cm

Software:

  • Python dengan library OpenCV untuk image processing
  • MAVLink protocol untuk komunikasi Pixhawk-Raspberry Pi
  • DroneKit untuk komunikasi dengan flight controller
  • Mission Planner sebagai Ground Control Station
Gambar 2: Block Diagram Sistem
Gambar 2: Block Diagram Sistem

Arsitektur Sistem

Pixhawk digunakan sebagai flight controller untuk mengendalikan empat motor BLDC. Pixhawk menerima input dari sensor:

  • Gyroscope
  • Accelerometer
  • Compass
  • GPS

Raspberry Pi memproses gambar dari PiCamera sesuai algoritma yang ditentukan. Raspberry Pi dan Pixhawk berkomunikasi via MAVLink protocol melalui koneksi serial. Ground station (Android phone) digunakan untuk remote desktop Raspberry Pi via Wi-Fi frekuensi 2.4 GHz.

Algoritma Deteksi Objek

Langkah-langkah Canny Edge Detection:

  1. Konversi RGB ke Grayscale

    RGB to Gray = 0.299R + 0.587G + 0.114B

  2. Menghilangkan noise dengan Gaussian filter

    G(x,y) = 1/√(2πσ²) × e^[-(x² + y²)/(2σ²)]

    (x = jarak dari origin pada sumbu horizontal, y = jarak dari origin pada sumbu vertikal, σ = standar deviasi distribusi Gaussian)

  3. Mencari intensity gradient

    Edge Gradient (G) = √(Gx² + Gy²)

    Angle (θ) = tan⁻¹(Gy/Gx)

  4. Mencari contour dari edge detection

  5. Mencari center coordinate dengan centroid method

    x = m₁₀/m₀₀

    y = m₀₁/m₀₀

Gambar 3: Canny Edge Detection Algorithm
Gambar 3: Canny Edge Detection Algorithm

Keunggulan Canny Edge detection: tidak menggunakan threshold pada konversi citra biner, sehingga intensitas cahaya tidak mempengaruhi deteksi secara signifikan.

Sistem Grid untuk Kontrol Pendaratan

Kamera diatur pada 640×480 pixel kemudian di-resize menjadi 330×240 pixel karena keterbatasan kecepatan pemrosesan Raspberry Pi. Frame dibagi menjadi 9 bagian dengan pembagian:

Pembagian pixel:

  • X axis: 0-110 (Grid A), 111-220 (Grid B), 221-330 (Grid C)
  • Y axis: 0-80 (Grid D), 81-160 (Grid E), 161-240 (Grid F)

Persamaan pembagian:

  • xaxis = xaxis/3
  • yaxis = yaxis/3

9 Grid yang terbentuk:

  • AD, BD, CD (baris atas)
  • AE, BE, CE (baris tengah)
  • AF, BF, CF (baris bawah)
Gambar 4: Grid Detection Object
Gambar 4: Grid Detection Object

Kemungkinan pergerakan quadcopter berdasarkan posisi pusat koordinat:

  • AD, BD, CD (y axis 0-80) → Move forward
  • AF, BF, CF (y axis 161-240) → Move backward
  • AE (x axis 0-110, y axis 81-160) → Move left
  • BE (x axis 111-220, y axis 81-160) → Move downward / Landing
  • CE (x axis 221-330, y axis 81-160) → Move right
  • Tidak terdeteksi di semua grid → Hovering
Gambar 5: Quad-copter Possible Movements
Gambar 5: Quad-copter Possible Movements

Kontribusi Saya dalam Publikasi Ini

Dalam proyek penelitian ini, kontribusi utama saya meliputi:

  • Perancangan algoritma object detection menggunakan Canny Edge detection dengan optimasi parameter Gaussian filter untuk kondisi outdoor.
  • Implementasi sistem grid 3×3 untuk kontrol pergerakan quadcopter berdasarkan posisi pusat koordinat landing pad yang terdeteksi.
  • Pengujian komparatif antara sistem GPS only vs GPS + computer vision dengan 5 kali uji coba pada masing-masing skenario.
  • Analisis error pendaratan dan identifikasi faktor-faktor yang mempengaruhi akurasi seperti intensitas cahaya dan material landing pad.
  • Integrasi sistem komunikasi antara Pixhawk dan Raspberry Pi via MAVLink protocol over serial connection.
  • Pengembangan script Python menggunakan library OpenCV, pymavlink, DroneKit, NumPy, dan deque.
  • Simulasi SITL (Software In The Loop) sebelum implementasi riil menggunakan Mission Planner dan Ubuntu terminal.

Library yang Digunakan

  • print_function dari future module (membawa print function Python 3 ke Python 2.6+)
  • import time (untuk time sleep/delay)
  • cv2 dari openCV library (image processing)
  • mavutil dari pymavlink module (implementasi MAVLink protocol)
  • numpy (scientific computing)
  • deque dari collection (list optimized untuk inserting dan removing items)
  • DroneKit (komunikasi dengan ArduPilot flight controller)
Gambar 6: Drone SITL with Canny Edge Detection
Gambar 6: Drone SITL with Canny Edge Detection

Proses Pengujian

Persiapan Pengujian

Sebelum implementasi riil, quadcopter diuji dalam drone Simulation In The Loop (SITL) menggunakan Mission Planner dan Linux Ubuntu terminal di Windows 10. Kondisi dalam SITL mirip dengan kondisi riil untuk menjalankan program dan hasil.

Pengujian dilakukan di lingkungan outdoor pada kondisi hari cerah. Parameter pengujian:

  • Ketinggian: 5 meter (diukur dengan barometer sensor)
  • Kecepatan pergerakan quadcopter: 0.2 m/s
  • Jumlah percobaan: 5 kali untuk setiap skenario
Gambar 7: Quadcopter Movement toward Grid Position
Gambar 7: Quadcopter Movement toward Grid Position

Skenario 1: GPS Only

Pengujian autonomous take off dan landing menggunakan GPS device saja.

  • Percobaan 1 (07.58 AM): 236 cm
  • Percobaan 2 (08.03 AM): 222 cm
  • Percobaan 3 (08.53 AM): 145 cm
  • Percobaan 4 (08.55 AM): 111 cm
  • Percobaan 5 (08.57 AM): 282 cm
  • Rata-rata: 199.2 cm

Hasil: error tertinggi 282 cm, error terendah 111 cm, rata-rata 199.2 cm.

Gambar 8: Quadcopter Real Configuration
Gambar 8: Quadcopter Real Configuration

Skenario 2: GPS + Canny Edge Detection

Pengujian autonomous take off dan landing menggunakan GPS device dikombinasikan dengan Canny Edge detection algorithm. Landing pad menggunakan material plywood yang tidak reflektif terhadap cahaya.

  • Percobaan 1 (08.24 AM): 31 cm
  • Percobaan 2 (08.26 AM): 55 cm
  • Percobaan 3 (08.28 AM): 48 cm
  • Percobaan 4 (08.29 AM): 52 cm
  • Percobaan 5 (08.31 AM): 41 cm
  • Rata-rata: 45.4 cm

Hasil: error tertinggi 55 cm, error terendah 31 cm, rata-rata 45.4 cm.

Gambar 9: Plywood Landing Pad
Gambar 9: Plywood Landing Pad

Dampak & Temuan Utama

Pengurangan Error Pendaratan:

Sistem GPS only menghasilkan error rata-rata 199.2 cm dari titik pusat landing pad, sedangkan kombinasi GPS + Canny Edge detection menghasilkan error rata-rata hanya 45.4 cm, peningkatan akurasi sebesar 77.2%.

Perbandingan Hasil:

  • GPS Only: rata-rata 199.2 cm, tertinggi 282 cm, terendah 111 cm
  • GPS + Canny Edge: rata-rata 45.4 cm, tertinggi 55 cm, terendah 31 cm

Keunggulan Utama:

Metode Canny Edge detection tidak menggunakan threshold pada konversi citra biner, sehingga intensitas cahaya tidak mempengaruhi deteksi secara signifikan, berbeda dengan metode Hough Transform yang sensitif terhadap cahaya.

Faktor Keberhasilan:

Penggunaan material plywood yang tidak reflektif pada landing pad, serta desain lingkaran konsentris yang memungkinkan kamera tetap mendeteksi target meskipun ketinggian quadcopter berubah.

Tantangan Implementasi:

Raspberry Pi memiliki keterbatasan kecepatan pemrosesan sehingga resolusi frame harus diturunkan dari 640×480 menjadi 330×240 pixel untuk performa real-time.

Kelebihan Sistem yang Dikembangkan:

  • Mampu beroperasi di lingkungan outdoor dengan kondisi cerah
  • Sistem real-time dengan latency yang dapat ditoleransi
  • Tidak memerlukan kalibrasi ulang untuk setiap sesi penerbangan
  • Komponen komersial yang mudah didapatkan

Kesimpulan

Quadcopter berhasil diimplementasikan menggunakan instrumen yang tersedia secara komersial termasuk implementasi GPS plus metode Canny Edge detection. Kinerja quadcopter yang dibangun telah diuji di lingkungan outdoor pada hari cerah dengan ketinggian 5 meter.

Hasil pengujian menunjukkan bahwa dengan menggunakan GPS only, posisi pendaratan quadcopter memiliki jarak rata-rata 199.2 cm dari pusat koordinat landing pad, dibandingkan dengan hanya 45.4 cm ketika menggunakan GPS plus Canny Edge detection.

Berdasarkan hasil pengujian tersebut, dapat disimpulkan bahwa penggunaan GPS plus Canny Edge detection mampu meningkatkan akurasi pendaratan quadcopter secara signifikan.

Rekomendasi untuk Penelitian Selanjutnya

  1. Pengembangan algoritma yang lebih ringan namun tetap akurat untuk mengatasi keterbatasan pemrosesan Raspberry Pi.

  2. Pengujian pada berbagai kondisi cuaca (mendung, malam hari, hujan ringan) untuk menguji robust sistem.

  3. Implementasi explainable AI (XAI) untuk memahami faktor-faktor apa yang paling mempengaruhi keputusan pendaratan.

  4. Penggunaan multimodal data integration misalnya menggabungkan data dari LIDAR atau ultrasonic sensor dengan computer vision.

  5. Pengujian pada ketinggian yang lebih bervariasi (2 meter, 10 meter, 15 meter).

  6. Pengembangan dataset terbuka untuk landing pad detection dengan berbagai kondisi lingkungan.

Link