catkin超入門(その1)・ざっくり理解する
ROSさんお手やわらかに:ROS奮闘編
groovy導入でまたぞろイチからやり直しか、と、めちゃくちゃテンションが下がっていたROSだが、一念発起、とにかくcatkinをやってみることにした。
まずは読み方だ。カトキンか? 冷凍エビフライの加ト吉みたいだな。はたまたキャットキンか? ネコノキンタマが思い浮かぶ。あれは結構マヌケなものだ。どうころんでもあまりシャープなイメージにはならないね。これに比べると、ロスビルドてえのはよかったね。ロスビルド、文字にしても声に出してもいい感じだ。ゴーリキーの「どん底」の名台詞を思い出す。「にん・げん。豪勢な響きがするじゃねえか」・・「ロス・ビルド。豪勢な響きがするじゃねえか。カトキンだかキャットキンだかじゃあ、腹に力が入らねえな」
閑話休題。ネイティブがなんと発音してようと、僕の心の中ではカトキンでいくことにした。とにかくこのcatkinでパッケージをインストールしたり、新規に作ったりができるよう、「超入門」した記録を残すことにする。
まずはcatkinとはなんぞや、である。まあ、やる気のある、市役所の窓口担当みたいなものか。前任のロス・ビルド氏のやっていた仕事を改善し、よく利用する市民には便利になったが、提出書類の書式ががらりと変わってしまい、たまーに利用する、僕みたいな市民はちょっと面食らう・・てな感じかな。何ぞやの答えになっていないが。
ともかく、catkinはrosパッケージの新しいビルドシステムである。ぶつぶつ言う前に使ってみなければならない。
デスクトップの取り替え式のハードディスクには、furteとgroovyをインストールしたubuntuが入れてある。以降はこのgroovy環境下で行った。
■ワークスペースを作る
チュートリアルにあるようにcatkin_wsというワークスペースを作る。ワークスペースには、パッケージを置くsrcフォルダも必要なので、これも一緒に作る。
$ mkdir -p ~/catkin_ws/src
次にsrcに移動し、これをワークスペースとして初期化する。
$ cd ~/catkin_ws/src
$ catkin_init_workspace
次にワークスペースに戻り、とりあえずmakeする。
$ cd ~/catkin_ws
$ catkin_make
これでワークスペースとして設定完了。新たに端末を開く度、下記のセットアップを実行し環境を設定する。
$ source ~/catkin_ws/devel/setup.bash
これでワークスペースは完成だ。
■catkinでのパッケージについて
◎catkinでのパッケージとは?
・パッケージにはメタ情報を記載したpackage.xmlファイルがある
・catkinでビルドするのに必要なCMakeLists.txtファイルがある
・パッケージのフォルダの中にはパッケージ一つだけ
◎パッケージの最小構成はこれだけ。ソースコードなしでもよい。
my_package/
CMakeLists.txt
package.xml
◎パッケージはcatkinワークスペースのsrcフォルダに置く。新規に作成するにはcatkin_create_pkgコマンドを使う。下記は beginner_tutorialsパッケージを作る場合。
$ cd ~/catkin_ws/src
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
このへんはroscreate-pkgと同じ。書き方は
# catkin_create_pkg
依存関係などはpackage.xmlに記載されている。これがrosbuildのマニフェストに相当するようだ。基本的にはrosbuildと同じなので、のちほど実戦で試してみることにする。
◎package.xmlを下記の要領で編集。説明などは公開するつもりがないなら、そのままで構わない。
・descreptionタグ
パッケージの説明を短く書く。
・maintainerタグ
メンテナンスする人のメールアドレスと名前を書く
・licenseタグ
パッケージのライセンスの種類を書く。全部自作ならBSDでよさそう。
・dependenciesタグ
いろいろな依存関係のタグをまとめて。使うときに考えることにする。中味を見ると、作るときに指定した依存関係が、build_dependとrun_dependとして入っている。
◎CMakeLists.txtについては今は考えないことにする。
■catkinでのビルド
ワークスペースに移動してcatkin_makeを実行する。
$ cd ~/catkin_ws/
$ catkin_make
srcフォルダの、変更のあったすべてのパッケージをビルドするようだ。どれをビルドするかの指定はいらない。
今回はここまで。次回は、練習として、以前の投稿でインストールしたゲームパッドのパッケージを、catkin版でインストールしてみる。