从 GitHub 克隆项目:
git clone --recursive https://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submoduleupdate--init--recursive
-------------------
切换版本的正确方式
git clone https://github.com/ArduPilot/ardupilot.git
上述命令下载的源码,默认处在master分支,若想切换到指定版本,需要使用git checkout来切换。比如切换到3.5.7版本并拉出一个新的分支,以便在其上做修改并且提交。
git checkout -b Rover-4.2.3-test Rover-4.2.3
# 切换了分支后,需要同步对子模块的引用。
git submodule update --init --recursive
安装工具链:
Tools/environment_install/install-prereqs-ubuntu.sh -y
更新路径:
. ~/.profile
然后运行
gedit ~/.bashrc
把下面这两段话放在文件末尾并且保存
export PATH=$PATH:$HOME/ardupilot/Tools/autotest
export PATH=/usr/lib/ccache:$PATH
然后执行一下
~/.bashrc
至此APM的工具链安装即完成。
如果某些防火墙不允许 ssh 访问,这可能导致上述子模块更新失败,在这种情况下,您可以通过以下命令告诉 git 单方面使用 https:
git config --global url."https://".insteadOf git://
Ardupilot 正在逐渐从基于 make 的构建系统转向 Waf。下面的说明应该足以让您构建 Ardupilot,但您也可以在 Waf Book中阅读有关构建系统的更多信息。
应始终从 ardupilot 的根目录调用 Waf。
a.可以使用以下命令获取 ArduPilot 上支持的板的列表
./waf list_boards
我们以Rover编译到Pixhawk1 为例:
./waf configure --board Pixhawk1
./waf rover
编译后目录结构为:
烧录到Pixhawk 板子中:
./waf --targets bin/ardurover --upload
在生成后的build文件夹下面:
在构建目录中,您将找到以下类型的文件:
*.apj文件:这些是“ArduPilot JSON”固件,其中包含可以由 ArduPilot 兼容的地面站软件加载的固件
*.px4文件:这些是 apj 文件的旧名称,并使用相同的格式
*.hex文件:这些是 Intel 十六进制格式的固件,用于使用 DFU 加载工具加载。这些用于不带有 ArduPilot 兼容引导加载程序的电路板
*_with_bl.hex文件:这些是内置引导加载程序的十六进制文件的变体。它们可用于使用 DFU 加载工具一步安装引导加载程序和 ArduPilot 车辆固件