概要
Ubuntu 18.04 で stella_vslam (https://github.com/stella-cv/stella_vslam) のチュートリアルを動かしたので手順を記録しておきます。
参考:https://stella-cv.readthedocs.io/en/latest/simple_tutorial.html
ビルド
stella_vslam とそのビューア用のDockerイメージをビルドする。(docker のバージョンは 20.10.12 でした。)
git clone --recursive https://github.com/stella-cv/stella_vslam.git
cd stella_vslam
git checkout 0.3.7
docker build -t stella_vslam-socket -f Dockerfile.socket .
cd viewer
docker build -t stella_vslam-viewer .
Viewer のサーバ用コンテナを起動
Viewer のサーバ用のコンテナを起動する。
docker run --rm -it --name stella_vslam-viewer --net=host stella_vslam-viewer
Viewer のクライアントを起動
http://localhost:3001
をwebブラウザで開く。
stella_vslam 実行用のコンテナを起動
別のターミナルを開いて、stella_vslam 実行用のコンテナを起動する。
docker run --rm -it --name stella_vslam-socket --net=host stella_vslam-socket
データセット等のダウンロード
起動した stella_vslam 実行用のコンテナの中にデータセット等をダウンロードする。
apt update
apt install -y python3-pip
pip3 install gdown
curl -sL "https://github.com/stella-cv/FBoW_orb_vocab/raw/main/orb_vocab.fbow" -o orb_vocab.fbow
gdown "https://drive.google.com/uc?id=1d8kADKWBptEqTF7jEVhKatBEdN7g0ikY"
gdown "https://drive.google.com/uc?id=1TVf2D2QvMZPHsFoTb7HNxbXclPoFMGLX"
unzip aist_living_lab_1.zip
unzip aist_living_lab_2.zip
SLAM 実行
stella_vslam-socket のコンテナに戻って、以下を実行する。
./run_video_slam -v ./orb_vocab.fbow -m ./aist_living_lab_1/video.mp4 -c ../example/aist/equirectangular.yaml --frame-skip 3 --no-sleep --map-db-out map.msg
Viewer の Terminate ボタンを押すと、地図を保存して run_video_slam が終了する。
Localization 実行
保存した地図を使って自己位置推定を行う。
./run_video_slam --disable-mapping -v ./orb_vocab.fbow -m ./aist_living_lab_2/video.mp4 -c ../example/aist/equirectangular.yaml --frame-skip 3 --no-sleep --map-db-in map.msg