一、下载ArduPilot 源码
源码地址:GitHub - ArduPilot/ardupilot: ArduPlane, ArduCopter, ArduRover, ArduSub source
使用git clone命令拉取飞控代码。
bash
git clone https://github.com/ArduPilot/ardupilot.git
二、安装编译环境
打开后,通过cd命令,转到.\ardupilot\Tools\environment_install目录
使用管理员权限运行powershell
设置执行策略
bash
set-executionpolicy remotesigned
执行完当前指令后已经解除安全机制对.ps1
类型的脚本文件的约束,此时再去执行.ps1脚本已经没有问题了
输入.\install然后按Tab键切换到install-prereqs-windows.ps1,回车运行。
此时将自动下载并安装MAVProxy、Cygwin x64、ARM GCC 编译器、python等软件。
安装g++:地址
下载后解压,将源码下的bin路径添加到系统环境变量。
三 切换固件
3.1 查看源代码中包含的所有tag
bash
git tag
按回车下一行,找到版本后,按 "q" 退出
例如从多旋翼3.6.7 稳定版固件创建分支,分支名为:MyCopter
bash
git checkout -b MyCopter Copter-3.6.7
3.3 更新子模块
bash
git submodule update --init --recursive
四、编译飞控源码
以下命令在Cygwin64终端下执行。
4.1 配置飞控类型
查看所有支持的飞控类型
bash
./waf list_boards
4.2 选择飞控类型
bash
./waf configure --board fmuv3
4.3 选择机型
bash
如果是编译多旋翼固件,运行下面的命令
./waf copter
如果是编译常规固定翼固件或者垂直起降固定翼固件(二者同一个固件)
./waf plane
如果是编译直升机固件
./waf heli
如果是编译无人车固件
./waf rover
如果是编译潜水艇固件
./waf sub
编译完成。路径为./ardupilot/bulid/fmuv3/bin/arducopter.apj
若编译失败,则清除build再重复上面步骤
bash
./waf distclean
五、固件烧写
使用QGC或MissionPlanner地面站选择编译后的固件进行烧写。