跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Shell / Bash算法

ROS2+Gazebo+PX4 环境搭建与无人机起飞实战

ROS2 Humble 结合 Gazebo Classic 与 PX4 飞控构建无人机仿真环境,涵盖源码编译、依赖配置及地面站联调全流程。通过 Micro-XRCE-DDS-Agent 实现通信桥接,完成从环境部署到 offboard 控制起飞的完整链路验证。

女王发布于 2026/3/23更新于 2026/4/263 浏览

ROS2 + Gazebo Classic + PX4 仿真环境搭建

本文记录在 Ubuntu 环境下配置 ROS2 Humble、Gazebo Classic 及 PX4 飞控的完整流程,涵盖从源码编译到地面站联调,最终实现仿真无人机起飞。

前置准备

确保系统已安装以下基础环境:

  • ROS2 Humble
  • Gazebo Classic (版本 11)

1. 获取 PX4 源码

在用户主目录下克隆 PX4-Autopilot 仓库。务必使用 --recursive 参数以同步子模块,避免后续编译报错。

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

提示:国内网络访问 GitHub 可能较慢,建议开启代理加速。不要直接下载 ZIP 包,否则会丢失必要的子模块依赖。

2. 运行自动化安装脚本

进入 PX4 目录,执行官方提供的 Ubuntu 依赖安装脚本。由于本教程仅涉及软件在环(SITL)仿真,无需编译固件或 NuttX 环境,可跳过耗时较长的编译步骤。

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

3. 编译并启动仿真

在 PX4-Autopilot 根目录下执行编译命令。首次编译耗时较长,请耐心等待。

make px4_sitl gazebo-classic_iris

编译成功后,终端将自动弹出 Gazebo 窗口,并显示一架黑色 Iris 四旋翼模型,表示仿真环境就绪。

文章配图

4. 配置 QGroundControl 地面站

QGroundControl (QGC) 用于监控和操控飞行器。在 Ubuntu 上运行前需进行几项系统配置,以确保串口通信和视频流正常。

4.1 系统权限与依赖

将当前用户加入 dialout 组以访问串口设备,移除可能干扰串口的 ModemManager,并安装视频流所需库。

sudo usermod -aG dialout "$(id -un)"
sudo apt-get remove modemmanager -y
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

4.2 安装 QGC

前往官网下载 Linux 版本的 AppImage 安装包,移至主目录并赋予执行权限。

 +x ./QGroundControl-x86_64.AppImage
chmod

5. 部署 Micro-XRCE-DDS-Agent

该组件是 ROS2 与 PX4 SITL 之间的通信桥梁。由于编译过程对网络要求较高,同样建议使用代理。

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

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

6. 配置 PX4 ROS2 接口

需要构建一个 ROS2 工作空间来集成 PX4 的消息包。

cd ~/PX4-Autopilot
# 安装 Python 依赖
pip3 install --user -U empy pyros-genmsg setuptools

# 创建工作空间
mkdir -p ros2_ws/src
cd ros2_ws/src
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. 终端 1:启动 DDS 代理(通信桥梁)
    MicroXRCEAgent udp4 -p 8888
    
  2. 终端 2:启动 Gazebo 仿真
    cd ~/PX4-Autopilot
    make px4_sitl gazebo-classic_iris
    
  3. 终端 3:启动 QGroundControl(可选,用于可视化监控)
    ./QGroundControl-x86_64.AppImage
    
  4. 终端 4:运行 offboard 控制节点(触发起飞)
    source ~/ros2_ws/install/setup.bash
    ros2 run px4_ros_com offboard_control
    

至此,仿真环境搭建完成,无人机应能按预设逻辑起飞。后续可根据需求更换机型(如 gazebo-classic_iris_depth_camera)或调整控制策略。

参考资料

  • PX4 飞控文档
  • QGroundControl 指南

目录

  1. ROS2 + Gazebo Classic + PX4 仿真环境搭建
  2. 前置准备
  3. 1. 获取 PX4 源码
  4. 2. 运行自动化安装脚本
  5. 3. 编译并启动仿真
  6. 4. 配置 QGroundControl 地面站
  7. 4.1 系统权限与依赖
  8. 4.2 安装 QGC
  9. 5. 部署 Micro-XRCE-DDS-Agent
  10. 安装 ROS2 基础依赖
  11. 编译 Agent
  12. 6. 配置 PX4 ROS2 接口
  13. 安装 Python 依赖
  14. 创建工作空间
  15. 编译
  16. 7. 启动与飞行控制
  17. 参考资料
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 基于YOLOv10n-SOEP-PST的助老机器人目标检测系统详解
  • Magic API 低代码接口开发平台完全指南
  • Windows 部署 OpenAkita 接入飞书实现本地 AI 助手
  • AI 写小说全流程指南及三款工具推荐
  • 数据结构:八种常见排序算法详解
  • OpenClaw 安装与飞书机器人接入指南
  • 现代 C++ 构建高性能 HTTP 服务器设计与实现
  • 前端表单验证实战:构建健壮的数据入口
  • Ubuntu 系统下 Node.js 环境配置与常见问题解决
  • AI 辅助开发实战:基于 DeepSeek 构建贪吃蛇游戏
  • FPGA 工程实战经验:板级调试与 Qsys 系统搭建
  • ArrowDL BT 下载工具 v4.2.1 中文版安装教程
  • WebGIS 视角下的省域区县天气可视化实战攻略
  • 最大流与最小割算法详解:Dinic 算法实现与优化
  • 深入理解 Git 工作流程:从概念到实战选择
  • ComfyUI-Manager 插件安装与管理指南
  • AI 电话机器人源码解析:架构优化提升 10 倍并发效率
  • Coze 工作流实战:逻辑控制、数据处理与 AIGC 多媒体应用
  • AI 编程工具定价对比:Cursor、Windsurf、Kiro、Zed 及 VS Code
  • 单链表综合练习:删除指定节点、反转与查找中间节点

相关免费在线工具

  • 加密/解密文本

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