Building ArduPilot for Pixhawk/PX4 on Linux with Make

使用Make编译 ArduPilot for Pixhawk 2, Pixhawk and PX4 在linux上.

Note: 编译 Pixhawk 2 and Pixhawk使用 (make px4-v2). 编译 PX4 使用 make px4-v1.

Quick start

系统ubuntu16.04

Setup

安装 git:

sudo apt-get -qq -y install git

安装 arm-none-eabi-gcc编译器

在linux使用make编译ArduPilot for Pixhawk/PX4 ArduPilot 编译环境搭建-LMLPHP

安装gawk,cmake

apt-get install gawk cmake

克隆源码到本地:

git clone https://github.com/diydrones/ardupilot.git

运行ubuntu安装脚本:

ardupilot/Tools/scripts/install-prereqs-ubuntu.sh -y

Reload the path (log-out and log-in to make permanent):

. ~/.profile

Build 编译

以下是编译不同机型 Pixhawk2/Pixhawk 的命令. 编译PX4使用make px4-v2 而不是make px4-v1

To build for PX4 replace make px4-v2 with make px4-v1.

Build for Copter:

cd ardupilot/ArduCopter
make px4-v2

编译过程中出现的问题:

在linux使用make编译ArduPilot for Pixhawk/PX4 ArduPilot 编译环境搭建-LMLPHP

在github上的matrix目录名已经变化,所以找不到,手动git clone下载即可

在linux使用make编译ArduPilot for Pixhawk/PX4 ArduPilot 编译环境搭建-LMLPHP

之后又出现的问题是:

少python-empy,pip,catkin-pkg,直接使用apt-get install 安装即可

在linux使用make编译ArduPilot for Pixhawk/PX4 ArduPilot 编译环境搭建-LMLPHP

按照提示少哪个就安装哪个

又出现问题:genromfs没有找到

直接apt-get install genromfs

在linux使用make编译ArduPilot for Pixhawk/PX4 ArduPilot 编译环境搭建-LMLPHP

最后编译成功,生成px4固件文件

在linux使用make编译ArduPilot for Pixhawk/PX4 ArduPilot 编译环境搭建-LMLPHP

Build for Plane:

cd ardupilot/ArduPlane
make px4-v2

Build for Rover:

cd ardupilot/APMrover2
make px4-v2

Build for Antenna Tracker:

cd ardupilot/AntennaTracker
make px4-v2

Building

One you have the 3 git trees and compiler setup you do the build in your vehicle directory. For example, if building Plane then do this:

cd ardupilot/ArduPlane
make px4

That will build two files ArduPlane-v1.px4 and ArduPlane-v2.px4. The v1 file is for PX4v1, the v2 file is for PX4v2 (the Pixhawk).

你可以只编译一个使用 “make px4-v1” or “make px4-v2”.

The first time you build it will take quite a long time as it builds the px4 archives. Subsequent builds will be faster (especially if you setup ccache correctly).

Loading firmware

To load the firmware onto the board use

make px4-v1-upload

or

make px4-v2-upload

After it says “waiting for bootloader” plugin your PX4 on USB.

If upload consistently fails in the erase step then check if you are running ‘modemmanager’ which can take control of the PX4 USB port. Removing modemmanager can help.

Cleaning

If there have been updates to the PX4NuttX or PX4Firmware git submodules you may need to do a full clean build. To do that use:

make px4-clean

that will remove the PX4NuttX archives so you can do a build from scratch

05-11 20:13