ROSでパッケージをコンパイルするときに使用するコマンドと言えば?
そう、「catkin_make」ですね。
そのcatkin_makeで色々不便だった点を改善したコマンドが「catkin build」です。
ROS Wikiもずっとcatkin_make使ってるし、移行するの面倒だなーと思って中々使う機会のなかった「catkin build」ですが、新しく環境を作る機会があったので、ここぞとばかりに使ってみました。
catkin buildのメリット
使い方うんぬんの前に、catkin buildを実際に使ってみて分かったメリットを、catkin_makeとcatkin buildを比較しながら紹介したいと思います。
①ws内ならどこでもビルド可
catkin_makeでは、catkinワークスペースのトップ(~/catkin_ws みたいな)にいないとビルドが行えませんでした。
しかしcatkin buildなら、ワークスペース内のどこにいてもビルドを行うことができます。
git cloneしてきたり、ファイルをコピーしてきたりした後、cdコマンドでカレントディレクトリを移動しなくてもそのままビルドが行えるというのは、想像していた以上に便利でした。
地味ですが、非常に助かっています。
②特定のパッケージのみビルドするのが簡単
ワークスペース内に大量にパッケージが入っていると、1回ビルドするだけでもそこそこ時間を取られてしまいます。
catkin_makeでは特定のパッケージのみをビルドすることはできませんでしたが、catkin buildでは可能です。
$ catkin build パッケージ名
このように、catkin buildに続いてビルドしたいパッケージ名を入力するだけでOKですので、中々便利です。
③ビルド時のログがちゃんと残る
catkin buildのワークスペースには、src, build, develというおなじみのフォルダに加えて、logというフォルダが生成されます。
文字通り、ビルド時のログが記録されているフォルダです。
raspberry piなど、シェル上の表示行数が少ない環境だと、エラーがでているものの、そのエラーメッセージ部分が切れてしまっていて確認できないことがあります。
そんときも、catkin buildならlogフォルダ内のログを確認すれば、どこでエラーが吐かれていたのか確認することができます。
④表示が見やすい
今何をやっているのか、どこまで終わったのかなど、ビルド時の表示が見やすいです。
catkin buildの環境構築
今回の環境は Raspberry Pi 4 + Raspbian Buster + ROS Melodic です。
Raspberry Pi 4へのROS MelodicのインストールはROS Wikiに従って実施しました。
続いて、catkin buildが使えるように環境構築を行います。
(1)catkin buildは標準では含まれていませんので、以下のコマンドでインストールします。
$ sudo apt install python-catkin-tools
(2)setup.bashを叩きます。
$ source /opt/ros/melodic/setup.bash
ところでここ、.bashだからと言ってbashコマンドで叩いちゃうと何も起こらずに終わっちゃうんですよね。度し難い。
(3)ワークスペースになるフォルダを作ります。
$ mkdir -p ~/catkin_build_ws/src
従来のワークスペースとの共存のために名前はcatkin_build_wsにしました。srcフォルダさえあれば名前はなんでも大丈夫です。
(4)ワークスペースフォルダに移動します。
$ cd ~/catkin_build_ws
(5)ワークスペースを初期化します。
$ catkin init
従来はcatkin_init……まぎらわしい。
catkin buildする
catkin buildでビルドする方法はそのまま、catkin buildを叩くだけです。簡単。
$ catkin build
上の方でも書きましたが、catkin buildはcatkin_makeと違い、workspace以下ならどこでも実行できるのが便利なところです。
CMakeListなどはcatkin_make時のものがそのまま使用できますので、githubから適当なパッケージをクローンしてきてもそのまま使えます。
ビルドしたパッケージを使用するためには、catkin_makeのワークスペースと同様に、パスを通す必要があります。
.bashrcに書くか、以下のコマンドでパスを通しましょう。
$ source ~/catkin_build_ws/devel/setup.bash
もちろん、ワークスペース名が違う場合はその名前を指定してくださいね。
以上が、catkin buildの環境設定とビルドの方法になります。
よりcatkin buildも含むcatkin_toolsのより詳しい情報は、以下の公式ドキュメントで参照できます。
パッケージの作り方なども、そのうち気が向けば書きたいと思います。
コメント