###### tags: `AirSim` # Jsmsim Bridge (WSL 2) ## [Install PX4 Toolchain](https://docs.px4.io/main/en/dev_setup/dev_env_windows_wsl.html#install-px4-toolchain) - 打開你的 WSL2 Shell 透過 `cd` 指令進入到 WSL2 的==home== 資料夾中 - 使用 ==git== 工具下載 PX4 `git clone https://github.com/PX4/PX4-Autopilot.git --recursive` - 進入 ==PX4-AutoPilot== 資料夾中,切換 PX4 的版本為 ==v1.12.3== `git checkout v1.12.3` - 輸入下面的指令來執行 ==ubuntu.sh== `bash ./PX4-Autopilot/Tools/setup/ubuntu.sh` - 完成後關閉 ==WSL computer== (離開 wsl, 關閉 wsl, 重開 wsl) `exit` `wsl --shutdown` `wsl` ## JsbSim 建立 - 到 [Github 複製 Jsbsim 的源碼](https://github.com/JSBSim-Team/jsbsim) 使用 git 工具下載 JsbSim 到 ==WSL 的/home/(username)== 位址下 - 照著[官網](https://jsbsim-team.github.io/jsbsim-reference-manual/mypages/quickstart-building-the-program/#building-with-cmake)的步驟執行 - 在上面的步驟 `make` 執行完後,再執行 `make install` ## MAVProxy [Install](https://ardupilot.org/mavproxy/docs/getting_started/download_and_installation.html) - 需要安裝 ==Windows== 版本以及 ==Ubuntu== 這兩種版本 Windows 版本是讓 Airsim 可以使用(看來是用不到?) 而 Ubuntu 版本則是讓我們在 Wsl 作業環境中可以使用 ## 打開 Jsbsim - 查詢 ip 位址 在 ==Windows== 環境中打開終端,輸入`ipconfig`,這會顯示你電腦 IP 設定,其中我們會需要 ==乙太網路卡 vEthernet (WSL)== 中的 ==IPv4== 位址,wsl 可以透過這個位址將數據傳到 Windows 主機上 - 進到 ==PX4-Autopilot== 資ˋ料夾中,輸入`make px4_sitl jsbsim` 成功的話會是這個畫面,不會有新的 prompt 跳出來 ![](https://i.imgur.com/RbmbEWK.png) - 透過 Mavproxy 將飛機的 Mavlink 數據包傳到 Windows 環境中 打開新的 ==Linux== 環境的終端 (wsl or Bash) 輸入 Mavproxy 的指令 `mavproxy.py --master=udp:127.0.0.1:14550 --out=udp:172.31.0.1:14560 --out=udp:172.31.0.1:8080` 應該會是這個畫面 ![](https://i.imgur.com/Phujqi7.png) :::info `--out=udp:`後面的 IP 位址會是前面查詢的 ==IPv4== 的 IP 位址 ::: - Airsim 圖行介面顯示 打開編譯過的 Airsim 專案 (像是官網提供的 binaries) ![](https://i.imgur.com/M17BTky.jpg) 使用 [airsimbridge.py](https://github.com/koukoc/px4_airsim_sitl) 這個軟件來將 Mavlink 數據包編譯成 Airsim 可以讀取的資料 - 下載壓縮檔,並解壓縮到 ==\(你 Airsim 安裝的位址)\PythonClient\multirotor== - 在該目錄中打開終端,輸入`py airsimbridge.py` 成功後應該要是這個畫面,會顯示`connect` ![](https://i.imgur.com/aT5vVlM.png) :::warning 如果遇到問題的話,參考跳出來訊息,複製貼上是個好方法 ![](https://i.imgur.com/R5sMJHK.png) 如果沒開 Airsim 則會是下面的畫面 ![](https://i.imgur.com/G3sxD6i.png) ::: ## 去掉 Noise ![](https://i.imgur.com/DIYDpjE.png) - sensor_airspeed_plugin.cpp ![](https://i.imgur.com/Zs2lKUI.png) - sensor_baro_plugin.cpp ![](https://i.imgur.com/XXb8FQ2.png) - snesor_imu_plugin.cpp ![](https://i.imgur.com/88ivVmd.png) - senor_mag_plugin.cpp ![](https://i.imgur.com/xWsvOXr.png) # 參考 [PX4 SITL with WSL 2](https://microsoft.github.io/AirSim/px4_sitl_wsl2/) -- IP 位址 [Mavproxy -Startup Options](https://ardupilot.org/mavproxy/docs/getting_started/starting.html) - Mavproxy 指令意思