问题缘由:
在WSL2 Ubuntu20.04中使用sudo add-apt-repository ppa:kisak/kisak-mesa 和sudo apt update && sudo apt upgrade更新OpenGL,更新前后OpenGL依然是1.4版本:OpenGL version string: 1.4 (2.1 Mesa 10.5.4),而最新版的OpenGL实际可以达到4.2版本:OpenGL version string: 4.2 (Compatibility Profile) Mesa 22.1.1 - kisak-mesa PPA
最原始的问题是在ROS2中运行rviz出现下面的错误:
[ERROR] [1654302833.739499814] [rviz2]: rviz::RenderSystem: error creating render window: InvalidParametersException: Window with name 'OgreWindow(0)' already exists in GLRenderSystem::_createRenderWindow at /tmp/binarydeb/ros-foxy-rviz-ogre-vendor-8.2.6/obj-x86_64-linux-gnu/ogre-v1.12.1-prefix/src/ogre-v1.12.1/RenderSystems/GL/src/OgreGLRenderSystem.cpp (line 1061)
[ERROR] [1654302833.739520104] [rviz2]: Unable to create the rendering window after 100 tries
经了解,这个问题产生的原因是OpenGL版本太低,使用glxinfo -B查看显示OpenGL版本为1.4
问题梳理及解决:
OpenGL有四种不同的渲染方式,分别是直接软件渲染、直接硬件渲染、间接软件渲染、间接硬件渲染。其中直接硬件渲染方式的效率最高,其次是间接硬件渲染,这部分的内容可以参阅How to tell whether your setup is good,里面简要的介绍了这四种方式的好坏。
现在打开WSL2 Ubuntu终端,输入glxinfo -B,这条命令会告诉你关于OpenGL的相关信息,我电脑上最初的输出如下:
name of display: localhost:10.0
display: localhost:10 screen: 0
direct rendering: No (LIBGL_ALWAYS_INDIRECT set)
OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string:

本文讲述了在WSL2 Ubuntu 20.04环境下,如何通过添加PPA并升级OpenGL来解决rviz渲染问题,从软件渲染提升到硬件加速,最终达到4.2版本,解决了OpenGL过低导致的RVIZ显示窗口创建失败问题。
最低0.47元/天 解锁文章
2950

被折叠的 条评论
为什么被折叠?



