物唯仓库-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

1.2 下载物唯修改后的Ardupilot源码
从物唯科技的github仓库,克隆修改后的Ardupilot的飞控源码:
打开WSL子系统终端,输入以下指令:
git clone https://github.com/WWKJ-FX/WW-Ardupilot.git回车执行,等待下载完成!

1.3 进入下载好的WW-Ardupilot文件夹中
cd WW-Ardupilot/
1.4 切换至物唯多旋翼4.6.3分支
使用git checkout命令。截止至2026年4月29日,物唯多轴固件最新的版本号为4.6.3, 输入以下命令,回车执行。
默认就在此分支下!
git checkout WW-Copter-4.6.3 1.5 确认分支切换成功
输入以下指令,确认切换分支成功。
git branch
查看*号位于哪里。
1.6 更新子模块
更新子模块是将上述切换的分支版本相关的模块补全,此步骤非常重要!没下载好会导致后续报错。
注:每次切换了版本分支,都要执行一次更新子模块的命令!
git submodule update --init --recursive1.7 安装开发环境
sudo apt-get update
sudo apt-get upgrade -y
Tools/environment_install/install-prereqs-ubuntu.sh -y
注:安装编译环境这一步非常关键,请确保网络环境良好,如果条件允许最好能够魔法一下!如果编译环境安装不完整,后续编译代码的过程中会有各种各样的问题!
安装工具完成后的页面如下:

1.8 安装交叉编译工具
部分朋友编译可能会报错,因为提前先执行这条命令:
sudo apt update
sudo apt install gcc-arm-none-eabi1.9 配置waf
./waf configure
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执行成功后,界面如下:

1.12 执行编译多轴命令、生成固件
./waf copter如果要编译固定翼则输入命令为:./waf plane
如果要编译巡航车则输入命令为:./waf rover
如果要编译直升机则输入命令为:./waf heli
等待编译执行,默认是编译1200多个文件,待编译完成后会显示固件的存放位置。

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

附:编译到一半失败,重新编译代码的操作。
报错时,重新编译之前,先执行以下命令清楚配置,然后再重新配置,重新编译。
./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 (直升机)