Catkin buildの使い方
Q これはなんですか?
A これはROS Catkin buildの使い方の簡単な説明です.
そして,catkin build
の公式ドキュメントはこちらです.
さらに,自分用のメモでもあります.
Catkin buildとは?
catkin build
とはROSのパッケージをビルドするための新しいコマンドです.
catkin build
が新しいコマンドということは当然,古いコマンドもあるわけです.
古いコマンドはcatkin_make
というコマンドで,このコマンドは並列ビルドができなかったり
catkin_ws/srcにいないとコマンドが有効でなかったりしました.
そこで,catkin_make
に代わる新しいコマンドが開発されました.このコマンドはcatkin_make
では
できなかった種々のことができるようになりました.
もちろん,デフォルトで並列ビルドで,どのディレクトリにいてもcatkin buid
を実行することが可能です.
注意点として,catkin_make
でビルドしたパッケージはcatkin build
ではビルドできないということがあります.そのため,catkin build
に移行する場合は,一旦,srcデレクトリをどこかへ退避して,
catkin build
の流儀でcatkin_wsを作り直す必要があります.
では,その使用方法を見ていきましょう.
インストール
catkin build
はデフォルトではROSに含まれていません.そこで,下記のコマンドでインストールしましょう.
sudo apt install python-catkin-tools
ROS NoeticからはPythonのバージョンが2系から3系に上がったので,下記のコマンドを使用してください.
sudo apt-get install python3-catkin-tools
ワークスペースの初期化
catkin_make
では,一般的にcatkin_wsと名付けられるワークスペースの初期化にcatkin_init_workspace
というコマンドを用いていましたが,catkin build
では,そのような初期化コマンドは必要なくcatkin build
を実行したときに,ワークスペースが初期化されていなければ自動的に初期化が実行されます.
具体的には,ワークスペースの作成から初期化までは下記のコマンドを用いて行います.
source /opt/ros/melodic/setup.bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin build
source devel/setup.bash
陽に初期化を行う場合は下記のコマンドを使用して行うことができます.
source /opt/ros/melodic/setup.bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
パッケージのビルド
全体をビルド
catkin_makeのcatkin_make
コマンドに相当するもので
ワークスペースにある全てのパッケージをビルドします.
ワークスペース内ならどこの階層にいてもいいので
下記のコマンドを打つだけです.どこにいてもいいと言うのがcatkin_make
と違って便利なところです.
catkin build
一部のパッケージをビルド
毎回,全てのパッケージをビルドするのは時間もかかりますし,ムダも多くなります.そこで,特定のパッケージだけビルドを行いたいということもあると思います.その場合は下記のコマンドを利用します.
catkin build package_name
catkin build
の後ろにビルドしたいパッケージ名を付け加えるだけでした.とても簡単ですね.
また,いちいち,パッケージの名前なんか,覚えてられないよ.
とにかく今いるところをビルドしたいんだ!ということも多いかと思います.そのような場合は,下記のコマンドを使用してください.
catkin build --this
なんのことは無い,引数に--this
をつけるだけです.
これが最も使用頻度が高いコマンドになるのではないでしょうか.
パッケージの追加
特筆すべきことは無く,catkin_ws/src
以下にパッケージを入れるだけです.
ココらへんはcatkin_make
と変化ありません.
catkin list
と打つと,パッケージ一覧が表示されます.
パッケージの作成
catkin_create_pkg
と同様にコマンドでパッケージの雛形を作成可能です.
cakin_ws/src
以下で下記のコマンドを叩きましょう.
じゃないとコマンドを叩いた場所にパッケージが作成されます.
一番簡単な例は下記のようになります.
catkin create pkg great_pkg
色々引数で指定することもできます.
catkin create pkg great_pkg -l BSD -m harumo11 s_harumo@todo.com --catkin-deps roscpp rospy std_msgs
ここではライセンス,メンテナーの名前とアドレスおよび依存パッケージを指定しています.-m
のオプションは引数を2つ取ることに注意しましょう.
他に指定できるオプションについては公式をみてください.
あと,みんなこの設定忘れてるけど,パッケージの名前は小文字と_
しか使ってはいけない.
パッケージのパスの読み込み
roslaunch
などのコマンドでパッケージ名をタブ補完するためには,各パッケージにパスが通っている必要があります.catkin build
したあとに下記のコマンドを打つことによって各パッケージのパスが新しく追加されたり更新されたりします.
cd ~/catkin_ws/
source devel/setup.bash
ワークスペースの掃除
catkin_ws/src以外のディレクトリを消したいという場合にcatkin clean
コマンドは便利です.develやlogsディレクトリが無くなります.