0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

stella_vslamのROS2向けチュートリアル

Last updated at Posted at 2022-10-15

概要

Ubuntu 18.04 で ROS2 galactic (Ubuntu 20.04) の docker コンテナを作って stella_vslam_ros (https://github.com/stella-cv/stella_vslam_ros) を動かしてみました。

ビルド

git clone --recursive --branch galactic-devel --depth 1 https://github.com/stella-cv/stella_vslam_ros.git
cd stella_vslam_ros
docker build -t stella_vslam-ros2 -f Dockerfile.socket .

Viewer のビルド

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
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ブラウザで開く。

image.png

stella_vslam_ros 実行用のコンテナを起動

別のターミナルを開いて、stella_vslam_ros 実行用のコンテナを起動する。

docker run --rm -it --name stella_vslam-ros2 --net=host stella_vslam-ros2

データセット等のダウンロード

起動した 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
curl -sL "https://raw.githubusercontent.com/stella-cv/stella_vslam/0.3.7/example/aist/equirectangular.yaml" -o equirectangular.yaml

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

再生用ツールをインストール

apt install -y ros-galactic-image-publisher
source /ros2_ws/install/setup.bash

tf を publish する

以下のコマンドで tf を publish するノードをバックグラウンドで起動する。

ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 odom base_footprint&
ros2 run tf2_ros static_transform_publisher 0 0 -1.57 0 0 -1.57 base_footprint camera&

SLAM 実行

stella_vslam-ros2 のコンテナに戻って、以下のコマンドで run_slam をバックグラウンドで実行する。

ros2 run stella_vslam_ros run_slam \
    -v ./orb_vocab.fbow \
    -c ./equirectangular.yaml \
    --map-db-out map.msg&

以下のコマンドで、動画を publish する。(ループ再生になっていることに注意。)

ros2 run image_publisher image_publisher_node ./aist_living_lab_1/video.mp4 --ros-args --remap /image_raw:=/camera/image_raw

image.png

Viewer の Terminate ボタンを押すと、地図を保存して run_slam が終了する。

Localization 実行

保存した地図を使って自己位置推定を行う。

ros2 run stella_vslam_ros run_slam \
    --disable-mapping \
    -v ./orb_vocab.fbow \
    -c ./equirectangular.yaml \
    --map-db-in map.msg&

以下のコマンドで、動画を publish する。

ros2 run image_publisher image_publisher_node ./aist_living_lab_2/video.mp4 --ros-args --remap /image_raw:=/camera/image_raw

image.png

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?