ROS2導入・初期設定
この記事の目的
ROS2の導入と初期設定・注意点等についてまとめる
1. ROS2の導入
Ubuntu20.04を利用している場合、下記サイトに従ってROS2 forxyを導入する。
上記手順では、localeをen_US.UTF-8 に切り替えているがこのコマンドを入力せず日本語のままでもインストールできる。
setup.bashの読み込みはROS1と同様に.bashrcに下記記載を加えておくと毎回入力しなくてもよい。
source /opt/ros/foxy/setup.bash
ビルドシステムcolconは下記コマンドでインストールする。(ROS2のインストールとは別に実行する必要があるので注意)
sudo apt install python3-colcon-common-extensions
2. チュートリアルの実施
ROS2の基本的な使い方(パッケージ作成、ビルド、subscribe/publishなど)は下記ページのチュートリアルに記載されている。
ROS2ではROSに対して下記のような変更点がある。
- ビルドシステムの変更(colcon)
ROS2ではパッケージのビルドシステムがcatkinからcolconに変更となっている。 catkinではプロジェクト内の全パッケージがdevelにソフトリンクされていたが、colconでは明示的にインストールするパッケージを記述する必要があるなどの違いがある。また、作成するパッケージがpythonかCかで記述する設定が異なるので注意する。
- roscoreの廃止
ROSではroscoreコマンドでmasterノードを立ち上げ、各ノード間通信を司っていたがROS2では廃止された。 ROS2ではmasterノードを介さず、各ノード同士が通信する仕組みに変更されている。
- Life Cycle Managerの導入
各ノードの状態(初期化前、無効、有効、終了後)などを管理するための仕組みとしてLife Cycle Managerという仕組みが導入された。
後述するnavigation stackではこの仕組に従って状態を操作しなければ適切に動作しない機能があるのに注意する。
- launchファイルの記述方法変更
ROSではxmlファイルで記述していたlaunchファイルがpythonスクリプトで記述するように変更された。 記述方法は下記のチュートリアルに記載されている。
3. navigation stackの導入
移動ロボット用の ROS2 packageとしてnavigation 2を導入する。
導入方法・動作確認は下記サイトの手順に従って行う。 (virtual box のubuntuでの動作などではgazeboo起動までに非常に時間がかかるので注意する)