以前一直用pixhawk4以及4mini,版本1.11,这两款目前停产,6x也快停产,没什么货源了。只能试试6c。
一:下载
流程:按照官网的流程,先git clone
输入:
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
此时会出现问题:从github官方git clone速度慢,或者很多子模块连接拒绝,或者其他原因
解决思路1:把github上的PX4-Autopilot仓库导入gitee, 把路径PX4-Autopilot/.gitmodules文件中的子模块仓库也全部导入gitee中。
PS1:github和gitee都需要账号并且登录
PS2:导入成功后可能避开github直接从gitee git clone了。
解决思路2:不停地
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
每次可能会clone一些子模块,可能不会,看运气。我自己先2后1。
再把所有子模块按照.gitmodules中git clone后,就可以开始编译了。
PS1: git submodule update --init --recursive子模块都导入后,输入会直接跳过,但是我从github git clone后,虽然也是直接跳过,但是实际去子模块位置看,并没有对应地代码文件,所以这里需要注意,缺少文件导致后续编译出问题。
PS2:ctrl+H可以查看.gitmodules这个隐藏文件
二:编译
流程:make px4_fmu-v6c_default
问题1:‘/home/XXX/PX4-Autopilot/src/lib/events/libevents/events/common.json’, needed by ‘events/common_with_enums.json’, missing and no known rule to make it
分析: 原因是没有克隆所有子仓库的文件,参考这一篇博文
https://blog.csdn.net/AEFDOGCCC/article/details/124647417
当时我去events文件夹下面看了看,里面除了.git空的,也就是说子模块并没有clone下来,从github clone, 即使git submodule update --init --recursive跳了,也并不一定下载了子模块。
解决方法:一中讲了
问题2:No module named 'future' ; No module named 'jsonschema'
分析:讲得比较清楚了,缺少模块
解决方法:
最后,再编译:make px4_fmu-v6c_default
编译下载