SHARE
TechMagic 開発本部の但馬です。
今回はROSのワークスペースを簡単に切り替える方法を紹介します。
ワークスペースを切り替えたい
ROSのビルドシステムはcatkinと呼ばれるツールですが、catkinではワークスペースの概念を理解することが重要になります。ワークスペースというのは、ざっくりいうとROSパッケージのソースコードを置いておくディレクトリのことです。Ubuntuのシステムにインストールしたパッケージのみを使う場合にはワークスペースを気にする必要はないですが、ほとんどの場合は自分のホームディレクトリにワークスペースを作成し、その中にパッケージを作ったり、必要なパッケージのソースをcloneします。
ワークスペースの作り方などについてはROSのチュートリアルを参照すればわかるとして、ワークスペースの運用が面倒だと思うことがあります。通常、ワークスペースを使う設定は、そのワークスペースのdevelディレクトリにあるsetup.bashファイルを読み込むことで行います。
$ cd my_awesome_ws/devel
$ . setup.bash
これを忘れてしまうと、
$ rosrun my_awesome_pkg my_awesome_node
No package ‘my_awesome_pkg’ found
などと言われてがっかりしてしまいます。
.bash_profileなど自動で読み込まれるシェルの設定ファイルにこのコマンドを書いておいて、ログインすると自動で設定されるようにしている方も多いと思います。しかし、ROSを使うプロジェクトがたくさんある場合、プロジェクトごとにワークスペースを切り替えて開発するのが普通です。そのたびに、めんどくさいと思いながらsetup.bashの場所を指定して上のコマンドを打ち込むことが多いのではないでしょうか。
解決法
以下のようなfunctionを、.bash_profileに記述しておきましょう。
# pwdから上にたどってROSのワークスペースを探し最初に見つかったものに設定する
function change_ws() {
CUR=$PWD
while [ $CUR != $HOME ]; do
if [ -f “$CUR”/devel/setup.bash ]; then
export CATKIN_WORKSPACE=$CUR
export USER_PACKAGE_PATH=$CATKIN_WORKSPACE/devel
source $USER_PACKAGE_PATH/setup.bash
echo “ROS workspace: $CUR”
break
fi
CUR=`readlink -f $CUR/..`
done
}
これを使うと、ワークスペース内のディレクトリにcdした状態でchange_wsと打つだけで、そのワークスペースを使うための設定が完了します。
$ cd catkin_ws/src/my_awesome_pkg/src
# ワークスペースのどこかのディレクトリに行く
$ vim my_awesome_node.cpp
# 通常、なにか作業したかったりする
$ change_ws
# このワークスペースを使えるように設定!
$ catkin build
# ワークスペースをビルド
$ rosrun my_awesome_pkg my_awesome_node
# ROSノードを起動
なかなか便利なので、ぜひ試してみてください!
TechMagicでは食産業の未来を創造する仲間を募集しています!
随時採用イベントも行っておりますので、ご興味のある方はぜひ下記リンクよりお申し込みください。
【採用イベント申込フォーム】
https://forms.gle/x4GePAw3eaGMRvbF7
その他、募集ポジションの確認やオフィス見学・カジュアル面談の希望など、お気軽にHPからご連絡ください!
■TechMagic株式会社SNS:
Facebook
Twitter
Youtube