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

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

ROS2、Gazebo Classic 与 PX4 仿真环境搭建全流程。涵盖源码获取、依赖安装、通信桥接配置及多终端协同启动。重点解决国内网络编译慢、端口冲突及地面站连接问题,实现虚拟无人机自动起飞验证。

奶糖兔发布于 2026/4/8更新于 2026/5/57 浏览

前言

本文提供一套完整的 ROS2 + Gazebo Classic + PX4 仿真环境搭建方案,从源码编译到无人机在仿真器中起飞。实际安装过程可能因系统版本略有差异,但核心逻辑一致。

前置环境

确保系统已安装以下基础组件:

  • ROS2 Humble
  • Gazebo Classic (版本 11)

1. 获取 PX4 源码

在 Home 目录下克隆仓库并更新子模块。建议使用 Git 而非直接下载 ZIP,否则可能缺失关键依赖。

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

**注意:**国内网络克隆速度较慢,建议开启网络加速工具。

2. 运行自动安装脚本

PX4 提供了自动化脚本处理依赖。若仅进行仿真测试,无需编译固件或 NuttX 环境,可跳过耗时较长的编译步骤。

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

3. 编译并运行仿真示例

进入项目目录执行构建命令。首次编译耗时较长,请耐心等待。

cd ~/PX4-Autopilot
make px4_sitl gazebo-classic_iris

成功后将弹出 Gazebo 界面,显示黑色 Iris 无人机模型,即表示启动成功。

4. 配置地面站 QGroundControl

QGroundControl (QGC) 用于监控和操控。Ubuntu 需做少量配置以支持串口通信和视频流。

# 添加用户权限
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

前往官网下载 Linux 版 AppImage 包,赋予执行权限后运行:

chmod +x ./QGroundControl-x86_64.AppImage
./QGroundControl-x86_64.AppImage

5. 部署 Micro-XRCE-DDS-Agent

这是 ROS2 与 PX4 SITL 之间的通信桥梁。编译过程对网络稳定性要求较高。

sudo apt install -y ros-humble-ros-base ros-humble-geometry-msgs ros-humble-sensor-msgs
cd ~
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
 Micro-XRCE-DDS-Agent
 build &&  build
cmake ..
 make
 make install
 ldconfig /usr/local/lib/
cd
mkdir
cd
sudo
sudo
sudo

6. 配置 PX4 ROS2 接口

创建工作空间并编译消息包。Python 依赖版本需注意兼容性。

cd ~/PX4-Autopilot
pip3 install --user empy==3.3.4 setuptools==59.8.0
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

7. 启动仿真与飞行控制

分四个终端窗口操作,保持逻辑清晰。

终端 1:启动通信代理

MicroXRCEAgent udp4 -p 8888

终端 2:启动 Gazebo 仿真

cd ~/PX4-Autopilot
make px4_sitl gazebo-classic_iris

终端 3:打开地面站(可选)

./QGroundControl-x86_64.AppImage

终端 4:下发起飞指令

source install/setup.bash
ros2 run px4_ros_com offboard_control

此时无人机应能自动起飞。后续可根据需求调整机型参数或传感器配置。


本方案完成了 ROS2 与 PX4 的联合仿真链路打通,为后续开发打下基础。过程中如遇网络问题,优先检查代理设置;编译报错时留意依赖版本匹配情况。

目录

  1. 前言
  2. 前置环境
  3. 1. 获取 PX4 源码
  4. 2. 运行自动安装脚本
  5. 3. 编译并运行仿真示例
  6. 4. 配置地面站 QGroundControl
  7. 添加用户权限
  8. 移除冲突服务
  9. 安装视频流库
  10. 5. 部署 Micro-XRCE-DDS-Agent
  11. 6. 配置 PX4 ROS2 接口
  12. 7. 启动仿真与飞行控制
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • Ψ0 人形全身 VLA:基于人类视频预训练与 MM-DiT 后训练方案
  • OpenClaw 多机器人协作团队构建实践
  • 大模型微调技术:LoRA(低秩适应)工作原理深度解析
  • Go 语言快速学习总结
  • 前端文件上传处理最佳实践
  • Spring Boot 开发入门:从零搭建第一个 Web 项目
  • DVC 实战指南:像 Git 一样管理数据和模型
  • AI 生成 UI 设计工具盘点:主流平台与免费额度参考
  • 无人机平台与算法监督平台离线部署指南
  • Web 架构深度解析:前后端分离与传统模式对比
  • Unity+AI 用一句话制作完整小游戏:飞翔的牛马
  • 微信小程序 WebView PostMessage 通信指南
  • 深入理解 IDE 中 LLM 调用的 Session 机制
  • GitHub Copilot 自定义指令配置实战:让 AI 遵循团队规范
  • Python AI 入门与学习路线指南
  • 前端权限管理实现方案与最佳实践
  • 移动云算联网助力物流网络智能化升级方案
  • 零成本搭建飞书机器人:基于 Webhook 的高效消息推送实践
  • JWT(JSON Web Token)结构化知识体系
  • Python 实现 MCP 客户端调用高德地图天气查询示例

相关免费在线工具

  • 加密/解密文本

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