ROS2 パッケージ作成
今回はROS2におけるワークフォルダの作成とパッケージの作成を行う。
ワークスペースとパッケージの作成
まずはワークスペースの作り方だが、ここはUnixのコマンドそのままである。
今回はtutorial_wsという名前にしたがわかりやすい名前なら何でも良い。最後にワークスペースであることがわかるように_wsと付けることを推奨する。
mkdir -p tutorial_ws/src
cd tutorial_ws
構文の説明を軽くすると、mkdir
はディレクトリの作成。-p
はmkdir
のオプション引数であり、必要となる親ディレクトリの作成も行わせるというコマンドである。
なので、やっていることは
mkdir tutorial_ws
cd tutorial_ws
mkdir src
と一緒だが、面倒なので上記のように記述されることが多々ある。
ls
コマンドで確認すると、srcディレクトリが存在する。
以下のようにディレクトリが構成される。
- tutorial_ws
- src
続いて、パッケージの作成に移る。
source /opt/ros/foxy/setup.bash
cd src
ros2 pkg create --build-type ament_python tutorial_package
1行目については、後述の注意を参照して欲しい。
srcディレクトリにて
3行目のコマンドを実行してtutorial_packageを作成する。pythonを用いてコーディングする際は、ament_python
を使用する。
最後の第5変数に作成するパッケージ名を入力する。
実行すると、srcディレクトリにtutorial_packageが作成され、tutorial_packageを確認すると以下のようになっている。
- tutorial_package
- package.xml
- resource
- setup.cfg
- setup.py
- test
- tutorial_package ←ココ
今後、pythonでコーディングを行う際は、src/turorial_package/tutorial_packageディレクトリにプログラミングしていくことになる。
ビルド
作成したROSパッケージを利用するには、ws全体をビルドする必要がある。
cd ~/tutorial_ws
colcon build
Summary: 1 package finished [0.79s]
と表示されればビルド完了である。
ビルド後にls
コマンドでワークスペースを確認すると
- build
- install
- log
- src
4つのディレクトリが存在する。
また、ビルド後はワークスペースの環境変数が変化するので、
. install/setup.bash
を入力して、ワークスペースとターミナルを再設定する。
注意
新しいターミナルを開いた際には毎回使用するワークスペースにて
source /opt/ros/foxy/setup.bash
上記のコマンドを入力する必要がある。
これは現在使用しているターミナルにROS2のワークスペースであることを認識させるための作業である。
初めのうちは、よくこれを忘れていてエラーを起こすので注意しよう。
参考文献
科学情報出版株式会社 『ロボットプログラミング ROS2の実装・実践』-実用ロボットの開発- 日本大学 内木場 文男[著]
第4章 ROS2のプログラミング P.34-P.36