yuhao's map Let the Dream come true.

PX4 Development build

2018-06-16

PX4

PX4Dronecode Project的一部分,該項目是一個 為無人機(UAV)提供完整端到端平台的共享和協作式開源專案。

本篇筆記僅紀錄環境建立的過程與經歷

環境

  • OS: ubuntu mate 16.04 LTS

clone專案

GitHub Clone 一份下來。

git clone https://github.com/PX4/Firmware

切換到目錄中。

cd Fireware

安裝Toolchain

編譯環境

sudo apt-get update
sudo apt-get install genromfs python-jinja2 python-empy python-pip
pip install --upgrade pip
sudo ldconfig
pip install numpy toml

燒錄環境

sudo apt-get install python-serial openocd \
    flex bison libncurses5-dev autoconf texinfo build-essential \
    libftdi-dev libtool zlib1g-dev -y

移除modemmanger

modemmanger會影響燒錄器的功能,目前已知此套件將讓燒錄工作進行時產生錯誤,移除後可以解決,並沒有去追蹤這個套件再哪些方面影響PX4的燒錄工作。

sudo apt-get remove modemmanager

調整使用者權限

沒有將使用者加入群組可能會讓部份操作陷入權限不足的問題,如果使用sudo來處理此問題,可能會使問題擴大。

dialout

序列埠的群組是dialout

sudo usermod -a -G dialout $USER

USB

允許 jtag 裝置使用 USB。

cat > $HOME/rule.tmp <<_EOF
# All 3D Robotics (includes PX4) devices
SUBSYSTEM=="usb", ATTR{idVendor}=="26AC", GROUP="plugdev"
# FTDI (and Black Magic Probe) Devices
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", GROUP="plugdev"
# Olimex Devices
SUBSYSTEM=="usb",  ATTR{idVendor}=="15ba", GROUP="plugdev"
_EOF
sudo mv $HOME/rule.tmp /etc/udev/rules.d/10-px4.rules
sudo /etc/init.d/udev restart

plugdev

sudo usermod -a -G plugdev $USER

開始編譯

編譯錢請先確定目錄是在Fireware下

pwd
/tmp/Fireware

開始編譯吧! 這次目標是要編譯 stm32f4-discovery 這塊版子。

make px4-stm32f4discovery_default

編譯結束後會像這個樣子

[100%] Creating /tmp/Firmware/build/nuttx_px4-stm32f4discovery_default/px4-stm32f4discovery_default.px4
[100%] Built target px4

燒錄到板子上

make px4-stm32f4discovery_default upload

參考資料

PX4 Development Guide


Similar Posts

Comments