Proyek Python3 mengenai implementasi dua simulasi UAV dengan sistem penghindaran tabrakan berdasarkan pendekatan geometris. Tautan Proyek:
UAV Collision Avoidance adalah masalah pertemuan proyek tesis saya dari kerjasama aman UAV di ruang 3D. Proyek mengimplementasikan perhitungan fisika fungsional, GUI yang dapat diskalakan, sistem penghindaran tabrakan ADS-B yang realistis dan perencanaan penerbangan di atas kapal. Aplikasi menawarkan simulasi realtime multithreaded yang menyajikan pesawat simulasi serta simulasi pra-render linear yang memungkinkan untuk pengujian efektivitas algoritma cepat.
-45°, 45° dan -90°, 90° masing -masing, di mana sudut pitch positif berarti pendakian dan sudut gulungan positif berarti perbankan kanan. Sudut tidak diperkirakan untuk pelestarian realisme.Baik algoritma deteksi tabrakan dan penghindaran bergantung pada pendekatan geometris. Mereka disajikan dalam Makalah Referensi 2 . Deteksi tabrakan membedakan antara tabrakan dan tabrakan langsung. Yang kedua berlaku ketika UAV tidak memiliki jarak antara proyeksi pusat tabrakan massa, dan yang pertama ketika itu adalah setiap jenis kontak lainnya.
Pendekatan geometris terbukti bermanfaat dalam deteksi dan penghindaran tabrakan. Sistem ini mampu menghindari tabrakan dalam banyak kasus. Sistem ini tidak sempurna dan dapat gagal dalam beberapa skenario, terutama ketika pesawat terlalu dekat satu sama lain ketika konflik terdeteksi. Sistem ini hemat energi dan dapat digunakan dalam skenario kehidupan nyata.
Kasus uji yang diusulkan generasi dan sistem evaluasi sederhana dan efektif. Ini memungkinkan untuk pengujian cepat efektivitas sistem dalam berbagai skenario. Sistem ini dapat dikembangkan lebih lanjut untuk memasukkan skenario yang lebih kompleks dan parameter tambahan.
Proyek Python3 3 dibungkus sebagai paket PYPI 4 . Pyside6 5 (pustaka Python QT6 QT) digunakan untuk implementasi GUI.
Aplikasi dibangun berdasarkan dua jenis objek utama, simulasi dan pesawat terbang. Simulasi dibuat hingga pengaturan awal, memungkinkan varian realtime bersamaan dan pra-rendering linier. Pesawat terdiri dari dua elemen, representasi fisik UAV dan komputer kontrol penerbangan, yang dikendalikan oleh utas ADS-B. Penelitian di antara sistem UAV diambil dari kertas yang dikutip kedua 6 .
Data simulasi disimpan dalam format CSV. Setiap baris dalam file mewakili simulasi tunggal yang dilakukan. Kolom dalam file CSV mewakili informasi terperinci tentang kasus uji, termasuk parameter awal dan akhir dari pesawat terbang, hasil deteksi tabrakan, dan jarak relatif minimal antara pesawat untuk kedua kasus dengan dan tanpa penghindaran.
Contoh file data simulasi disimpan dalam data direktori data. Hasil dari 200 tes simulasi yang dilakukan dengan frekuensi simulasi 10 Hz disimpan dalam simulasi file-2024-06-10-00-21-19.CSV.
Struktur file dihasilkan menggunakan perintah tree :
tree --gitignore -I " __pycache__|.env|.github|.pytest_cache|.vscode|assets|build|logs|path-visual|uav_collision_avoidance.egg-info|venv|docs "Lihat Struktur File Di Sini: Struktur File
Ada delapan kemungkinan argumen saat ini:
file_path test_index collision_avoidance - menjalankan simulasi GUI; Nama file dapat ditentukan dan default untuk data simulasi terbaru yang ditemukan; Indeks uji dapat ditentukan dan default ke 0; penghindaran tabrakan dapat ditentukan dan default untuk dimatikantest_number - menjalankan tes penuh yang membandingkan efektivitas algoritma penghindaran tabrakan, angka uji default hingga 15file_path test_index - memuat dan melakukan simulasi tanpa kepala dari file saat ditentukan, jika tidak memuat contoh tes contoh default dari data direktori data; Indeks uji dapat ditentukan dan default ke 0argument Bantuan - Cetak Pesan Bantuan untuk Argumen Aplikasi; default ke semua daftar argumenVersi realtime dari aplikasi ini memiliki beberapa pintasan utama yang memungkinkan interaksi pengguna dengan lingkungan.
Catatan
Pesawat 0 adalah yang pertama, Pesawat 1 adalah yang kedua.
Ada beberapa pintasan utama untuk versi realtime dari aplikasi yang memungkinkan pengujian skala penuh.
Instal aplikasi dengan menjalankan perintah berikut:
pip install uav-collision-avoidanceUntuk Debian 12, Anda perlu menginstal dependensi berikut:
sudo apt-get install libgl1 libxcb-xinerama0Untuk menjalankan aplikasi tanpa kepala, Anda perlu menjalankan ekspor berikut:
export QT_QPA_PLATFORM=offscreenGunakan salah satu berikut untuk menjalankan aplikasi:
uav-collision-avoidanceuav-collision-avoidance realtime [file_name] [test_index] [collision_avoidance]uav-collision-avoidance headlessuav-collision-avoidance tests [test_number]uav-collision-avoidance ongoinguav-collision-avoidance load [file_name] [test_index]uav-collision-avoidance help [argument]uav-collision-avoidance versionBangun dengan mengkloning repo dan menjalankan perintah berikut:
#! /bin/bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python main.py [argument]python - m venv venv
.venvScriptsactivate
pip install - r requirements.txt
python main.py [ argument ] Dunia 3-dimensi (3D) diproyeksikan pada layar 2D dengan tinggi perataan (koordinat z). Pada awal program, pemandangan tidak berpusat pada salah satu pesawat. Pemandangan dapat dipindahkan dengan tombol panah atau berpusat di pesawat menggunakan N kunci.
Satu konvensi pengkodean tidak dipertahankan dalam ruang lingkup proyek. Metode QT diformat Camelcase dan sisanya adalah konvensi penamaan Python default termasuk Snake_case untuk nama variabel dan anggota.
Miłosz Maculewicz
Periksa lisensi

Drone oleh Anthony Lui dari Noun Project (CC oleh 3.0)
Semua referensi yang digunakan tercantum di bawah ini.
Sumbu utama pesawat ↩
Penghindaran tabrakan uav berdasarkan pendekatan geometris ↩
Python3 ↩
Pypi ↩
Pyqt6 ↩
Metode kontrol penerbangan UAV yang hemat energi di lingkungan dengan hambatan dan hembusan angin ↩