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

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

问题描述

在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

依旧无法解决卡顿问题。

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值