PX4飛控之編譯環境搭建

2021-08-06 03:19:52 字數 3418 閱讀 9026

本篇文件主要參考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,太低電調會判斷成無...