物唯仓库-AP固件-编译说明

本文编译环境:win11,wsl2,ubuntu22.04 注:本文的视频教程已上传至B站: 《APM源码的编译》 1.1下载WFG100硬件配置文件并解压。 访问网页进行下载: https://www.wwzhyun.cn/docs/wf...

本文编译环境:win11,wsl2,ubuntu22.04


1.1说明

物唯科技后续将会在Ardupilot4.6.3的基准上,逐步对Ardupilot的飞控源码进行功能增减及优化!部分功能需要在多个文件夹上新增.cpp文件或.h文件!因此物唯科技只能建一个独立的 仓库进行源码管理,并开源!

另外在物唯的代码仓库中,也会默认增加物唯的WFG100、WFG001、WFG120这几个系列的飞控板卡配置文件,无需额外进行硬件配置文件夹的增加与配置!

编译AP官方固件和物唯科技的大体步骤,基本是一样的,只是部分指令有所区别!如果要编译AP官方的固件,请参考此页面的内容:《AP官方固件编译说明》


物唯科技AP固件源码仓库如下:

https://github.com/WWKJ-FX/WW-Ardupilot/tree/WW-Copter-4.6.3

image.png


1.2 下载物唯修改后的Ardupilot源码

从物唯科技的github仓库,克隆修改后的Ardupilot的飞控源码:

打开WSL子系统终端,输入以下指令:

git clone https://github.com/WWKJ-FX/WW-Ardupilot.git

回车执行,等待下载完成!

image.png



1.3 进入下载好的WW-Ardupilot文件夹中

cd WW-Ardupilot/

image.png

1.4 切换至物唯多旋翼4.6.3分支

使用git checkout命令。截止至2026年4月29日,物唯多轴固件最新的版本号为4.6.3,  输入以下命令,回车执行。

默认就在此分支下!

git checkout WW-Copter-4.6.3        


1.5 确认分支切换成功

输入以下指令,确认切换分支成功。

git branch

image.png

查看*号位于哪里。


1.6 更新子模块

更新子模块是将上述切换的分支版本相关的模块补全,此步骤非常重要!没下载好会导致后续报错。

注:每次切换了版本分支,都要执行一次更新子模块的命令!

git submodule update --init --recursive

1.7 安装开发环境

sudo apt-get update
sudo apt-get upgrade -y
Tools/environment_install/install-prereqs-ubuntu.sh -y

image

注:安装编译环境这一步非常关键,请确保网络环境良好,如果条件允许最好能够魔法一下!如果编译环境安装不完整,后续编译代码的过程中会有各种各样的问题!


安装工具完成后的页面如下:

image.png



1.8 安装交叉编译工具

部分朋友编译可能会报错,因为提前先执行这条命令:

sudo apt update
sudo apt install gcc-arm-none-eabi


1.9 配置waf

./waf configure

image

1.10 选择对应的飞控硬件

截至2026年4月29日,物唯科技一共推出了WFG100(开源飞控)、WFG001飞控、WFG120飞控。

因此用户可以按需进行配置,本文以WFG100飞控为例,输入指令:

./waf configure --board WFG100

如果要编译WFG001的板卡,则输入:./waf configure --board WFG001

如果要编译WFG120的板卡,则输入:./waf configure --board WFG120


1.11 执行关联bootloader命令

关联bootloader,执行以下命令,输入以下命令,回车执行。

同理,

python3 Tools/scripts/build_bootloaders.py WFG100

如果要编译WFG001的板卡,则输入:python3 Tools/scripts/build_bootloaders.py WFG001

如果要编译WFG120的板卡,则输入:python3 Tools/scripts/build_bootloaders.py WFG120    


执行可能会报错,如果报错就执行以下命令。

source ~/.profile 

然后再次执行:

python3 Tools/scripts/build_bootloaders.py WFG100

执行成功后,界面如下:

image.png


1.12 执行编译多轴命令、生成固件

./waf copter

如果要编译固定翼则输入命令为:./waf plane

如果要编译巡航车则输入命令为:./waf rover

如果要编译直升机则输入命令为:./waf heli



等待编译执行,默认是编译1200多个文件,待编译完成后会显示固件的存放位置。

image.png



打开固件的生成目录,会发现以下2种类型的固件文件:

image

附:编译到一半失败,重新编译代码的操作。

报错时,重新编译之前,先执行以下命令清楚配置,然后再重新配置,重新编译。

./waf distclean
./waf configure --board WFG100
./waf copter


烧录固件

至此固件就编译完成,至于APM固件如何烧录到飞控硬件手上,请见固件烧录说明


附:切换分支:

git checkout Copter-4.6.3 (切多轴分支)
git checkout Plane-4.6.3 (切固定翼分支)
git checkout Rover-4.6.3 (切巡航车分支)


附:固件编译命令:

./waf copter (多轴)
./waf plane (固定翼)
./waf rover (巡航车)
./waf heli (直升机)



相关文档