歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> (1)PX4開發指南——引言及入門

(1)PX4開發指南——引言及入門

日期:2017/3/3 14:04:12   编辑:Linux技術

引言

這文檔大部分是翻譯PX4官方開發指南,但是其中的的綠色字體就是我自己的實踐經驗或者案例。
本文主要介紹linux ubuntu開發環境搭建,源碼編譯和上傳到硬件。
注意:僅限於開發者!這個指南旨在推動開發而不是為消費者准備。
這個指南介紹了如何在PX4系統架構下開發,它使開發人員能夠:
1. 了解系統的概況
2. 獲取和修改PX4飛行棧和PX4中間件。
3. 在骁龍飛控、Pixhawk和Pixfalcon上部署PX4

更新日志

2015-10-06
初始發布

許可證Licence

PX4開發者文檔發布為 CC BY 4.0.。具體請查看細節Github
Repository。

入門

1.1初始配置

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

1.2工具鏈安裝

PX4代碼可以在 Mac OS, Linux or Windows.上進行開發,建議在Mac
OS和Linux上進行開發,因為圖像處理和高級導航在windows上不容易開發。如果不確定,新的開發者應默認用Linux和當前Ubuntu長期支持版本(Ubuntu
LTS edition)。

開發環境

開發環境安裝涉及到下面幾種:
Mac OS
Linux
Windows
如果你對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主要支持的家族:
NuttX based hardware: Pixhawk, Pixfalcon
Snapdragon Flight hardware: Snapdragon
Raspberry Pi hardware: Raspberry Pi 2
Host simulation: jMAVSim SITL and Gazebo
SITL
注意:安裝 Ninja
Build System可以比make更快進行編譯。如果安裝了它就會自動選擇使用它進行編譯。
[code]
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串口),卸載掉它也不會有什麼影響:
[code][code]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

如果gcc-arm-none-eabi版本導致PX4/Firmware編譯錯誤,請參考 the
bare metalinstallation instructions手動安裝4.8版本。

1.3編譯代碼

PX4可以在控制台或者圖形界面/IDE開發

在控制台編譯

在去到圖形界面或者IDE前,驗證系統設置的正確性非常重要,因此打開控制台。在Ubuntu,單擊啟動欄,搜索“terminal”(或者trl+alt+T)。
終端在家目錄啟動,我們默認去到'~/src/Firmware' 然後,克隆頂層資源庫。有經驗的開發者可以克隆自己的復制的資源庫。
[code]
mkdir -p ~/src
cd ~/src
git clonehttps://github.com/PX4/Firmware.git cd Firmware
git submodule update --init --recursive
cd ..

注意:沒有安裝git的朋友可以先安裝git再執行的命令
sudo apt-get install git

現在到時候由源代碼編譯二進制代碼了。但在直接使用硬件前,推薦先進行仿真。喜歡在圖形界面開發環境工作的用戶也應該繼續完成下面部分。

基於NuttX / Pixhawk的硬件板

[code]
cd Firmware
make px4fmu-v2_default

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

注意到“make”是一個字符命令編譯工具,“px4fmu-v2”是硬件/ardupilot版本,“default”是默認配置,所有的PX4編譯目標遵循這個規則。
成功編譯的最後輸出是這樣的:
[code][code][
100
%] Linking CXX executable firmware_nuttx

[code][
100
%] Built target firmware_nuttx

[code]Scanning dependencies of target build_firmware_px4fmu-v2

[code][
100
%] Generating nuttx-px4fmu-v2-default.px4

[code][
100
%] Built target build_firmware_px4fmu-v2

通過在命令後面添加‘upload’,編譯的二進制程序就會通過USB上傳到飛控硬件:
[code]make px4fmu-v2_default upload

成功上傳的最後輸出是這樣的:
[code]Erase  : [====================]
100.0
%

[code]Program: [====================]
100.0
%

[code]Verify : [====================]
100.0
%

[code]Rebooting.

[code]

[code][
100
%] Built target upload

我使用的是linux開發環境和pixhawk硬件,其他的開發環境和pixhawk的指南我就不翻譯了,詳細可以參考官網http://dev.px4.io/index.html
1.4 投稿&
核心開發團隊和社區的聯系信息可以在下面找到。PX4項目使用了三個分支Git branching model:
master 默認情況下不穩定,可以看到快速開發。
beta 已充分測試,面向飛行測試者。
stable 指向最新的發布分支。.
我們嘗試通過rebases保持一個線性的歷史,避免Githubflow。但是由於全球的開發隊伍和快速的開發轉移,我們會定期分類合並。
可以這樣為代碼貢獻新功能,可以通過注冊Github,復制資源庫,創建分支,加入你的改變,最後推送請求。當它們通過我們的持續的綜合測試,更新就會被合並。
所有的投稿(貢獻)必須在 BSD 3-clause license許可下進行,所有的代碼在使用上不能提出任何的,進一步的限制。

測試飛行結果

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

論壇和聊天

Google+
Gitter
PX4 Users Forum
每周開發電話
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 ubuntu下PX4開發環境的搭建,PX4編譯和上傳到飛控的命令。介紹了PX4團隊如何進行開源項目的開發,介紹了其運行的一些概況,有興趣可以根據這些信息和相關鏈接深入了解,為開源項目貢獻自己的代碼。甚至參與到PX4的開發中來,成為PX4團隊的一員。
Copyright © Linux教程網 All Rights Reserved