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/
目录下,看看有没有文件即可