Python3項目基於幾何方法實施兩個無人機模擬,並使用碰撞避免系統。項目鏈接:
UAV Collision Avoidance是我的學士學位論文項目會議問題在3D空間中安全合作的問題。項目實施功能性物理計算,可擴展的GUI,現實的ADS-B可能避免碰撞系統和機上飛行計劃。應用程序提供多線程實時仿真,呈現模擬飛機以及線性預渲染的仿真,允許快速算法有效性測試。
-45°, 45°和-90°, 90° ,其中正傾斜角表示攀爬,正滾角意味著右側沿距離。在現實主義保存中,角度不近似。碰撞檢測和迴避算法都取決於幾何方法。他們在參考的論文2中介紹。碰撞檢測區分碰撞和正面碰撞。當無人機投影中心碰撞之間沒有距離時,第二個適用,而第一個是其他類型的接觸。
幾何方法被證明可用於碰撞檢測和避免。在大多數情況下,該系統能夠避免碰撞。該系統不是完美的,在某些情況下可能會失敗,尤其是當檢測到衝突時,飛機彼此太近時。該系統是節能的,可用於現實生活中。
擬議的測試案例生成和評估系統是簡單有效的。它允許在各種情況下快速測試系統的有效性。該系統可以進一步開發,以包括更複雜的方案和其他參數。
Python3 3項目被包裝為PYPI軟件包4 。 Pyside6 5 (QT的Python QT6庫)用於GUI實施。
應用程序是基於兩種主要對像類型(模擬和飛機)構建的。仿真是最初的設置創建的,從而允許並發實時變體和線性預渲染。飛機由兩個元素組成,即無人機和飛行控制計算機的物理表示,由ADS-B線控制。從無人機系統中的研究中得出了第二篇引用論文6的研究。
仿真數據以CSV格式存儲。文件中的每一行代表進行的單個模擬。 CSV文件中的列表示有關測試案例的詳細信息,包括飛機的初始和最終參數,碰撞檢測結果以及兩種情況下有和無需避免的案件的飛機之間的相對距離最小。
示例仿真數據文件存儲在數據目錄數據中。使用10 Hz模擬頻率進行的200個模擬測試的結果存儲在文件仿真-2024-06-06-10-00-21-19.CSV中。
使用tree命令生成文件結構:
tree --gitignore -I " __pycache__|.env|.github|.pytest_cache|.vscode|assets|build|logs|path-visual|uav_collision_avoidance.egg-info|venv|docs "在此處查看文件結構:文件結構
目前有八個可能的論點:
file_path test_index collision_avoidance運行GUI模擬;可以指定文件名並默認為最新的仿真數據;可以指定測試索引並默認為0;可以指定避免碰撞並默認為關閉test_number運行完整的測試,比較碰撞迴避算法的有效性,測試號默認為15file_path test_index指定時加載和執行無頭模擬,否則從數據目錄數據加載默認示例測試案例;可以指定測試索引並默認為0argument - 為應用程序參數打印幫助消息;默認為所有參數列表該應用程序的實時版本具有多個關鍵快捷方式,允許用戶與環境交互。
筆記
飛機0是第一個,飛機1是第二架飛機。
該應用程序的實時版本有幾個關鍵快捷方式,可以進行全面測試。
通過運行以下命令安裝應用:
pip install uav-collision-avoidance對於Debian 12,您需要安裝以下依賴項:
sudo apt-get install libgl1 libxcb-xinerama0要運行無頭的應用程序,您需要運行以下導出:
export QT_QPA_PLATFORM=offscreen使用以下任何一個運行應用程序:
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 version通過克隆回購併運行以下命令來構建它:
#! /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 ]3維(3D)世界通過平坦的高度(z坐標)投影在2D屏幕上。在程序開始時,該視圖不在任何飛機上。該視圖可以使用箭頭鍵移動,也可以使用N鍵以飛機為中心。
項目範圍中沒有保留一個編碼約定。 QT的方法是駱駝格式的,其餘的就是默認的Python命名約定,包括可變和成員名稱的Snake_case。
MiłoszMaculewicz
檢查許可證

名詞項目的Anthony Lui的無人機(CC By 3.0)
所有使用的參考文獻均在下面列出。
飛機主軸↩
基於幾何方法的無人機避免碰撞↩
Python3↩
PYPI↩
pyqt6↩
能源有效的無人機飛行控制方法在有風的環境中