參考1:Ubuntu操作系統下Pixhawk原生固件PX4的編譯方法
在Ubuntu下的環境搭建官方也有指導文檔,
英文鏈接是 http://dev.px4.io/v1.9.0/en/setup/dev_env_linux.html
中文鏈接 http://dev.px4.io/v1.9.0/zh/setup/dev_env_linux.html
官方源下載慢可以使用國內源,我用的是清華源參考鏈接
項目流產,板子被小夥伴拿去了😂,突然發現這裏有個草稿記錄了過程和一些資料,分享出來吧。
安裝依賴庫
安裝通用庫
# 常用工具qtcreator git cmake等
sudo apt-get update
sudo apt-get install python-argparse git-core wget zip \
python-empy qtcreator cmake build-essential genromfs -y
# 仿真工具
sudo apt-get update
sudo apt-get install openjdk-8-jre
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y
使用清華源未見安裝失敗,之前用中科大的源有些安裝不上。
- 卸載模式管理器
Ubuntu配備了一系列代理管理,這會嚴重干擾任何機器人相關的串口(或usb串口),卸載掉它也不會有什麼影響。
sudo apt-get remove modemmanager
更新依賴包,安裝通用依賴
sudo apt-get update -y
sudo apt-get install git zip qtcreator cmake \
build-essential genromfs ninja-build exiftool -y
# Required python packages
sudo apt-get install python-argparse \
python-empy python-toml python-numpy python-yaml \
python-dev python-pip -y
sudo -H pip install --upgrade pip
sudo -H pip install pandas jinja2 pyserial cerberus
可選擇安裝pyulog。這是一個有用的python包,其中包含解析ULog文件並顯示它們的腳本。
# optional python tools
sudo -H pip install pyulog
下載代碼
mkdir -p ~/src
cd ~/src
git clone https://github.com/PX4/Firmware.git
這裏使用github的源代碼太慢了,所以我使用碼雲的鏈接
# 替換上邊的下載
git clone https://gitee.com/designer/PX4Firmware.git
初始化
先進入Firmware文件夾,進而進行初始化、更新子模塊操作,耐心的等待……
cd Firmware
git submodule update --init --recursive
#下載很慢是從github官方下載的,這一步半個小時52%,後邊編譯必須要這個組件
下邊說到的這個庫很難更新,所以我在gitee上同步了一個
cd Firmware/Tools
git clone https://gitee.com/lilinxin75/jMAVSim.git
cd ..
cd /platforms/nuttx/NuttX/apps //若無apps文件夾,請使用mkdir apps創建
git clone https://gitee.com/lilinxin75/NuttX-apps.git
之後再重複上上一條git submodule update --init --recursive
這樣就可以更新附件模塊成功。
Qt Creator在linux下編譯
Qt Creator是官方唯一支持的IDE,在Ubuntu上針對PX4固件使用,便於看代碼的同時也可以進行編譯燒錄。
Qt creator offers clickable symbols, auto-completion of the complete codebase and building and flashing firmware.
Qt creator提供了方便的函數、變量鏈接、自動補齊代碼、構建和刷新固件。
在打開Qt之前,應該創建project文件:
cd ~/src/Firmware
mkdir ../Firmware-build
cd ../Firmware-build
cmake ../Firmware -G "CodeBlocks - Unix Makefiles"
#可以發現Firmware-build目錄生成了一些文件
提個醒: 按照官網上面最後一行的命令,當前使用Qt編譯得到的將是build px4 ,因爲默認的編譯指令是make posix_sitl_default,這不是大家所期待的結果。
解決方案:對於,Pixhawk硬件,將最後一行改成
cmake ../Firmware -G "CodeBlocks - Unix Makefiles" -DCONFIG=nuttx_px4fmu-v2_default
其他例如使用FMUv4的用戶請根據需求進行替換。