Ubuntu搭建PX4无人机仿真环境(5) —— 仿真环境搭建(以Ubuntu 22.04,ROS2 Humble,Micro XRCE-DDS Agent为例)

Ubuntu搭建PX4无人机仿真环境(5) —— 仿真环境搭建(以Ubuntu 22.04,ROS2 Humble,Micro XRCE-DDS Agent为例)

目录

前言

本教程基于 ROS2 ,在搭建之前,需要把 ROS2、QGC 等基础环境安装配置完成。但是这块的资料相比较于 ROS1 下的少很多,不利于快速上手和后期开发,小白慎选!

小白必看:👇👇👇👇👇👇👇
本次安装是以 px4 v1.14.0 为例,不适用之前的 px4 版本。
我的配置如下:
虚拟机 Ubuntu 22.04 (运行内存 4G、硬盘内存 80G) 、ROS2 HumbleQGC禁止无脑复制:首先大部分命令都有先后顺序,就是要上一个命令执行成下一个才能执行成功,对于不熟悉的命令可以直接复制问AI 这样还能顺带学习学习;其次在有些情况下多个命令一起执行会出现奇怪的错误,而且有些命令旁边有注释,有时候复制上去可能也会出现错误。建议使用虚拟机:虽然虚拟机得性能有限,但是对于新手入门阶段是完全够用了,后续大型仿真再用双系统也比较熟悉了。而且虚拟机有一个快照功能,可以保存当前虚拟机的状态 (相当于存档),这样如果后面出了问题要重新搭建环境,可以用快照回到上一个状态,这样就不用重头开始(我一般是安装好 ROS 拍一个、安装好 mavros 拍一个…)。关于网络:由于一些懂得都得的原因,再加上每个人的网络环境不同,我们下载 GitHub上的资源、安装 Python 包、apt 安装包等会时快时慢,所以大家会换源,比如一开始的换 apt 软件安装源等。但是下载资源一定要耐心,如果是网络问题,可以尝试多执行几次命令,而且有些我也给了相应的解决方案。

基于 ROS2 的 PX4 仿真环境搭建系列: 👇👇👇
建议安装之前可以先看看这个 👉 ubuntu搭建PX4无人机仿真环境(1) —— 概念介绍

Ubuntu安装ROS(2) —— 安装ROS2 humble(最新、超详细图文教程,包含配置rosdep)-ZEEKLOG博客

ubuntu搭建PX4无人机仿真环境(1) —— 概念介绍_Tfly__的博客-ZEEKLOG博客

ubuntu搭建PX4无人机仿真环境(3) —— ubuntu安装QGC地面站_Tfly__的博客-ZEEKLOG博客

ROS1 请看 👇👇👇

ubuntu搭建PX4无人机仿真环境(4) —— 仿真环境搭建、基于ROS1-ZEEKLOG博客

如果想要自己编译 PX4 固件可以看 Ubuntu编译PX4固件 这篇教程

1. 准备

1.1 下载 PX4 源码

方式一:

从 Github 上下载,但是比较考验个人网速

sudoaptinstallgit

下载并切换版本:

git clone https://github.com/PX4/PX4-Autopilot.git # 下载源码mv PX4-Autopilot PX4_Firmware # 更改目录名cd PX4_Firmware git checkout v1.14.0 # 切换版本

更新子模块:

git submodule update --init --recursive # 更新下载子模块

方式二:

从提供的网盘里下载,或者从QQ群(961297255)里下载

链接: https://pan.baidu.com/s/1MJWtK8XkLsdzvJKrpCMz6Q
提取码: rbrk

下载后解压,然后执行下面命令:

cd PX4_Firmware wget https://gitee.com/tyx6/mytools/raw/main/px4/set_executable.sh chmod +x set_executable.sh ./set_executable.sh 

1.2 安装仿真依赖

sudoaptinstall ros-dev-tools cd ~/PX4_Firmware/Tools/setup 
修改文件并备份 (就把 pip 安装源换成了清华源),这一步是可做可不做,如果觉得python 包下载太慢了,可以试试
chmod +x ubuntu.sh ./ubuntu.sh --no-nuttx --no-sim-tools # 这是官方提供的脚本 有两个可选参数# --no-sim-tools 不安装仿真环境# --no-nuttx 不安装交叉编译环境#(如果需要自己编译飞控固件,烧录到飞控中,那就需要交叉编译环境)# 脚本执行时间,跟个人网络有关,可能需要一段时间

安装完成后,重启 Ubuntu

1.3 安装 Gazebo

Gazebo是一款强大的3D仿真软件,主要用于机器人学的研究和开发。它提供了高度逼真的物理模拟环境,包括动力学、碰撞检测、传感器模型以及与真实世界相似的物理属性如重力、摩擦力等。Gazebo可以模拟各种类型的机器人,从移动机器人、无人机到机械臂,甚至可以模拟整个城市环境。

在这里插入图片描述


根据上图说明,Gazebo 官方做了更新将之前的 Gazebo Ignition 命名为 Gazebo,以前的 Gazebo 现在叫 Gazebo Classic ,而 Ubuntu 22.04 及以后的版本就支持 Gazebo (Gazebo Ignition) 。
因为几年前官方对 Gazebo 进行了重大架构变更,然后将变更后的版本叫 Gazebo Ignition,旧的仍叫 Gazebo。后面Gazebo Ignition 逐渐成熟并经过使用验证,所以他结束了旧的 Gazebo ( Gazebo 11 是 Gazebo Classic 的最后一个版本,支持到 2025 年 ),并重新对它们命了名。而且两个应该不能共存,安装一个会卸载另一个。

cd ~/PX4_Firmware/Tools/setup ./ubuntu.sh --no-nuttx # 这一步会安装仿真环境依赖,包括 gazebo# 脚本执行时间,跟个人网络有关

再运行一下 gazebo

gz sim 
在这里插入图片描述

成功后再重启 Ubuntu

2. 安装 Micro XRCE-DDS Agent

在这里插入图片描述

在 ROS2 中 PX4 使用 uXRCE-DDS 中间件来允许在配套计算机上发布和订阅 uORB 消息,就像它们是 ROS2 话题一样。这提供了 PX4 和 ROS2 之间快速可靠的集成,并使 ROS2 应用程序更容易获取车辆信息和发送命令,如上图所示。(来自官方文档说明)

这应该跟 ROS2 将中间件改为 DDS 有关,但是官方又说明了在 ROS2 中仍可以使用 MAVROS ,可能官方觉得在 ROS2 中 Micro XRCE-DDS Agent 更好用 😂,也可能是因为 MAVLink 是外部通信协议,uORB 是内部通信协议。

注:如果想用 Mavros 请参考这篇文章 👉 ubuntu搭建PX4无人机仿真环境(2) —— MAVROS安装(适用于ROS1、ROS2)-ZEEKLOG博客
使用方法跟 ROS1 类似,这里不做描述。

Micro XRCE-DDS Agent 与 MAVROS 的对比(来自豆包AI,仅供参考)
MAVROS 是 ROS(机器人操作系统)生态中连接 MAVLink 协议设备(如 PX4、ArduPilot 飞控)的主流工具,本质是 ROS 与 MAVLink 的桥梁。二者的核心差异体现在如下方面:

维度Micro XRCE-DDS AgentMAVROS
核心定位资源受限设备与 DDS 分布式网络的通信代理,支持多设备协同ROS 与 MAVLink 设备(如飞控)的通信桥梁,专注无人机控制
生态兼容性兼容 DDS 生态(如 Fast DDS、Cyclone DDS),可与非 ROS 系统集成强依赖 ROS 生态,仅支持 ROS 节点与 MAVLink 设备交互
资源占用客户端(Client)极轻量(适合 MCU 等嵌入式设备),Agent 本身资源消耗中等依赖 ROS 节点和进程,资源占用较高(不适合极简嵌入式环境)
灵活性支持自定义数据类型,可灵活扩展消息结构,适应复杂分布式场景消息类型固定为 MAVLink 标准消息,扩展需修改协议或自定义消息
实时性原生支持实时性配置(通过 DDS QoS),适合低延迟场景实时性依赖 ROS 调度,默认配置下实时性中等
适用场景无人机集群协同、多传感器分布式融合、跨平台设备互联单无人机与 ROS 系统的通信(如地面站控制、数据日志、任务规划)
优点1. 分布式架构,支持多设备协同; 2. 轻量级客户端适合嵌入式; 3. 可自定义消息,灵活性高; 4. 强实时性与 QoS 保障1. 无缝集成 ROS 生态,开发便捷; 2. 成熟稳定,支持 MAVLink 全功能(控制、参数、日志等); 3. 社区活跃,问题易解决
缺点1. 学习成本高(需理解 DDS 概念),目前资料相比于mavros少很多; 2. 与 ROS 集成需额外适配; 3. 对单设备简单通信场景略显复杂1. 依赖 ROS,非 ROS 环境下使用不便,但非ROS环境也有其他基于mavlink的库可以使用; 2. 分布式多设备协同能力弱; 3. 资源占用较高,不适合极简嵌入式
  • 下载源码:
git clone -b v2.4.2 https://github.com/eProsima/Micro-XRCE-DDS-Agent.git 
  • 编译:
cd Micro-XRCE-DDS-Agent mkdir build cd build cmake ..make# make 的时候还会额外下载代码,跟个人网速有有关,大概要10-20分钟
在这里插入图片描述


如果出现如下图错误:

在这里插入图片描述


build 目录下执行下面命令,改完后再重新 make:

sed -i 's/checkout 2\.12\.x --/checkout v2.12.1 --/' ./fastdds/tmp/fastdds-gitclone.cmake 

也可以用文本编辑器打开fastdds-gitclone.cmake 文件,将 2.12.x 改为 v2.12.1 就行。

  • 安装:
sudomakeinstallsudo ldconfig /usr/local/lib/ # 更新动态链接器的缓存
在这里插入图片描述

3. 编译 PX4

cd ~/PX4_Firmware make px4_sitl gz_x500 # 这步可能有点慢

出现这个表示编译成功 😄

在这里插入图片描述


错误 1️⃣:如果在虚拟机中可能遇到下面错误,这是由于在虚拟机设置中开启了 3D 图形加速,导致系统的 OpenGL 版本降低。

在这里插入图片描述

参考这个 Issue 中的解决方法,降低仿真使用的渲染引擎的版本

打开文件,修改处大概在 73 行:

gedit ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/px4-rc.simulator 

修改前:

if[ -z "${HEADLESS}"];then# HEADLESS not set, starting gui${gz_command}${gz_sub_command} -g &fi

修改后:

if[ -z "${HEADLESS}"];then# HEADLESS not set, starting gui${gz_command}${gz_sub_command} -g --render-engine ogre &fi

错误 2️⃣:如果编译过程中出现类似下面错误,应该是 gz_bridge 启动超时

INFO [gz_bridge] world: default, model name: x500_0, simulation model: x500 ERROR [gz_bridge] Service call timed out ERROR [gz_bridge] Task start failed (-1) ERROR [init] gz_bridge failed to start ERROR [px4] Startup script returned with return value: 256

参考下面链接中给出的解决方法 👇
make px4_sitl gz_x500出错 - 哔哩哔哩

然后,再重新编译

4. 通信测试

打开一个终端,启动 MicroXRCEAgent:

MicroXRCEAgent udp4 -p 8888

打开另一个终端,启动仿真:

cd ~/PX4_Firmware make px4_sitl gz_x500 

都启动后,可以看到通信成功

在这里插入图片描述

5. 官方 offboard 程序

  • 创建工作空间:
mkdir -p ~/ros2_ws/src 
  • 下载源码:
cd ~/ros2_ws/src # 1.14git clone https://github.com/PX4/px4_msgs.git -b release/1.14 git clone https://github.com/PX4/px4_ros_com.git -b release/v1.14 # 1.15# git clone https://github.com/PX4/px4_msgs.git -b release/1.15# git clone https://github.com/PX4/px4_ros_com.git -b release/1.15
  • 编译:
cd ~/ros2_ws colcon build 
在这里插入图片描述
  • 更新环境:
echo"source ~/ros2_ws/install/setup.bash">> ~/.bashrc source ~/.bashrc #使环境生效

6. offboard 测试

先启动 QGC,然后执行下面命令

  • 终端一,启动 MicroXRCEAgent:
MicroXRCEAgent udp4 -p 8888
  • 终端二,启动仿真:
cd ~/PX4_Firmware make px4_sitl gz_x500 
  • 终端三,启动官方 offboard 案例(上升5米):
ros2 run px4_ros_com offboard_control 
在这里插入图片描述
注:如果过了一段时间,无人机无法 offboard 起飞,程序都正常启动,这时可以尝试下面命令

然后重新编译

编译成功后,记得 source 一下,再重新offboard测试

到这 PX4 无人机基本仿真环境就搭建完成了,大家可以基于此来拓展自己的仿真。
建了个交流群QQ群(961297255),方便大家交流学习,但是关于 ROS2 下的 PX4 仿真资料不多
😁

参考

ROS 2 用户指南 | PX4 Guide (main)
PX4 ROS 2 User Guide v1.14
PX4 documentation
uXRCE-DDS
Ubuntu Development Environment
a-new-era-for-gazebo

如有其他问题,或者发现文章有错误,请在评论区留言
Keep learning!

Read more

VsCode和AI的前端使用体验:分别使用了Copilot、通义灵码、iflyCode和Trae

1、前言 大杂烩~每次开发一行代码,各个AI争先恐后抢着提供帮助 备注:四款插件都需要先去官网注册账号,安装好之后有个账号验证。 2、插件详解  2.1、AI分析的答案 * GitHub Copilot * 定位:老牌 AI 代码补全工具,深度集成于 VS Code,基于海量 GitHub 代码库训练,擅长代码片段生成和上下文补全。 * 基本使用:在代码编辑器中输入函数头或注释,自动生成后续代码。支持自动生成提交信息、调试建议和多文件上下文理解,但需手动选择文件。 * 功能特点:具有多语言支持、高准确性的特点,适用于复杂项目和全栈开发,能满足追求效率的企业团队在日常代码补全、快速原型开发中的需求。 * 注册地址:GitHub Copilot · Your AI pair programmer · GitHub * 通义灵码 * 定位:阿里推出的免费 AI

AIGC 与艺术创作:机遇

AIGC 与艺术创作:机遇

目录 一.AIGC 的崛起与艺术领域的变革 二.AIGC 在不同艺术形式中的应用 1.绘画与视觉艺术 2.音乐创作 三.AIGC 为艺术创作带来的机遇 1.激发创意灵感 2.提高创作效率 总结 在当今数字化时代,人工智能生成内容(AIGC)正以惊人的速度重塑着艺术创作的格局,为艺术家们带来了令人振奋的新机遇。 一.AIGC 的崛起与艺术领域的变革 随着人工智能技术的不断进步,AIGC 逐渐在艺术领域崭露头角。它依托强大的机器学习算法和深度学习模型,能够分析大量的艺术作品数据,并从中学习各种风格、技巧和表现形式。 例如,OpenAI 的 DALL・E 2 是一款强大的图像生成模型。艺术家可以输入描述 “一只穿着太空服的猫在月球上漫步”,DALL・E 2 就能生成一幅非常逼真且富有创意的图像。这一技术突破使得艺术创作不再局限于传统的手工绘制,而是可以通过算法来实现。艺术家们可以利用这些工具来快速探索不同的创意方向,

PaperRed——2026年AI论文写作、AI降重、降低aigc,免费查重的网站

PaperRed——2026年AI论文写作、AI降重、降低aigc,免费查重的网站

一、PaperRed高校合作查重系统——智能学术诚信守护者 核心科技,精准查重 依托第六代A-NLP自然语言处理技术,构建涵盖9亿篇文献的超大数据库,实现深度语义解析与精准查重,高效识别学术雷同片段,为学术成果原创性保驾护航。 全流程学术支持 * 智能查重:一键上传检测,快速定位重复内容,生成含溯源信息的详细报告; * 自动降重:AI智能改写优化,在降低重复率的同时,完整保留核心观点与表达逻辑; * AIGC辅助:支持AI生成内容的检测与针对性优化,适配学术领域新趋势与新要求; * 高效工具集:内置PPT生成、论文速成等实用功能,全方位提升学术创作效率。 高校合作优选 专为学术场景量身打造,覆盖论文、报告、课题材料等多类文件的检测需求,数据存储安全可靠,操作流程简洁便捷,已成为众多高校师生信赖的学术辅助工具。 二、PaperRed论文助手——精准查重,轻松降重 三版可选,满足全阶段学术需求 版本对比,一键甄选 专业版 * 价格:0元/字 * 数据库:涵盖14个(近5年文献资源) * 亮点:

在 Mac Mini M4 上本地跑大模型(Ollama + Llama + ComfyUI + Stable Diffusion | Flux)

在 Mac Mini M4 上本地跑大模型(Ollama + Llama + ComfyUI + Stable Diffusion | Flux)

Mac Mini M4 配备了苹果自家研发的 M1/M2/M4 芯片,具有强大的处理能力,能够支持本地跑一些大模型,尤其是在使用如 Ollama、Llama、ComfyUI 和 Stable Diffusion 这类 AI 相关工具时,性能表现非常好。本教程将指导你如何在 Mac Mini M4 上本地部署并运行这些大模型,涵盖从环境搭建到使用的全流程。 一、准备工作 1. 确保系统更新 确保你的 macOS 版本已更新到最新的版本(例如 macOS 13.0 以上),这将确保兼容性和性能。 安装 Homebrew(macOS 包管理工具) Homebrew 是 macOS 上非常流行的包管理工具,它帮助你方便地安装各种软件。在终端中输入以下命令来安装