# 系列文章目錄 ` 一共三篇文章` <a href="https://hackmd.io/@UnmannedVehicle/H1x6IIA31l">Catalogue</a> <a href="https://hackmd.io/@UnmannedVehicle/S1ZqRhLiye">QGroundControl 與 AirSim 整合指南 - 建立STIL(Software-In-The-Loop)</a> <a href="https://hackmd.io/@UnmannedVehicle/rJJMLIAnyl">QGroundControl 與 AirSim 整合指南 - 建立地面站控制虛擬飛行器</a> <a href="https://hackmd.io/@UnmannedVehicle/By2OU8Ah1l">QGroundControl 與 AirSim 整合指南 - STIL on the Raspberry Pi 5</a> --- > 提示:AirSim、SITL、QGroundControl、PX4、Ardupilot --- # 前言 `[AirSim] ←→ (TCP) ←→ [PX4 SITL(Software-In-The-Loop)] ←→ (UDP) ←→ [QGroundControl(QGC)]` 這篇文章將探討如何實現 AirSim、PX4 SITL 以及 QGroundControl 之間的數據傳輸與控制。本架構適用於無人機模擬環境,並且可以讓開發者在虛擬場景中測試飛行控制演算法、導航策略與自動化飛行計畫,無需實體硬體即可進行開發與驗證。 | 名詞 | 定義 | |:--|:--| | AirSim | 作為無人機的模擬環境,負責渲染虛擬世界並提供物理模擬。 | | PX4 SITL | 作為飛控系統的核心,透過 TCP 與 AirSim 交換感測器數據與控制指令。 | | QGC | 作為地面站,透過 UDP 與 PX4 SITL 進行通訊,提供 UI 介面以監控無人機狀態與發送控制指令。 | **AirSim ↔ PX4 SITL** AirSim 模擬無人機的物理環境,透過 TCP連接 PX4 SITL,而 PX4 SITL用來模擬 PX4 飛行控制器。 **PX4 SITL ↔ QGroundControl**l 透過UDP通訊,PX4 SITL傳送 MAVLink 訊息給 QGroundControl進行監控,同時PX4 SITL允許QGroundControl發送飛行指令(如起飛、降落、導航)。 這種架構使開發者能夠在軟體環境中模擬完整的無人機任務,並且可以進一步整合 AI、自主導航與影像處理技術,以提升無人機的智能化能力。本文將詳細介紹如何搭建此系統。 --- `提示:以下是本篇文章正文内容,下面案例可供参考` # 一、WSL Ubuntu 22.04 安裝? - 在 Windows 上安裝 WSL 和 Ubuntu 22.04 打開 PowerShell(以管理員身份運行),輸入以下命令安裝 WSL 和最新的 Ubuntu 發行版 ```PowerShell wsl --install ``` - 更新並升級系統 在終端中輸入以下命令更新包列表並升級已安裝的軟體包 ```bash sudo apt update sudo apt upgrade -y ``` - WSL2 虛擬網路介面未建立 檢查是否擁有vEthernet (WSL) 選擇[控制台] >> [網路和網際網路] > [檢視網路狀態及工作] > [變更介面卡設定] ![檢視網路狀態及工作](https://i-blog.csdnimg.cn/direct/96cf458d08ec4f4fa37f26e0ca0ef912.png#pic_center)![變更介面卡設定](https://i-blog.csdnimg.cn/direct/af237f7df4174f009e244fa6c0c848c6.png#pic_center) 如果沒有vEthernet檢查WSL的版本是否為version 2 ```CMD wsl --list --verbose ``` ![檢查WSL版本](https://i-blog.csdnimg.cn/direct/2511a792fb07425aa0ea1614752a3164.png#pic_center) 需要檢查WSL是否為version 2,如果沒有需要升級 在PowerShell中執行 ```PowerShell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -NoRestart ``` 然後重新開機,打開CMD輸入以下指令升級成version 2 ```CMD wsl --set-version Ubuntu-22.04 2 ``` ![version update](https://i-blog.csdnimg.cn/direct/99cec5fb10114fb2b13d7a275b2f8c02.png#pic_center) 升級完成後就可以看到vEthernet ![vEthernet](https://i-blog.csdnimg.cn/direct/4604a7f9f18843599178347caa299ba5.png#pic_center) # 二、安裝 Python、pip,並建立虛擬環境 ## 1.安裝 Python 和 pip - 確認 Python 版本 ```bash python3 --version ``` - 如果未安裝或需要更新,執行以下命令: ```bash sudo apt install python3 sudo apt install python3-pi ``` ## 2.設置 Python 虛擬環境 - 安裝 `venv` 模組 ```bash sudo apt install python3-venv ``` - 創建並啟動虛擬環境 ```bash python3 -m venv px4env source px4env/bin/activate ``` # 三、下載PX4-Autopilot ```bash git clone https://github.com/PX4/PX4-Autopilot.git --recursive cd PX4-Autopilot git submodule update --init --recursive ``` # 四、編譯STIL,PX4 STIL - 編譯並建立 SITL ```bash make px4_sitl_default ``` - 相關PX4 SITL資料 - ⭐[Gazebo Classic Simulation](https://docs.px4.io/main/en/sim_gazebo_classic/) (有介紹make指令有哪一些) - ⭐[PX4 development environment on Windows 10 or 11](https://docs.px4.io/main/en/dev_setup/dev_env_windows_wsl.html) # 五、安裝套件,解決相依性錯誤 - 安裝 PX4 依賴包 ```bash make px4_sitl_default ``` - 安裝系統依賴包 在虛擬環境中安裝必要的 Python 模組 ```bash sudo apt install git zip qtbase5-dev libqt5opengl5-dev \ python3-dev python3-pyqt5 python3-numpy python3-pip \ python3-empy python3-toml python3-jinja2 python3-setuptools \ ninja-build exiftool ``` - 常見錯誤及解決方案 **error:ModuleNotFoundError: No module named 'genmsg'** ```bash pip install pyros-genmsg ``` **error:ModuleNotFoundError: No module named 'em'** **error:AttributeError: module 'em' has no attribute 'RAW_OPT'** ```bash pip install empy==3.3.4 ``` **error:ModuleNotFoundError: No module named 'menuconfig'** ```bash pip install kconfiglib ``` **warning:Failed to import lxml module etree** ```bash sudo apt install libxml2 libxml2-dev libxslt1-dev pip install lxml ``` # 六、啟動STIL ```bash make px4_sitl_default none_iris ``` ![啟動STIL](https://i-blog.csdnimg.cn/direct/c21a060293f14ebfa3a557ab97712a0f.png#pic_center) --- # 總結 PX4 SITL 提供了一個強大的無人機飛控模擬環境,讓開發者能夠在無需實體硬體的情況下測試飛行控制演算法、導航策略以及與地面站 (QGroundControl) 或 AI 系統 (MAVSDK) 的整合。透過 TCP/UDP 通訊,SITL 可與 AirSim、Gazebo 或其他模擬器 互動,實現虛擬測試與驗證。