关于XTDrone中PX4 1.13安装

博客分享了解决GitHub克隆及编译问题的经验。在执行git submodule update命令克隆失败时,可将GitHub仓库导入Gitee解决。还提到更简单的方法是复制到虚拟机解压。解压后编译可能因CMakeCache.txt路径问题出错,删除PX4_Firmware中的build文件可正常编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在进行git submodule update --init --recursive这一步时,很难git clone成功,会出现,

fatal: 无法访问 'https://ghproxy.com/https://github.com/PX4/NuttX.git/':Failed to connect to ghproxy.com port 443: 拒绝连接

,这样的错误,网上尝试了很多方法,最终我把github导入gitee仓库成功将所有文件clone了下来。

  1. 首先输入gedit .gitmodules打开.gitmodules文件。

gedit .gitmodules
  1. 将里面的无法clone成功的url保存下来。

  1. 在gitee用户头像旁边的+号里选择从GitHub/GitLab里导入仓库。

  1. 创建好仓库之后将.gitmodules文件里对应的url改成对应仓库的url并保存。

  1. 执行git submodule sync命令。

git submodule sync
  1. 重新执行git submodule update --init --recursive命令。

git submodule update --init --recursive
  1. 克隆成功。

还有一种更简单的方法

复制进虚拟机然后解压缩即可 : (

解压之后进行make时可能出现以下情况

即现在的CMakeCache.txt 文件路径和编译文件记录的CMakeCache.txt 路径不一样。

进入PX4_Firmware将build文件直接删掉即可。

再进行make发现已经开始正常编译了。

### ROS环境下XTDronePX4的一键安装教程 为了简化在ROS环境中安装和配置XTDrone以及PX4的过程,可以创建一个自动化脚本来处理整个流程。该过程涉及克隆必要的仓库、切换分支、更新子模块并编译项目。 #### 自动化安装脚本 下面是一个Python脚本示例,用于实现一键安装功能: ```python import os import subprocess def run_command(command): process = subprocess.Popen( command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) while True: output = process.stdout.readline() if process.poll() is not None and output == b'': break if output: print(output.strip().decode()) rc = process.poll() return rc if __name__ == "__main__": home_dir = os.path.expanduser("~") # Clone PX4 Firmware repository into the user's home directory. px4_path = f"{home_dir}/PX4_Firmware" if not os.path.exists(px4_path): cmd_clone_px4 = "git clone https://github.com/PX4/PX4-Autopilot.git && mv PX4-Autopilot PX4_Firmware" result = run_command(cmd_clone_px4) # Change to PX4 firmware folder and switch branch. os.chdir(f"{home_dir}/PX4_Firmware") cmd_checkout_branch = "git checkout -b xtdrone/dev v1.13.2" result = run_command(cmd_checkout_branch) # Initialize submodules recursively. cmd_update_submodule = "git submodule update --init --recursive" result = run_command(cmd_update_submodule) # Build PX4 SITL with Gazebo support. cmd_build_px4 = "make px4_sitl_default gazebo" result = run_command(cmd_build_px4) print("Installation completed.") ``` 此脚本实现了从GitHub上获取`PX4-Autopilot`源码,并按照指定版本号检出特定分支,接着初始化所有必需的Git子模块最后完成构建操作[^3]。 对于更复杂的场景比如同时部署多个软件包或者解决依赖关系等问题,则可能需要额外编写更加复杂全面的Shell脚本或者其他形式的自动化工具来满足需求[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值