本篇文件主要參考px4官方開發教程結合自身實踐過程中遇到的問題,介紹linux下px4飛控編譯環境搭建、韌體編譯、韌體上傳等。(注:在ubuntu14.04、ubuntu16.04、ubuntu16.04麒麟版下親測可用)
一、環境搭建及工具鏈安裝
1、許可權設定,將當前使用者組許可權設定為超級許可權
sudo usermod -a -g dialout $user
然後登出後,重新登入
注:有時會遇到該命令不可用的現象,不用擔心,無傷大雅,只需在編譯時,命令之前sudo即可。
2.安裝工具鏈
安裝cmake、python、git等必備軟體及idk、libopencv等**軟體
sudo apt-get install software-properties
-common
sudo add-apt
-repository ppa:george-edison55/cmake-
3.xsudo apt-get update
sudo apt-get install cmake
sudo apt-get upgrade
sudo apt-get install python-argparse git-core wget zip python-empy qtcreator cmake build-essential genromfs -y
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-
8-jdk openjdk-
8-jre clang-
3.5 lldb-
3.5-y
注:(1)由於每一次apt-get install 過程中會安裝多個軟體或工具,注意安裝過程中是否會報錯;
(2)如果有某個軟體install failed,會導致所有軟體都無法成功安裝,則每次只安裝乙個軟體,例如sudo apt-get install python-argparse
;
(3)如果依舊安裝失敗,則採用linux下軟體包安裝必備殺器——新立得;
(4)附贈新立得安裝教程:
①方法1:採用linux的軟體中心搜尋synaptic,安裝即可(有時候軟體中心大姨媽來了,無法安裝)
②方法2:終端安裝,sudo apt-get install synaptic
(推薦該方法,簡單粗暴有效)
(5)開啟新立得,搜尋需要安裝的工具,選擇合適的版本,即可應用安裝。
3.基於nuttx的硬體的埠管理(如pixhawk板)
解除安裝某個沒用的埠管理器,貌似modemmanger並沒有安裝,管他呢。
sudo apt-get remove modemmanager
4.更新依賴包
執行以下命令更新依賴包:
sudo add-apt
-repository ppa:terry.guo/gcc-arm
-embedded
-ysudo apt-get update
sudo apt-get install python-serial openocd \
flex bison libncurses5-dev autoconf texinfo build-essential
\ libftdi-dev libtool zlib1g-dev
\python-empy
-y
注:如果遇到問題,採用和2中相同的操作。
5.安裝gcc
在安裝前刪除其他版本,保證系統乾淨
sudo apt-get remove gcc-arm
-none
-eabi gdb-arm
-none
-eabi binutils-arm
-none
-eabi gcc-arm
-embedded
sudo add-apt
-repository
--remove ppa:team-gcc
-arm
-embedded/ppa
解除安裝之後安裝arm-none-eabi工具鏈
sudo apt-get install gcc-arm
-linux
-gnueabihf
注:官方要求版本是4.9或者5.x,因此建議利用新立得安裝而不是在終端利用命令安裝。
mkdir -p ~/src
cd ~/src
注:用windows久了,可以直接去合適的目錄下,右鍵新建乙個資料夾,開啟這個資料夾,右鍵選擇在終端開啟,同樣的效果。
(好囉嗦的感覺,捂臉)
2.轉殖**
git clone
3.選擇合適的穩定的遠端分支
(預設選擇的是master分支,為了保證**的穩定性,建議選擇release版或者stable版本)
(1)檢視當前分支
```
git branch
```(2)檢視所有分支
``` git branch -a
```(3)選擇stable分支
git checkout origin/stable
注:如果想選擇其他分支,把origin/stable換成其他路徑即可
4.子模組更新
cd
firmware
gitsubmodule
update--
init--
recursive
三、**編譯
1.編譯(pixhawk板)
make px4fmu-v2_default
注:如果編譯過程中出現缺少工具鏈的error的提示,例如提示缺少gcc-arm,即利用命令安裝相應工具sudo apt install gcc-arm-none-eabi
或者利用新立得安裝缺少的工具。
2.韌體上傳
連線pixhawk飛控板後,執行命令,飛控板就燒進了韌體。
make px4fmu-v2_default upload
注:為了提高編譯效率,節省下來時間去打遊戲,建議採用jinja進行編譯sudo apt-get install python-jinja2
PX4飛控bootloader編譯
以前在使用pix4中,bootloader是在出廠的時候預設燒寫好的,我們直接可以通過usb更新韌體,但是要做二次開發過程中,我們需要編譯 並進行燒寫,我們以前用的編譯命令是預設v2的命令,也沒有問題,但是最近更新到了1.8.0的版本,據說從1.7.0的版本做了一些更改,主要是flash的問題,1....
ZYNQ飛控設計 PX4開發環境搭建
配置自己的工作環境 source tools xilinx vivado 2018.3 settings64.shpx4使用新增環境變數。export path opt gcc arm none eabi 9 2020 q2 update bin path我注釋了vivado的指令碼後,編譯成功。l...
PX4飛控之PWM輸出控制
多旋翼電調如好盈xrotor,dji通用電調等都支援pwm訊號來傳輸控制訊號。常用的400hz電調訊號對應週期2500us,一般使用高電平時間1000us 2000us為有效訊號區間,即1000us為最低輸出,2000us為最高輸出,鎖定 停轉 訊號一般取900us 或950us,太低電調會判斷成無...