安曇野の森から > ROS(Robot Operating System)を使う > ワークスペースとパッケージ

ワークスペースとパッケージの作成

ワークスペースの作成

ROSにはワークスペース作成のコマンドはありません。以下のようにmkdirコマンドを使ってユーザーディレクトリの下にワークスペースディレクトリとソースディレクトリを作ります。



ここではワークスペースディレクトリをユーザーディレクトリ直下に作っていますが、ワークスペースディレクトリはユーザーディレクトリの中の、どの階層に作ってもかまいません。
また、以下の「ワークスペース名」の部分には好みのディレクトリ名を入れてください。ちなみにROSのチュートリアル等ではワークスペース名を"catkin_ws"としていることが多いようです。



パッケージの作成

ソースディレクトリに移動して以下のコマンドを使ってパッケージを作成します。正確にはパッケージをビルドするための環境を作成します。

以下の「パッケージ名」の部分には好みの名前を入れてください。



このコマンドはワークスペースのソースディレクトリ中に「パッケージ名」のついたディレクトリを作成し、その中にパッケージ用のディレクトリと、いくつかのファイルを作成します。

「ビルドに必要なパッケージ名」には通常、C++用パッケージのroscppやPython用パッケージのrospy、標準メッセージパッケージのstd_msgなどを空白で区切って記述します。ここで設定し忘れても、後でCMkakeLists.txtのfind_package()とpackage.xmlのrun dependタグbuild_depnedタグのところに必要なパッケージ名を追加すればビルドに支障はありません。

実際にはpackage.xmlはビルドの際には使われていないようですのでCMakeLists.txtの修正だけでもよいかもしれません。

ビルドしないと生成されないファイルもあるので、次に以下のコマンドで空ビルドをやっておきます。



以上の作業でワークスペース内のディレクトリ構造は最終的に以下のようになります。
理由は良く分かりませんがパッケージのソースファイルが/src直下に置かれるの対してパッケージのインクルードは/include/パッケージ名の下に置かれるようです。



ワークスペース内で作成したプログラムを実行する場合、実行するターミナルで1度は~/ワークスペース名/devel/setup.shを実行しておく必要があります。

ターミナルを開くたびに~/ワークスペース名/devel/setup.shを実行するのは面倒なので、ワークスペースを作成した後に~/.bashrcの最後に以下の行を追加しておきます。
これで新しいターミナルを開く際に~/ワークスペース名/devel/setup.shが自動で実行されます。



これで新しいターミナルを開く際に~/ワークスペース名/devel/setup.shが自動で実行されます。




inserted by FC2 system