一: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

Z-Image-Turbo镜像推荐:Gradio WebUI免配置快速上手教程

Z-Image-Turbo镜像推荐:Gradio WebUI免配置快速上手教程 你是不是也遇到过这些情况:想试试最新的AI绘画模型,结果卡在环境搭建上——下载权重动辄几十GB、配置CUDA版本让人头大、改配置文件改到怀疑人生?或者好不容易跑起来了,WebUI界面又丑又难用,中文提示词还乱码?别折腾了。今天要介绍的这个镜像,真的做到了“点开即用”。 Z-Image-Turbo不是又一个参数堆砌的玩具模型,而是阿里通义实验室实打实打磨出来的高效文生图方案。它不靠堆显存换效果,而是用蒸馏技术把大模型的精华“浓缩”出来——8步出图、照片级质感、中英文文字渲染稳得一批,16GB显存的消费级显卡就能扛住。更重要的是,它被完整集成进了一个开箱即用的ZEEKLOG镜像里,连Gradio界面都给你调好了配色和字体,连“怎么输入中文”这种细节都考虑到了。 这篇文章不讲原理推导,不列参数表格,也不让你手动clone仓库、pip install一堆包。我们就用最直白的方式,带你从零开始,在5分钟内看到第一张由Z-Image-Turbo生成的高清图像。你不需要懂Diffusers,不需要会调acceler

【高级前端架构进阶】Nginx与Web 安全加固

【高级前端架构进阶】Nginx与Web 安全加固

🥅Nginx与Web 安全加固 🚪 引言 大家好!我是老曹,今天我们来聊聊Nginx的安全加固。在互联网这个"弱水三千"的世界里,我们的服务器就像一个"裸奔"的勇士,随时面临着各种安全威胁。🔥 Nginx 作为前端守护神,必须穿上"防弹衣"才能抵御恶意攻击。今天就让我们一起给Nginx来个"全副武装"! 🎯 学习目标 1. 🛡️ 掌握Nginx安全加固的基本概念和重要性 2. 🔍 理解server_tokens、ModSecurity插件、CSP设置的核心原理 3. 💻 学会配置各种安全策略来保护Web应用 4. 🚨 了解常见安全漏洞及防护措施 5. 📊 掌握安全配置的最佳实践 📋 核心知识点详解 ✅1. server_tokens 配置原理 🛡️ server_tokens 是Nginx的第一个安全防线,

WebToEpub完全指南:3步将网页小说变成精美EPUB电子书

WebToEpub完全指南:3步将网页小说变成精美EPUB电子书 【免费下载链接】WebToEpubA simple Chrome (and Firefox) Extension that converts Web Novels (and other web pages) into an EPUB. 项目地址: https://gitcode.com/gh_mirrors/we/WebToEpub 还在为网络小说无法离线阅读而烦恼吗?WebToEpub正是您需要的解决方案!这款免费浏览器扩展能够将任何网页内容快速转换为标准EPUB格式电子书,让您随时随地享受阅读乐趣。无论是连载小说、技术文档还是个人博客,WebToEpub都能轻松处理,真正实现"网页即电子书"的便捷体验。 🎯 为什么选择WebToEpub? 完全免费的本地处理 WebToEpub最大的优势在于完全免费且处理过程在本地进行。您的所有数据都不会上传到服务器,确保隐私安全。同时支持Chrome和Firefox两大主流浏览器,满足不同用户的使用习惯。 广泛的网站兼容性 内置数百个网站的专用解析器,涵盖主流轻小

前端微前端:别让你的应用变成巨石应用

前端微前端:别让你的应用变成巨石应用 毒舌时刻 这应用做得跟巨石似的,想改个功能都得动全身。 各位前端同行,咱们今天聊聊前端微前端。别告诉我你还在维护一个巨大的单体应用,那感觉就像在没有分区的大房子里生活——能住,但乱得要命。 为什么你需要微前端 最近看到一个项目,代码量超过 100 万行,构建时间超过 10 分钟,团队协作困难。我就想问:你是在做应用还是在做代码仓库? 反面教材 // 反面教材:单体应用 // App.jsx import React from 'react'; import Header from './components/Header'; import Sidebar from './components/Sidebar'; import Dashboard from