ORB_SLAM2をUbuntu 20.04でビルドする。

Visual SLAMを試してみたいなーと。

ma38su.hatenablog.com

現状、そこそこ有力っぽいORB_SLAM2を試してみる。

オリジナルからgit cloneしても最近の環境ではエラーでビルドできない。 以下で公開されているForkでは、Ubuntu 20.04でもビルドできるようになっていた。

https://github.com/Windfisch/ORB_SLAM2

PLもでている。

https://github.com/raulmur/ORB_SLAM2/pull/790

必要なパッケージなどREADMEを参考に事前にインストールする。 Ubuntuのバージョンによって多少名前が違ったりはするけど、困ったのはそのくらい。 ROSは20.04に対応したnoeticをインストールしておく。ここまででも結構時間かかる。

sudo apt-get install -y python3-rosinstall, libpng-dev

事前にインストールしてから以下を実行する。

git clone https://github.com/Windfisch/ORB_SLAM2.git ORB_SLAM2

cd ORB_SLAM2
chmod +x build.sh
./build.sh

ちなみに、Ubuntu 20.04の場合は必要なパッケージ名がちょっと違っていたものがあったりした。 ROSを入れなくても動作は確認できる。

それからWSLとかだと普通にビルドできたが、ラズパイでやってみたときは、ビルドが途中フリーズしているように見えることがあった。 build.shファイルを開いて、make -j 1とかに編集したら解消した。

mkdir dataset
cd dataset
wget https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_xyz.tgz
tar -zxf rgbd_dataset_freiburg1_xyz.tgz

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml dataset/rgbd_dataset_freiburg1_xyz

データのパスが間違っていると何も応答が返ってこないので、パスはちゃんと指定すること。 WSL2ではVcXsrvを使って表示したけど特に問題なかった。

とりあえず、Ubuntu20.04でも動くことは確認できた。WSLでもRaspberry Pi 4Bでも大丈夫。

まぁWSL2の場合だとカメラがつながらないので、これをどうにかしないといけないんだけれど。。。