2021-04-27 2022-01-28

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


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

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

前回の投稿ではSDカードにディスクイメージを書き込み、初回起動時の設定を行いました。今回はサーバーソフトウェアのインストール方法をご紹介します。サーバーソフトウェアはPServer(ピーサーバー)という名称のソフトウェアです。PServerはPicam360カメラの映像をキャプチャーして、Picam360 Video Format (PVF)に変換し、変換した映像をビューワーアプリへストリーミングする役割を担います。

サーバーソフトウェアのインストール

コマンドラインインターフェースを使用してソフトウェアをインストールします。コマンドを実行する度に必ず画面に表示されるコマンド実行結果を見て正常に完了しているか確認しましょう。手順通りにコマンドを実行しても、SDカードイメージやソフトウェアが新しくなっていることによって、エラーが発生する場合があります。そのほとんどはエラーメッセージをウェブで検索すると解決方法が見つかります。


コマンドを実行して必要なソフトウェアをインストールします。コマンドを実行するためにターミナルを起動します。Jetson Nano上で直接操作するか、もしくはsshを使用してリモートで操作する方法があります。お好きな方を利用してください。

Jetson Nanoを直接操作する:

モニタ、キーボード、マウスを接続して、デスクトップからターミナルを起動します。

terminal

sshを使用してリモート接続する:

Macの場合はターミナルを開きます。Windowsの場合はコマンドプロンプトを開きます。Windows10バージョン1803から、SSHクライアントが搭載されているのでコマンドプロンプトからsshコマンドを実行できます。それ以外の場合は別途sshクライアントをインストールしてください。

sshコマンドを実行します。

$ sudo ssh <ユーザー名>@<コンピューター名>.local
# 例)sudo ssh picam360@picam360.local

コマンドを実行すると最初にリモート元のコンピューターにおけるログインパスワードを求められることがありますので入力します。次にJetson Nanoのログインパスワードが求められるので入力します。

Password: <リモート元コンピューターのログインパスワード>
picam360@picam360.local's password: <Jetson Nanoのログインパスワード>

ターミナルの準備が整いました。それではPServerに必要なソフトウェアをインストールしていきます。

まず、ウェブサイトからデータをダウンロードするためにcurlと、テキストエディタのnanoをインストールします。

$ sudo apt-get -y install curl nano

Headless(モニター無し)でPicam360が利用できるように、自動ログイン設定を有効にします。nanoでディスプレイマネージャーの設定ファイルを開いて編集します。

$ sudo nano /etc/gdm3/custom.conf

下記の#を外して、user1の部分を自分のユーザー名に変更します:

#AutomaticLoginEnable = true
#AutomaticLogin = user1

例:

AutomaticLoginEnable = true
AutomaticLogin = picam360

Ctrl+o, Ctrl+xを押して保存してnanoを閉じます。

Jetson Nanoを再起動します。

$ sudo reboot

ターミナルを開きます。sshの場合は再接続してください。

node.jsをインストールするためにnvmをインストールします。https://github.com/nvm-sh/nvm/tagsにアクセスして最新バージョンの番号をメモします。

[ヒント] 検証済み環境にPicam360ソフトウェアの正常動作が確認されているバージョンが記載されています。そのバージョンを使用することをお勧めします。

nvmをインストールします。バージョン番号はメモしておいた物に置き換えてください。

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

インストールの結果を反映させるためにターミナルを閉じて開きなおします。sshの場合は再接続してください。

開き直したら、次にnode.jsnpmをインストールします。

[ヒント] 検証済み環境にPicam360ソフトウェアの正常動作が確認されているバージョンが記載されています。そのバージョンを使用することをお勧めします。

$ nvm install --lts # LTSの最新をインストール
$ nvm use --lts # LTSの最新を使用するように設定

バージョンを指定する場合

$ nvm install <version> # 例) nvm install v14.17.0
$ nvm use <version>

node.jsnpmのインストールが成功しているか確認します。

$ node -v # バージョン表示。表示されればOK。(v14.17.0 @ 2021年5月現在)
$ npm -v # バージョン表示。表示されればOK。(v6.14.13 @ 2021年5月現在)

ここまでで、PServerに必要な周辺ソフトウェアが整いました。それではPServerをインストールします。

[ヒント] 検証済み環境にPicam360ソフトウェアの正常動作が確認されているバージョンが記載されています。そのバージョンを使用することをお勧めします。

$ npm install -g node-pserver@0.1.3 # バージョンを指定する方法

# または

$ npm install -g node-pserver

PServerのインストールを確認します。

$ which pserver # パスが表示されればOK

設定

PServerの設定ファイルを配置します。

ファイルを配置するフォルダを作成します。

$ cd ~
$ mkdir pserver

<検証済み環境>にアクセスしてシングルカメラ用の設定ファイル(node-pserver config file)のファイルIDをコピーしておきます。

下記のコマンドのFILE_IDの部分をコピーしておいたIDで置き換えて実行します。設定ファイルがダウンロードされます。

$ cd ~/pserver 
$ curl -Lo jetbot-vr180x1-config.json https://drive.google.com/u/3/uc?id=FILE_ID&export=download
# 例) curl -Lo jetbot-vr180x1-config.json https://drive.google.com/u/3/uc?id=1LPxTrGARjiowZ3jPxtD433YKSK7BHU5o&export=download

コマンドの実行が10秒経過しても終了しない場合はCtrl+cで終了させます。ファイルはできているはずです。

ダウンロードした設定ファイルを開きます。

$ nano jetbot-vr180x1-config.json

使用するカメラのパラメータを入力:

>>>node-pserver: 0.1.7 or higher

この部分の入力カメラ情報を変更します。

"params" : {
    "APP.SIZE" : "1024x1024",
    "APP.CAM0" : "3840x2880@15:/dev/video0",
},

カメラ別の値

PICAM360-4KHDR: 3840x2888@15
PICAM360-CAMPT8MP: 3264x2448@15
PICAM360-CAMTWDR: 2048x1536@15

<<<node-pserver: 0.1.7 or higher

>>>node-pserver: 0.1.2

  • @APP.CAM0@と@APP.SIZE@

stream_defs内のdefault要素にある@APP.CAM0@@APP.SIZE@を接続カメラに合わせて書き換えます。

conf 1

@APP.CAM0@はカメラの入力解像度と入力FPSを以下のフォーマットで指定します。

/dev/video0の末尾の数字は通常は0ですが他にもカメラを接続している場合は変わってきます。詳しくは「linux dev video」などのキーワードでウェブ検索してみてください。)

3840x2888@15:/dev/video0 # PICAM360-4KHDR
3264x2448@15:/dev/video0 # PICAM360-CAMPT8MP
2048x1536@15:/dev/video0 # PICAM360-CAMTWDR

@APP.SIZE@は入力画像をPicam360 Video Formatへ変換する時に使用する値で、その意味についてはまた別の機会に説明することとします。以下の値に設定します。

1024x1024

以下画像は置き換え後の例です。

conf 4

<<<node-pserver: 0.1.2

不要な設定をコメントアウト:

plugin_paths内の要素とpviewer_config_ext要素が存在する場合は行頭に#をつけてコメントアウトします。これらはjetbot用の設定で、今回は使用しないためです。

conf 2

conf 3

 

以上で、サーバーソフトウェアのインストールは完了です。次に続く。


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

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

Picam360リンク: