Linux系统ubuntu20.04 无人机PX4 开发环境搭建(失败率很低)

PX4固件下载

PX4的源码处于GitHub,因为众所周知的原因git clone经常失败,此处从Gitee获取PX4源码和依赖模块。

复制代码
git clone https://gitee.com/voima/PX4-Autopilot.git

正克隆到 'PX4-Autopilot'...

remote: Enumerating objects: 454209, done.

remote: Total 454209 (delta 0), reused 0 (delta 0), pack-reused 454209

接收对象中: 100% (454209/454209), 215.48 MiB | 2.32 MiB/s, 完成.

处理 delta 中: 100% (334699/334699), 完成.

使用cd命令切换到 px4项目文件目录:

复制代码
cd ~/PX4-Autopilot

使用以下命令切换版本,以V1.14.0为例:

复制代码
git checkout v1.14.0 #切换到1.14.0分支,当然也可以尝试其他版本

因为PX4的完整项目是嵌套子模块存储的,以上命令只下载了px4的基本代码,所以我们要进行子模块的下载,运行下列命令:

复制代码
git submodule update --init --recursive # 在~/PX4-Autopilot目录下执行

以上命令中,submodule是子模块的意思, ---init 选项会初始化,并注册子模块的地址,---recursive选项会递归克隆子模块。

此更新的链接来源于

~/PX4-Autopilot/.gitmodules(注意是隐藏文件)

将文件打开,粘贴到下面,可以看到里面都github的地址,直接用上面的命令,会很难成功

复制代码
[submodule "src/modules/mavlink/mavlink"]    path = src/modules/mavlink/mavlink    url = https://github.com/mavlink/mavlink.git    branch = master[submodule "src/drivers/uavcan/libuavcan"]    path = src/drivers/uavcan/libuavcan    url = https://github.com/dronecan/libuavcan.git    branch = main[submodule "Tools/simulation/jmavsim/jMAVSim"]    path = Tools/simulation/jmavsim/jMAVSim    url = https://github.com/PX4/jMAVSim.git    branch = main[submodule "Tools/simulation/gazebo-classic/sitl_gazebo-classic"]    path = Tools/simulation/gazebo-classic/sitl_gazebo-classic    url = https://github.com/PX4/PX4-SITL_gazebo-classic.git    branch = main[submodule "src/drivers/gps/devices"]    path = src/drivers/gps/devices    url = https://github.com/PX4/PX4-GPSDrivers.git    branch = main[submodule "platforms/nuttx/NuttX/nuttx"]    path = platforms/nuttx/NuttX/nuttx    url = https://github.com/PX4/NuttX.git    branch = px4_firmware_nuttx-10.3.0+-v1.14[submodule "platforms/nuttx/NuttX/apps"]    path = platforms/nuttx/NuttX/apps    url = https://github.com/PX4/NuttX-apps.git    branch = px4_firmware_nuttx-10.3.0+[submodule "Tools/flightgear_bridge"]    path = Tools/simulation/flightgear/flightgear_bridge    url = https://github.com/PX4/PX4-FlightGear-Bridge.git[submodule "Tools/simulation/jsbsim/jsbsim_bridge"]    path = Tools/simulation/jsbsim/jsbsim_bridge    url = https://github.com/PX4/px4-jsbsim-bridge.git[submodule "src/drivers/cyphal/libcanard"]    path = src/drivers/cyphal/libcanard    url = https://github.com/opencyphal/libcanard.git[submodule "src/drivers/cyphal/public_regulated_data_types"]    path = src/drivers/cyphal/public_regulated_data_types    url = https://github.com/opencyphal/public_regulated_data_types.git[submodule "src/drivers/cyphal/legacy_data_types"]    path = src/drivers/cyphal/legacy_data_types    url = https://github.com/PX4/public_regulated_data_types.git    branch = legacy[submodule "src/lib/crypto/monocypher"]    path = src/lib/crypto/monocypher    url = https://github.com/PX4/Monocypher.git    branch = px4[submodule "src/lib/events/libevents"]    path = src/lib/events/libevents    url = https://github.com/mavlink/libevents.git    branch = main[submodule "src/lib/crypto/libtomcrypt"]    path = src/lib/crypto/libtomcrypt    url = https://github.com/PX4/libtomcrypt.git    branch = px4[submodule "src/lib/crypto/libtommath"]    path = src/lib/crypto/libtommath    url = https://github.com/PX4/libtommath.git    branch = px4[submodule "src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client"]    path = src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client    url = https://github.com/PX4/Micro-XRCE-DDS-Client.git    branch = px4

将其更新为 gitee 的地址,已经整理测试好了,直接替换掉文件的内容即可

​​​​​​​

复制代码
[submodule "src/modules/mavlink/mavlink"]    path = src/modules/mavlink/mavlink    url = https://gitee.com/wtp95/mavlink.git    branch = master[submodule "Tools/flightgear_bridge"]    path = Tools/simulation/flightgear/flightgear_bridge    url = https://gitee.com/seokhb/PX4-FlightGear-Bridge.git[submodule "Tools/simulation/gazebo-classic/sitl_gazebo-classic"]    path = Tools/simulation/gazebo-classic/sitl_gazebo-classic    url = https://gitee.com/seokhb/PX4-SITL_gazebo-classic.git    branch = main[submodule "Tools/simulation/jmavsim/jMAVSim"]    path = Tools/simulation/jmavsim/jMAVSim    url = https://gitee.com/seokhb/jMAVSim.git    branch = main[submodule "Tools/simulation/jsbsim/jsbsim_bridge"]    path = Tools/simulation/jsbsim/jsbsim_bridge    url = https://gitee.com/seokhb/px4-jsbsim-bridge.git[submodule "platforms/nuttx/NuttX/apps"]    path = platforms/nuttx/NuttX/apps    url = https://gitee.com/seokhb/NuttX-apps.git    branch = px4_firmware_nuttx-10.3.0+[submodule "platforms/nuttx/NuttX/nuttx"]    path = platforms/nuttx/NuttX/nuttx    url = https://gitee.com/seokhb/NuttX.git    branch = px4_firmware_nuttx-10.3.0+-v1.14[submodule "src/drivers/cyphal/public_regulated_data_types"]    path = src/drivers/cyphal/public_regulated_data_types    url = https://gitee.com/seokhb/public_regulated_data_types.git[submodule "src/drivers/cyphal/legacy_data_types"]    path = src/drivers/cyphal/legacy_data_types    url = https://gitee.com/jiyuanwangxs/legacy_data_types.git    branch = legacy[submodule "src/drivers/cyphal/libcanard"]    path = src/drivers/cyphal/libcanard    url = https://gitee.com/seokhb/libcanard.git[submodule "src/drivers/gps/devices"]    path = src/drivers/gps/devices    url = https://gitee.com/seokhb/PX4-GPSDrivers.git    branch = main[submodule "src/drivers/uavcan/libuavcan"]    path = src/drivers/uavcan/libuavcan    url = https://gitee.com/seokhb/libuavcan.git[submodule "src/lib/crypto/libtomcrypt"]    path = src/lib/crypto/libtomcrypt    url = https://gitee.com/seokhb/libtomcrypt.git    branch = px4[submodule "src/lib/crypto/libtommath"]    path = src/lib/crypto/libtommath    url = https://gitee.com/seokhb/libtommath.git    branch = px4[submodule "src/lib/crypto/monocypher"]    path = src/lib/crypto/monocypher    url = https://gitee.com/seokhb/Monocypher.git    branch = px4[submodule "src/lib/events/libevents"]    path = src/lib/events/libevents    url = https://gitee.com/seokhb/libevents.git    branch = main[submodule "src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client"]    path = src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client    url = https://gitee.com/seokhb/Micro-XRCE-DDS-Client.git    branch = px4

然后执行下面的命令,就可以

复制代码
git submodule update --init --recursive

有的子模块还是走的github,失败了就多试几次,直到用上面命令不再下载东西了就可以了

点击Linux系统ubuntu20.04 无人机PX4 开发环境搭建(失败率很低)可查看全文

相关推荐
Yana.nice12 小时前
openssl将证书从p7b转换为crt格式
java·linux
AI逐月12 小时前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
小白跃升坊13 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey13 小时前
【Linux】线程同步与互斥
linux·笔记
杨江13 小时前
seafile docker安装说明
运维
舰长11513 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
好好沉淀13 小时前
Docker开发笔记(详解)
运维·docker·容器
zmjjdank1ng13 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.13 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
树℡独13 小时前
ns-3仿真之应用层(三)
运维·服务器·ns3