【古月居《ros入门21讲》学习笔记】18_常用可视化工具的使用

目录

说明:

1. Qt工具箱

日志输出工具:rqt_console

绘制数据曲线:rqt_plot

图像渲染工具:rqt_image_view

综合工具:rqt

2. 三维可视化工具:Rviz

Rviz启动

使用示例

3. 仿真平台:Gazebo

Gazebo启动

模型环境查看

选择模型环境打开


说明:

1. 本系列学习笔记基于B站:古月居《ROS入门21讲》课程,且使用的Ubuntu与ROS系统版本与课程完全一致;

虚拟机版本Linux系统版本ROS系统版本
VMware WorkStation Pro 16Ubuntu18.04Melodic

2. 课程中的所有示例代码均已跑通,且对Pyhon版本的代码也都做了运行验证,并附带验证过程(错误均已修正);

3. 本节是整个笔记的第18节,对应视频课程的第20节,请自行对应学习;

4. 整个系列笔记基本已经完结,但部分章节仍需润色修改 ,后面会陆续发布,请大家持续关注,      创作不易,感谢支持!


这一章节介绍一些ROS中常用可视化工具的使用。 在前面的课程中我们曾经简单介绍过ROS中一个可视化工具:计算图,计算图可视化工具指令:rqt_graph 这里将较为详细的介绍一些其它的可视化工具,如:Qt工具箱Rviz等。

1. Qt工具箱

image-20230608125224054

日志输出工具:rqt_console

还是以小海龟为例,我们先来启动海龟例程

roscore
rosrun turtlesim turtlesim_node

然后新建终端打开日志输出工具

rqt_console

然后打开海龟键盘控制节点,让海龟动起来,并撞上墙,rqt_console就会把日志信息都显示出来。

rosrun turtlesim turtle_teleop_key

image-20230608132302334

绘制数据曲线:rqt_plot

前面已经打开了海龟控制的相关节点,这里我们打开数据绘图工具rqt_plot。

rqt_plot

在在左上角的输入框中输入左斜杠/可以看到自动填充项,我们选择 /turtle1/pose 按回车,就会显示位置信息的实时情况。

image-20230608135053221

然后我们让海龟动起来,可以看到各个数据信息的变化,

rosrun turtlesim turtle_teleop_key

image-20230608140044751

图像渲染工具:rqt_image_view

rqt_image_view

默认里面是没有任何的图像的,需要插入摄像头,驱动摄像头跑起来,然后摄像头会不断的发布图像信息,在左上角选择图像信息的话题,rqt_image_view会把图像渲染出来,包括rgb的彩色值,如果使用rgbd的话,也可以显示深度图,红外图,只要符合ROS图像的定义都可以显示

image-20230608140613150

综合工具:rqt

rqt

直接输入rqt可以打开图形界面总接口 在Plugin菜单有各种图形界面的工具,选择点击可分块显示在下方, 前面我们介绍过的Qt工具包都可以在Plugin菜单里找到。

image-20230614122608522

2. 三维可视化工具:Rviz

image-20230614123953032

在前面的学习中我们就曾使用过Rviz来显示空间坐标系的相对位置。

image-20230614123828639

image-20230614124257534

Rviz启动

roscore
rosrun rviz rviz

image-20230614125304470

使用示例

点击Add,选择添加Image项,如果我们有摄像头的话,就会在 Image Topic 中显示出来相应的驱动,

我们选择它就可以获取摄像头的图像信息。

image-20230614125845327

点击Add,选择添加LaserScan项,如果我们有激光雷达的话,选择相应的的驱动即可获取渲染出来的效果。

image-20230614130512522

3. 仿真平台:Gazebo

image-20230614131210610

image-20230614131253888

Gazebo启动

模型环境查看
roslaunch gazebo_ros

注意:此命令最后要空格,然后再双击tab,才能显示可选择的模型环境。如果命令最后没加空格双击tab,显示信息只有两个。

image-20230614132455532

选择模型环境打开
roslaunch gazebo_ros willowgarage_world.launch 

模型环境打开说明:

如果用虚拟机的话,可能运行效果很差或者不成功(比如我的就是),因为,首先gazebo运行需要调用很多资源,而且需要许多图形渲染工具,而虚拟机一方面性能可能就不太能支撑的起来,另一方面gazebo运行会从远程服务器加载一些离线的模型,比如:阳光,大地,这也是模型,尤其是第一次启动,它需要连接很久,因为这个服务器在国外,如果网络不好的话,可能需要加载很长时间,设置一直就加载不出来,大家知道有这样一个工具就行了。

image-20230614133213258

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/202565.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通用plantuml模板头

通用plantuml文件 startuml participant Admin order 0 #87CEFA // 参与者、顺序、颜色 participant Student order 1 #87CEFA participant Teacher order 2 #87CEFA participant TestPlayer order 3 #87CEFA participant Class order 4 #87CEFA participant Subject order …

004:Direct 2D离屏渲染(Qt中实现)

简介: 用QT开发图像显示的小程序,需要一些标注工具,由于用的是opengl渲染,所以就在内存中进行绘制,然后纹理贴图贴出去,发现Qt绘制的效果太差,且速度一般,于是就想着用direct2d来绘制…

MySQL根据binlog恢复数据

简介 本文介绍了使用mysqlbinlog导出数据,根据binlog恢复数据,和导出数据时报需要super权限的解决方法。 环境 MySQL: 5.7.40 说明 MySQL的binlog是数据库服务器在运行过程中产生的日志文件,记录了数据库增删改的操作,可用于恢复和…

leetcode二叉树

下面的两个题呢是比较类似的所以放在一起讲,更好的理解起来。 https://leetcode.cn/problems/same-tree/description/ 这个题就是比较两颗树是不是一样的,这个其实看起来就只要比较当前节点,我们分析成子问题就是判断两颗树当前节点是不是一致…

Java实现动态加载的逻辑

日常工作中我们经常遇到这样的场景,某某些逻辑特别不稳定,随时根据线上实际情况做调整,比如商品里的评分逻辑,比如规则引擎里的规则。 常见的可选方案有: JDK自带的ScriptEngine 使用groovy,如GroovyClassLoader、Gro…

《尚品甄选》:后台系统——分类品牌和规格管理(debug一遍)

文章目录 一、分类品牌管理1.1 表结构介绍1.2 列表查询1.3 添加功能1.4 修改功能1.5 删除功能 二、商品规格管理2.1 表结构介绍2.2 列表查询2.3 添加功能2.4 修改功能2.5 删除功能 一、分类品牌管理 分类品牌管理就是将分类的数据和品牌的数据进行关联,分类数据和品…

48、Flink DataStream API 编程指南(1)- DataStream 入门示例

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

Web安全漏洞分析-XSS(中)

随着互联网的迅猛发展,Web应用的普及程度也愈发广泛。然而,随之而来的是各种安全威胁的不断涌现,其中最为常见而危险的之一就是跨站脚本攻击(Cross-Site Scripting,简称XSS)。XSS攻击一直以来都是Web安全领…

微信小程序本地和真机调试文件上传成功但体验版不成功

可能是微信小程序ip白名单的问题,去微信公众平台(小程序)上设置小程序的ip白名单 1、在本地中取消不校验 然后在本地去上传文件,就会发现控制台报错了,会提示一个https什么不在ip白名单,复制那个网址 2、…

【中间件】DAL中间件intro

中间件middleware 内容管理 intro数据访问层why use DAL中间件主流DAL中间件方案DAL浅析 本文从理论上介绍一下服务化背景下的DAL中间件的理论并浅析相关中间件 cfeng之前work的时候产品发展到分离服务不分库的阶段,所以根本不需要DAL中间件,也没有分布式…

机器学习——决策树

1.决策树 2.熵(不确定程度) 3.信息增益 & 信息增益比 3.1 信息增益 & 信息增益比 的 概念 3.2 案例解释说明 3.2.1数据集说明 3.2.2计算 4.&#x…

软件设计师——计算机组成原理(一)

📑前言 本文主要是【计算机组成原理】——软件设计师计算机组成原理的习题,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &…

[React] 2023年最新面试题

[React] 2023年最新面试题 1. class 组件与函数组件的区别2. react 18 新特性有那些?新增 createRoot API自动批处理过渡更新新的Hook 3. redux 和 react-redux 的区别4. redux 中间件的原理5. setState 发生了什么 ,render 函数做了什么6. 虚拟DOM, Fi…

海外储能认证标准

北美认证 UL9540 代表一个封装完整的储能系统功能安全认证,关注机械测试,电器测试和环境测试 UL9540A 关注消防本身,UL9540A测试主要从电池储能系统安装参数,安装通风要求,消防设施,消防策略和应对措施…

SpringCloud 一

认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个…

springmvc实验(三)——请求映射

【知识要点】 方法映射概念 所谓的方法映射就是将前端发送的请求地址和后端提供的服务方法进行关联。在springMVC框架中主要使用Controller和RequestMapping两个注解符,实现请求和方法精准匹配。注解符Controller Spring中包含了一个Controller接口,但是…

【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目

解决idea至少创建jdk17项目 问题idea现在只能创建最少jdk17,不能创建java8了吗?解决 问题 idea现在只能创建最少jdk17,不能创建java8了吗? 我本来以为是 IDEA 版本更新导致的 Bug,开始还没在意。 直到我今天自己初始化项目时才发现&…

在日常工作中怎么处理vue项目中的错误的?

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue项目中的错误如何处理 目录 一、错误类型 二、如何处理 后端接口错误 代码逻辑问题 全局设…

亚马逊云与生成式 AI 的融合:未来展望与综述

文章目录 前言生成式AI的定义生成式 AI应用领域AI办公软件AI创意工具AI企业服务AI网络安全AIIT 运维AI软件开发AI数据智能AI数字代理AI金融AI医疗AI教育AI工业AI汽车AI机器人 后记 前言 在当今数据时代,人工智能和云计算已经成为了企业发展和创新的必不可少的工具。…

YOLOv8独家原创改进:自研独家创新FT_Conv,卷积高效结合分数阶变换

💡💡💡本文自研创新改进:卷积如何有效地和频域结合,引入分数阶傅里叶变换(FrFT)和分数阶Gabor变换(FrGT),最终创新到YOLOv8。 使用方法:1)直接替换原来的C2f;2)放在backbone SPPF后使用;等 推荐指数:五星 在道路缺陷检测任务中,原始map为0.8,FT_Conv为0.82 收…