# 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up