PX4系统配置步骤中常见问题及解决技巧有哪些?

2026-05-05 20:542阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1348个文字,预计阅读时间需要6分钟。

PX4系统配置步骤中常见问题及解决技巧有哪些?

0. 前言:由于需要在GitHub下载代码,而国内访问受限,可能会遇到一些问题。这里建议使用GitHub国内镜像,参考:GitHub国内镜像网站,下面会给出具体解决方案。

1. 步骤1.1 下载源码:请参考以下步骤进行源码下载。

0.前言

由于需要在GitHub下载代码,而国内访问受限,可能会出现一些问题,这里建议使用github国内镜像,参看:GitHub国内镜像网站,当然下面会给出具体解决方案。

1.步骤 1.1下载源码:git clone github.com/PX4/PX4-Autopilot.git

注意:
若该步骤出错,使用镜像,也就是运行:git clone hub.fastgit.xyz/PX4/PX4-Autopilot.git
或者使用gitee镜像:git clone gitee.com/robin_shaun/PX4_Firmware(注意使用这个方法时的源码文件名是PX4_Firmware)

1.2 切换到源码文件夹:cd PX4-Autopilot 1.3 更新工程子模块git submodule update --init --recursive

注意:
若该步骤出错,归根到底还是因为github访问不稳定。解决方案如下:
(方案的总体原则就是改变源码里面各个.gitmodules文件里的下载地址,需要注意的是源码位置,我这里是将源码放在主文件夹下,也就是 ~/PX4_Autopilot)

(1)源码主文件夹下
  1. cd ~/PX4_Autopilot
  2. gedit .gitmodules
    (注意:这里主要是为了修改文件,我用的是gedit编辑器,也可以用vim, nano,vs code之类的,后面相同)
    将 .gitmodules 中的内容更换为:

[submodule "mavlink/include/mavlink/v2.0"] path = mavlink/include/mavlink/v2.0 url = gitee.com/robin_shaun/c_library_v2.git branch = master [submodule "src/drivers/uavcan/libuavcan"] path = src/drivers/uavcan/libuavcan url = gitee.com/robin_shaun/uavcan.git branch = px4 [submodule "Tools/jMAVSim"] path = Tools/jMAVSim url = gitee.com/robin_shaun/jMAVSim.git branch = master [submodule "Tools/sitl_gazebo"] path = Tools/sitl_gazebo url = gitee.com/robin_shaun/sitl_gazebo.git branch = master [submodule "src/lib/matrix"] path = src/lib/matrix url = gitee.com/robin_shaun/Matrix.git branch = master [submodule "src/lib/ecl"] path = src/lib/ecl url = gitee.com/robin_shaun/ecl.git branch = master [submodule "boards/atlflight/cmake_hexagon"] path = boards/atlflight/cmake_hexagon url = gitee.com/robin_shaun/cmake_hexagon.git branch = px4 [submodule "src/drivers/gps/devices"] path = src/drivers/gps/devices url = gitee.com/robin_shaun/GpsDrivers.git branch = master [submodule "src/modules/micrortps_bridge/micro-CDR"] path = src/modules/micrortps_bridge/micro-CDR url = gitee.com/robin_shaun/micro-CDR.git branch = px4 [submodule "platforms/nuttx/NuttX/nuttx"] path = platforms/nuttx/NuttX/nuttx url = gitee.com/robin_shaun/NuttX.git branch = px4_firmware_nuttx-9.1.0+ [submodule "platforms/nuttx/NuttX/apps"] path = platforms/nuttx/NuttX/apps url = gitee.com/robin_shaun/NuttX-apps.git branch = px4_firmware_nuttx-9.1.0+ [submodule "platforms/qurt/dspal"] path = platforms/qurt/dspal url = gitee.com/robin_shaun/dspal.git [submodule "Tools/flightgear_bridge"] path = Tools/flightgear_bridge url = gitee.com/robin_shaun/PX4-FlightGear-Bridge.git branch = master [submodule "Tools/jsbsim_bridge"] path = Tools/jsbsim_bridge url = gitee.com/robin_shaun/px4-jsbsim-bridge.git [submodule "src/examples/gyro_fft/CMSIS_5"] path = src/examples/gyro_fft/CMSIS_5 url = gitee.com/mirrors/CMSIS_5

  1. git submodule update --init
(2) libuavcan文件夹
  1. cd ~/PX4_Autopilot/src/drivers/uavcan/libuavcan
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "dsdl"] path = dsdl url = gitee.com/robin_shaun/dsdl branch = legacy-v0 [submodule "libuavcan/dsdl_compiler/pyuavcan"] path = libuavcan/dsdl_compiler/pyuavcan url = gitee.com/robin_shaun/pyuavcan [submodule "libuavcan_drivers/kinetis"] path = libuavcan_drivers/kinetis url = gitee.com/robin_shaun/libuavcan_kinetis.git

  1. git submodule update --init
(3) jMAVSim文件夹
  1. cd ~/PX4_Autopilot/Tools/jMAVSim
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "jMAVlib"] path = jMAVlib url = gitee.com/robin_shaun/jMAVlib branch = master

  1. git submodule update --init
(4) sitl_gazebo文件夹
  1. cd ~/PX4_Autopilot/Tools/sitl_gazebo
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "external/OpticalFlow"] path = external/OpticalFlow url = gitee.com/robin_shaun/OpticalFlow

  1. git submodule update --init
(5) dspal文件夹
  1. cd ~/PX4_Autopilot/platforms/qurt/dspal
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "cmake_hexagon"] path = cmake_hexagon url = gitee.com/robin_shaun/cmake_hexagon

  1. git submodule update --init
(6) pyuavcan文件夹
  1. cd ~/PX4_Autopilot/src/drivers/uavcan/libuavcan/libuavcan/dsdl_compiler/pyuavcan
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "dsdl"] path = dsdl url = gitee.com/robin_shaun/dsdl

  1. git submodule update --init
(7) OpticalFlow文件夹
  1. cd ~/PX4_Autopilot/Tools/sitl_gazebo/external/OpticalFlow
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "external/klt_feature_tracker"] path = external/klt_feature_tracker url = gitee.com/robin_shaun/klt_feature_tracker

  1. git submodule update --init
(8)终于修改完了,可以再次运行下这句命令

git submodule update --init 1.4 编译

cd ~/PX4_Firmware make px4_sitl_default gazebo

注意:
这一步可能会报错:ninja: build stopped: subcommand failed.

不要慌!

  1. 先看看子模块是否更新成功。执行命令:git submodule update --init --recursive
    linux哲学,没有消息就是好消息,如果没有出现任何内容,说明子模块更新成功(看不懂什么是子模块也没问题,意思就是到此为止,没问题)。
  2. 接下来清理下make环境就ok了:make clean
  3. 最后再执行一次编译命令:make px4_sitl_default
    以下是我成功的界面
2. 打开gazebo make px4_sitl_default gazebo

注意:
如果gazebo出不来,可以这么做:

PX4系统配置步骤中常见问题及解决技巧有哪些?

  1. 清理一下:make distclean
  2. 重新安装:sudo apt-get install ros-melodic-gazebo-dev
  3. 再次运行:make px4_sitl_default gazebo
2. 祝你配置顺利!如有问题,欢迎讨论!

本文共计1348个文字,预计阅读时间需要6分钟。

PX4系统配置步骤中常见问题及解决技巧有哪些?

0. 前言:由于需要在GitHub下载代码,而国内访问受限,可能会遇到一些问题。这里建议使用GitHub国内镜像,参考:GitHub国内镜像网站,下面会给出具体解决方案。

1. 步骤1.1 下载源码:请参考以下步骤进行源码下载。

0.前言

由于需要在GitHub下载代码,而国内访问受限,可能会出现一些问题,这里建议使用github国内镜像,参看:GitHub国内镜像网站,当然下面会给出具体解决方案。

1.步骤 1.1下载源码:git clone github.com/PX4/PX4-Autopilot.git

注意:
若该步骤出错,使用镜像,也就是运行:git clone hub.fastgit.xyz/PX4/PX4-Autopilot.git
或者使用gitee镜像:git clone gitee.com/robin_shaun/PX4_Firmware(注意使用这个方法时的源码文件名是PX4_Firmware)

1.2 切换到源码文件夹:cd PX4-Autopilot 1.3 更新工程子模块git submodule update --init --recursive

注意:
若该步骤出错,归根到底还是因为github访问不稳定。解决方案如下:
(方案的总体原则就是改变源码里面各个.gitmodules文件里的下载地址,需要注意的是源码位置,我这里是将源码放在主文件夹下,也就是 ~/PX4_Autopilot)

(1)源码主文件夹下
  1. cd ~/PX4_Autopilot
  2. gedit .gitmodules
    (注意:这里主要是为了修改文件,我用的是gedit编辑器,也可以用vim, nano,vs code之类的,后面相同)
    将 .gitmodules 中的内容更换为:

[submodule "mavlink/include/mavlink/v2.0"] path = mavlink/include/mavlink/v2.0 url = gitee.com/robin_shaun/c_library_v2.git branch = master [submodule "src/drivers/uavcan/libuavcan"] path = src/drivers/uavcan/libuavcan url = gitee.com/robin_shaun/uavcan.git branch = px4 [submodule "Tools/jMAVSim"] path = Tools/jMAVSim url = gitee.com/robin_shaun/jMAVSim.git branch = master [submodule "Tools/sitl_gazebo"] path = Tools/sitl_gazebo url = gitee.com/robin_shaun/sitl_gazebo.git branch = master [submodule "src/lib/matrix"] path = src/lib/matrix url = gitee.com/robin_shaun/Matrix.git branch = master [submodule "src/lib/ecl"] path = src/lib/ecl url = gitee.com/robin_shaun/ecl.git branch = master [submodule "boards/atlflight/cmake_hexagon"] path = boards/atlflight/cmake_hexagon url = gitee.com/robin_shaun/cmake_hexagon.git branch = px4 [submodule "src/drivers/gps/devices"] path = src/drivers/gps/devices url = gitee.com/robin_shaun/GpsDrivers.git branch = master [submodule "src/modules/micrortps_bridge/micro-CDR"] path = src/modules/micrortps_bridge/micro-CDR url = gitee.com/robin_shaun/micro-CDR.git branch = px4 [submodule "platforms/nuttx/NuttX/nuttx"] path = platforms/nuttx/NuttX/nuttx url = gitee.com/robin_shaun/NuttX.git branch = px4_firmware_nuttx-9.1.0+ [submodule "platforms/nuttx/NuttX/apps"] path = platforms/nuttx/NuttX/apps url = gitee.com/robin_shaun/NuttX-apps.git branch = px4_firmware_nuttx-9.1.0+ [submodule "platforms/qurt/dspal"] path = platforms/qurt/dspal url = gitee.com/robin_shaun/dspal.git [submodule "Tools/flightgear_bridge"] path = Tools/flightgear_bridge url = gitee.com/robin_shaun/PX4-FlightGear-Bridge.git branch = master [submodule "Tools/jsbsim_bridge"] path = Tools/jsbsim_bridge url = gitee.com/robin_shaun/px4-jsbsim-bridge.git [submodule "src/examples/gyro_fft/CMSIS_5"] path = src/examples/gyro_fft/CMSIS_5 url = gitee.com/mirrors/CMSIS_5

  1. git submodule update --init
(2) libuavcan文件夹
  1. cd ~/PX4_Autopilot/src/drivers/uavcan/libuavcan
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "dsdl"] path = dsdl url = gitee.com/robin_shaun/dsdl branch = legacy-v0 [submodule "libuavcan/dsdl_compiler/pyuavcan"] path = libuavcan/dsdl_compiler/pyuavcan url = gitee.com/robin_shaun/pyuavcan [submodule "libuavcan_drivers/kinetis"] path = libuavcan_drivers/kinetis url = gitee.com/robin_shaun/libuavcan_kinetis.git

  1. git submodule update --init
(3) jMAVSim文件夹
  1. cd ~/PX4_Autopilot/Tools/jMAVSim
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "jMAVlib"] path = jMAVlib url = gitee.com/robin_shaun/jMAVlib branch = master

  1. git submodule update --init
(4) sitl_gazebo文件夹
  1. cd ~/PX4_Autopilot/Tools/sitl_gazebo
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "external/OpticalFlow"] path = external/OpticalFlow url = gitee.com/robin_shaun/OpticalFlow

  1. git submodule update --init
(5) dspal文件夹
  1. cd ~/PX4_Autopilot/platforms/qurt/dspal
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "cmake_hexagon"] path = cmake_hexagon url = gitee.com/robin_shaun/cmake_hexagon

  1. git submodule update --init
(6) pyuavcan文件夹
  1. cd ~/PX4_Autopilot/src/drivers/uavcan/libuavcan/libuavcan/dsdl_compiler/pyuavcan
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "dsdl"] path = dsdl url = gitee.com/robin_shaun/dsdl

  1. git submodule update --init
(7) OpticalFlow文件夹
  1. cd ~/PX4_Autopilot/Tools/sitl_gazebo/external/OpticalFlow
  2. gedit .gitmodules
    将 .gitmodules 中的内容更换为:

[submodule "external/klt_feature_tracker"] path = external/klt_feature_tracker url = gitee.com/robin_shaun/klt_feature_tracker

  1. git submodule update --init
(8)终于修改完了,可以再次运行下这句命令

git submodule update --init 1.4 编译

cd ~/PX4_Firmware make px4_sitl_default gazebo

注意:
这一步可能会报错:ninja: build stopped: subcommand failed.

不要慌!

  1. 先看看子模块是否更新成功。执行命令:git submodule update --init --recursive
    linux哲学,没有消息就是好消息,如果没有出现任何内容,说明子模块更新成功(看不懂什么是子模块也没问题,意思就是到此为止,没问题)。
  2. 接下来清理下make环境就ok了:make clean
  3. 最后再执行一次编译命令:make px4_sitl_default
    以下是我成功的界面
2. 打开gazebo make px4_sitl_default gazebo

注意:
如果gazebo出不来,可以这么做:

PX4系统配置步骤中常见问题及解决技巧有哪些?

  1. 清理一下:make distclean
  2. 重新安装:sudo apt-get install ros-melodic-gazebo-dev
  3. 再次运行:make px4_sitl_default gazebo
2. 祝你配置顺利!如有问题,欢迎讨论!