ROS1 NoeticにGLIMをインストールする手順(without CUDA)

やることの概要

最近気になっている、イケてるSLAM(GLIM)を試したいと思い、インストールしてみたので手順をメモする。なお、詳細やどれくらいすごいかは下記のリンク先を見ればよくわかる。zenn.dev/koide3/articles/144e97133234e2

なお、本記事では手元にあるUbuntu PC(Intel N100搭載ミニPC、グラボなし)が、Ubuntu 20.04であり、ROS1 Noeticが入っているので、ROS1 Noetic版をインストールする手順を示す。また、上述の通りミニPCにはグラボなどはないため、グラボがない設定で(without CUDA)インストール・ビルド等を行った。

インストール手順

ソースコードからビルドしてもよいし、PPAなるものを使ってビルド済みのものをインストールすることも可能らしい。
PPAからインストールする場合の手順は以下の通り。

# Automatically setup PPA via online script
curl -s https://koide3.github.io/ppa/setup_ppa.sh | sudo bash

# Manually setup PPA for Ubuntu 20.04
curl -s --compressed "https://koide3.github.io/ppa/ubuntu2004/KEY.gpg" | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/koide3_ppa.gpg >/dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/koide3_ppa.gpg] https://koide3.github.io/ppa/ubuntu2004 ./" | sudo tee /etc/apt/sources.list.d/koide3_ppa.list

#Install dependencies
sudo apt update
sudo apt install -y libiridescence-dev libboost-all-dev libglfw3-dev libmetis-dev

# Choose one of the followsからwithout CUDAを選択
sudo apt install -y libgtsam-points-dev           # without CUDA

# Install GLIM for ROS1 noetic (Ubuntu 20.04)
sudo apt install -y ros-noetic-glim-ros            # Without CUDA

ポイントは、「without CUDA」と書かれているものを選択するところか。

また、ソースからビルドする場合は、「cmake .. -DBUILD_WITH_CUDA=ON」とあるところを、「cmake .. -DBUILD_WITH_CUDA=OFF」とすれば良いように思われる(結局両方やったので、どっちが効いているのかわからない)。

実行手順

まずはGetting startedを参考に、サンプルのrosbagデータを用いて動作確認してみた。実行前のビルド(catkin_make)の手順は以下の通り。「-DBUILD_WITH_CUDA=OFF」とするところがポイント。

#Getting startedを参考に実行
#https://koide3.github.io/glim/quickstart.html

#catkin_makeを実行(これをやる必要があるかどうかは未確認だが、なんかやった形跡がある)
cd ~/catkin_ws/src
git clone https://github.com/koide3/glim
git clone https://github.com/koide3/glim_ros1

cd ~/catkin_ws

# DBUILD_WITH_CUDA=OFFにするといいっぽい
 catkin_make \
   -DBUILD_WITH_CUDA=OFF \
   -DBUILD_WITH_VIEWER=ON \
   -DBUILD_WITH_MARCH_NATIVE=OFF

グラボなしの環境では、「glim/config/config.json」の記載のうち、「〜_gpu.json」と書かれている部分を、「〜_cpu.json」と修正する必要がある模様(修正内容は以下の通り)。

glim/config/config.json
  "config_odometry": "config_odometry_cpu.json",
  "config_sub_mapping": "config_sub_mapping_cpu.json",
  "config_global_mapping": "config_global_mapping_cpu.json",

「glim/config/config.json」を修正したら、忘れずにcatkin_makeを実行する(GLIMのために「glim_ws」みたいなワークスペースを新しく作った場合は、以下のようなコマンドを実行しておくとよい)。

catkin_make \
   -DBUILD_WITH_CUDA=OFF \
   -DBUILD_WITH_VIEWER=ON \
   -DBUILD_WITH_MARCH_NATIVE=OFF
echo "source ~/glim_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

以上の準備が完了したら、ターミナルを3つ開き、それぞれ以下のコマンドを実行すればOKである。

#ターミナル①
roscore
#ターミナル②
rosparam set use_sim_time true
rosrun glim_ros glim_rosnode
#ターミナル③(実行するrosbagデータは各自選択したものに合わせること)
rosbag play --clock os1_128_01_downsampled.bag 

コメント