CLionでROSC++開発


はじめに

 私はJetBrainsのエディタを愛用していますが、roscppをCLionで開発する方法というのが意外と記事として残っていなかったので、今回はUbuntuでROS開発をJetBrainsのCLionで行う方法を紹介します。

事前準備

 Ubuntu、そしてUbuntuのバージョンにあうROSのバージョンを予めインストールしておいてください。

CLionインストール

 https://www.jetbrains.com/clion/
 こちらのサイトからソフトウェアをダウンロードしましょう。
 そして、ダウンロードしたファイルを解凍すれば完了です。

アイコンの設定

 端末からCLionを実行する方法でもいいですが、いちいち端末を立ち上げるのが億劫なので、ランチャーにアイコンを設定します。アイコンの設定はこちらの記事を参考にしてください。
ただし、このままではROS特有のライブラリなどがCLionで認識されないので、以下の部分を変更する必要があります。

Exec=bash -c "/path/to/your/clion/bin/clion.sh %f"

# 以下の行を追記する(CLion, ROS Melodic の場合)
Exec=bash -c "source /opt/ros/melodic/setup.bash; source /path/to/your/catkin_ws/devel/setup.bash; /path/to/your/pycharm/bin/clion.sh" %f

ちなみにこれはPycharmでROS開発でも必要な設定になります。

CmakeLists.txtの設定

 CLionはプロジェクトを読み込むときにCMakeLists.txtを参照しています。そのため、パッケージ1つだけ読み込んで開発するときには、パッケージ内にあるCMakeLists.txtを開けば問題なく開発ができます。しかし、ワークスペースまるごとをプロジェクトとして読み込むには少しだけ手間をかける必要があります。

catkin_ws/srcの中にCMakeLists.txtがない場合

 rosのmelodicからsrcの中にCMakeLists.txtのシンボリックリンクが生成されなくなったようです(要確認)。CLionでプロジェクトを読み込む際にはそのCMakeLists.txtが必要になります。そこで、以下のコマンドでシンボリックリンクを生成し、ROSのライブラリなどを読み込めるようにします。

cd ~/catkin_ws/src #rosのワークスペースのsrcに移動
sudo ln -s /opt/ros/melodic/share/catkin/cmake/toplevel.cmake CMakeLists.txt

rosメッセージのincludeパス設定

 さらにrosで独自にメッセージを作成した場合、パスを設定しなければCLionが正常に認識せずエラーを吐きます。そこで、catkin_ws/srcの中にあるCMakeLists.txtにincludeパスを追記します。

cd ~/catkin_ws/src #rosのワークスペースのsrcに移動。
sudo gedit CMakeLists.txt #root権限で開く。gedit以外のエディタでも可

とりあえず以上のコマンドでCMakeLists.txtを開きます。そして以下の一文を追記します。

include_directories(/home/<USER>/catkin_ws/devel/include)

<USER>の部分は自分のユーザー名に置換してください。

プロジェクトの読み込み

 あとは特に難しいことはなく...
1. CLionのメニューの"開く"
2. catkin_ws/srcの中にあるCMakeLists.txtを選択
3. "プロジェクトとして読み込み" 

という流れでCLionでROS開発ができるようになります!

参考サイト