1. 程式人生 > >(1)PX4開發指南——linux下px4開發環境搭建

(1)PX4開發指南——linux下px4開發環境搭建

引言

這文件大部分是翻譯PX4官方開發指南,但是其中的的綠色字型就是我自己的實踐經驗或者案例。

本文主要介紹linux ubuntu開發環境搭建,原始碼編譯和上傳到硬體。

注意:僅限於開發者!這個指南旨在推動開發而不是為消費者準備。

這個指南介紹瞭如何在PX4系統架構下開發,它使開發人員能夠:

2.        獲取和修改PX4飛行棧和PX4中介軟體。

3.        在驍龍飛控、Pixhawk和Pixfalcon上部署PX4

更新日誌

2015-10-06

初始釋出

許可證Licence

入門

1.1初始配置

在開始開發PX4之前,系統需要按照預設配置進行初始配置,以保證硬體設定合適,被檢測到。下面的一個視訊介紹了Pixhawk硬體和地面站設定過程,有支援的飛機型別的列表。

1.2工具鏈安裝

PX4程式碼可以在Mac OSLinuxor Windows.上進行開發,建議在Mac OSLinux上進行開發,因為影象處理和高階導航在windows上不容易開發。如果不確定,新的開發者應預設用Linux和當前Ubuntu長期支援版本(Ubuntu LTS edition)。

開發環境

開發環境安裝涉及到下面幾種:

如果你對Docker熟悉,你可以使用其中一個容器:Docker Containers

(這裡只翻譯了Linux下開發環境的搭建)

1.2.1 Linux開發環境搭建(windows等系統的就不翻譯了,自己看官網

我們使用Debian / Ubuntu LTS 

作為Linux的標準支援版本,但是但是也支援Cent OS and Arch Linux的發行版本。

許可權設定

注意:永遠不要使用“sudo”來修復許可權問題,否則會帶來更多的許可權問題,需要重灌系統來解決。

把使用者新增到使用者組“dialout”

sudo usermod -a -G dialout $USER

然後登出後,重新登入,因為重新登入後所做的改變才會有效。

安裝

更新包列表,安裝下面編譯PX4的依賴包。PX4主要支援的家族:

注意:安裝可以比make更快進行編譯。如果安裝了它就會自動選擇使用它進行編譯。

sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
sudo apt-get update
sudo apt-get install python-argparse git-core wget zip \
    python-empy qtcreator cmake build-essential genromfs -y
# simulation tools
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-7-jdk openjdk-7-jre clang-3.5 lldb-3.5 -y

NuttX的基本硬體

Ubuntu配備了一系列代理管理,這會嚴重干擾任何機器人相關的串列埠(或usb串列埠),解除安裝掉它也不會有什麼影響:

sudo apt-get remove modemmanager

更新包列表和安裝下面的依賴包。指明版本的包需要安裝指定的版本的包。

sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded -y
sudo 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 gcc-arm-none-eabi -y

1.3編譯程式碼

PX4可以在控制檯或者圖形介面/IDE開發

在控制檯編譯

在去到圖形介面或者IDE前,驗證系統設定的正確性非常重要,因此開啟控制檯。在Ubuntu,單擊啟動欄,搜尋“terminal”(或者trl+alt+T)。

終端在家目錄啟動,我們預設去到'~/src/Firmware' 然後,克隆頂層資源庫。有經驗的開發者可以克隆自己的複製的資源庫。

mkdir -p ~/src
cd ~/src
git clone https://github.com/PX4/Firmware.git
cd Firmware
git submodule update --init --recursive
cd ..

注意:沒有安裝git的朋友可以先安裝git再執行的命令

sudo apt-get install git

現在到時候由原始碼編譯二進位制程式碼了。但在直接使用硬體前,推薦先進行模擬。喜歡在圖形介面開發環境工作的使用者也應該繼續完成下面部分。

基於NuttX / Pixhawk的硬體板

cd Firmware
make px4fmu-v2_default

大概10分鐘那樣就會編譯成功,我實在虛擬機器的Ubuntu上編譯的。編譯成功如下圖所示

 

注意到“make”是一個字元命令編譯工具,“px4fmu-v2”是硬體/ardupilot版本,“default”是預設配置,所有的PX4編譯目標遵循這個規則。

成功編譯的最後輸出是這樣的:

[100%] Linking CXX executable firmware_nuttx
[100%] Built target firmware_nuttx
Scanning dependencies of target build_firmware_px4fmu-v2
[100%] Generating nuttx-px4fmu-v2-default.px4
[100%] Built target build_firmware_px4fmu-v2

通過在命令後面新增‘upload’,編譯的二進位制程式就會通過USB上傳到飛控硬體:

make px4fmu-v2_default upload

成功上傳的最後輸出是這樣的:

Erase  : [====================] 100.0%
Program: [====================] 100.0%
Verify : [====================] 100.0%
Rebooting.
[100%] Built target upload

我使用的是linux開發環境和pixhawk硬體,其他的開發環境和pixhawk的指南我就不翻譯了,詳細可以參考官網http://dev.px4.io/index.html

1.4 投稿&

核心開發團隊和社群的聯絡資訊可以在下面找到。PX4專案使用了三個分支Git branching model:

  • master 預設情況下不穩定,可以看到快速開發。
  • beta 已充分測試,面向飛行測試者。
  • stable 指向最新的釋出分支。.

可以這樣為程式碼貢獻新功能,可以通過註冊Github複製資源庫建立分支,加入你的改變,最後推送請求。當它們通過我們的持續的綜合測試,更新就會被合併。

所有的投稿(貢獻)必須在BSD 3-clause license許可下進行,所有的程式碼在使用上不能提出任何的,進一步的限制。

測試飛行結果

飛行測試對於保證質量非常重要,請從microSD卡上傳飛行日誌到Log Muncher並在 論壇分享一個的連線,附帶有書面飛行報告。

論壇和聊天

每週開發電話

PX4團隊在每週同時進行電話聯絡(通過Mumble客戶端連線)。

  • TIME: 19:00h Zurich time, 1 p.m. Eastern Time, 10 a.m. Pacific Standard Time
  • Server: mumble.dronecode.org
  • Port: 10028
  • Channel: PX4 Channel
  • The agenda is announced the same day on the px4users forum

總結

本文介紹了linux ubuntuPX4開發環境的搭建,PX4編譯和上傳到飛控的命令。介紹了PX4團隊如何進行開源專案的開發,介紹了其執行的一些概況,有興趣可以根據這些資訊和相關連結深入瞭解,為開源專案貢獻自己的程式碼。甚至參與到PX4的開發中來,成為PX4團隊的一員。