2022-06-10 2022-06-27

Dockerを利用してPicam360ソフトウェアのインストール済み環境を構築できるようになりました。picam360 with docker

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

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

Dockerを利用してPicam360ソフトウェアのインストール済み環境を構築できるようになりました。以前の手順に比べて手順数が少なくなり、簡単にインストールできます。

注意点


今回ご紹介する手順によって構築される動作環境は、まだ完全ではありません。

  • カメラキャリブレーション機能にアクセスできません。暫定のキャリブレーション情報を適用するので使用できますが、画像に歪みがでます。(今後は自動キャリブレーション機能の実装を検討しています)
  • ライセンス認証機能にアクセスできません。ステレオ機能はライセンス認証をしなくても動作しますが、FPSは7.5に制限されます。

これらは、改善されたタイミングでこの記事を更新していきます。

インストール手順に進む前に、Picam360ソフトウェアを使用する上での注意事項はこちらの記事を一読ください。

Jetson NanoでPicam360を始めよう – 1: 必要な物と注意事項


インストール手順

nvidiaのランタイムをインストールします。

$ sudo apt-get install nvidia-container-runtime

設定ファイルを作成します。

sudo tee /etc/docker/daemon.json <<EOF
{
  "runtimes": {
    "nvidia": {
      "path": "/usr/bin/nvidia-container-runtime",
      "runtimeArgs": []
    }
  }
}
EOF

dockerデーモンを再起動します。

$ sudo systemctl restart docker

インストールに必要なファイルをGithubからダウンロードします。

$ git clone --depth=1 https://github.com/picam360/node-pserver.git

ドッカー用のファイルが入ったディレクトリに移動します。

$ cd node-pserver/docker/jetson

ドッカーイメージを作成します。末尾のドットは必要です。

$ sudo docker build -t pserver:0.1.10 -f Dockerfile.jetson .

コンテナを作成します

# シングルカメラ用:
$ sudo docker run -d --name pserver --runtime nvidia -p 9001:9001 -v /etc/pserver:/etc/pserver --privileged pserver:0.1.10 -c /root/mono-config.json
# ステレオカメラ用:
$ sudo docker run -d --name pserver --runtime nvidia -p 9001:9001 -v /etc/pserver:/etc/pserver --privileged pserver:0.1.10 -c /root/stereo-config.json

以上でインストール完了です。

起動する

コンテナを起動します。コンテナ内のPserver(Picam36oソフトウェア)も起動されます。

$ sudo docker start -a pserver

ビューワーで映像を見る

ビューワーアプリからの接続手順は、これまでと同じです。下記の記事を参照してください。また、Pserverの設定ファイルを変更したい場合は、本記事下方の「コンテナ内の設定ファイルを編集する」を参照してください。

Jetson NanoでPicam360を始めよう – 6: 接続する

コンテナ内の設定ファイルを編集する

新しくターミナルを開きます。

起動中のコンテナに入ります。

$ sudo docker container exec -it pserver bash

Pseverの設定ファイルを開いて編集します。

シングルカメラ用:

$ nano mono-config.json

ステレオカメラ用:

$ nano stereo-config.json

編集が終わったら、コンテナから出ます。

$ exit

コンテナの編集を上書き保存します。

$ sudo docker commit pserver pserver:0.1.10

自動的に起動するように設定する

Jetson Nanoの起動と同時にPseverも起動するようにしたい場合、Pserverをサービスとして登録し自動機能を有効化します。以下の設定で可能です。

サービスの設定ファイルを所定の位置にコピーします。

#sudo cp pserver.service /etc/systemd/system/

設定を読み込ませます。

#sudo systemctl daemon-reload

自動起動の設定を有効化します。これでJetson Nanoを再起動すると、自動的にコンテナも起動します。

#sudo systemctl enable pserver.service

設定直後はまだサービスは起動していないので、Jetson Nanoを再起動するか、または下記のコマンドで起動させます。

#sudo systemctl start pserver.service

 

以上、Dockerを利用したPicam360ソフトウェアのインストール手順でした。


Picam360リンク: