在ROS2(humble)+Gazebo+rqt下,实时显示仿真无人机的相机图像

article/2025/9/5 13:48:22

文章目录

  • 前言
  • 一、版本检查
    • 检查ROS2版本
  • 二、步骤
    • 1.下载对应版本的PX4
      • (1)检查PX4版本
      • (2)修改文件名
      • (3)下载正确的PX4版本
    • 2.下载对应版本的Gazebo
      • (1)检查Gazebo版本
      • (2)卸载不正确的Gazebo版本
      • (3)下载正确的Gazebo版本
    • 3.安装bridge包
    • 4.启动
  • 总结


前言

在ROS2的环境下,进行无人机仿真的过程中,有时需要调取无人机的相机图像信息,这里使用rqt获取。
提示:注意PX4,ROS2以及Gazebo的版本
PX4需要在1.16以下,Gazebo需要Gazebo sim7


一、版本检查

我使用的是ROS2的humble版本,PX4版本是1.15.3,Gazebo的版本是Gazebo sim7。
注意:这一步很重要,版本相互对应。否则会出现下图情况——无法显示相机图像。
如果你是其他版本的ROS,那需要寻找对应的PX4与Gazebo版本,或者卸载使用和我一样的环境

在这里插入图片描述

检查ROS2版本

按 Ctrl + Alt + T,打开终端,输入以下代码,查询已安装的ROS2版本。

gazebo --version

如果不是ROS2的humble版本,可以参考这篇文章《一键安装ROS/ROS2》重新下载ROS2。

二、步骤

1.下载对应版本的PX4

(1)检查PX4版本

按 Ctrl + Alt + T,打开终端,输入以下代码

cd ~/PX4-Autopilot
git describe --tags

(2)修改文件名

如果不是1.15.3版本,可打开home文件,找到PX4-Autopilot文件夹,修改它的名字。这样就可以下载新的PX4了。

(3)下载正确的PX4版本

在终端中,输入以下代码,安装1.15.3版本的PX4版本。

git clone --branch v1.15.3 --recursive https://github.com/PX4/PX4-Autopilot.git
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

详细情况可以参考这篇文章:
《如何查询已安装的PX4版本,如何下载指定版本的PX4,PX4未下载完全怎么处理》

2.下载对应版本的Gazebo

(1)检查Gazebo版本

按 Ctrl + Alt + T,打开终端,输入以下代码,查看已安装的gazebo版本。

gazebo --version

(2)卸载不正确的Gazebo版本

如果不是Gazebo sim7,输入以下命令,查找已安装的Gazebo

 dpkg --list | grep gz

再输入以下命令,XXXX为你想要删除的Gazebo

 sudo apt remove XXXXsudo apt autoremove

(3)下载正确的Gazebo版本

输入以下代码,下载对应版本的Gazebo。

sudo apt install ros-humble-ros-gzgarden

3.安装bridge包

输入以下代码

sudo apt update
sudo apt install ros-humble-ros-gz-image

点击,bridge的Github官网,即可查看详细内容。

4.启动

按 Ctrl + Alt + T,打开第一个终端,输入以下代码,打开带相机的无人机仿真。

cd ~/PX4-Autopilot
make px4_sitl gz_x500_depth

按 Ctrl + Alt + T,打开第二个终端,输入以下代码:

ros2 run ros_gz_image image_bridge /camera

按 Ctrl + Alt + T,打开第三个终端,输入以下代码:

ros2 run rqt_image_view rqt_image_view

我们可以看见无人机相机图像了。

在这里插入图片描述

总结

以上就是今天要讲的内容,希望对大家有所帮助,接下来,我还会分享更多的文章,希望可以帮助到大家。


http://www.hkcw.cn/article/BWoRwXgpUd.shtml

相关文章

Git的三种合并方式

在 Gitee(码云)中合并分支主要有三种方式:​普通合并(Merge Commit)、压缩合并(Squash Merge)​和变基合并(Rebase Merge)​。每种方式适用于不同的场景,各有…

微机系统-汇编语言入门

汇编语言及其程序设计 -1:汇编语言的语句格式 [名字] 操作符 操作数; [注释] 名字: 1. 是一种标识符。 2. 组成:A~Z,a~z; 0~9; 专用符号 ?. _$ 3. 限制&…

互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景

一:并发 1.1MySQL并发事务访问相同记录 (1)读-读 不影响 (2)写-写 写的数据需要一个一个来,排队执行 (3)读-写 两次读…

影楼精修-AI追色算法解析

注意:本文样例图片为了避免侵权,均使用AIGC生成; AI追色是像素蛋糕软件中比较受欢迎的一个功能点,本文将针对AI追色来解析一下大概的技术原理。 功能分析 AI追色实际上可以理解为颜色迁移的一种变体或者叫做升级版,…

MATLAB中的table数据类型:高效数据管理的利器

MATLAB中的table数据类型:高效数据管理的利器 什么是table数据类型? MATLAB中的table是一种用于存储列向数据的数据类型,它将不同类型的数据组织在一个表格结构中,类似于电子表格或数据库表。自R2013b版本引入以来,t…

nacos服务注册

Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。 1. 服务注册到nacos Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此…

【FPGA开发】Ubuntu16.04环境下配置Vivado2018.3—附软件包

文章目录 环境介绍关键步骤记录安装虚拟机及镜像安装vivadolicense导入 环境介绍 vivado:2018.3 虚拟机:vmware 16 pro 镜像:Ubuntu16.04 64位 所有相关软件压缩包: 链接:https://pan.quark.cn/s/fd2730b46b20 提取码…

安全帽检测算法AI智能分析网关V4守护工地/矿山/工厂等多场景作业安全

一、方案概述​ 在工业生产与建筑施工场景中,安全帽是保障人员安全的重要装备。但传统人工巡检效率低、易疏漏,难以满足现代安全管理需求。AI智能分析网关V4安全帽检测方案,借助人工智能与计算机视觉技术,实现作业现场安全帽佩戴…

【计算机网络】第2章:应用层—应用层协议原理

目录 1. 网络应用的体系结构 2. 客户-服务器(C/S)体系结构 3. 对等体(P2P)体系结构 4. C/S 和 P2P 体系结构的混合体 Napster 即时通信 5. 进程通信 6. 分布式进程通信需要解决的问题 7. 问题1:对进程进行编址…

Baklib云内容中台构建实践

云端资产整合实践 在数字化转型进程中,企业通常面临多系统数据孤岛与内容管理低效的挑战。Baklib云内容中台通过微服务架构设计,实现了跨平台文档、音视频及结构化数据的统一纳管,支持将分散在本地服务器、第三方云存储及业务系统中的数字资…

SOC-ESP32S3部分:17-I2C驱动实例-EEPROM温湿度传感器

飞书文档https://x509p6c8to.feishu.cn/wiki/KrlCwmlKcikvZ5knxEbcrewwn1c EEPROM 特别说明,目前ESP32S3由于IO数量少的原因,是没有连接底板的EEPROM的,我们这里只进行代码讲解,这个工程不能在板卡运行的。 我们学习基础课程时…

局域网内文件共享的实用软件推荐

软件介绍 在日常办公、学习或家庭网络环境里,局域网内文件共享是个常见需求。有一款免费的局域网共享软件非常适合这种场景。 这款局域网共享软件使用起来非常简单,不需要安装,直接点击就能使用。 软件下载 链接:​​https://p…

华为OD机试真题——AI面板识别(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

EasyRTC音视频实时通话助力微信小程序:打造低延迟、高可靠的VoIP端到端呼叫解决方案

一、方案概述​ 在数字化通信浪潮下,端到端实时音视频能力成为刚需。依托庞大用户生态的微信小程序,是实现此类功能的优质载体。基于WebRTC的EasyRTC音视频SDK,为小程序VoIP呼叫提供轻量化解决方案,通过技术优化实现低延迟通信&a…

YOLOv8 实战指南:如何实现视频区域内的目标统计与计数

文章目录 YOLOv8改进 | 进阶实战篇:利用YOLOv8进行视频划定区域目标统计计数1. 引言2. YOLOv8基础回顾2.1 YOLOv8架构概述2.2 YOLOv8的安装与基本使用 3. 视频划定区域目标统计的实现3.1 核心思路3.2 完整实现代码 4. 代码深度解析4.1 关键组件分析4.2 性能优化技巧…

远程调用 | OpenFeign+LoadBalanced的使用

目录 RestTemplate 注入 OpenFeign 服务 LoadBalanced 服务 LoadBalanced 注解 RestTemplate 注入 创建 配置类,这里配置后 就不用再重新new一个了,而是直接调用即可 import org.springframework.cloud.client.loadbalancer.LoadBalanced; import …

Ansys Zemax | 手机镜头设计 - 第 2 部分:光机械封装

本文该系列文章将讨论智能手机镜头模组设计的挑战,涵盖了从概念、设计到制造和结构变形的分析。本文是四部分系列的第二部分,介绍了在 Ansys Speos 环境中编辑光学元件以及在整合机械组件后分析系统。案例研究对象是一家全球运营制造商的智能手机镜头系统…

ubuntu 22.04安装k8s高可用集群

文章目录 1.环境准备(所有节点)1.1 关闭无用服务1.2 环境和网络1.3 apt源1.4 系统优化1.5 安装nfs客户端 2. 装containerd(所有节点)3. master的高可用方案(master上操作)3.1 安装以及配置haproxy&#xff…

k8s中kubeSphere的安装使用+阿里云私有镜像仓库配置完整步骤

一、实验目的 1、掌握kubeSphere 的安装部署 2、掌握kubesphere 使用外部镜像仓库; 2、熟悉图像化部署任务:产生pod---定义服务--验证访问 本次实验旨在通过 KubeSphere 平台部署基于自定义镜像(nginx:1.26.0 )的有状态副本集…

innovus: write_lef_abstract如何写入stripe信息

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 block level需要把pg 信息写到lef里,方便top level查看,这里提供一种简单方法: write_lef_abstract -5.8 -PGPinLayers {ME5 ME6 ME7 ME8 AL_RDL} -str…