質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.54%
Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

803閲覧

usb_camで映像の表示ができない

meito_milk

総合スコア1

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/01/20 07:26

前提

・roscore、rosrun usb_cam usb_cam_nodeは正常に動作し、rosrun image_view image_view image:=/usb_cam/image_rawでエラー(?)
※Gtk-WARNING と言われる

・usb_cam_nodeが動作しているので、表示ができない原因がわかればいいはずですが、どこに問題があるのかわかりません。このパッケージでは新たにウィンドウを立ち上げて映像が表示されるもので、SSH接続したUbuntu側で新たにウィンドウを立ち上げることに制限をかけているのでしょうか。原因がわからず、詰まっています。

動作環境

・Raspi3+ModelB
・OS Ubuntu-desktop - 20.04 ( ros-noetic )
・USBカメラ:メーカー[TAWARON]品番[HDC1]
・パッケージ:①ros-noetic-usb-cam, ②ros-noetic-image-view

・RaspiはWifiでネットワークに接続されている
・virtual box 上のUbuntu-desktop-20.04 からSSH接続してrosコマンドを実行
・ターミナルを 3つ立ち上げてroscore, rosrun usb_cam usb_cam_node, rosrun image_view image_view image:=/usb_cam/image_rawをそれぞれ実行

実現したいこと

usb_cam ノードと、image_view ノードが正常に動作し、RaspberryPiにusb接続したカメラの映像を、virtualbox 上のUbuntuで表示させたい。

発生している問題・エラーメッセージ

ubuntu@ubuntu:~$ rosrun image_view image_view image:=/usb_cam/image_raw [ INFO][1674198371.892617986]: Initializing nodelet with 4 worker threads. [ INFO][1674198376.315876550]: Using transport "raw" Unable to init server: Could not connect: Connection refused (image_raw:2846): Gtk-WARNING **: 07:06:16:422: cannot open display: 127.0.0.53: 0.0

該当のソースコード

Python

1rosrun image_view image_view image:=/usb_cam/image_raw

試したこと

エラー文を検索かけたり、同じエラーで悩んでいる記事を探したが見当たらない。
RaspberryPiにインストールしたROSnoeticはros-serverだったため、GUI環境での映像の出力ができないのではないかと考え、ros-desktopにグレードアップさせたが、変化なし。
RaspberryPiをモニターにHDMI接続させて直接操作しようと試みるも、マシンパワーが足りないのかログインパスワードを入力実行したところで何度もフリーズし、確認できず。

補足情報(FW/ツールのバージョンなど)

ロボット開発など諸々初心者で、前提知識の不足等あるかもしれません。記載すべき情報の抜け漏れ等ありましたら、ご指摘ください。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

試してみました結果、デフォルトで X11forwarding yes とありました。
X11について調べる中で環境変数について間違いがあったように感じ、変更したらうまくいきました。
手順は WSL2 に Xserver を導入し、環境変数を修正してカメラノードを起動といった流れです。
X server 導入に関しては参考にしたサイトを下に貼っておきます。
環境変数は Ubuntu を使い始める段階で初期設定を一通り行う際に設定したままでした。
また、解決した環境は質問時の Virtualbox 環境とは異なるため、参考にされる場合はご容赦ください。
動作環境の変更点としては virtual box 上の Ubuntu-desktop-20.04 ではなく、WSL2-Ubuntu-desktop-20.04 です。接続方法は変わらずSSHです。

変更点

RaspberryPi上のUbuntuの環境変数と、WSL2上のUbuntuの環境変数に以下の変更を加えました。

$ sudo vi ~/.bashrc export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 ↓ export DISPLAY=***.**.***.*:0.0

※使用している DesktopPC の PowerShell にて $ipconfig コマンドを実行して
イーサネットアダプターイーサネット:IPv4アドレス を参照
(WSL2上で $ipconfig.exe コマンドを実行しても同様に参照可能)

参考資料

Xserver 導入に関する資料:ITメディア
https://atmarkit.itmedia.co.jp/ait/articles/1812/06/news040.html
Xserver 導入に関する資料:DevelopersIO
https://dev.classmethod.jp/articles/wsl-x-window/
WSL2のGUI設定に関する資料:qiita
https://qiita.com/baibai25/items/5841b0592727893d960f

投稿2023/01/23 19:30

編集2023/01/23 21:05
meito_milk

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

SSHで接続する際にX転送の設定をしていますか?
ディストリにもよりますが、デフォルトではX転送が許可されていないようです。
エラー内容によると

shell

1(image_raw:2846): Gtk-WARNING **: 07:06:16:422: cannot open display: 127.0.0.53: 0.0

とあるので、guiを表示させるためのディスプレイが見つからないとエラーが出ているようです。
ですので、X11フォワーディングを許可してみて試してみてください。
https://man.openbsd.org/sshd_config#X11Forwarding

投稿2023/01/20 12:41

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meito_milk

2023/01/20 13:37

ご回答いただきありがとうございます! X11フォワーディングというものを知りませんでした。 試してみようと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.54%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。