由于PX4-Autopilot托管在github,在国内下载可能遇到各种网络问题导致无法下载。为了提高下载速度,我们将PX4在github上的仓库以及其子仓库(依赖仓库)都搬移到gitee上了。
我们在gitee上创建了一个组织 px4-autopilot_v1-14做为镜像,一定能确保快速、稳定的下载。
这里我们详细说明下如何下载代码。
下载主仓库
我们在gitee上建立了PX4-Autopilot的镜像仓库。
git clone https://gitee.com/px4-autopilot_v1-14/PX4-Autopilot.git
下载完成后检出v1.14.3标签。
git checkout v1.14.3
下载子模块
通过修改.gitmodules的方式
一级子模块仓库
更换PX4-Autopilot/.gitmodules
文件的内容,用如下替代:
[submodule "src/modules/mavlink/mavlink"]
path = src/modules/mavlink/mavlink
url = https://gitee.com/px4-autopilot_v1-14/mavlink.git
branch = master
[submodule "src/drivers/uavcan/libuavcan"]
path = src/drivers/uavcan/libuavcan
url = https://gitee.com/px4-autopilot_v1-14/libuavcan.git
branch = main
[submodule "Tools/simulation/jmavsim/jMAVSim"]
path = Tools/simulation/jmavsim/jMAVSim
url = https://gitee.com/px4-autopilot_v1-14/jMAVSim.git
branch = main
[submodule "Tools/simulation/gazebo-classic/sitl_gazebo-classic"]
path = Tools/simulation/gazebo-classic/sitl_gazebo-classic
url = https://gitee.com/px4-autopilot_v1-14/PX4-SITL_gazebo-classic.git
branch = main
[submodule "src/drivers/gps/devices"]
path = src/drivers/gps/devices
url = https://gitee.com/px4-autopilot_v1-14/PX4-GPSDrivers.git
branch = main
[submodule "platforms/nuttx/NuttX/nuttx"]
path = platforms/nuttx/NuttX/nuttx
url = https://gitee.com/px4-autopilot_v1-14/NuttX.git
branch = px4_firmware_nuttx-10.3.0+-v1.14
[submodule "platforms/nuttx/NuttX/apps"]
path = platforms/nuttx/NuttX/apps
url = https://gitee.com/px4-autopilot_v1-14/NuttX-apps.git
branch = px4_firmware_nuttx-10.3.0+
[submodule "Tools/flightgear_bridge"]
path = Tools/simulation/flightgear/flightgear_bridge
url = https://gitee.com/px4-autopilot_v1-14/PX4-FlightGear-Bridge.git
[submodule "Tools/simulation/jsbsim/jsbsim_bridge"]
path = Tools/simulation/jsbsim/jsbsim_bridge
url = https://gitee.com/px4-autopilot_v1-14/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://gitee.com/px4-autopilot_v1-14/public_regulated_data_types.git
[submodule "src/drivers/cyphal/legacy_data_types"]
path = src/drivers/cyphal/legacy_data_types
url = https://gitee.com/px4-autopilot_v1-14/PX4-public_regulated_data_types.git
branch = legacy
[submodule "src/lib/crypto/monocypher"]
path = src/lib/crypto/monocypher
url = https://gitee.com/px4-autopilot_v1-14/Monocypher.git
branch = px4
[submodule "src/lib/events/libevents"]
path = src/lib/events/libevents
url = https://gitee.com/px4-autopilot_v1-14/libevents.git
branch = main
[submodule "src/lib/crypto/libtomcrypt"]
path = src/lib/crypto/libtomcrypt
url = https://gitee.com/px4-autopilot_v1-14/libtomcrypt.git
branch = px4
[submodule "src/lib/crypto/libtommath"]
path = src/lib/crypto/libtommath
url = https://gitee.com/px4-autopilot_v1-14/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://gitee.com/px4-autopilot_v1-14/Micro-XRCE-DDS-Client.git
branch = px4
这里我们对.gitmodules文件进行下说明。
[submodule "src/modules/mavlink/mavlink"]
path = src/modules/mavlink/mavlink
url = https://gitee.com/px4-autopilot_v1-14/mavlink.git branch = master
- path:相对当前.gitmodules的路径,也就是仓库下载后保存的路径;
- url:仓库地址,这里我们统一修改为gitee上的镜像地址;
- branch:分支,下载后自动检出;
同步子模块仓库地址
git submodule sync --recursive
更新(下载)子模块
git submodule update --init --recursive
二级子模块仓库
在下载完子仓库后,会继续下载子仓库的依赖仓库,这时会遇到例如flightgear
的依赖仓库无法下载的问题,同样对仓库路径进行修改即可。
修改flightgear_bridge相关仓库地址
更换Tools\simulation\flightgear\flightgear_bridge\.gitmodules
文件的内容,用如下替代:
[submodule "models/FlightGear-Rascal"]
path = models/Rascal
url = https://gitee.com/px4-autopilot_v1-14/FlightGear-Rascal.git
[submodule "models/FlightGear-TF-G1"]
path = models/TF-G1
url = https://gitee.com/px4-autopilot_v1-14/FlightGear-TF-G1.git
[submodule "models/FlightGear-TF-R1"]
path = models/TF-R1
url = https://gitee.com/px4-autopilot_v1-14/FlightGear-TF-R1.git
[submodule "models/FlightGear-TF-G2"]
path = models/TF-G2
url = https://gitee.com/px4-autopilot_v1-14/FlightGear-TF-G2.git
重新运行
git submodule sync --recursive
git submodule update --init --recursive
如果一些子仓库没有下载,可以手动下载然后拷贝:
# 下载
git clone https://gitee.com/px4-autopilot_v1-14/FlightGear-TF-G1.git
git clone https://gitee.com/px4-autopilot_v1-14/FlightGear-Rascal.git
# 拷贝
cp -r .\FlightGear-TF-G1\* E:\A-respository\D-px4\PX4-Autopilot\Tools\simulation\flightgear\flightgear_bridge\models\TF-G1
cp -r .\FlightGear-Rascal\* E:\A-respository\D-px4\PX4-Autopilot\Tools\simulation\flightgear\flightgear_bridge\models\Rascal
修改libevents相关仓库地址
紧接着再修改src\lib\events\libevents\.gitmodules
文件的内容,用如下替代:
[submodule "libs/cpp/parse/nlohmann_json"]
path = libs/cpp/parse/nlohmann_json
url = https://gitee.com/px4-autopilot_v1-14/nlohmann_json.git
如果出现以下问题:
fatal: could not get a repository handle for submodule 'libs/cpp/parse/nlohmann_json'
可以先下载:
git clone https://gitee.com/px4-autopilot_v1-14/nlohmann_json.git
然后拷贝至指定目录:
cp -r nlohmann_json/* E:\A-respository\D-px4\PX4-Autopilot\src\lib\events\libevents\libs\cpp\parse\nlohmann_json
修改mavlink相关仓库地址
紧接着再修改src\modules\mavlink\mavlink\.gitmodules
文件的内容,用如下替代:
[submodule "pymavlink"]
path = pymavlink
url = https://gitee.com/px4-autopilot_v1-14/pymavlink.git
修改eProsima相关仓库地址
修改PX4-Autopilot/src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client/cmake/SuperBuild.cmake
文件的内容,用如下代替
#https://github.com/eProsima/Micro-CDR.git
#替换为:
https://gitee.com/px4-autopilot_v1-14/Micro-CDR.git
# https://github.com/google/googletest.git
# 替换为
https://gitee.com/px4-autopilot_v1-14/googletest.git
通过仓库地址替换方式(简单)
我们已经将所有子仓库都放到了gitee,那么可以在命令行中使用git的insteadOf
命令将github仓库路径替换为gitee镜像地址,这样就不用去修改文件了。
进入PX4-Autopilot路径后,将其子仓库的github地址替换为gitee地址即可,例如:
git config --global url."https://github.com/mavlink/mavlink.git".insteadOf https://gitee.com/px4-autopilot_v1-14/m
关于NextPilot飞控
NextPilot飞控系统是一款基于px4和rt-thread的国产开源自动驾驶仪,由NextPilot开发团队(nextpilot@qq.com)负责维护。它能够便捷的应用于教育、研究和工业等领域,让工程师专注于自己的擅长领域(比如嵌入式、控制算法、应用业务)进行高效的开发。
- 官方网站:https://www.nextpilot.org
- 开发指南:https://www.nextpilot.org/develop
- 用户手册:https://www.nextpilot.org/manual
- 开源仓库:https://github.com/nextpilot/nextpilot-flight-control
- 开发工具:https://github.com/nextpilot/nextpilot-windows-toolchain
- 联系我们:nextpilot@qq.com