Visual SLAMを試してみたいなーと。
現状、そこそこ有力っぽい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の場合だとカメラがつながらないので、これをどうにかしないといけないんだけれど。。。