ROS2でのナビゲーションの紹介こんにちは、sato改めd-satoです。2019の19日目の記事です。ROS2でのナビゲーションについて紹介します。ROS2で実際にナビゲーションパッケージを使用してみた例を紹介します。2019に参加しました。A1M8とそのマウントがセットになっているので、簡単にSLAMやナビゲーションの実験ができて便利です。このパッケージについては作者の近藤(@youtalk)さんがROSCon2019のLTにて発表したスライドを公開されていますので、そちらをご参照ください。Mouseを制御する基本パッケージであるrt-net/raspimouse2をベースにしています。Mouseを制御する方法は以下のページをご参照ください。PiへのROS2のインストール方法については以下のページを参照ください。Mouseの各機能を使えるようにするためにデバイスドライバをインストールしておきます。デバイスドライバのソースを含むリポジトリをGitHubからダウンロードして、ソースコードがあるディレクトリに移動します。RaspberryPiMouse/src/driversデバイスドライバをビルドしてインストールします。rtmouse.koデバイスドライバがインストールできると、ピッという音が鳴り、距離センサが1回光ります。これでインストール成功です。ROS2のインストールが完了したら、ワークスペースを用意してyoutalk/raspimouse_ros2をビルドしておきます。リポジトリをGitHubからダウンロードして、サブモジュールもあわせてダウンロードしておきます。Mouseのセットアップは完了です。18.04がインストールされたPCにROS2をインストールします。公式のドキュメントに書かれているインストール方法を参照するか、Tiryoh/ros2_setup_scripts_ubuntuを使ってインストールします。ROS2のインストールが完了したら、ワークスペースを用意してyoutalk/raspimouse_ros2をビルドしておきます。リポジトリをGitHubからダウンロードして、サブモジュールもあわせてダウンロードしておきます。~/ros/dashing/install/setup.bash以上でPCのセットアップは完了です。1とオプションを付けることでビルドが通るようになる場合もあるようです。MouseとPCでそれぞれノードを起動します。MouseとRPLIDARの制御ノードを起動します。Piにログインして以下のコマンドを実行します。Mouseのノードを有効にします。PCで2枚目のターミナルを開き、以下のコマンドを実行します。true}'Cartographerのノードを起動します。2枚目のターミナルで以下のコマンドを実行します。cartographer.launch.pySLAMのために部屋の中でロボットを移動させます。PCで3枚目のターミナルを開き、以下のコマンドを実行します。teleop_twist_keyboard地図作成中の様子ある程度動かすと部屋の状態がわかる地図ができあがります。https://gist.github.com/Tiryoh/5f57581eebade73df2f534ff821a9e4a3枚目のターミナルでCtrl+Cを押して、teleop_twist_keyboardノードを停止したあと次のコマンドを入力します。~/.ros/room_map2枚目のターミナルでCtrl+Cを押してraspimouse_cartographerのノードを停止します。このままナビゲーションをしてみましょう。map:=/home/$USER/.ros/room_map.yaml地図をロードした状態でRViz2が起動するので、ナビゲーションができると思います。ROS2でナビゲーションするために必要なソフトウェアとそのセットアップ方法、そしてその使用例を紹介しました。Discorseで紹介されているとおり、ROS2でナビゲーションまでできるロボットはまだそれほど多くはありません。ROSConJP2019講習会キットをご検討ください!株式会社アールティではROS2に対応した新しいロボットも開発中です。2019に参加しました。