Jetson Nano(4GB) のDockerコンテナでOpenVSLAMを試してみる(2/3)


Jetson Nano(4GB) でOpenVSLAMを試してみる(1/3)ではDesktop環境にそのままOpenVSLAMの実行環境を作りましたが、ここではDockerコンテナを作ってそこに環境を構築してみます。

使うのはjetpack4.5.1に実装されているNVIDIAコンテナです。

参照するのはOpenVSLAMのマニュアル(PDF版)6.2 Instructions for SocketViewe と 6.3 Bind of Directoriesです。

 


OpenVSLAMのDockerイメージを作成

Jetson Nano(4GB) でOpenVSLAMを試してみる(1/3)で、リポジトリからクローンしたドッカーファイル(Dockerfile.socket)を使います。

ユーザーホームで作業します(jetsonの部分はご自分の環境によって適宜書き換えてください)。

ディレクトリ構成についてはJetson Nano(4GB) でOpenVSLAMを試してみる(1/3)参照

2つのイメージを作成します。

1つは、openvslam-socketというイメージ(2時間半くらいかかります)

Jetson Nano は1CPU 4Core で1Core/1 thread なので以下のコマンドが有効かも。

2つ目はopenvslam-serverというイメージ(1分もかかりません)

 

 


Socket Viewerを使ってみます

コンテナからホスト側のデータセットを使うので、ファイルをまとめたフォルダーを作ってマウントしておきます。

/home/jetson/data-vslam というフォルダーを新規に作成

以下のディレクトリーとファイルをコピーしておきます。

/home/jetson/openvslam/build/aist_living_lab_1

/home/jetson/openvslam/build/aist_living_lab_2

/home/jetson/openvslam/build/orb_vocab.fbow

/home/jetson/openvslam/example/aist/equirectangular.yaml

こんな感じです。

 

2種類のコンテナを作成します。

openvslam-serverイメージから、 my_openvslam-serverという名前のコンテナを作成

openvslam-socketイメージから、my_openvslam-socketという名前のコンテナを作成

コンテナ内の/workからデータセットを参照します。

 


ターミナルを開いてserverコンテナを起動します。

ブラウザーを開いて、http://127.0.0.1:3001にアクセスしてSocketViewer を開きます 。

こんな感じ。

 

もう一つターミナルを開いて、my_openvslam-socketコンテナを起動。

サンプルのaist_living_lab_1video.mp4を使って環境地図を作成します。

./run_video_slam -v /work/orb_vocab.fbow -m /work/aist_living_lab_1/video.mp4 -c /work/equirectangular.yaml --frame-skip 3 --no-sleep --map-db map.msg


Localization は以下のコマンド実行

aist_living_lab_2のvideo.mp4を使って自己位置を推定してみます。

./run_video_localization -v /work/orb_vocab.fbow -m /work/aist_living_lab_2/video.mp4 -c /work/equirectangular.yaml --frame-skip 3 --no-sleep --map-db map.msg


my_openvslam-serverは以下のコマンドで停止

ホスト側からコンテナ自体を停止させます。

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*