###### tags: `AirSim` # Airsim HITL 在 Airism 中使用飛控板上的數據來進行模擬,透過直接使用飛控板的數據來測試,在模擬的過程中可以更清楚的發現實際飛行中可能會發生的情況 ## 飛控板調整 - 將飛控板連上,在 QGround 中更新 ==Firmware== - 因為在 AirSim 預設中,AirSim 使用的是多軸無人機,因此在 ==Airframe== 中選擇 ==HITL Quadcopter X== ## AirSim 調整 AirSim 原先的設定是在 SITL 的情形下做使用,根據他官方文檔提供的資料來調整 AirSim 的設定,使得 AirSim 可以用在 HITL 也就是接上飛控板 ### AirSim Binaries 在連接上飛控板前,你會需要一個可以立即使用的模擬環境 ==Airsim binaries== ,可以當作模擬飛行的地圖 - 直接下載 [GitHub AirSim](https://github.com/Microsoft/AirSim/releases) 上提供的 binaries ![](https://i.imgur.com/IvleccJ.png) ### AirSim Settings.json 打開下載的 binary 後,在電腦的文件資料夾中會產生 ==settings.json== 檔案,透過這個檔案可以直接調整 AirSim 的設定 - 位址 ==/文件/AirSim== ![](https://i.imgur.com/1qJNZhS.png) - 將內容修改成 ``` { "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md", "SettingsVersion": 1.2, "LogMessagesVisible": true, "SimMode": "Multirotor", "Vehicles": { "PX4": { "VehicleType": "PX4Multirotor", "UseSerial": true, "Parameters": { "NAV_RCL_ACT": 0, "NAV_DLL_ACT": 0, "LPE_LAT": 47.641468, "LPE_LON": -122.140165, "COM_OBL_ACT": 1 } } } } ``` - 這步完成後,打開 AirSim 就可以使用四軸無人機來模擬 ## 參考 [PX4 Setup for AirSim - AirSim](https://microsoft.github.io/AirSim/px4_setup/) [PX4 HITL with AirSim](https://dennisbaldwin.gitbook.io/airsim-notes/px4-hitl-testing) # AirSim HITL with JSBSim ## Jsbsim HITL 1. 接上 cube 2. 打開 jsbsim_bridge 進到 Firmwire/build/px4_sitl_default/build_jsbsim_bridge 目錄中,裡面應該要有 ==jsbsim_bridge== 這個檔案 在 linux 環境終端輸入 `HEADLESS=1 ./jsbsim_bridge rascal -d /dev/ttyACM0 -s ~/src/Firmware/Tools/jsbsim_bridge/scene/LSZH.xml` :::info 裡面的 src\Firmwire 記得要改成自己路徑 ::: ![](https://i.imgur.com/6v3mlhG.png) ## AirSim with JSBSim HITL 1. 使用 mavproxy 連接 Cube 及 AirSim 兩個 port 2. 打開 jsbsim_bridge 3. 打開 AirSim :::warning 因為連接 cube 的 port 會占用掉 mavproxy 要使用的 port,因此會需要去想辦法將 mavproxy 連上 USB 的 port,使得 ::: ## 參考 - 因為 AirSim 預設是使用四軸無人機來做模擬,因此需要透過連接 AirSim 與 JSBSim 來讓 AirSim 能讀取 JSBSim 中的定翼機模型數據 ==參考== - https://github.com/AOS55/Fixedwing-Airsim 連接 JSBSim 與 AirSim 使得能夠在 AirSim 中模擬定翼機的飛行,這是 SITL,如果要模擬飛控板來達到 HITL 的話會需要透過 [px4_jsbsim_bridge](https://github.com/Auterion/px4-jsbsim-bridge) 將 JSBSim 與 PX4 連接,使得 JSBSim 可以讀取 PX4 的數據,再將該數據傳輸到 AirSim 中來進行模擬 ==參考== - https://github.com/Auterion/px4-jsbsim-bridge ==操作== - https://hackmd.io/@ncku-uav/BJUM9o84o - 因為上面的 px4_jsbsim_bridge 是用在 SITL,如果要用在 HITL 的話會需要調整 px4_jsbsim_bridge 中的程式碼 ==參考== - https://github.com/Auterion/px4-jsbsim-bridge/pull/28