跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++算法

ROS2+Gazebo+PX4 环境搭建与仿真起飞指南

基于 ROS2 Humble 与 Gazebo Classic 搭建 PX4 无人机仿真环境。流程涵盖源码克隆、依赖安装、SITL 编译、QGroundControl 配置及 Micro-XRCE-DDS-Agent 通信桥接。最终通过 offboard_control 节点在仿真器中实现无人机起飞控制。

芝士奶盖发布于 2026/4/7更新于 2026/7/1945 浏览

环境搭建

前置环境

  • ROS2 Humble
  • Gazebo Classic (11)

1. 下载 PX4 源码

在 Home 目录下,使用 Git 克隆 PX4 代码仓库并更新所有子模块。

git clone https://github.com/PX4/PX4-Autopilot.git --recursive

注意: 源码包含许多子模块,不建议直接下载 GitHub ZIP 包解压,以免缺失依赖。国内网络克隆速度较慢,建议配置网络加速。

2. 运行自动安装脚本

PX4 提供自动化脚本以安装编译仿真环境所需的所有依赖。

cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh

若仅用于仿真且无需与硬件交互,可选择不安装固件/编译环境:

cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh --no-nuttx

3. 编译并运行示例

在 PX4-Autopilot 目录下执行以下命令:

make px4_sitl gazebo-classic_iris

首次编译耗时较长属正常现象。成功后将弹出 Gazebo 界面并在其中显示无人机模型。

4. 安装并配置 QGC(地面站)

QGroundControl (QGC) 是用于监控和操控飞机的电脑软件。安装前需对 Ubuntu 系统进行配置。

# 添加用户到 dialout 组以便访问 USB 设备
sudo usermod -aG dialout "$(id -un)"
# 移除 ModemManager,避免干扰串口通信
sudo apt-get remove modemmanager -y
# 安装 GStreamer 相关库及依赖
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libfuse2 -y
sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor-dev -y

从官方文档下载 Linux 版本并将文件移至主目录,赋予执行权限:

chmod +x ./QGroundControl-x86_64.AppImage

5. 安装 Micro-XRCE-DDS-Agent

该组件作为 ROS2 与 PX4 之间的通信桥梁。

# 安装依赖
sudo apt install -y ros-humble-ros-base ros-humble-geometry-msgs ros-humble-sensor-msgs

 ~
git  https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
 Micro-XRCE-DDS-Agent
 build &&  build
cmake ..
make
 make install
 ldconfig /usr/local/lib/
# 编译 Micro-XRCE-DDS-Agent
cd
clone
cd
mkdir
cd
sudo
sudo

注意: 编译过程对网络要求较高,建议使用网络加速并耐心等待。

6. 配置 PX4 的 ROS2 接口

cd ~/PX4-Autopilot
# 安装 Python 依赖
pip3 install --user -U empy pyros-genmsg setuptools
# 创建工作空间
mkdir -p ros2_ws/src
cd ros2_ws/src
# 克隆 PX4 消息包
git clone https://github.com/PX4/px4_msgs.git
git clone https://github.com/PX4/px4_ros_com.git
# 编译
cd ..
colcon build

注意: 若 Python 依赖出现版本问题,可尝试降级至稳定组合:

pip3 install --user empy==3.3.4 setuptools==59.8.0

每次创建 PX4 工作空间时,均需重新克隆消息包。

7. 启动流程

终端 1: 启动 Micro-XRCE-DDS-Agent(通信桥接)

MicroXRCEAgent udp4 -p 8888

终端 2: 启动 Gazebo 仿真

cd ~/PX4-Autopilot
make px4_sitl gazebo-classic_iris

终端 3: 启动 QGroundControl(可选,用于监控)

./QGroundControl-x86_64.AppImage

终端 4: 进入工作空间后启动控制节点,实现无人机起飞

ros2 run px4_ros_com offboard_control

参考资料

  • PX4 飞控官网:https://docs.px4.io/main/zh/
  • QGC 地面站:https://qgroundcontrol.com/

目录

  1. 环境搭建
  2. 前置环境
  3. 1. 下载 PX4 源码
  4. 2. 运行自动安装脚本
  5. 3. 编译并运行示例
  6. 4. 安装并配置 QGC(地面站)
  7. 添加用户到 dialout 组以便访问 USB 设备
  8. 移除 ModemManager,避免干扰串口通信
  9. 安装 GStreamer 相关库及依赖
  10. 5. 安装 Micro-XRCE-DDS-Agent
  11. 安装依赖
  12. 编译 Micro-XRCE-DDS-Agent
  13. 6. 配置 PX4 的 ROS2 接口
  14. 安装 Python 依赖
  15. 创建工作空间
  16. 克隆 PX4 消息包
  17. 编译
  18. 7. 启动流程
  19. 参考资料
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Effective Modern C++ 第 38 条:std::thread 与 std::future 析构行为详解
  • 二分查找算法进阶:山脉数组与旋转排序
  • 本地代码上传至 Gitee 的 Git 实战指南
  • VS Code Copilot 完整使用指南:从入门到进阶
  • C++入门:输入输出、缺省参数与函数重载
  • Llama-2-7B 昇腾 NPU 性能测评与部署实践指南
  • 大模型竞争加剧,建议将重心转向垂直模型
  • 大模型基础面试知识全解析:架构、训练与微调策略
  • Java 核心面试题与解析
  • 鸿蒙电商购物全栈项目:数据安全与合规
  • 现代 C++ 资源所有权与参数转发机制:std::move 与 std::forward 深度解析
  • Qwen3Guard-Gen-WEB 本地部署与内容安全审核实践
  • 大语言模型词表裁剪方法与实践
  • 医疗 AI 中的模型融合策略:从集成学习到实战案例
  • Z-Image-Turbo 对比 Stable Diffusion:速度、质量与部署优势详解
  • 华为 Kaggle 大师级智能体 Agent K v1.0 诞生,自主解决数据科学难题
  • AI 应用开发不仅是调接口:技术深度与工程实践解析
  • 构建 AI 鸿蒙应用:架构逻辑的转变
  • OpenClaw 多 Agent 模式:构建 AI 助手团队
  • Python 入门与应用:从基础语法到数据分析实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online