qt.qpa.xcb の問題を解決: ディスプレイに接続できませんでした

2022/07/21更新

WSL2 で Linux GUI を直接実行できるようになりました。Xserver(XLaunch)などのインストールはもう必要ありません!
Microsoft の公式チュートリアルを参照してください: Linux 用 Windows サブシステムでの Linux GUI アプリケーションの実行

ただし、以前にで Xserver の表示コマンドを設定している場合は、それをキャンセルする必要があることに注意してください。たった今:
.bashrc

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

geditそれ以外の場合は、Microsoft の公式チュートリアルに従うと、プログラムを実行しても応答しないことがわかります。


問題の背景

システム: Ros システムは、 Microsoft サブシステム WSL の Ubuntu 20.04
にインストールされています。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 を確認する方法は次のとおりです。コマンド ライン ( ) を開くには、「It will display」cmdと入力します。つまり、次のように記述する必要があります。また、XLaunch によって設定された表示番号と一致する必要があります。デフォルトは -1 (0 に等しい) です。1など他の数値に設定されている場合は、上記の設定を変更する必要があります。さらに、下図の3番目の項目を確認する必要がありますipconfig
ここに画像の説明を挿入
export DISPLAY=xxx.xx.xx.xx(IP):0.0
:0.0
export DISPLAY=xxx.xx.xx.xx(IP):1.0
ここに画像の説明を挿入

ここに画像の説明を挿入

参考

[1] WSL (Ubuntu 18.04 LTS) は ROS をインストールし、Rviz と Gazebo を実行できます

おすすめ

転載: blog.csdn.net/hypc9709/article/details/124238176