跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书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/9/1071 浏览

环境搭建

前置环境

  • 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. 参考资料

更多推荐文章

查看全部
  • 前端精确数字运算方案:使用 BigNumber.js 解决 JavaScript 精度问题
  • ControlNet-sd21 配置指南:AI 绘画控制参数与模式解析
  • IronClaw 简介、安装使用与案例应用详解
  • Java 终面追问实录:HashMap 底层、Spring 理念与 Snowflake 分布式 ID
  • 京东 Java 社招面试复盘:源码阅读与基础夯实
  • 设计支持万人并发抢购的秒杀系统架构方案
  • 字节 Trae 腾讯 CodeBuddy 阿里 Qoder 集成 OneCode 低代码平台对比
  • Video2Robot:从视频到机器人动作的端到端生成管道
  • 15 种高级 RAG 技术指南:从预检索到生成
  • Java JDK 21 安装与环境配置指南(Windows + macOS)
  • 三款云电脑部署 DeepSeek 实测:ToDesk、顺网与海马云横向对比
  • Java Web 实战:JSON 处理、单元测试与会话管理
  • RuoYi-Vue3 跨平台实践:基于 Electron 的桌面化迁移方案
  • SpringBoot 无人机智能管控系统设计与实现
  • Linux poll 多路复用详解:select 的改进与局限
  • Trae AI IDE 安装与使用教程
  • 2025 毕业论文 AIGC 检测工具测评:10 款主流软件降率效果对比
  • Windows 系统安装 Neo4j 图数据库指南
  • Tomcat 下载、安装与环境配置实战指南
  • 通义万相 2.1 多模态 AI 生成技术解析与应用前景

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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