以下のような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ノードを起動
なかなか便利なので、ぜひ試してみてください!