Edited at

IDEを多用し初心者に優しいROSの開発環境を作る

以下,intellisenseとデバッガは健康で文化的な最低限度の生活として保証されるべき,と考えているあじのりがお送りいたします.


はじめに

「弘法筆を選ばず」なんて言いますけれど,プログラミング初心者にとって開発環境の良し悪しは学習意欲に大きく影響します.

そこでこの記事では『ROSを初めて触る方が,挫折せずに入門書を一周できる環境を作る』ことを目標として設定し,Roboware Studioを使用したROS開発環境の構築方法と簡単な使用方法をご紹介します.

なお,Roboware公式からIDEの使い方が表記されたPDF資料が配布されているので,詳細についてはそちらをご覧ください.


免責事項

一個人のQiita記事であることを理解してください.


環境


  • OS: Ubuntu 16.04.5

  • ROSのバージョン: ROS Kinetic

  • 使用する言語: Python, C++

  • 導入するIDE: Roboware Sudio


ROSのインストール

ROS Wikiに従って作業をすれば詰まることは無いと思います.

http://wiki.ros.org/kinetic/Installation/Ubuntu

dashimaki360さんが作成したこちらのスクリプトをダウンロードする方法でも問題なくインストールできるはずです.

https://gist.github.com/dashimaki360/4d612c845db65a3746e2caab39cf295b#file-ros_kinetic_install-sh


Robowareを導入する


Robowareとは

公式ホームページ: http://www.roboware.me/#/home

Roboware StudioはVSCodeベースのROS開発に特化したIDEです.

Robowareを使うことでプログラミングの本質以外のパッケージ管理や動作中のノードの管理が簡単になります.


下ごしらえ

以下を実行しておきます.pylintのインストールで

sudo apt-get install build-essential 

sudo apt-get install python-pip
sudo python -m pip install pylint
sudo apt-get install clang-format-3.8

なお,pylintのインストールをするとき

ERROR: Cannot uninstall 'enum34'. It is a distutils installed p

roject and thus we cannot accurately determine which files belo
ng to it which would lead to only a partial uninstall.

と出てきた場合は,

sudo /usr/bin/python -m pip install pylint --ignore-installed

を実行して無理やり強引にインストールしました.


Robowareのインストール

まず公式ホームページのトップページからRoboware Studioをダウンロードしてきます.

ついでにManual pdfもダウンロードしておくと捗るのでオススメです.

image.png

ファイルをダブルクリックすれば自動的にUbuntu Softwareが立ち上がり,インストールが進むはずです.ライセンス事項によく目を通し,同意する場合はチェックをつけてForwardを押します.

image.png

しばらくして画面右上当たりにインストール完了を知らせる文字が出ればインストール完了です.

すでに古いバージョンのRoboware Studioがインストールされている場合もこの手順で問題ないです.


Robowareを使ってみる


ROSのワークスペースを開くor新規作成する

ダッシュボードにRobowareとタイプするか,ターミナルにroboware-studioとタイプすれば起動します.

image.png

画面真ん中にあるStartからNew Workspace...かOpen Workspace...を選択します.

通常,入門書ではユーザのホームディレクトリ直下にcatkin_wsというディレクトリを作成するよう書かれていると思いますのでそちらに従ってください.

無事ワークスペースを開けたら,画面の左側にワークスペース名とその中にいくつかフォルダやファイルが表示されます.

image.png

ここでとりあえず一度左上のEXPLORERのすぐ横の選択肢をDebugにした後,緑のハンマーマークを押してcatkin_makeしておきます.

image.png


ROSパッケージを新規作成する

画面左側のsrcフォルダを右クリックし,Add ROS Pacageを押します.

パッケージ名を入力すればパッケージが新規作成されます.

image.png


PublisherとSubscriberを作成する


  • C++:
    パッケージ名を右クリックし,Add C++ ROS Nodeを選択して,ノード名を入力すれば完了です.

  • Python:
    パッケージ名を右クリックし,Add Python ROS Nodeを選択して,ノード名を入力すれば完了です.

image.png

自動生成ではC++もPythonもsrcフォルダ内にコードが生成されますが,pythonファイルは<パッケージ>/scriptsフォルダに入れることが多そうなので,scriptsフォルダを作り,その後自動生成されたPythonファイルをドラッグアンドドロップしておきます.

(任意)Pythonファイルに実行権限がないため,ターミナルから自動生成したファイルのディレクトリまで進んで実行権限を渡してあげます.

下の図のようにchmod +x <ファイル名>としてあげればOKです.

image.png

Roboware StudioではPub/Subのサンプルプログラムが自動生成されます.

ファイルが生成されたのを確認できれば再度緑のハンマーマークを押してcatkin_makeします.

C++でコードを書いた場合,画面左側のNodeという部分に生成したパッケージ名とノード名が現れます.(Pythonで書いた場合は,ここにノード名は表示されないっぽいですが詳細は不明です)


ノードの実行・デバッグ

まずはじめに画面上のROSタブからRun roscoreを押しroscoreを実行します.


  • C++

    先にデバッグしたい対象のノードのcppファイルを開き,適当な場所にブレークポイントを1つ置いておきます.ブレークポイントは行数が表記されている部分のすぐ左側をクリックすれば設置できます.赤い丸が表示されれば準備完了です.

    image.png

    それでは,先ほどの手順でNodeタブ内にノード名が追加されたと思いますので,そちらをクリックします.

    その画面の一番上にある「Debug this file」を選択します.先ほど選択したブレークポイントの箇所で処理が止まり,行が黄色くなれば成功です.

    image.png

    あとは画面左側の上から4つめの虫マークを押せば各種デバッグ情報を閲覧することができます.


  • Python

    画面左側の上から4つめの虫マークか画面上側のDebugタブからデバッグを開始します.

    デバッグの設定は初期設定ではC++となっているのでPythonを使用している場合は変更したのち緑の矢印を押すとデバッグを開始できます.


image.png

デバッグ画面の使い方の詳細についてはVSCodeの解説サイトを見てください.


その他各種作業

パッケージを右クリックすれば各種作業が行えます.

image.png

Launchファイルは以下のように🚀マークで表示されるので,右クリックし,Run Launch fileを押せば実行されます.

image.png

画面左側の,点が9個並んでいるところをクリックすれば現在実行されているノードや,トピックなどを表示することができます.

image.png

画面左側の,上から5番目の四角っぽいアイコンを押せば,各種ROSパッケージを管理することができます.

image.png


Robowareをアンインストールする

ターミナルでsudo apt remove roboware-studioを実行すれば終わり.


こんなところでしょうか.

とにかくインストールしてからデバッグ機能を使うところまでサクッと進めるので,とりあえずROSを触ってみたいと思う人にとってはなかなか魅力的ではないかと思います.

以上,あじのりがお送りしました.何かあればTwitter(@hakumai_no_tomo)まで.