欢迎交流~ 个人 Gitter 交流平台,点击直达:
长期以来都是站在PX4阵营,由于近来可能的项目需要使用Pixy+IR-LOCK实现精准降落,目前还只有APM固件支持该功能,特此编译了一发APM固件,几乎与原生固件的过程无异。由于博主的原生固件编译通过了,想必环境配置已经没有问题,编译过程也确实一帆风顺。哈哈,还是做一个简单的记录。
Window 7 64 bit
参照APM官网的Building ArduPilot for Pixhawk/PX4 on Windows with Make教程。
安装必要的软件
按这个方法把需要的软件安装喽,无非是java(Eclipse需要)、px4-toochain(至关重要的PX4工具链)、Cmake你用会用到的。下载并编译固件
从开始菜单栏打开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
- gcc版本支持
出现上图所示的错误,是gcc版本不对,进行替换即可,Windows下的替换方法在这里,Ubuntu下的替换方法在这里
为了同时使用PX4固件以及ardupilot固件,推荐使用gcc4.9
点我下载
- 待续
By Fantasy