1. Pixhawk開發(fā)環(huán)境搭建
- PX4代碼可以在 Mac OS,Linux 或者 Windows上進(jìn)行開發(fā),本文采用Ubuntu的長期支持版本Ubuntu16.04作為開發(fā)環(huán)境
- 為了便于開發(fā),我們需要把用戶添加到用戶組”dialout”中,終端中執(zhí)行:
sudo usermod -a -G dialout $USER
然后注銷后,重新登錄,因?yàn)橹匦碌卿浐笏龅母淖儾艜?huì)有效。注意:永遠(yuǎn)不要使用sudo來修復(fù)權(quán)限問題,否則會(huì)帶來更多的權(quán)限問題,需要重裝系統(tǒng)來解決。
- 安裝PX4的依賴包
更新包列表,安裝下面編譯PX4的依賴包。先安裝cmake,執(zhí)行:
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
sudo apt-get update
安裝必備的軟件,比如python、git、qtcreator等等:
1.1. 必備軟件
sudo apt-get install python-argparse git-core wget zip
sudo apt-get install python-empy qtcreatorcmake build-essential genromfs -y
安裝一些仿真工具:
1.2. 編譯工具
-
添加源安裝開發(fā)環(huán)境
sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jre sudo apt-get install ant protobuf-compiler libeigen3-devlibopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y -
安裝交叉編譯工具鏈
- Ubuntu配備了一系列代理管理,這會(huì)嚴(yán)重干擾任何機(jī)器人相關(guān)的串口(或usb串口),卸載掉它也不會(huì)有什么影響,我們這里把它卸載:
sudo apt-get remove modemmanager - 更新包列表和安裝下面的依賴包:
sudo apt-get install python-serial openocd sudo apt-get install flex bison libncurses5-devautoconf texinfo build-essential sudo apt-get install libftdi-dev libtoolzlib1g-dev sudo apt-get install python-empy - 安裝arm-none-eabi編譯工具鏈,在添加arm-none-eabi工具鏈之前,請(qǐng)確保刪除殘余:
- 刪除殘留命令
sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabibinutils-arm-none-eabi gcc-arm-embedded sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa - 安裝工具命令
sudo apt-get install gcc-arm-none-eabi
- 如果需要在樹莓派上開發(fā)則需要安裝樹莓派上對(duì)于的工具鏈。樹莓派開發(fā)者應(yīng)該從下面地址下載樹莓派Linux工具鏈。安裝腳本會(huì)自動(dòng)安裝交叉編譯工具鏈:
git clone https://github.com/pixhawk/rpi_toolchain.git cd rpi_toolchain ./install_cross.sh
在工具鏈安裝過程中需要輸入密碼。如果不想把工具鏈安裝在默認(rèn)位置/opt/rpi_toolchain,
可以執(zhí)行./install_cross.sh<PATH>向安裝腳本傳入其它地址。安裝腳本會(huì)自動(dòng)配置需要的環(huán)境變量。最后,運(yùn)行以下命令更新環(huán)境變量:
source ~/.profile - Ubuntu配備了一系列代理管理,這會(huì)嚴(yán)重干擾任何機(jī)器人相關(guān)的串口(或usb串口),卸載掉它也不會(huì)有什么影響,我們這里把它卸載:
-
代碼編譯
開發(fā)環(huán)境搭建好之后,就可以開始下載代碼并編譯了,PX4可以在控制臺(tái)或者圖形界面/IDE開發(fā)。在這里我們對(duì)控制臺(tái)的開發(fā)進(jìn)行簡要介紹。-
先建立工作目錄,然后從git上下載代碼:
mkdir -p ~/src cd ~/src -
第一篇介紹過
Pixhawk有兩種固件包,我們使用ArduPilot固件包,執(zhí)行命令git clone https://github.com/ArduPilot/ardupilot cd ardupilot git submodule update --init --recursive cd .. -
現(xiàn)在可以通過編譯源代碼來構(gòu)建二進(jìn)制文件。在直接使用硬件前,推薦先進(jìn)行仿真。然后就可以對(duì)代碼進(jìn)行編譯并下載了:
cd ardupilot make px4fmu-v2_default注意到“make”是一個(gè)字符命令編譯工具,“px4fmu-v2”是硬件/ardupilot版本,“default”是默認(rèn)配置,所有的PX4編譯目標(biāo)遵循這個(gè)規(guī)則。通過在命令后面添加‘upload’,編譯的二進(jìn)制程序就會(huì)通過USB上傳到飛控硬件。下載成功后的情況如下所示:
-