2021-05-29 2021-11-28

Picam360カメラをJetsonNanoに接続して360度映像をリアルタイムストリーミングする手順を紹介する連載、今回は最終回の第6回です。


本稿の英語版→English version is available here.

こんちには、Picam360開発コミュニティのGAKUと申します。

前回の投稿ではビューワーアプリのインストール手順を紹介しました。最終回の今回はビューワーアプリからJetson NanoのPicam360に接続してリアルタイム映像を視聴するまでの手順を紹介します。

2つの接続経路

ローカルネット内接続:

同一ローカルネット内にあるJetson Nanoへ同じネットワーク内のビューワーアプリから接続します。この場合、外部ネットワークからはアクセスできません。

インターネット経由接続:

WebRTCを使用してJetson Nanoへインターネット経由で接続します。外出先からスマホで自宅にあるJetson Nanoへ接続するといった使い方ができます。

事前注意

ネットワーク経由での接続性は保証されません:

ローカルネットワーク、インターネット経由の接続は共にネットワーク環境によって接続できない場合があります。特にWebRTCを使用するインターネット経由の接続はルータのセキュリティ設定やPCのファイヤーウォールなどによって接続できない場合が多くあります。

[ 保証されない接続方法 ]

ローカルネットワーク、インターネット経由の接続

[ 保証される接続方法 ]

LANケーブルの直接接続(アンチウィルスソフトは無効であること)

セキュリティはご自身で担保してください:

ローカルネットワーク経由で接続する場合にクライアントがホストにアクセスするために必要な情報はホストIPアドレス+ポート番号のみです。インターネット経由(WebRTC)で接続する場合に必要とする情報は設定したキーのみです。単純な接続プロセスを採用していますので、セキュリティー対策はご自身の責任で行ってください。ソースコードはオープンソースとしてGitHubで公開しています(一部モジュールを除く)。


インターネット経由での接続を有効化する手順

設定ファイルを開きます。

$ cd ~/pserver
$ nano jetbot-vr180x1-config.json

インターネット経由で接続するための設定:

# 入力例
"wrtc_enabled" : true,
"wrtc_key" : "0dcad23c27a5407db4eacfb5dfb4a676"
  • wrtc_enabletrueに変更します。
  • wrtc_keyに任意のキーを入力します。WebRTCを有効にした場合、このキーによってカメラに接続できます。キーを知っていれば接続できるため、他人と重複しない十分に長いキーを指定してください。wrtc_enabletrueでもローカルネットワーク経由での接続は可能ですが、インターネット経由で接続する使い方をしない場合はfalseにしておきましょう。

ローカルネットワーク内から接続するための設定:

設定は特に必要ありません。

 

変更したらCtrl+o, Ctrl+xで保存して閉じます。


サーバーソフトウェアの起動

サーバーソフトウェア(pserver)を起動します。

モニターJetson Nanoに接続している場合は以下のコマンドで起動します。

$ pserver -c ~/pserver/jetbot-vr180x1-config.json

Headless(モニター無し)の場合は以下です。Headlessでpserverを使用する場合、以前の章でご紹介した自動ログイン設定が有効になっている必要があります。

$ export DISPLAY=:0 && pserver -c ~/pserver/jetbot-vr180x1-config.json

以上でサーバーソフトウェアが起動し、ビュワーから接続できる状態になります。

pserverを終了する場合は、ターミナルでCtrl+cを押します。


ビューワーアプリの起動

プラットフォーム別に起動の手順を説明します。

Mac, Windows, Linux

ターミナル(コマンドプロンプト)を開きます。

ビュワーアプリ(pviewer)を実行します。

$ pviewer

備考:コマンドオプション

$ pviewer -w <WebRTCのキー> # WebRTCのキーが入力された状態で起動
$ pviewer -f <ファイルパスまたはファイルのURL> # 表示する動画ファイルを指定して起動

iOS, Android, Oculus

OS所定の手順でアプリを起動します。

ブラウザ

ブラウザを起動して、以下URLにアクセスします。ブラウザはGoogle Chromeを推奨しています。Chrome以外のブラウザは動作は未確認です。

https://picam360.github.io/pviewer/?wrtc-key=your_key


ビューワーから接続する

接続手順はプラットフォームに関わらず共通です。以下のスクリーンショットにあるCONNECT画面が最初から表示されている場合は下記に述べるメニューから画面を開く手順は不要です。

画面右上のハンバーガーメニューボタン(横三本線)をクリックするとメニューが表示されます。CONNECTを押すとCONNECT画面が表示されます。

connect screen

ローカルネットで接続する場合:

WEBSOCKETを選択して、URLを入力します。

ws://<コンピューター名>.local:9001

例:

ws://picam360.local:9001

インターネット経由で接続する場合:

WEBRTCを選択して、設定ファイルに入力したKEYを入力します。

例:

0dcad23c27a5407db4eacfb5dfb4a676

接続情報を入力したらConnectボタンを押します。正常に接続されるとJetson Nano側のコンソールには下記のような情報が表示されます。

log display of connection

ビューワーアプリに映像が表示されます。下記の画像はiPadで表示したものです。

image on viewer

正常に接続できない場合は以下をお試しください。

  • インターネット経由で接続しようとして接続できない場合は一度ローカルネット経由で接続できるか確認してください。ローカルネットで接続できたら原因はwebrtcが有効になっていないかkeyが間違っている、またはネットワークに問題がある可能性があります。
  • 今一度インストール手順に誤りがないが確認してみてください。手順に問題がなくローカルネット経由でも接続できない場合は、お手数ですがこちらのページの動作確認済み環境に合わせて再度インストールしてください。

 

操作方法

視野方向の移動:

スマホやタブレットは、その姿勢と視野方向が連動します。スワイプでも視野方向を動かせます。パソコンの場合はマウスのドラッグで移動できます。

ズーム:

スマホやタブレットはピンチ、パソコンの場合はマウススクロールで拡大縮小できます。

 

アプリを終了させる

Mac, Windows, Linux:
ターミナル(コマンドプロンプト)でCtrl+cを押します。

iOS, Android:
スマホ所定のアプリ終了手順でアプリを終了させます。

 

以上で手順のご紹介は完結です。

今回はJetson Nanoをサーバーデバイスとしてカメラを1つ接続するという構成でしたが、他にもWindowsマシンやRaspberry Piをサーバーデバイスとする場合や、カメラを2つ接続してステレオ3Dを視聴するといったバリエーションがあります。今後の記事で紹介していきたいと思います。お楽しみに。


連載: Jetson NanoでPicam360を始めよう

  1. 必要な物と注意事項
  2. SDカードイメージの書き込み
  3. サーバーソフトウェアのインストール
  4. カメラキャリブレーション
  5. ビューワーアプリのインストール
  6. 接続する

Picam360リンク: