前回は単純にRvizを起動するのみでしたが、今回はもっと具体的なROS動作をGUIも含めてWSL上で実現してみたいと思います。
今回は試しに3D LiDARを使ったSLAMのひとつであるLIO-SAMというSLAMを動かしてみます。
前回ROSを構築したWSLのUbuntu-18.04ディストリビューションを起動します。以下はそのUbuntu端末上での操作です。
まずROS系のモジュールをインストールします。
sudo apt-get install -y ros-melodic-navigation sudo apt-get install -y ros-melodic-robot-localization sudo apt-get install -y ros-melodic-robot-state-publisher
これらのモジュールをインストールすると、前回は無事にGUIが起動していたRvizが起動しなくなったので、下記のおまじないで回避しました。
echo 'export LIBGL_ALWAYS_INDIRECT=' >> ~/.bashrc
gtsamのビルドとインストールを実行します。
mkdir ~/Downloads wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/ cd ~/Downloads/gtsam-4.0.2/ mkdir build && cd build cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF .. sudo make install -j8 echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
次にLIO-SAMのビルドです。
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone https://github.com/TixiaoShan/LIO-SAM.git cd .. catkin_make
以上でビルド類は完了です。次にLIO-SAMの動作確認用提供されているサンプルデータセットを取得します。LIO-SAMのGitHubページにあるSample Datasetsのセクションに何種類からのデータセットへのリンクがあります。ここでは"Walking dataset"のファイル walking_dataset-001.bag を ~/catkin_ws/datasets にダウンロードしました。
以上で、準備は完了です。ここから実際に動作させてみます。GUIを表示するため、前回インストールしたVcXsrv(スタートメニュー上ではXLaunch)をあらかじめ起動しておきます。
では、実際の動作に入ります。まず、LIO-SAMを起動します。下記の実行でRvizの画面も起動されます。
cd ~/catkin_ws source devel/setup.bash roscore & roslaunch lio_sam run.launch
Rvizが無事に起動されたら、次に、これまで使っていたのとは別の端末操作になります。WSLのUbuntu-18.04ディストリビューションをもうひとつ起動します。そして、その端末上で下記を実行して、あらかじめダウンロードしたサンプルデータセットのBagファイルをLIO-SAMに食わせます。
cd ~/catkin_ws source devel/setup.bash rosbag play ~/catkin_ws/datasets/walking_dataset-001.bag -r 3
うまくLIO-SAMが動作すると下図のようにRviz上に軌跡が表示されます。結構、派手なので感動しました。
以上でした。