Ardupilot是一个非常庞大的项目,里面有针对各种机型(固定翼、直升机/多旋翼等)编写上层应用代码模块,也有针对各种硬件模块编写的底层代码模块。当我们购买好飞控板之后,如何根据源码把飞控程序编译并且链接成一个可执行程序烧录进入飞控板呢,这时候.mk(即Makefile)文件就显得非常重要的。.mk文件是一个脚本程序,在.mk中可以选择需要编译和链接的模块,然后运行这个.mk文件就可以生成可执行文件了,具体介绍在这里。Ardupilot中所有的.mk文件都放在\mk目录下面,下面我们依次介绍。本文针对Ardupilot版本:Copter 3.5.5-rc1 24-Jan-2018
编译命令介绍:
这里略过安装Ardupilot的开发环境,常用的编译命令如下:
编译所需固件需要进入相应的目录下,例如要编译多旋翼的话cd到ArduCopter目录下,其他的还有ArduPlane。与六旋翼相同,其余的飞机类型例如“octa”, “octa-quad, “tri”, “single”以及“heli”,直接把hexa进行替换即可。如果编译的是Pixhawk的四旋翼固件,编译成功的话将在ArduCopter目录下生成一个.px4后缀的文件,这就是最终烧录到飞控中的文件,可以使用MissionPlanner手动加载,也可以直接:make px4-v2-upload。
示例:
克隆仓库下来:git clone https://github.com/ArduPilot/ardupilot.git
进入仓库中:cd ardupilot
更新响应的模块:git submodule update --init --recursive
运行脚本文件:Tools/scripts/install-prereqs-ubuntu.sh -y
使配置直接生效:. ~/.profile
进入相应的目录:cd ArduCopter
开始编译四旋翼:make px4-v2
在/ArduCopter目录下有一个Makefile文件,其内容为:include ../mk/apm.mk。在这个apm.mk中,它首先找到\mk目录,然后根据一些条件来判断是否引入\mk目录下的.