一:ROS2+gazebo+PX4环境搭建:环境搭建到无人机起飞

前言

写博客记录学习的过程。

由于博客是安装完环境后写的,因此实际可能会有一些出入,但是实际上也大差不差的。

环境搭建

前置环境

  • 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,并且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

https://docs.qgroundcontrol.com/master/zh/qgc-user-guide/getting_started/download_and_install.html中找到linux版本下载并将固件移到主目录下。

# 赋予 AppImage 文件执行权限 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 # 编译Micro-XRCE-DDS-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/

注意:在编译Micro-XRCE-DDS-Agent时,对网络的要求很高,使用国内网络的朋友建议开启网络加速,即使开启了网络加速,也需要一定时间,此时需要耐心等待。

6.配置 PX4 的 ROS2 接口

cd ~/PX4-Autopilot # 你的PX4目录 # 安装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的工作空间,都要克隆PX4的消息包。

7.启动

# 终端1:启动Micro-XRCE-DDS-Agent(通信桥梁) MicroXRCEAgent udp4 -p 8888 # 终端2:启动Gazebo仿真 cd ~/PX4-Autopilot make px4_sitl gazebo-classic_iris # 或者其他机型:gazebo-classic_iris_depth_camera, gazebo-classic_iris_vision等 # 终端3:启动QGroundControl(可选,用于监控) ./QGroundControl-x86_64.AppImage # 终端4:进入工作空间再启动,无人机起飞! ros2 run px4_ros_com offboard_control

总结

本文章完成了ROS2 + gazebo classic + PX4的仿真环境搭建,对后续无人机仿真的学习打下了坚实的环境基础。

这篇文章是我第一次写的文章,有些不足的地方可及时指出,也请多多包容。

参考资料

PX4飞控官网:https://docs.px4.io/main/zh/

QCG地面站:https://qgroundcontrol.com/

Read more

Llama-Factory是否支持Transformer-XL结构?

Llama-Factory 是否支持 Transformer-XL 结构? 在当前大语言模型(LLM)快速迭代的背景下,微调已成为将通用预训练模型适配到垂直场景的核心手段。随着 LoRA、QLoRA 等参数高效微调技术的普及,开发者不再需要从零搭建训练流水线,而是借助如 LLama-Factory 这类“一站式”框架,实现低门槛、高效率的模型定制。 这类工具之所以流行,关键在于其对主流架构的高度抽象与统一支持——无论是 LLaMA、Qwen 还是 ChatGLM,用户只需指定模型路径和配置参数,即可启动完整的微调流程。但当面对一些早期或非典型的模型结构时,比如 Transformer-XL,问题就变得复杂了:这些模型是否也能被无缝接入?它们的设计特性是否会打破现有框架的假设前提? 要回答这个问题,不能只看官方文档有没有列出某个名字,而必须深入理解 LLama-Factory 的底层机制,以及 Transformer-XL 本身的架构特点。 LLama-Factory 并不是一个独立的模型实现库,它本质上是建立在 Hugging Face Transformers 和

2026年最强AI写网文工具深度测评:ai写小说软件与AI写作平台全面对比

2026年最强AI写网文工具深度测评:ai写小说软件与AI写作平台全面对比

进入2026年,AI写作市场已经从“野蛮生长”步入了“精耕细作”的阶段。对于网文作者、短剧编剧以及漫剧创作者而言,现在的痛点早已不是“找不到AI工具”,而是“找不到能真正帮自己赚到钱的AI工具”。 市面上的大模型和写作软件多如牛毛,有的主打底层算力,有的主打现成模板。为了帮助大家避开商业化写作中的各种“暗坑”(如高昂的订阅费、平台AI查重退稿等),我们从底层逻辑推演、长文本连贯性、文本拟人度(防检测)、生态闭环与使用成本五个维度,对目前市面上最热门的四款工具——DeepSeek、豆包、笔灵AI、炼字工坊,进行了一次全方位、多角度的硬核排位测评。 一、 核心测评对象与定位 1. 通用算力天花板:DeepSeek —— 以强大的代码和逻辑推演能力霸榜的通用大模型。 2. 国民级灵感助手:豆包 (Doubao) —— 主打便捷交互、语音输入的轻量级AI。 3. 老牌模板化写作工具:笔灵AI —— 较早切入AI写作赛道,依靠预设模板库吸引用户的垂直软件。 4. 全链路商业变现新锐:

AMD显卡终极兼容性解决方案:llama.cpp快速部署完整指南

AMD显卡终极兼容性解决方案:llama.cpp快速部署完整指南 【免费下载链接】llama.cppPort of Facebook's LLaMA model in C/C++ 项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp 想要在AMD显卡上流畅运行llama.cpp却总是遇到各种兼容性问题?本文为你提供一套完整的解决方案,从问题识别到性能优化,手把手教你解决AMD显卡与Vulkan后端的兼容性挑战。 为什么AMD显卡与llama.cpp存在兼容性问题 AMD显卡用户在使用llama.cpp时常常面临Vulkan初始化失败、模型加载卡顿、推理速度缓慢等问题。这些问题主要源于: * 驱动版本不匹配:不同世代的AMD显卡对Vulkan标准的支持程度存在差异 * 内存管理机制冲突:AMD的显存管理与llama.cpp的预期存在偏差 * 着色器编译异常:特定驱动版本在编译SPIR-V着色器时会产生无效代码 这张矩阵乘法示意图展示了llama.cpp在GPU上进行张量运算的核心原理,帮助你理解为什么兼容性问

Stable-Diffusion-v1-5-archiveWebUI高可用:双实例+负载均衡+健康检查部署

Stable-Diffusion-v1-5-archive WebUI 高可用:双实例+负载均衡+健康检查部署 你是不是也遇到过这种情况:正在用 Stable Diffusion 生成一张重要的设计图,突然页面卡住,刷新一下直接 502 错误,所有工作进度都丢了。或者团队里几个人同时用,服务器就慢得像蜗牛,一张图要等好几分钟。 对于需要稳定、高效生成图片的团队或个人来说,单点部署的 WebUI 服务就像走钢丝——一旦服务挂了,所有工作都得停摆。今天,我就来分享一个实战方案:为 Stable-Diffusion-v1-5-archive WebUI 搭建一套高可用架构。 这套方案的核心很简单:部署两个 WebUI 实例,前面加一个负载均衡器,再配上自动健康检查。这样一来,任何一个实例出问题,流量会自动切到另一个健康的实例上,服务几乎不会中断。同时,负载均衡还能把用户请求分摊开,提升整体的处理能力。 下面,我就手把手带你从零搭建这套系统。 1. 方案设计与核心思路 在开始敲命令之前,