Jetson Xavierを使ってみる その4(ROS、Tailscaleを利用した画像データの送受信)

はじめに

 今回はROSとTailscaleを利用して、インターネットを経由した画像データの送受信を試してみました。

 前回の記事ではローカルネットワークで試していました。今回は自宅と大学の間で通信を行っています。ロボットの遠隔操作をするときに活用したいと思っています。

▼Jetson XavierでのROSの環境は以下の記事で構築済みです。

Jetson Xavierを使ってみる その3(ROSの環境構築、USBカメラ映像のPublish)

はじめに  今回はJetson XavierでROSの環境を構築して、USBカメラの映像をPublishしてみました。  ROSの通信で画像を送信して、物体検出や遠隔操作などを試したいなと思…

▼Tailscaleも以下の記事で導入済みです。

Jetson Xavierを使ってみる その2(通信周りの設定、Node-RED、TailScale)

はじめに  今回は以前OSのセットアップを行ったJetson Xavierの通信周りの設定を行いました。  自宅サーバーとして使いたかったので、外部のネットワークからでもアクセ…

▼以前の記事はこちら

Jetson Xavierを使ってみる その1(JetPack 5.1.5のセットアップ)

はじめに  最近TechSeeker Hackathon 2025というハッカソンに参加しているのですが、参加者特典でJetson Xavierを1万円で購入できました。今回はそのセットアップをして…

ロボットアームにカメラを取り付けて映像を確認する(YOLO)

はじめに  以前の話ですが、Amazonで購入して動かせるようにしたロボットアームにカメラを取り付けて試していました。  YOLOによるリアルタイム検出も併用して、視野や…

WSL2環境にTailscaleのインストール

 前回の記事ではローカルネットワーク内で映像を確認できていたのですが、インターネットを経由すると確認できないことがありました。

 WindowsのPCにはTailscaleをインストールしていたのですが、同じPCのWSL2の環境にはインストールしていなかったので、インストールしました。

▼TailscaleをWSL2の環境にインストールする方法は以下に書かれています。

https://tailscale.com/kb/1295/install-windows-wsl2

 今回はWSL2のUbuntu 20.04の環境にTailscaleをインストールしました。

▼ROSの環境も構築済みの状態です。

WSL2を使ってみる その3(Ubuntu 20.04、ROS Noetic、Open Manipulator)

はじめに  今回はWSL2のUbuntu 20.04に、ROSをインストールしてみました。  前回構築したのはWSL2のUbuntu 22.04です。WSL2で複数のバージョンのUbuntu環境をインストー…

 インストール用のコマンドを実行するだけで済みました。

curl -fsSL https://tailscale.com/install.sh | sh

▼インストール後、sudo tailscale upを実行して、アカウントでログインします。

 ログイン後、tailscale ipを実行すると、TailscaleでのIPアドレスが表示されていました。

 今回はROSのマスターをJetson Xavierにします。Jetson側とWSL2側の.bashrcを編集し、ROS_MASTER_URIをJetsonのTailscaleでのIPアドレス、ROS_IPをそれぞれのTailscaleでのIPアドレスに変更しました。

 その後、source .bashrcを実行してからROSのコマンドを実行しました。

映像を確認する

 以下のコマンドでカメラ映像をPublishできます。

rosrun usb_cam usb_cam_node _video_device:=/dev/video0 _pixel_format:=yuyv _image_width:=640 _image_height:=480 _framerate:=30

 自宅のJetson XavierにUSBカメラを接続し、電波時計を置いて大学からRVizで確認してみました。

▼映像を確認できました!

 解像度によって送受信するデータ量が変わるので、コマンドを実行するときの解像度を変えてみました。

▼320×240の場合はこちら。特にラグなく秒針が動いているように見えます。

▼1920×1080の場合はこちら。偶に秒針が3秒ぐらい止まっていることがあります。

 秒針が見づらいのですが、解像度が高いと若干ラグがあるように感じました。簡易的な確認だけ試すために行っていたのですが、この方法では部屋が暗いと時計を確認できないことに気づきました。

最後に

 Tailscaleを利用して、インターネットを経由してカメラの映像を確認できました。ロボットの遠隔操作をするときに利用できそうです。

 データを送受信する環境にそれぞれTailscaleを入れていないと、通信できないと思われます。以前VRゴーグルで見ようとしたときも確認できないことがあったのですが、Tailscaleが入っていなかったからではないかと考えています。

▼redditでMeta Quest 3でもTailscaleを使いたいという話がありました。試してみたいところです。

 実際のデータ量や通信ラグについては数値で確認したいので、解析ツールで解析したいと考えています。Wire Sharkなどを使ってみようかなと思っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です