Pixhawk--Ardupliot固件编译

官方指导

具体操作说明-基于war


从 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


编译成功

编译后目录结构为:


build目录下

烧录到Pixhawk 板子中:

./waf --targets bin/ardurover --upload


烧录过程



在生成后的build文件夹下面:


在构建目录中,您将找到以下类型的文件:

*.apj文件:这些是“ArduPilot JSON”固件,其中包含可以由 ArduPilot 兼容的地面站软件加载的固件

*.px4文件:这些是 apj 文件的旧名称,并使用相同的格式

*.hex文件:这些是 Intel 十六进制格式的固件,用于使用 DFU 加载工具加载。这些用于不带有 ArduPilot 兼容引导加载程序的电路板

*_with_bl.hex文件:这些是内置引导加载程序的十六进制文件的变体。它们可用于使用 DFU 加载工具一步安装引导加载程序和 ArduPilot 车辆固件

你可能感兴趣的:(Pixhawk--Ardupliot固件编译)