Windows10 WSL环境下ROS Noetic的Gazebo无法启动、turtlesim运行报错
WSL环境ROS turtlesim/Gazebo GUI启动报错解决方案
核心报错原因是WSL侧的图形程序无法连通Windows侧的VcXsrv X服务,并非Qt插件或ROS包损坏,无需重装ROS相关组件,按以下步骤排查即可:
1 检查VcXsrv启动配置
- 启动XLaunch,首页选择「Multiple windows」,Display number 固定填
0 - 第二页勾选「Disable access control」,放开跨设备访问限制
- 第三页附加启动参数额外添加
-nowgl,规避OpenGL兼容问题(是Gazebo无法启动的常见诱因) - 确认Windows防火墙已放行VcXsrv的公网/专用网络访问权限,首次启动弹出防火墙提示时必须点「允许」
2 配置WSL侧DISPLAY环境变量
根据你使用的WSL版本选择对应配置:
- WSL1用户:
终端执行以下命令,也可写入~/.bashrc文件实现开机自动生效:export DISPLAY=:0 - WSL2用户:
需指向Windows主机的虚拟网卡IP,执行以下命令,同样可写入~/.bashrc:export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
3 验证配置有效性
配置完成后先重载~/.bashrc:source ~/.bashrc,再执行xeyes测试GUI转发是否正常,若弹出带两个可动眼睛的小窗口则说明配置成功,再启动turtlesim和Gazebo即可正常运行。
若提示xeyes不存在,先执行sudo apt install x11-apps安装测试工具。
原始报错信息如下:
qt.qpa.xcb: could not connect to display :0 qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
内容的提问来源于stack exchange,提问作者Paweł Magdański
相关产品推荐
相关产品推荐

