現在、Robot OSを利用して自律ドローンを作ろうとしています。活性酸素種)。このために私はインストールしたラズベリーパイライト(提示)の中ラズベリーパイ3現在使用中ROSダイナミクス上。このためラズベリーパイライト、ウィンドウマネージャやデスクトップ環境なしでインストールされます。行くことにしましたOpenboxウィンドウマネージャ便宜上、端末が設置されています。ただ電話sudo startx
すると、ウィンドウマネージャが開いてアクセスできますCtrl + alt + F2
。システム全体の端末なので私も設置しました。マルチプレクサ便宜上。私は特定のポッドでxserverを実行し、別のポッドでROS操作を実行しています。
システム全体の端末でGUIアプリケーションを呼び出すコマンドを実行しようとすると、エラーが発生します。
QxcbConnection: Could not connect to display
Aborted
この問題を解決するには2つの方法があります。
私のウィンドウマネージャに端末がインストールされているので、ROSにそれを処理させる必要がありますか?ところで、ウィンドウマネージャ内で端末エミュレータの環境をシステム全体の端末の環境と同じように変更する方法がわかりません。シェルを変更するのと同じくらい簡単ですか?
実際、現在コマンドを実行しているtmuxウィンドウにGUIアプリケーションを送信する方法が見つかりました
sudo startx
。プロセスの親プロセスを別のプロセスの親プロセスに切り替えるには?
ノート:私は2番目の解決策が私のワークフローにとってよりエレガントで効率的であるので、確かに好みます。
ベストアンサー1
GUI環境の端末で、次のように入力します。
xhost +
GUI以外の環境では、次のように入力します。
export DISPLAY="localhost:0"
GUI以外の環境で起動されたグラフィカルアプリケーションは、GUI環境に表示されます。
もっと読むことができますman xhost
次の回答も参照してください。このコマンドはxhost …
何をしますか?