Ardupilot编译环境构建--个人记录

该博客详细介绍了在Windows10上自动搭建APM固件编译及仿真环境的步骤,包括下载自动化配置文件、GCC编译器、源码,以及切换到特定稳定版固件。同时,提供了编译和烧写固件的方法,解决了可能出现的'invalidlockfile'问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.下载自动化配置文件

1、“Cygwin64-setup.exe”,这是 Cygwin64 软件的安装文件,不
要动它,我们的自动化脚本会自动调用它,不需要手动安装;
2、“MAVProxySetup.exe”,这是 Mavproxy 软件的安装文件,
不要动它,我们的自动化脚本会自动调用它,不需要手动安装;
3、“Windows10 下自动建立 APM 固件编译及仿真环境脚本文
件.ps1”,这是一个自动化脚本文件,可以实现自动建立 APM 固件
编译与仿真环境。
安装方法:
将上述三个文件放在同一个文件夹下,选中“Windows10 下自
动建立 APM 固件编译及仿真环境脚本文件.ps1”,右键单击,然后选择“使用 PowerShell”运行,然后耐心等待即可。
下载路径:
http://www.nufeichuiyun.com/?p=237

二.下载安装GCC编译器

下载链接:http://firmware.ardupilot.org/Tools/STM32-tools/gcc-arm-none-eabi-6-2017-q2-update-win32-sha2.exe
**注意:**安装过程中一直点下一步,在最后一步时勾选“Add path to environment variable”

三.clone飞控源码

1.安装GIT
直接点下一步,完成安装后,右击进入到Git Bash,配置一下git,取消自动替换换行符。

git config --global core.autocrlf false

2.安装GitHub Desktop
首先将ardupilot源码fork到自己github的仓库中,然后在GitHub Desktop登录自己的github账号,将ardupilot源码下载到:如D:\ardupilot。
注意:ardupilot不能放到系统盘根目录下。

四.切换到最新的稳定版飞控固件(此处对应固件Copter-4.0.7)

由于上面下载的源码是master分支,需要切换到稳定分支。因此,通过Git Bash软件来实现分支切换,在目录D:\ardupilot下右击打开Git Bash。

# 查看源代码中包含的所有tag,按回车显示下一行,按“q”+回车,退出
git tag  
# 从多旋翼4.0.7稳定版固件创建分支,分支名为:MyCopter4.0.7
git checkout -b MyCopter4.0.7 Copter-4.0.7
# 更新子模块,一般大概率会出错,是因为4.0.7版本的一些子模块已经不在维护
git submodule update --init --recursive

解决方法:
下载怒风垂云帖子中已经完成子模块更新的源码,注意下载对应版本的源码。之后,替换掉D:\下的ardupilot文件,即可直接编译。
注意:
1、对于APM固件,直升机固件和多旋翼使用的是同一套源代码,因此如果你要编译直升机固件,实际上只需要切换到一个多旋翼的稳定版即可,然后编译时指定为编译直升机固件即可(同一套代码,编译时指定为直升机,则编译出来的是直升机固件;编译时指定的是多旋翼,则编译出来的是多旋翼固件);

2、对于APM固件,垂直起降固定翼的固件和传统固定翼使用的是同一套源代码,因此如果要编译垂起的固件,切换到一个固定翼的稳定版即可,并且编译的时候直接指定编译为固定翼即可(同一套源代码,编译时指定为固定翼,编译出来的固件既可以用于传统固定翼,又可以用于垂直起降固定翼。这一点跟直升机与多旋翼的关系不同);

3、对于APM固件,无人船固件和无人车固件使用的是同一套源代码,因此如果要编译无人船的固件,切换到一个无人车的稳定版即可,并且编译时直接指定为无人车即可(同一套源代码,编译时指定为无人车,编译出来的固件既可以用于无人车,又可以用于无人船。这一点跟直升机与多旋翼的关系不同)。

五.编译飞控固件

打开软件Cygwin64-setup.exe,输入:

cd d:/ardupilot
// 查看所有支持的飞控类型
./waf list_boards

// 将编译目标设置为Pixhawk4版飞控,对应Pixhawk4硬件
./waf configure --board Pixhawk4

// 如果是编译多旋翼固件,运行下面的命令
./waf copter

编译成功显示如下:
在这里插入图片描述
问题:
1.提示“invalid lock file in /cygdrive/d/ardupilot”
解决方法:
这是由于之前编译飞控固件时会产生一些“锁文件”来保存编译的临时配置选项,如果异常退出或者其他未知原因,这些“锁文件”在编译完成后没有被正常清除,就会有这种提示。这种情况不影响正常编译

六.烧写固件

使用MissionPlanner烧写飞控固件,自行编译的固件位置: ardupilot/bulid/Pixhawk4/bin/arducopter.apj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值