從 GitHub 克隆項(xiàng)目:
git clone --recursive https://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submoduleupdate--init--recursive
-------------------
切換版本的正確方式
git clone https://github.com/ArduPilot/ardupilot.git
上述命令下載的源碼,默認(rèn)處在master分支,若想切換到指定版本,需要使用git checkout來(lái)切換。比如切換到3.5.7版本并拉出一個(gè)新的分支,以便在其上做修改并且提交。
git checkout -b Rover-4.2.3-test Rover-4.2.3
# 切換了分支后,需要同步對(duì)子模塊的引用。
git submodule update --init --recursive
安裝工具鏈:
Tools/environment_install/install-prereqs-ubuntu.sh -y
更新路徑:
. ~/.profile
然后運(yùn)行
gedit ~/.bashrc
把下面這兩段話放在文件末尾并且保存
export PATH=$PATH:$HOME/ardupilot/Tools/autotest
export PATH=/usr/lib/ccache:$PATH
然后執(zhí)行一下
~/.bashrc
至此APM的工具鏈安裝即完成。
如果某些防火墻不允許 ssh 訪問(wèn),這可能導(dǎo)致上述子模塊更新失敗,在這種情況下,您可以通過(guò)以下命令告訴 git 單方面使用 https:
git config --global url."https://".insteadOf git://
Ardupilot 正在逐漸從基于 make 的構(gòu)建系統(tǒng)轉(zhuǎn)向?Waf。下面的說(shuō)明應(yīng)該足以讓您構(gòu)建 Ardupilot,但您也可以在?Waf Book中閱讀有關(guān)構(gòu)建系統(tǒng)的更多信息。
應(yīng)始終從 ardupilot 的根目錄調(diào)用 Waf。
a.可以使用以下命令獲取 ArduPilot 上支持的板的列表
./waf list_boards

我們以Rover編譯到Pixhawk1 為例:
./waf configure --board Pixhawk1
./waf rover

編譯后目錄結(jié)構(gòu)為:

燒錄到Pixhawk 板子中:
./waf --targets bin/ardurover --upload

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

在構(gòu)建目錄中,您將找到以下類(lèi)型的文件:
*.apj文件:這些是“ArduPilot JSON”固件,其中包含可以由 ArduPilot 兼容的地面站軟件加載的固件
*.px4文件:這些是 apj 文件的舊名稱(chēng),并使用相同的格式
*.hex文件:這些是 Intel 十六進(jìn)制格式的固件,用于使用 DFU 加載工具加載。這些用于不帶有 ArduPilot 兼容引導(dǎo)加載程序的電路板
*_with_bl.hex文件:這些是內(nèi)置引導(dǎo)加載程序的十六進(jìn)制文件的變體。它們可用于使用 DFU 加載工具一步安裝引導(dǎo)加載程序和 ArduPilot 車(chē)輛固件