# 110-2 韌體組開發筆記 (PX4 v1.12.3) ###### tags: `飛控` `建立環境` `WSL` `Ubuntu` [TOC] ## 建立環境 參考資料: [PX4 Dev Setting up a Developer Environment](https://docs.px4.io/v1.12/en/dev_setup/dev_env.html) > 根據參考資料所述,建議開發環境為Ubuntu Linux,但是有鑑於安裝雙系統有點麻煩(其實也蠻簡單的啦),因此我們選擇使用Windows WSL2做為開發環境,其使用方式與Ubuntu Linux一樣。 > [飛控組參考資料](https://hackmd.io/fF4YJoOrT6aflARJPJUgoA) > [name=沈張德] ### WSL2 & Ubuntu 20.04 **目標:安裝WSL2 & 安裝與設定Ubuntu 20.04** ### 安裝WSL2 這個方法只適用第一次安裝Linux的電腦,如果要更新請參考下面連結其他疑難排解的方法進行設定。 [Windows 10 2004 版、Windows 11或更新版本](https://learn.microsoft.com/zh-tw/windows/wsl/install) [舊版WSL](https://learn.microsoft.com/zh-tw/windows/wsl/install-manual) 在Windows 開始 搜尋Powershell  打開Powershell,輸入 ``` wsl --install ```  基本上,沒有要選擇版本或特殊處理的話,這樣就算是安裝完成了。如果有特殊需求,一樣點上方的連結就可以查到相關指令。在應用程式裡面也會出現WSL  ### 安裝Ubuntu 20.04 這個蠻簡單的,在Windows市集(Microsoft Store)中搜尋Ubuntu,會出現很多版本。選擇Ubuntu 20.04.1、Ubuntu 20.04.5...等都可以,注意商店中應用程式介紹要是Ubuntu2004或是目前是屬於這個版本的才行。  (其實打錯字也找的到) 安裝完成之後,依照下面網頁做設定。可以從附圖的位置開始繼續。 [設定 WSL 開發環境](https://learn.microsoft.com/zh-tw/windows/wsl/setup/environment?source=recommendations)  開啟Ubuntu 2004之後,系統會要求您為Linux建立使用者名稱和密碼。在輸入密碼時,畫面上不會顯示任何專案。不會看到輸入的內容,這稱為盲目輸入。 一旦您建立使用者名稱和密碼,帳戶就會是您散發套件的預設使用者,而且會在啟動時自動登入。(**但是密碼不要忘記!!執行部分指令時還是會要輸入密碼**) 如果忘記密碼的話可以Google或是點[設定 WSL 開發環境](https://learn.microsoft.com/zh-tw/windows/wsl/setup/environment?source=recommendations)的連結,不要急著重灌,蠻費時的。 > [name=張朝雄] ### 安裝Toolchain > 因為我們要將toolchain安裝在WSL2上面,因此我們可以按照Ubuntu Setup的方式安裝。 > ==但是各位安裝的WSL是沒有包含圖形化(GUI)介面的版本,因此下面會提到要將安裝時要多加上一個flag== > [name=沈張德] 選擇 Ubuntu Setup  #### 下載原始碼 從Github上下載(clone)原始碼 ``` git clone https://github.com/PX4/PX4-Autopilot.git --recursive ``` :::warning 後面的 --recursive 一定要加上去喔 ::: :::info 第一次使用ubuntu尚未安裝git工具的,請先安裝git ``` sudo apt install git ``` ::: 進入資料夾&切換版本(分支)至v1.12.3 ``` cd PX4-Autopilot git checkout v1.12.3 ``` 執行ubuntu.sh安裝各必要元件 ``` bash ./Tools/setup/ubuntu.sh --no-sim-tools ``` :::danger 最後面一定要加上 --no-sim-tools避免安裝SITL套件相關Dependencies ::: ### 安裝 VSCode 並連結 WSL2 可以參考[設定 WSL 開發環境](https://learn.microsoft.com/zh-tw/windows/wsl/setup/environment?source=recommendations)的下半部,但是有些不一樣。 1.先安裝vscode ``` https://code.visualstudio.com/ ``` 2.正常安裝完打開長這樣  會發現左下角,是沒有連接的狀態  3.直接點擊上圖綠色的部分,正上方會跳出選單。選擇New WSL Windows就可以完成連接。如果已經下載完PX4的資料,可以選擇Open Folder in WSL >>PX4-Autopilot的資料夾開啟。  > [name=張朝雄] ### 編譯韌體 這邊介紹的是編譯要燒錄至飛控板上的binary檔案,依照不同的板子選擇不動的編譯參數 [PX4 Building the Code](https://docs.px4.io/v1.12/en/dev_setup/building_px4.html)  ### 如果無法完成編譯 如果在進行編譯時出現error(例如:什麼什麼declared之類的) 請進到PX4-Autopilot的資料夾打上 [Troubleshooting](https://docs.px4.io/v1.12/en/dev_setup/building_px4.html?#troubleshooting) ``` git submodule update --recursive make distclean ``` 在編譯一次應該就可以了 ## 概論 參考資料:[PX4 Dev Concepts](https://docs.px4.io/v1.12/en/concept/) ### 飛控板架構  ### 頂層軟體架構  > 請大家將下面每個子項目都看一遍做個summary > Flight mode, Mixing and Actuators, ...etc > [name=沈張德] ## Middleware ### uORB Messaging ### MAVLink Messaging 1. 在mavlink/include/mavlink/v2.0/資料夾中新增將要輸出的訊息內容的資訊(訊息格式與大小等等)參考UAV github 2. 在src/driver/中根據要增加driver的類型選一個資料夾把寫好的driver(參考ina226)丟進去 > 以ina219來說,將ina219資料夾丟進power_moniter中就好 3. 在src/driver/drv_sensor.h中定義sensor編號 4. 在boards/中選擇飛控板所需的韌體,以pixhawk4而言選擇fmu-v5,並將driver位置告訴編譯器,在default.cmake中添加driver。  > 以ina219而言,在第二步中將資料夾放在power_moniter中,因此位置就是power_monitor/ina219 ### flymode 設定 在自訂flymode中可以選擇需要控制那些東西,例如下圖便是stabalize時控制器會控制的東西。  有這些可以進行調整  ### System ID
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.