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

文章目录


前言

在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版本。

c 复制代码
gazebo --version

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

二、步骤

1.下载对应版本的PX4

(1)检查PX4版本

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

c 复制代码
cd ~/PX4-Autopilot
git describe --tags

(2)修改文件名

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

(3)下载正确的PX4版本

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

c 复制代码
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版本

打开已有的Gazebo,点击左上角,选取about,可查看当前Gazebo的版本。

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

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

c 复制代码
 dpkg --list | grep gz

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

c 复制代码
 sudo apt remove XXXX
 sudo apt autoremove

(3)下载正确的Gazebo版本

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

c 复制代码
sudo apt install ros-humble-ros-gzgarden

3.安装bridge包

输入以下代码

c 复制代码
sudo apt update
sudo apt install ros-humble-ros-gz-image

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

4.启动

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

c 复制代码
cd ~/PX4-Autopilot
make px4_sitl gz_x500_depth

注意:使用 make px4_sitl 进行编译,失败的因素有很多,比如是否正确下载了GPU的驱动,再比如网络问题(没错,编译需要网络,没想到吧)

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

c 复制代码
ros2 run ros_gz_image image_bridge /camera

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

c 复制代码
ros2 run rqt_image_view rqt_image_view

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

总结

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

相关推荐
郝亚军21 小时前
ubuntu-18.04.6-desktop-amd64安装步骤
linux·运维·ubuntu
Konwledging21 小时前
kernel-devel_kernel-headers_libmodules
linux
Web极客码21 小时前
CentOS 7.x如何快速升级到CentOS 7.9
linux·运维·centos
一位赵1 天前
小练2 选择题
linux·运维·windows
代码游侠1 天前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
Lw老王要学习1 天前
CentOS 7.9达梦数据库安装全流程解析
linux·运维·数据库·centos·达梦
CRUD酱1 天前
CentOS的yum仓库失效问题解决(换镜像源)
linux·运维·服务器·centos
zly35001 天前
VMware vCenter Converter Standalone 转换Linux系统,出现两个磁盘的处理
linux·运维·服务器
Albert Edison1 天前
【Python】函数
java·linux·python·pip
General_G1 天前
Linux中的信号
linux·运维·服务器