ROS rviz常用可视化插件

news2025/1/6 19:27:03

在这里插入图片描述

文章目录

  • 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 Point

def publish_markers():
    rospy.init_node('custom_marker_publisher')
    marker_pub = rospy.Publisher('custom_markers', Marker, queue_size=10)
    rate = rospy.Rate(1)  # 发布频率为1Hz

    while not rospy.is_shutdown():
        marker = Marker()
        marker.header.frame_id = "base_link"  # 设置坐标框架
        marker.header.stamp = rospy.Time.now()
        marker.ns = "custom_markers"
        marker.id = 0
        marker.type = Marker.POINTS  # 使用点标记
        marker.action = Marker.ADD
        marker.pose.orientation.w = 1.0  # 默认朝向
        marker.scale.x = 0.1  # 点的大小
        marker.scale.y = 0.1
        marker.color.r = 1.0  # 红色
        marker.color.a = 1.0  # 不透明

        # 添加点坐标
        point = Point()
        point.x = 1.0
        point.y = 2.0
        point.z = 0.0
        marker.points.append(point)

        point = Point()
        point.x = 2.0
        point.y = 3.0
        point.z = 0.0
        marker.points.append(point)

        # 发布Marker消息
        marker_pub.publish(marker)
        rate.sleep()

if __name__ == '__main__':
    try:
        publish_markers()
    except rospy.ROSInterruptException:
        pass

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常见的网络欺诈风险类型有哪些?

身份伪冒&#xff0c;这是非常典型的第三方欺诈&#xff0c;指的是不法分子使用虚假身份证等身份信息、未经他人同意而冒用他人身份获取贷款的骗贷行为。 另外还有帐号垃圾注册&#xff0c;通过大规模的帐号注册&#xff0c;养号养卡&#xff0c;控制帐号骗贷。此外还有中介包装…

原型链解释

一、什么是原型链 原型链是javascript中用来实现类似类继承的一套机制。像链条一样把javascript中的对象连接起来&#xff0c;实现类似子联系父的现象。 二、原型链的实现 总的来说&#xff0c;就是&#xff1a; 对象的__proto__指向其构造器的prototype对象&#xff0c;然后…

上半年实现营收9.24亿元,创新奇智的AI成制造业福星?

如今&#xff0c;AI大模型迈入了商业化落地的新阶段&#xff0c;并且已经有不少产品被不知不觉地应用到了生活各个方面。 其中&#xff0c;作为AI领域的后起之秀&#xff0c;创新奇智也于近日发布了截至2023年6月30日止六个月的中期业绩报告。数据显示&#xff0c;创新奇智202…

新建的SFTP用户,连接报错

useradd -m -d /usr/local/data/ftp/abc abc 新建SFTP用户 usermod -g sftpgroup -G sftpgroup abc 将abc加入到sftpgroup组 Received disconnect from 192.168.10.2 port 22:2: Too many authentication failures Disconnected from 192.168.10.2 port 22 Connection clos…

6、DVWA——SQL injection

文章目录 一、概述二、low2.1 通关思路&#xff08;1&#xff09;判断是否存在sql注入漏洞。&#xff08;2&#xff09;判断字符型还是数字型&#xff08;3&#xff09;判断字段数&#xff08;4&#xff09;查看回显点&#xff08;5&#xff09;查看数据库名&#xff08;6&…

R730xd风扇调速

共使用了三个方法都是有效的&#xff0c;dell_fans_controller_v1.0.0和Dell_EMC_Fans_Controller_1.0.1以及ipmitool&#xff0c;前面两个是GUI界面后面一个是命令行工具 重点 我虽然能通过设置的ip地址能访问idrac管理界面&#xff0c;但是使用上面三个工具都是无法获取风扇…

C++:模板(函数模板、类模板)

本文主要介绍泛型编程、函数模板和类模板。 目录 一、泛型编程 二、函数模板 1.函数模板概念 2.函数模板格式 3.函数模板的原理 4.函数模板的实例化 5.模板参数的匹配原则 三、类模板 1.类模板的定义格式 2.类模板的实例化 一、泛型编程 如何实现一个通用的交换函数…

普通的maven里面没有配置tomcat服务器问题

上面的意思也就是可以直接如下访问 他会直接给我们跳转到 webapp下面的index.jsp页面 为什么跳转到这个页面呢&#xff0c;原因在于我们在tomcat服务器里面的配置文件web.xml做了如下配置 只要webapp下面有如上几个页面&#xff0c;就会被默认运行 如果运行中出现控制台中文…

2023年8月京东彩瞳行业数据分析(京东商品数据)

和传统的框架眼镜、隐形眼镜相比&#xff0c;多种花纹、颜色的美瞳镜片给了爱美的年轻人更多的选择&#xff0c;因此&#xff0c;在颜值经济叠加悦己思潮的影响下&#xff0c;兼具“视力矫正美妆”的彩瞳受追捧。 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;8月份&…

TorchAudio has CUDA version 11.7.

RuntimeError: Detected that PyTorch and TorchAudio were compiled with different CUDA versions. PyTorch has CUDA version 11.8 whereas TorchAudio has CUDA version 11.7. Please install the TorchAudio version that matches your PyTorch version.升级版本即可 pi…

HTML导航栏二级菜单(垂直、水平方向)

二级菜单是指主菜单的子菜单。菜单栏实际是一种树型结构&#xff0c;子菜单是菜单栏的一个分支。简单分享主要的垂直和水平方向的CSS设计。 垂直方向&#xff1a; HTML: <body><div><ul><li><a href"#">家用电器</a><ul>…

VRTK4⭐三.VRTK4 : 射线传送模块 [包含API传送]

文章目录 &#x1f7e5; 项目配置方法1️⃣ 添加相应模块2️⃣ 配置相关属性3️⃣ 体验一下吧 &#x1f7e7; 传送组件讲解&#x1f7e8; Locomotors.Teleporter.Dash : 缓动传送&#x1f7e9; API 传送示例 &#x1f7e5; 项目配置方法 1️⃣ 添加相应模块 我们要实现的功能…

10:STM32------I2C通信

目录​​​​​​​ 一:I2C通信协议 1:I2C简历 2:硬件电路 3:I2C时序基本单元 A : 开/ 终条件 2:发送一个字节 3:接收一个字节 4:应答机制 4:I2C时序 1:指定地址写 2:当前地址读 3: 指定地址读 二:MPU6050 1:简历 2:参数 3:硬件电路 4:框图 5:寄存器地址 …

weblogic配置证书

1.windows安装jdk JDK 可以到官网下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 系统变量→新建 JAVA_HOME 变量 配置环境变量&#xff1a;右击“我的电脑”–>“高级”–>“环境变量” JAVA_HOME&#xff1a;D:\Java\j…

原型链(一定要搞懂啊!!!>-<)

一、概念 1、prototype 习惯称作“显示原型”&#xff0c;只有构造函数才有的属性。 2、构造函数 能用new关键字创建的对象叫做构造函数 3、__proto__ 习惯称作“隐式原型”&#xff0c;每一个实例都有的属性&#xff0c;该属性指向他构造函数的“显示原型”。Function对象…

iwebsec靶场 文件包含漏洞通关笔记2-文件包含绕过(截断法)

目录 前言 1.%00截断 2.文件字符长度截断法&#xff08;又名超长文件截断) 方法1&#xff08;路径截断法&#xff09; 方法2&#xff08;点号截断法&#xff09; 第02关 文件包含绕过 1.打开靶场 2.源码分析 3.00文件截断原理 4.00截断的条件 5.文件包含00截断绕过 …

传统大数据迁移遇到的问题与解决方案

信息技术的进步和普及使得各个领域都在持续产生和积累大量的数据&#xff0c;这些数据蕴含了丰富的信息和价值&#xff0c;被称为大数据。据国际权威机构IDC预测&#xff0c;到2025年&#xff0c;全球数据总量将达到175ZB&#xff08;1ZB1024EB1024^7B&#xff09;&#xff0c;…

YOLOv5的常见报错总结

目录 1.安装pycocotools报错 2.Cant get attribute SPPF on module models.common 2.1原因 2.2解决方案 3.[WinError 1455] 页面文件太小&#xff0c;无法完成操作 3.1原因 3.2解决方案 4.AssertionError: Image Not Found D:\PycharmProjects\yolov5-hat\VOCdevkit\im…

centos安装flink,通过windows访问webui

1. 安装flink 1.1. flink的下载 通过flink官网下载flink安装包 https://flink.apache.org/ 下载安装包 1.2 flink在centos上的安装 将下载好的flink-1.17.1-bin-scala_2.12.tgz安装包放到centos目录下 解压文件&#xff1a; [rootlocalhost ~]# tar -zxvf flink-1.17.…

Vue3常用语法记录,基础使用看这篇就够了

1、ref const test ref<number>(8) 2、reactive const testObj reactive({test001: ,test002: }) 3、props & defineEmits defineProps({icon: String, }); const emit defineEmits([change, update:value, format-error]); emit(update:value, v); 4、wat…