Windows/Ubuntu操作系统下ArduPilot|APM固件的编译方法

Windows/Ubuntu操作系统下ArduPilot|APM固件的编译方法

欢迎交流~ 个人 Gitter 交流平台,点击直达:


长期以来都是站在PX4阵营,由于近来可能的项目需要使用Pixy+IR-LOCK实现精准降落,目前还只有APM固件支持该功能,特此编译了一发APM固件,几乎与原生固件的过程无异。由于博主的原生固件编译通过了,想必环境配置已经没有问题,编译过程也确实一帆风顺。哈哈,还是做一个简单的记录。

Window 7 64 bit

参照APM官网的Building ArduPilot for Pixhawk/PX4 on Windows with Make教程。

  1. 安装必要的软件
    按这个方法把需要的软件安装喽,无非是java(Eclipse需要)、px4-toochain(至关重要的PX4工具链)、Cmake你用会用到的。

  2. 下载并编译固件

从开始菜单栏打开PX4 Console使用git指令下载APM固件

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

安装依赖项

cd ardupilotgit submodule update --init --recursive

执行编译

指令 说明 make px4-v2 编译v2版飞控(Pixhawk)的四旋翼固件 make px4-v4 编译v4版飞控(Pixracer)的四旋翼固件 make px4-v2-hexa 编译v2版飞控的六旋翼固件 make px4 同时编译PX4(FMU+IO)和Pixhawk的四旋翼固件 make clean 清除ardupilot目录 make px4-clean 彻底清除编译 make px4-cleandep 清除.d 以及 .o 文件 make px4-v2-upload 上传固件到Pixhawk

注意:

  • 编译所需固件需要进入相应的目录下,例如要编译多旋翼的话cd到ArduCopter目录下,其他的还有ArduPlane

  • 与六旋翼相同,其余的飞机类型例如“octa”, “octa-quad, “tri”, “single”以及“heli”,直接把hexa进行替换即可

这里博主编译的是Pixhawk的四旋翼固件,编译成功的话将在ArduCopter目录下生成一个.px4后缀的文件,这就是最终烧录到飞控中的文件,可以使用MissionPlanner手动加载,也可以直接make px4-v2-upload

这里的编译指令为

cd /ardupilot/ArduCoptermake px4-v2

关于Eclipse的配置点我

Target的配置如下图所示

注意:

  • 在目标文件夹下添加target
  • 这里博主并没有更改Environment中的CWD、PWD,编译未报错

Ubuntu 14.04 LTS

参照APM官网的Building ArduPilot for Pixhawk/PX4 on Linux with Make教程。

  • 安装git
sudo apt-get -qq -y install git
  • 下载源代码
cd ~/srcgit clone https://github.com/ArduPilot/ardupilot.gitcd ardupilotgit submodule update --init --recursive
  • 运行脚本文件
Tools/scripts/install-prereqs-ubuntu.sh -y

这一步比较久,安装了gcc-arm-none-eabi

  • 使配置直接生效
. ~/.profile

相对于各种机型的编译指令,与Windows下无异。

FAQ

  1. gcc版本支持

出现上图所示的错误,是gcc版本不对,进行替换即可,Windows下的替换方法在这里,Ubuntu下的替换方法在这里

为了同时使用PX4固件以及ardupilot固件,推荐使用gcc4.9
点我下载

  1. 待续

                                          By Fantasy

推荐阅读