ROSを使用したCRANE+の動かし方 その4

こんにちは!長谷川です。
前回はROSの環境のセットアップとROSのファイルシステムについて説明しましたが、今回はROSのパッケージの作成とビルドについて説明したいと思います。
今回も前回同様、主に英語版Wikiのチュートリアルに従って進みます。日本語版Wikiのチュートリアルは情報が古いですが、英語版がわかりにくい場合、適宜参照すると理解の助けになると思います。

パッケージの作成

前回、パッケージとは何かをお話しましたが、パッケージはpackage.xmlとCMakeLists.txtを含んでいる必要があります。逆に言えば、最低限これらを含んでいれば、パッケージとして認められます。パッケージ作成においては、これらのひな形を自動で生成させ、それらを後から編集します。また、前回作ったようなcatkin workspaceを利用しながらパッケージを編集するのが推奨みたいですが、パッケージを単独でビルドすることも可能らしいです。以下では、チュートリアル通り、catkin workspaceを利用してパッケージを作成、ビルドします。

まず、端末(Terminal)を開き、
[php]
$ cd ~/catkin_ws/src
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
[/php]
と入力します。
ROS_CRANE_4_1
何か表示されましたね。どうやら、~/catkin_ws/srcの中に、beginner_tutorialsというパッケージが作成されたようです。
この場合、すでに一部のパッケージの依存関係が定められています。なぜかというと、「catkin_create_pkg」という命令は、[php]catkin_create_pkg <package_name> [depend1] [depend2] [depend3][/php]のように使用した場合、パッケージ[depend1],[depend2],[depend3]に依存するようなパッケージを作るからです。このことを、前回紹介したrospackを用いて確かめてみましょう。前回はrospackにfindというオプションをつけて使いましたが、今回はdepends1というオプションをつけます。これで依存関係を確認できるというわけです。[php]rospack depends1 beginner_tutorials[/php]と入力すると、roscpp,rospy,std_msgsが表示されました。これは、先にcatkin_create_pkgで指定した依存関係と同じですね。
さて、上の依存関係は当然package.xmlに記録されているはずです。確認してみましょう。
[php]
$ roscd beginner_tutorials
$ cat package.xml
[/php]
と入力します。
ROS_CRANE_4_2
[php]<build_depend>[/php]の後ろと、[php]<run_depend>[/php]の後ろに、roscpp,rospy,std_msgsが確認できますね。

次に、beginner_tutorialsが依存しているパッケージの依存関係(間接的な依存関係)を調べてみましょう。例えばrospyについては、先ほどと同じように
[php]rospack depends1 rospy[/php]
と入力するとわかります。
このような間接的な依存関係も含めて、指定したパッケージが依存するパッケージを全て列挙するのが、rospackにdependsというオプションをつけたものです。
[php]rospack depends beginner_tutorials[/php]
と入力すると、以下のようになります。
ROS_CRANE_4_3
要は、依存関係というのはかなり複雑だ、ということですね・・・。

次に、package.xmlを編集してみましょう。例として、
[php]
$ cd ~/catkin_ws/src/beginner_tutorials
$ vi package.xml
[/php]
と入力して、エディタviでpackage.xmlを開きます。
ROS_CRANE_4_4
チュートリアルによると、色々変えなきゃならないところがあるようですが、とりあえず例として、ライセンス部分を変えてみたいと思います。
[php]<license>[/php]
の後に書かれているTODOを、BSDと書き換えます。
ROS_CRANE_4_5
このようなライセンスの明記や、チュートリアルで指示される作成者の名前、連絡先のタグへの記入は、作成したパッケージが他の人に共有される際の障害を取り払うためのものです。それゆえ、作成したパッケージをアップロードする場合には必ず記入しておきましょう。

パッケージのビルド

次に、自分の作ったパッケージをビルドしてみましょう。ビルドというのは、ソースコードファイルを実行ファイルに変換することです。
[php]
$ cd ~/catkin_ws
$ ls src
[/php]
と入力して、CMakeLists.txt beginner_tutorialsが出てきたら、今までの作業がうまくいっているようです。
[php]catkin_make[/php]と入力します。すると、色々表示されて、ビルドが進行します。終わったら、[php]$ ls[/php]と入力してみます。
ROS_CRANE_4_6
buildとdevel、srcというフォルダがあることがわかります。これでビルドができていることが確認できました。

以上、ROSのパッケージの作成とビルドについて説明しました。
次回は、CRANE+を動かすための環境の構築について説明したいと思います。