Ardupilot的开发环境搭建(虚拟机 Ubuntu20.04 2024年3.20)

前言:

用开源的飞控很久了,想要去系统学习一下代码,第一步就是构建Ardupliot的开发环境,但按照网上教程一路小坑无数,所以把搭建过程梳理一下,希望能为需要搭建开发环境的同志提供点参考。
下面提供一些我搭建成功的参考连接,感谢前辈的帮助!

Ardupilot开发环境搭建(Ubuntu18.04,20190407) - 知乎 (zhihu.com)

一名技术小白的Ardupilot搭建教程与避坑提示 - 知乎 (zhihu.com)

设置构建环境 (Linux/Ubuntu) — 开发文档 (ardupilot.org)

ardupilot/BUILD.md at master · ArduPilot/ardupilot (github.com)

 

写在前面,我们需要一个健康的网络(没有WELL)的网络,其实有也可以但可能会出现很多奇奇怪怪的依赖问题

安装前的准备:

网络准备:

我自己的环境是 虚拟机里有Ubuntu 20.4但是没有安装VPN(V2ay),但是在主机环境里是有V2ay的软件的。

首先就是去搜索了如何虚拟机局域网代理,这里很感谢知乎答主

VMware虚拟机怎么使用主机代理? - 知乎 (zhihu.com)

这里自己的理解是,利用NAT:相当于在主机里建立一个虚拟路由器,虚拟机连接这个虚拟路由器。

按照这里设置后:由于答主用的Clash而我用的是V2ay,有些许不同

 在客户端选择勾选"允许来自局域网的连接“

其次在Ubuntu的配置中端口设置为”如图所示“ ,IP则为本机在控制面版中 VMnet8的的IP(怎么配置看知乎答主所说)

 最后试一下Goggle是否能通

系统&软件准备:

Ubuntu 20.04更换源,最好是清华的源

Ubuntu20.04更换国内镜像源(阿里、网易163、清华、中科大) | TARDIS (midoq.github.io)

ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

同时需要换PIP(但我这里有VPN所以就不用换了)

但是PIP默认是不支持SOCKS的,所以要安装对应的软件

pip install报错:Missing dependencies for SOCKS support解决方法 | 幻悠尘的小窝 (huanyouchen.github.io)

提前先准备好

GIT—HUB准备:

 提前自己注册好GITHUB,准备好账户和密码

现在用GIT克隆代码需要有账户令牌

2021.8.13起,Github要求使用基于令牌的身份验证 - 知乎 (zhihu.com)

记得把自己的令牌记住,关闭网页后会消失。

开始安装:

 先克隆代码,然后切换到下载后的目录,最后更新分支

 git clone https://github.com/ArduPilot/ardupilot
 cd ardupilot
 git submodule update --init --recursive

”若是没有安装git,可以通过apt-get直接安装。之后,大部分网上教程都是运行对应的sh执行脚本开始安装所需的各种依赖包。"

切换到/ardupilot/Tools/下,然后重新赋予权限,并运行!

cd /ardupilot/Tools/
chmod +x install-prereqs-ubuntu.sh
./
install-prereqs-ubuntu.sh -y

如果不出意外就可以一路畅通了,但是!但是!但是!

ARM交叉编译工具链 根本无法下载!

看到如图这里时就是只差ARM交叉编译工具链了:

 个人建议,”手动安装”   ARM交叉编译工具链,方法如下:

请参考:Ubuntu中gcc-arm-none-eabi的安装、移除和版本切换_arm-none-eabi-gcc-CSDN博客

直接手动安装!,不要想有自动能装好,放弃幻想!

截至2024年3月使用的版本是:gcc-arm-none-eabi-10-2020-q4-major-x86_64

这里看上图的下载,脚本需要什么版本,咱们就下什么版本

接着继续再次运行安装脚本即可!还要重新加载路径。

Tools/environment_install/install-prereqs-ubuntu.sh -y
. ~/.profile

这样应该就可以稳定安装了,结束后我们编译实验一下

cd ardupilot
./waf configure --board Pixhawk4
./waf plane

最后如图

 去查看编译的固件在ardupilot/build/Pixhawk4/bin/

目录下,看看有没有文件即可

posted @ 2024-03-20 16:43  小泽不秃头  阅读(1345)  评论(0)    收藏  举报