LoginSignup
1

More than 1 year has passed since last update.

ORB-SLAM2をビルド済みコンテナーイメージを使って素早く試してみる

Last updated at Posted at 2022-01-15

はじめに

この記事ではJetson上でコンテナーイメージを使ってORB-SLAM2を実行する手順を説明します。
手順を実行すると以下のような画面が立ち上がり、ORB-SLAM2を試すことが出来ます。

image.png

今回は以下にあるコンテナーイメージを使用します。
ビルド済みであるため、ビルドで苦労することはありません。

今回するコンテナーイメージ
image.png

Dockerfileはこちらのリポジトリにあります。
https://github.com/dusty-nv/jetson-containers

環境

Jetson Nano 4G
Jetpack 4.6
Webカメラ:logicool C505

手順

1. Default Runtimeの設定

/etc/docker/daemon.jsonを以下のように変更します。
変更後、Jetsonを再起動( sudo reboot )します。

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },

    "default-runtime": "nvidia"
}

2. コンテナーの起動

コンテナーから画面を表示出来るようにX Windowの設定を行います。
また、Webカメラがコンテナーから参照出来るようにdeviceオプションで設定します。

sudo xhost +si:localuser:root
sudo docker run -it --rm --network host \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix/:/tmp/.X11-unix \
-v `pwd`:/scripts \
--device /dev/video0:/dev/video0:mwr \
--name orb-slam2 \
dustynv/ros:foxy-slam-l4t-r32.6.1

上記のコマンドを実行すると以下のようにコンテナーが起動されます。
not found librealsense2は、ここでは無視します。

image.png

3. ORB-SLAM2を起動

コンテナーのプロンプトから以下のコマンドを実行します。

export LD_LIBRARY_PATH=/tmp/pangolin/build/src:/opt/ORB_SLAM2_CUDA/Thirdparty/DBoW2/lib:/opt/ORB_SLAM2_CUDA/lib:$LD_LIBRARY_PATH
ros2 run ros2_orbslam mono /opt/ORB_SLAM2_CUDA/Vocabulary/ORBvoc.txt /opt/ORB_SLAM2_CUDA/Examples/RGB-D/TUM1.yaml

上記のコマンドを実行すると以下のようにORB-SLAM2の画面が表示されます。
カメラ映像がまだ入力されないため、Currnet FrameのWindowは黒い状態です。

image.png

4. Webカメラを起動

コンテナーに接続して、Webカメラ(v4l2_camera_node)を起動します。
新しいターミナルを立ち上げて、以下のようなコマンドを実行します。

sudo docker ps # 起動しているコンテナーを確認
sudo docker exec -it orb-slam2 bash # orb-slam2という名前のコンテナーに接続
ros2 topic list  # トピックを確認。/cameraトピックを確認出来るはず。
ros2 run v4l2_camera v4l2_camera_node -r image_raw:=camera # cameraトピックにカメラの映像をpublishするように起動する

コンテナーに接続して、トピックを確認すると/cameraトピックがあることを確認できます。
image.png

v4l2_camera_nodeを起動すると以下のような出力が出ます。
ERRORとWARNが出ていますが、カメラ映像は取得出来ているはずです。
image.png

カメラの映像がORB-SLAM2に読み込まれて処理されている様子が確認できます。
image.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1