rviz显示realsense点云卡顿问题的解决方法

rviz显示realsense点云卡顿问题的解决方法

  • 问题描述
  • 解决方法
    • 方法一
    • 方法二
      • PS
  • 尚存疑惑

问题描述

在ubuntu20.04+ros noetic下
使用realsense-ros 驱动,运行如下命令:

roslaunch realsense2_camera rs_camera.launch filters:=pointcloud

使用rviz查看点云时发现rviz出现严重卡顿,帧率不到10fps。

解决方法

方法一

使用demo_pointcloud.launch,可以流畅查看

roslaunch realsense2_camera demo_pointcloud.launch

方法二

观察使用demo_pointcloud与rs_camera时的区别,可以发现demo_pointcloud对图像的分辨率和帧率都做了限制,而rs_camera则使用默认参数。
demo_pointcloud的参数:

	<arg name="depth_width"       value="640"/><arg name="depth_height"      value="480"/><arg name="depth_fps"         value="30"/><arg name="color_width"       value="640"/><arg name="color_height"      value="480"/><arg name="color_fps"         value="30"/>

rs_camera的参数:

	<arg name="depth_width"         default="-1"/><arg name="depth_height"        default="-1"/><arg name="color_width"         default="-1"/><arg name="color_height"        default="-1"/><arg name="depth_fps"           default="-1"/><arg name="color_fps"           default="-1"/>

通过rostopic查看两种情况下点云的带宽

rostopic bw /camera/depth/color/points

使用image-view保存图像

rosrun image_view extract_images _sec_per_frame:=1 image:=/camera/color/image_raw

可以发现在使用默认参数时,相机分辨率为1280 * 720,点云带宽是640 * 480分辨率下的三倍。rviz羸弱的性能不足以支持这么高密度点云的渲染。
因此需要对rs_camera.launch文件中的分辨率进行限制。

PS

需要<stream_type>_width, <stream_type>_height, <stream_type>_fps三个参数均不不为-1才能生效。
在<stream_type>_width, <stream_type>_height更改了,但<stream_type>_fps仍为-1的情况下,分辨率仍然是1280 * 720。
绝(S)妙(B)的设计!!!

尚存疑惑

在ubuntu18.04+ros melodic下直接运行rs_camera.launch,rviz没有任何卡顿。
一开始以为是rviz性能不行,没有使用到显卡。
运行rviz可以看到如下信息

[ INFO] [1716895474.864123011]: rviz version 1.14.20
[ INFO] [1716895474.864163192]: compiled against Qt version 5.12.8
[ INFO] [1716895474.864172810]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1716895474.869577593]: Forcing OpenGl version 0.
[ INFO] [1716895474.999301133]: Stereo is NOT SUPPORTED
[ INFO] [1716895474.999344415]: OpenGL device: Mesa Intel(R) Xe Graphics (TGL GT2)
[ INFO] [1716895474.999359484]: OpenGl version: 4.6 (GLSL 4.6) limited to GLSL 1.4 on Mesa system.

其中OpenGL device为其调用的显卡。
可以看到OpenGl version: 4.6 (GLSL 4.6) limited to GLSL 1.4 on Mesa system.GLSL被限制了。

为什么GLSL会被限制在1.4版本(似乎是一个比较古老的版本),可能这个就是造成rviz无法渲染很多彩色点云的原因。
使用一些强制OpenGL版本的方法,如:

MESA_GL_VERSION_OVERRIDE=4.6 rviz
rviz --opengl 460

依旧无法解决卡顿问题。

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

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

相关文章

Flutter 中的 AnimatedSize 小部件:全面指南

Flutter 中的 AnimatedSize 小部件&#xff1a;全面指南 在Flutter中&#xff0c;动画是增强用户界面和提供流畅用户体验的强大工具。AnimatedSize是一个用于动画化其子组件大小变化的组件&#xff0c;它可以在大小改变时添加动画效果&#xff0c;使得界面更加生动有趣。本文将…

C# 读取 CSV 文件的方法汇总

文章目录 1. 使用System.IO命名空间中的类2. 处理标题行和指定列3. 使用CsvHelper库4. 高级功能和异常处理5. 使用 LINQ6. 总结 CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff09;文件是一种简单的文本文件格式&#xff0c;用于存储表格数据。在C#中&a…

微服务架构-数据共享设计模式

微服务架构-数据共享设计模式 每个微服务拥有自己的数据库&#xff0c;可以独立地进行数据库架构设计、部署和维护。这种是属于常规的方式&#xff0c;不受其他微服务的影响&#xff0c;具有高度的自治性。 然而&#xff0c;在将单体应用拆分成微服务时&#xff0c;可能会遇到…

QMetaObject::invokeMethod 简介

1. QMetaObject::invokeMethod的功能和用途 QMetaObject::invokeMethod是Qt框架中的一个功能强大的方法&#xff0c;它允许你以异步的方式调用QObject派生类的成员函数。这个功能特别有用&#xff0c;因为它允许你安全地在不同的线程之间调用方法&#xff0c;而不需要担心线程…

“盲人独立生活技能提升方案”:科技点亮希望之光

在追求平等与包容的社会进程中&#xff0c;盲人群体的独立生活能力提升成为了重要议题。随着科技的飞速发展&#xff0c;一款名为“蝙蝠避障”的辅助软件应运而生&#xff0c;以其独特的实时避障和拍照识别功能&#xff0c;为盲人在旅行乃至日常生活中开辟了新的可能。这不仅是…

Golang原生http实现中间件

Golang原生http实现中间件 中间件&#xff08;middleware&#xff09;&#xff1a;常被用来做认证校验、审计等 大家常用的Iris、Gin等web框架&#xff0c;都包含了中间件逻辑。但有时我们引入该框架显得较为繁重&#xff0c;本文将介绍通过golang原生http来实现中间件操作。全…

《中国科技投资》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答&#xff1a; 问&#xff1a;《中国科技投资》期刊什么级别&#xff1f; 答&#xff1a;国家级 问&#xff1a;《中国科技投资》期刊是核心期刊吗? 答&#xff1a;不是&#xff0c;是万方维普收录的正规期刊。 主管单位&#xff1a;中国信息协会 主办单位&#…

【云原生_K8S系列】认识 Kubernetes

在当今数字化转型的浪潮中&#xff0c;企业对于构建高效、灵活的软件架构有了更高的期望。而在这个迅速变化的环境中&#xff0c;容器化技术如雨后春笋般涌现&#xff0c;为解决传统部署和管理软件所带来的挑战提供了一种全新的解决方案。在众多容器编排工具中&#xff0c;Kube…

5G专网驻网失败分析(suci无效)

suci 5G终端第一次驻网时&#xff0c;注册消息Registartion request中携带的5GS mobile identity要携带suci类型的mobile identity。 注册消息协议规范见5G NAS 协议3gpp TS24.501 8.2.6 Registration request。 suci协议规范参见3gpp TS24.501 9.11.3.4 5GS mobile identity …

Kubernetes Service 之原理与 ClusterIP 和 NodePort 用法

Kubernetes Service 之原理与 ClusterIP 和 NodePort 用法 Service 定义 在 Kubernetes 中&#xff0c;由于Pod 是有生命周期的&#xff0c;如果 Pod 重启它的 IP 可能会发生变化以及升级的时候会重建 Pod&#xff0c;我们需要 Service 服务去动态的关联这些 Pod 的 IP 和端口…

防止浏览器缓存了静态的配置等文件(例如外部的config.js 等文件)

防止浏览器缓存了静态的配置文件 前言1、在script引入的时候添加随机数1.1、引入js文件1.2、引入css文件2、通过html文件的<meta>设置防止缓存3、使用HTTP响应头:前言 在实际开发中浏览器的缓存问题一直是一个很让人头疼的问题,尤其是我们打包时候防止的静态配置文件c…

openssh9.7p1(OpenSSL 1.1.1w)适用于各Linux系统的rpm包

本人近几日编译的openssh9.7p1包&#xff0c;用于解决漏洞扫描器提示openssh相关漏洞的问题处理。 包含多个Linux发行版本&#xff08;包含el6\el7\el8\openeuler2110\openeuler2203\BCLinux\eulerOS2.10对应版本等&#xff09;。 一、适用openeuler2203和openeuler2203 sp*系…

界面组件DevExpress WPF v23.2新版亮点:富文本编辑器、电子表格组件升级

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF控件日…

FreeRtos进阶——消息队列的操作逻辑

消息队列&#xff08;queue&#xff09; 在不同的任务之间&#xff0c;如果我们需要互相之间通信&#xff0c;使用全局变量进行通信&#xff0c;是一种不安全的通信的方式。为保证线程安全&#xff0c;我们需要引入消息队列的通信方式。 粗暴的消息队列 为保证线程的安全&am…

如何手搓一个RAG

如何手搓一个RAG RAG的原理 RAG 是一个完整的系统&#xff0c;其工作流程可以简单地分为数据处理、检索、增强和生成四个阶段&#xff1a; 数据处理阶段 对原始数据进行清洗和处理。将处理后的数据转化为检索模型可以使用的格式。将处理后的数据存储在对应的数据库中。 检索…

趣店集团golang一面要个20K,Channel什么情况下会出现死锁,有遇到过吗?

结束后面试官加了VX&#xff0c;并询问方便二面的时间&#xff0c;一直还没回复&#xff0c;拖着拖着给忘啦... 面试题 1、自我介绍 2、你在团队里头负责哪一块&#xff0c;这个物流开放平台流量多大 3、为什么今年3月份被从物流开放团队转到了finance财务部门&#xff0c;感…

hadoop学习之MapReduce案例:输出每个班级中的成绩前三名的学生

hadoop学习之MapReduce案例&#xff1a;输出每个班级中的成绩前三名的学生 所要处理的数据案例&#xff1a; 1500100001 施笑槐,22,女,文科六班,406 1500100002 吕金鹏,24,男,文科六班,440 1500100003 单乐蕊,22,女,理科六班,359 1500100004 葛德曜,24,男,理科三班,421 15001…

安全术语 | 软件包purl详解:跨工具、数据库、API和语言之间可靠地识别和定位软件包

软件包URL&#xff08;purl&#xff0c;Package URL&#xff09;是一个URL字符串&#xff0c;用于在编程语言、包管理器、包约定、工具、API和数据库中以最通用和统一的方式识别和定位软件包。purl是对现有方法进行标准化的尝试&#xff0c;以可靠地识别和定位软件包。 有望取代…

集合的创建

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Python中的集合同数学中的集合概念类似&#xff0c;也是用于保存不重复元素的。它有可变集合&#xff08;set&#xff09;和不可变集合&#xff08;f…

网络学习(九)|深入解析Cookie与Session:高级应用及安全实践

Cookie相关问题 Cookie的主要属性有哪些&#xff1f; Cookie的主要属性包括&#xff1a; name&#xff1a;Cookie的名称。value&#xff1a;Cookie的值。domain&#xff1a;Cookie所属的域。path&#xff1a;Cookie生效的路径。expires / max-age&#xff1a;Cookie的过期时…