2022/07/21更新

现在WSL2已经可以直接运行 Linux GUI 了!!!不再需要安装Xserver(XLaunch)之类的!!!
参考微软的官方教程:在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用

不过值得注意的是
如果之前在.bashrc中设置了用于在Xserver的显示命令,需要取消掉!即:

#export DISPLAY=xxx.xx.x.xx:0.0
#export LIBGL_ALWAYS_INDIRECT=
#export LIBGL_ALWASY_SOFTWARE=1

否则按照微软官方教程走下来,会发现运行gedit等程序会没有反应!!!


问题背景

系统:微软子系统WSL中的Ubuntu20.04
安装了Ros系统,为了在WSL上运行图形化程序,安装了Xserver,在测试ROS时发生了报错
主要是参考这篇文章

问题描述

在参考前面那篇文章运行rosrun turtlesim turtlesim_node命令时,出现错误:

qt.qpa.xcb: could not connect to display 
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:...

解决方案

这个问题出现的原因是ROS的程序无法连接到图形化界面,问题在于这块代码:

export DISPLAY=:0.0
export LIBGL_ALWAYS_INDIRECT=
export LIBGL_ALWASY_SOFTWARE=1

其中export DISPLAY=:0.0这一句有问题(也许作者运行时没问题,但我在自己电脑上运行时会报错),这里需要加上自己的WSL的IP地址,查看WSL的IP的方法是打开命令行(cmd),输入ipconfig
会显示在这里插入图片描述
也就是说,需要写成export DISPLAY=xxx.xx.xx.xx(IP):0.0
此外,:0.0这里跟XLaunch设置的显示器编号(Display Number)需要保持一致,默认为-1,等同于0.
如果这里设置为了其他数字,比如1,则上面的设置需要改为export DISPLAY=xxx.xx.xx.xx(IP):1.0
在这里插入图片描述
另外,下图中的第三个需要勾选
在这里插入图片描述

参考

[1] WSL (Ubuntu 18.04 LTS) 安装ROS,可运行Rviz和Gazebo

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐