ROS rviz常用可视化插件

在这里插入图片描述

文章目录

  • ROS rviz常用可视化插件
    • rviz
    • 常用可视化组件
      • Grid
      • Map
      • Laser Scan
      • PointCloud2
      • TF
      • Images
      • Path
      • Marker

ROS rviz常用可视化插件

rviz

RViz(Robot Visualization)是ROS(Robot Operating System)中的一个重要工具,用于可视化机器人和传感器数据。RViz的主要功能是帮助开发人员和研究人员可视化机器人的各种信息,以便调试、验证和分析机器人系统。
Rviz主要在安装ROS的过程中一般都绑定安装了
启动rviz
方式一:通过rosnode的方式启动
rosrun rviz rviz
方式二:软件独立启动
rviz
方式三:通过launch文件启动
假设有自己的ros包mypack,我们为其编写launch文件rviz.launch

<launch><node pkg="rviz" type="rviz" name="rviz" required="true" args="-d $(find autonomous_exploration)/config/add_box.rviz"/>
</launch>

args中是配置文件路径,自己在rviz中设置的可视化组建的组合以及参数都会保存在这个文件中,启动后会加载,这样的效果是不必在每次启动rviz后都去重新添加需要的可视化组件。
roslaunch mypack rviz.launch
运行效果
不加载配置文件启动时载入
在这里插入图片描述启动时载入自己的配置文件
在这里插入图片描述

常用可视化组件

Grid

Grid(网格):

用于显示一个网格背景,以帮助用户定位和测量对象的位置。
添加方式:

在这里插入图片描述
在这里插入图片描述常用参数
Reference Frame:参考frame,其设置基准坐标系,有tf关系的坐标系都可以选择

Cell Count(单元格数量):
这个参数用于指定网格的单元格数量,通常以水平和垂直方向的单元格数来表示。例如,你可以设置水平单元格数为10,垂直单元格数为10,以创建一个10x10的网格。

Cell Size(单元格大小):
用于指定网格单元格的大小。你可以设置单元格的宽度和高度,以控制网格线之间的间隔。

Color(颜色):
用于设置网格线的颜色。你可以选择网格线的颜色,以使其在RViz中与其他元素更好地区分。

Alpha(透明度):
用于设置网格的透明度。通过调整透明度,你可以控制网格的可见度。

Line Style(线条样式):
可以选择不同的线条样式,如实线、虚线等,以控制网格线的外观。

Offset(偏移):
用于设置网格的偏移量。你可以将网格相对于原点进行平移,以便更好地适应你的可视化需求。

Plane(平面):
可以选择在哪个平面上绘制网格,通常是"XY"(水平地面)或"XZ"(垂直墙壁)。

在这里插入图片描述

Map

可以显示静态地图或实时地图,包括栅格地图或占用网格地图(Occupancy Grid Map)。

在RViz中,Map(地图)的参数通常是通过Map显示属性进行配置的,以显示静态地图或实时地图数据。以下是一些常见的Map参数及其含义:

Topic(话题):
这个参数用于指定从哪个ROS话题接收地图数据。你需要输入一个正确的ROS话题名称,以便RViz获取地图数据。
此参数最为重要,可以选择接收的地图话题,一般/map为SLAM或者直接加载的静态地图,也可以选择代价地图,例如/move_base/global_costmap/costmap/move_base/local_costmap/costmap
静态地图效果
在这里插入图片描述
只展示代价地图
在这里插入图片描述当然,一般我们会添加两个map组件,叠加静态地图和代价地图

在这里插入图片描述

Color Scheme(颜色方案):
用于选择地图的颜色方案。通常,你可以选择"map"(使用地图默认颜色)或"costmap"(使用代价地图的颜色方案)。
代价地图使用代价地图的颜色方案时更加直观
在这里插入图片描述在这里插入图片描述

Alpha(透明度):
用于设置地图的透明度。通过调整透明度,你可以控制地图的可见度。

Resolution(分辨率):
用于指定地图的分辨率,通常以米/像素为单位。这个参数影响地图中每个像素的物理大小。

Color(颜色):
用于设置地图的颜色。你可以选择地图的颜色,以使其在RViz中与其他元素更好地区分。

Origin(原点):
用于指定地图的原点坐标。这个参数通常是地图坐标系的原点位置,它影响地图在RViz中的位置和对齐方式。

Queue Size(队列大小):
用于指定从ROS话题接收地图数据时使用的消息队列大小。这个参数可以影响地图数据的接收性能。

Transform Timeout(变换超时):
用于设置等待ROS TF变换的最大时间。如果RViz无法获取地图数据的正确坐标变换,将使用此超时。

Laser Scan

可以显示激光雷达传感器的测量数据,以可视化环境中的障碍物。
Topic(话题):
这个参数用于指定从哪个ROS话题接收激光扫描数据。你需要输入一个正确的ROS话题名称,以便RViz获取激光扫描数据。

Size (Points)(大小 - 点数):
用于设置在RViz中可视化的激光扫描点的数量。你可以限制可视化的点数,以提高性能并减少视觉混乱。

Color (Min, Max)(颜色 - 最小值,最大值):
用于设置可视化中激光扫描点的颜色范围。你可以指定最小值和最大值,激光扫描数据中的测量值将映射到颜色范围内。

Alpha(透明度):
用于设置激光扫描数据点的透明度。通过调整透明度,你可以控制激光扫描数据的可见度。

Size (Pixels)(大小 - 像素):
用于设置激光扫描数据点在RViz中的绘制大小。这个参数影响激光点的可视化外观。

Use Rainbow Color(使用彩虹颜色):
如果勾选了此选项,RViz将使用彩虹颜色来表示不同的激光扫描测量值。

Autocompute Height (Min, Max)(自动计算高度 - 最小值,最大值):
这个参数用于自动计算激光扫描点的高度范围,以确保它们可见并不被遮挡。

Static Data (seconds)(静态数据 - 秒数):
用于指定多长时间内被认为是静态数据。静态数据通常以较浅的颜色表示,以突出显示可能是动态障碍物的物体。

绿色点为激光点
在这里插入图片描述

PointCloud2

用于显示点云数据,通常由3D传感器(如激光雷达或RGB-D相机)生成。
红色框部分是点云
在这里插入图片描述Topic(话题):

这个参数用于指定从哪个ROS话题接收点云数据。你需要输入一个正确的ROS话题名称,以便RViz获取点云数据。
Size (Points)(大小 - 点数):

用于设置在RViz中可视化的点云数据点的数量。你可以限制可视化的点数,以提高性能并减少视觉混乱。
Color (Min, Max)(颜色 - 最小值,最大值):

用于设置可视化中点云数据点的颜色范围。你可以指定最小值和最大值,点云数据中的测量值将映射到颜色范围内。
Alpha(透明度):

用于设置点云数据点的透明度。通过调整透明度,你可以控制点云数据的可见度。
Size (Pixels)(大小 - 像素):

用于设置点云数据点在RViz中的绘制大小。这个参数影响点云点的可视化外观。
Use Rainbow Color(使用彩虹颜色):

如果勾选了此选项,RViz将使用彩虹颜色来表示不同的点云数据值。
Autocompute Height (Min, Max)(自动计算高度 - 最小值,最大值):

这个参数用于自动计算点云数据点的高度范围,以确保它们可见并不被遮挡。
Color Transformer(颜色变换器):

用于选择用于点云颜色的变换器。你可以选择根据测量值、高度值或其他属性来设置颜色。

TF

在RViz中,TF(Transform)组件是用于可视化ROS TF(Transform)数据的重要工具。TF是ROS中的一个库,用于管理和查询不同坐标系之间的关系,尤其在机器人系统中常用。TF组件允许你可视化这些坐标系的相对位置和变换,有助于理解机器人各个部分之间的关系。

在这里插入图片描述

Images

在RViz中,Images(图像)可视化参数通常是通过Image显示属性进行配置的,以便可视化图像数据。
Topic(话题):
这个参数用于指定从哪个ROS话题接收图像数据。你需要输入一个正确的ROS话题名称,以便RViz获取图像数据。
Transport Hint(传输提示):
用于指定图像传输的方式。可以选择"raw"(原始数据)或"compressed"(压缩数据),具体取决于你的数据传输方式。
Queue Size(队列大小):

用于指定从ROS话题接收图像数据时使用的消息队列大小。这个参数可以影响图像数据的接收性能。
Refresh Rate(刷新率):

用于指定图像数据的刷新频率。你可以设置图像以多快的速度更新,或者选择手动刷新。
Image Topic Override(图像话题覆盖):

如果你希望覆盖默认的图像话题,你可以在这里输入另一个话题名称,以接收图像数据。
使用默认图像:

如果选择了此选项,RViz将使用默认图像来填充可视化窗口,而不等待来自ROS话题的实际图像数据。
允许Alpha通道(Allow Alpha Channel):

如果图像包含Alpha通道(透明度信息),你可以选择允许Alpha通道以正确显示图像的透明部分。
在这里插入图片描述

Path

在RViz中,Path(路径)可视化通常用于显示机器人的路径规划结果或轨迹。
Topic(话题):

这个参数用于指定从哪个ROS话题接收路径数据。你需要输入一个正确的ROS话题名称,以便RViz获取路径数据。
Path Line Width(路径线宽度):

用于设置路径线的宽度。通过调整这个参数,你可以控制路径线的粗细。
Color(颜色):

用于设置路径线的颜色。你可以选择路径线的颜色,以使其在RViz中与其他元素更好地区分。
Alpha(透明度):

用于设置路径线的透明度。通过调整透明度,你可以控制路径线的可见度。
平滑路径(Smooth Path):

如果启用了此选项,RViz将尝试对路径进行平滑处理,以减少路径线上的锯齿。
Use Pose Stamped(使用姿态戳记):

如果你的路径数据是使用姿态戳记(PoseStamped)表示的,你可以选择启用此选项以正确解释路径数据。

路径规划包括全局路径规划和全局路径规划,可以将用两个Path插件将两个都输出,例如DWA,全局路径使用红色线条,局部路径使用绿色线。
在这里插入图片描述

Marker

这个组件可以自由标记画图,主要使用程序控制,下面是一个

#!/usr/bin/env python
import rospy
from visualization_msgs.msg import Marker
from geometry_msgs.msg import Pointdef publish_markers():rospy.init_node('custom_marker_publisher')marker_pub = rospy.Publisher('custom_markers', Marker, queue_size=10)rate = rospy.Rate(1)  # 发布频率为1Hzwhile not rospy.is_shutdown():marker = Marker()marker.header.frame_id = "base_link"  # 设置坐标框架marker.header.stamp = rospy.Time.now()marker.ns = "custom_markers"marker.id = 0marker.type = Marker.POINTS  # 使用点标记marker.action = Marker.ADDmarker.pose.orientation.w = 1.0  # 默认朝向marker.scale.x = 0.1  # 点的大小marker.scale.y = 0.1marker.color.r = 1.0  # 红色marker.color.a = 1.0  # 不透明# 添加点坐标point = Point()point.x = 1.0point.y = 2.0point.z = 0.0marker.points.append(point)point = Point()point.x = 2.0point.y = 3.0point.z = 0.0marker.points.append(point)# 发布Marker消息marker_pub.publish(marker)rate.sleep()if __name__ == '__main__':try:publish_markers()except rospy.ROSInterruptException:pass

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

taro h5 点击页面任意地方关闭弹窗组件 --- findDOMNode 判断点击节点是否属于某个组件

场景&#xff1a;如图&#xff0c;弹窗在大组件中&#xff0c;点击小组件显示弹窗&#xff0c;要求点击除弹窗外的任何元素都能关闭弹窗并且能执行元素原有的逻辑 方法一 最简单的是弹窗背后有一个覆盖整个页面的透明的cover, 点击直接关闭&#xff0c;但是这样虽然点击页面…

redis实战-redis实现异步秒杀优化

秒杀优化-异步秒杀思路 未优化的思路 当用户发起请求&#xff0c;此时会请求nginx&#xff0c;nginx会访问到tomcat&#xff0c;而tomcat中的程序&#xff0c;会进行串行操作&#xff0c;分成如下几个步骤 1、查询优惠卷 2、判断秒杀库存是否足够 3、查询订单 4、校验是否是一…

数据治理实战步骤

写在前面:数据治理是数字化转型的基础,是数字要素流通的首要任务。但是面对不同的情况,数据治理的手段不同。 数据治理专员要转换思想,数据治理中单靠技术、软件是不行的,比如一些单位认为数据治理平台是万能的,直接上平台一般是做不好的,需基于企业的组织文化、愿景等对…

分类预测 | Matlab实现基于LFDA-SVM局部费歇尔判别数据降维结合支持向量机的多输入分类预测

分类预测 | Matlab实现基于LFDA-SVM局部费歇尔判别数据降维结合支持向量机的多输入分类预测 目录 分类预测 | Matlab实现基于LFDA-SVM局部费歇尔判别数据降维结合支持向量机的多输入分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于局部费歇尔判别数据降维的L…

HTML的段落中怎么样显示出标签要使用的尖括号<>?

很简单&#xff1a; 符号 < 用 < 替代&#xff1b; 符号 > 用 > 替代。 示例代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>HTML中怎样打出尖括号</title> </head> <b…

电影迷的新利器!拓世AI为你找到完美电影

每当我们渴望观赏一部电影时&#xff0c;经常陷入一些这样的尴尬境地&#xff1a;打开电影推荐列表&#xff0c;几乎所有的电影都已经看过&#xff0c;不知道如何发现新的电影。或者&#xff0c;我们可能喜欢某位演员&#xff0c;希望找到与他/她风格相似的电影&#xff0c;却所…

Redis模块一:缓存简介

目录 缓存的定义 应用 生活案例 程序中的缓存 缓存优点 缓存的定义 缓存是⼀个高速数据交换的存储器&#xff0c;使用它可以快速的访问和操作数据。 应用 1.CPU缓存&#xff1a;CPU缓存是位于CPU和内存之间的临时存储器&#xff0c;它的容量通常远小于内存&#xff0…

【SpringMVC】JSR 303与拦截器注释使用

目录 一、JSR 303 1.1 JSR 303介绍 1.2 为什么要使用JSR-303 1.3 常用注解 1.4 使用示例 1.4.1 导入JSR303依赖 1.4.2 配置校验规则 1.4.3 编写方法校验 1.4.4 编写前端 1.4.5 测试 ​编辑 1.5 Validated与Valid区别 二、拦截器&#xff08;interceptor&#xff09…

利用procdump+Mimikatz绕过杀软获取Windows明文密码

利用procdumpMimikatz绕过杀软获取Windows明文密码 1.原理2.实操部分 1.原理 Mimikatz是从lsass.exe中提取明文密码的&#xff0c;当无法在目标机器上运行Mimikatz时&#xff0c;我们可使用ProcDump工具将系统的lsass.exe进程进行转储&#xff0c;导出dmp文件&#xff0c;拖回…

修改el-card的header的背景颜色

修改el-card的header的背景颜色 1.修改默认样式 好处是当前页面的所有的el-card都会变化 页面卡片&#xff1a; <el-card class"box-card" ><div slot"header" class"clearfix"><span>卡片名称</span><el-button s…

基于改进人工蜂群算法的 K 均值聚类算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

注解方式配置SpringMVC

注解配置SpringMVC 1. 初始化类&#xff0c;代替web.xml2. 创建SpringConfig配置类&#xff0c;代替spring的配置文件3. 创建SpringMVCConfig配置类&#xff0c;代替SpringMVC.xml配置文件4. 项目结构 1. 初始化类&#xff0c;代替web.xml Spring3.2引入了一个便利的WebApplic…