Ubuntu运行rviz报错:OGRE EXCEPTION(3:RenderingAPIException): Unable to create a suitable GLXContext

当运行rviz时遇到OGREEXCEPTION关于GLXContext的错误,通常是因为NVIDIA显卡驱动问题。可以检查nvidia-smi输出,若显示Driver/libraryversionmismatch,则是驱动不匹配。解决方法是简单地重启电脑来解决这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

笔者的测试环境:
Ubuntu20.04, ROS-noteic

一、问题描述

运行rviz时出现报错:

[ WARN] [1681566849.279762478]: OGRE EXCEPTION(3:RenderingAPIException): Unable to create a suitable GLXContext in GLXContext::GLXContext at /build/ogre-1.9-kiU5_5/ogre-1.9-1.9.0+dfsg1/RenderSystems/GL/src/GLX/OgreGLXContext.cpp (line 61)
rviz::RenderSystem: error creating render window: OGRE EXCEPTION(3:RenderingAPIException): Unable to create a suitable GLXContext in GLXContext::GLXContext at /build/ogre-1.9-kiU5_5/ogre-1.9-1.9.0+dfsg1/RenderSystems/GL/src/GLX/OgreGLXContext.cpp (line 61)

出现这个问题的一般是因为显卡驱动出现了问题。
此时运行nvidia-smi ,如果出现如下报错:

Failed to initialize NVML: Driver/library version mismatch

那就说明就是因为nvidia显卡驱动出问题导致的。

二、参考解决方法

解决方法很简单,
重启电脑就可以解决上述问题。

参考链接

[1] Demon_zzj. rviz启动报错:OGRE EXCEPTION(3:RenderingAPIException): Invalid parentWindowHandle (wrong server or screen [EB/OL]. https://blog.csdn.net/qq_37497304/article/details/129708129, 2023-03-22/2023-04-17.
[2] (看这篇文章的评论) nvidia-smi指令报错:Failed to initialize NVML: Driver解决 [EB/OL]. https://zhuanlan.zhihu.com/p/94378201, 2019-11-29/2023-04-17.

pi@pi-desktop:~/ros_ws$ export DISPLAY=:0 pi@pi-desktop:~/ros_ws$ xhost +local: > /dev/null 2>&1 pi@pi-desktop:~/ros_ws$ export LIBGL_ALWAYS_SOFTWARE=1 pi@pi-desktop:~/ros_ws$ export __GLX_VENDOR_LIBRARY_NAME=mesa pi@pi-desktop:~/ros_ws$ export QT_XCB_FORCE_SOFTWARE_OPENGL=1 pi@pi-desktop:~/ros_ws$ export QT_X11_NO_MITSHM=1 pi@pi-desktop:~/ros_ws$ ros2 launch moveit_setup_assistant setup_assistant.launch.py [INFO] [launch]: All log files can be found below /home/pi/.ros/log/2025-08-08-16-21-47-611990-pi-desktop-5088 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [moveit_setup_assistant-1]: process started with pid [5091] [moveit_setup_assistant-1] QSocketNotifier: Can only be used with threads started with QThread [moveit_setup_assistant-1] [INFO] [1754641314.245061987] [moveit_setup_assistant.urdf]: Loaded robot_arm robot model. [moveit_setup_assistant-1] [INFO] [1754641314.254183508] [moveit_929900350.moveit.core.robot_model]: Loading robot model 'robot_arm'... [moveit_setup_assistant-1] [INFO] [1754641314.254306201] [moveit_929900350.moveit.core.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint [moveit_setup_assistant-1] [INFO] [1754641315.601944627] [moveit_setup_assistant.urdf]: Loaded robot_arm robot model. [moveit_setup_assistant-1] [INFO] [1754641315.602070004] [moveit_929900350.moveit.core.robot_model]: Loading robot model 'robot_arm'... [moveit_setup_assistant-1] [INFO] [1754641315.602113938] [moveit_929900350.moveit.core.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564 [moveit_setup_assistant-1] [rviz_rendering:error] rviz::RenderSystem: error creating render window: RenderingAPIException: Invalid parentWindowHandle (wrong server or screen) in GLXWindow::create at ./.obj-aarch64-linux-gnu/ogre_vendor-prefix/src/ogre_vendor/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp (line 246), at ./src/rviz_rendering/render_system.cpp:564
最新发布
08-09
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值