安曇野の森から > ROS(Robot Operating System)を使う > 統合開発環境

統合開発環境

QtCreatorオリジナル画面

ROSの統合開発環境としてQtCreaterが使えます。

QtCreaterはQtブログラムの開発用に作られた統合開発環境ですが、CMakeをサポートしているため、ROSのパッケージに手を加えずにQtCreatorのプロジェクトとして開くことが出来ます

gitなどのバージョン管理もQtCreaterから使うことが出来ますので非常に便利です。

以下ではLinuxへのQtCreatorのインストール、ROSパッケージのインポート、ビルド、プログラムの実行・デバッグ方法を説明します。


QtCreatorのインストール

QtCreatorはQtのバイナリ―パッケージに含まれています。
QtCreaterのみをインストールすることも出来ますが、ここではQtごとインストールします。
以下ではQt5.4.0(QtCreator3.3.0)のバージョンをインストールします。

最初にQtに必要なライブラリをインストールします。


次に以下のリンクを開き「Download Now」ボタンを押してQtのオンラインインストーラーをダウンロードします。

リンク先の「Download」ボタンを押すと64bit版がダウンロードされます。
32bit版が必要な方は「Download」ボタンの下にある「View All Downloads」のリンクを開いてください。
移動した先のページに「Qt Online Installer for Linux 32bit」がありますのでそちらをダウンロードしてください。
Qtダウンロードページ


ダウンロードが終了したらダウンロードしたオンラインインストーラーファイルのプロパティを開き、アクセス権タブの「プログラムとして実行」にチェックをいれた後、オンラインインストーラーを実行し、表示されるダイアローグの指示に従ってQtをインストールします。


起動コマンドの変更

そのままでは日本語が入力出来ないことやQtCreatorを起動する前にROSの環境設定が必要なため、起動コマンドを以下の手順で変更します。

メインメニューダイアローグ

デスクトップメニューから「システムツール」→「設定」→「メインメニュー」を選択すると左図のような「メイン・メニュー」ダイアローグが表示されます。
左ペインの「プログラミング」を選択すると右ペインに「QtCreator」が表示されますので、これを選択し、「プロパティ」ボタンを押します。


ラウンチャープロパティ

左図のような「ラウンチャーのプロパティ」ダイアローグが開きますので、ここの「コマンド:」のテキストボックス内へ以下の文字列を入力して「閉じる」ボタンを押します。


このテキストボックス入力文字列の「bash -i」はbashを対話的に動作させます。この時、~/bashrcに設定されているROS用の環境変数が読み込まれ、次の「-c "export QT_IM_MODULE=ibus; ~/Qt/Tools/QtCreator/bin/qtcreator"」の""の部分をbashで実行します。"~/Qt/Tools/QtCreator/bin/"にはQtCreatorをインストールしたディレクトリのqtcreator実行ファイルまでのパスを入れます。

また、「export QT_IM_MODULE=ibus」はQtCreatorに日本語を入力させるために必要な環境変数の設定です。


QtCreatorの起動

QtCreator起動画面

デスクトップメニューからQtCreatorを起動します。
QtCreatorのディフォルトでは左図のようなウィンドウが表示されます。
この画面で以前開いたプロジェクトや新しくプロジェクトを開くなどの一覧が右ペインに表示されます。


ウィンドウ構成の変更

QtCreatorオリジナル画面

QtCreatorのディフォルトでは左図のようにウィンドウ左端にモードセレクタが表示されます。
好みの問題ですので、このままの画面構成で問題ない方は以降の説明を飛ばしてかまいません。


QtCreatorプロジェクト表示画面

個人的は左端のモードセレクタが邪魔なのとプロジェクトの中身が見えないので、左図のように左側ペインにプロジェクト内容のツリー、右側ペインにエディタが表示されるように画面の設定を変更しています。

QtCreatorのメニュー「ウィンドウ」を開いて「モードセレクタの表示」をクリックしチェックを外します。また、「モードセレクタの表示」をクリックし、左側にプロジェクトのファイルがツリーで表示されるようにします。


以降の説明で使われる図ではウィンドウ構成を変更した状態(モードセレクタ非表示、プロジェクトペイン表示)のものを使用します。


既存ROSパッケージのオープン

残念ながらQtCreatorだけでワークスペースとパッケージを作ることは出来ません。
そこは従来どおり、ターミナルからコマンドを叩いて作る必要があります。
パッケージまで作り、一回だけ空ビルドを実行しておけば、後はQtCreatorからプロジェクトとして操作することが出来ます。


QtCreatorブランク表示画面

QtCreatorのメニュー「ファイル」→「ファイル/プロジェクトを開く...」をクリックします。

一番最初に既存ROSパッケージを開いた際にはビルドディレクトリを選択するダイアローグが表示されますので、ビルドディレクトリとしてワークスペースのbuildフォルダーを選択し、「CMakeの実行」ボタンを押すとビルドが始まります。

以前に既存パッケージをオープンしていれば、左図のように左側ペインにプロジェクトの内容が表示され、右側ペインは空白のままか、最後に開いたソースが表示されます。

QtCreatorプロジェクトペイン表示画面

左側ペインに表示されたプロジェクトのsrcフォルダにあるソースファイルをクリックすると左図のように右側ペインにソースファイルが表示されて編集が出来るようになります。

QtCreatorプロジェクト表示画面


ROSパッケージのビルド

QtCreatorビルド結果表示画面

開いたプロジェクトをビルドするにはメニューから「ビルド」→「プロジェクト"Project"をビルド」をクリックします。
ビルド経過と結果はウィンドウ下部にあるファンクションバーの「コンパイル出力」タブをクリックすると見ることが出来ます。


プログラムの実行・停止

マスターの実行

別のターミナルを開いて最初に一度だけ以下のコマンドを実行させます。
すでにマスターを起動している場合、この手順は必要ありません。


プログラムの実行

メニューから「ビルド」→「実行」をクリックすると最初にビルドが走り、その後にプログラムが実行されます。

プログラム実行中はウィンドウ下部の「アプリケーション出力」タブを選択すると「xxxxxx実行中...」のメッセージが表示されます。


プログラムの停止

プログラム実行中にウィンドウ下部の「アプリケーション出力」タブを選択「アプリケーション出力」表示バーにある赤い□のマークをクリックするとプログラムが停止されます。


gdbによるデバッグ

デバッグオプションを設定してビルドする

gdbでデバッグをする場合、ビルド時にデバッグオプションを指定しておく必要があります。

ビルド時のデバッグオプション設定についてはデバッグオプションを付けてビルドするを参照ください。


マスターの実行

別のターミナルを開いて最初に一度だけ以下のコマンドを実行させます。
すでにマスターを起動している場合、この手順は必要ありません。


プログラムの実行

メニューから「デバッグ」→「デバッグ開始」をクリックするとプログラムが実行されます。

プログラムからのターミナル出力は上記「プログラムの実行」と同じで「アプリケーション出力」に、しばらく経つと突然表示されます。


プログラムのブレーク

途中でブレークするにはメニューから「デバッグ」→「割り込み」をクリックします。


プログラムのステップ実行

プログラムが停止している状態で「デバッグ」メニューの「ステップオーバー」、「ステップイン」、「ステップアウト」、「この行まで実行」などのステップ実行が可能です。

現在、停止している行には行番号の外側に黄色い矢印が表示されます。

「この行まで実行」を使う場合にはソースの行番号をクリックしてから「この行まで実行」をクリックします。


ブレークポイントの設定

ブレークポイントを設定する場合はプログラムが停止している状態でソースコードの行番号の外側をクリックすると赤い丸が表示され、その行にブレークポイントが設定されます。

ブレークポイントを解除するには、再度、この赤い丸をクリックします。


プログラムの再開

停止しているプログラムを再開させるにはメニューから「デバッグ」→「続行」をクリックします。


ローンチファイルの起動

QtCreator外部ツール設定画面

メニューの「ツール」→「外部」→「...」を選択すると左図のようなダイアローグが開きます。

ここで左下の「追加」ボタンを押すと「ツールを追加」と「カテゴリの追加」の選択支が出てきますので「カテゴリの追加」を選択します。
ボタンの上のペインに新しいカテゴリが表示されますので「ローンチ」に名前を変更します。
次に再度「追加」ボタンを押して「ツールを追加」を選択します。
ボタンの上のペインに新しいカテゴリが表示されますので起動するローンチファイル名に名前を変更します。
この時、右側に「実行ファイル」テキストボックスが表示されますのでここに"roslanuch"と入力します。次に「引数」テキストボックスには"パッケージ名"と"ローンチファイル名"をスペースで区切って入れます。最後に「作業ディレクトリ」テキストボックスには"."を入れ「OK」ボタンを押します。

これでメニューの「ツール」→「外部」からローンチファイルを選択して実行出来るようになります。


QtCreatorの制限

アプリケーション出力へのログ出力が遅い

プログラムからのログ出力が「アプリケーション出力」に表示されるはずですが、なぜか、すぐには表示されずに、しばらく経ってから突然表示されます。ログ出力で表示される時間間隔等は合っているようですが、表示タイミングは実際と合っていません。

実時間でログ出力を見たい場合はrqt_consoleを使って対処するしかないようです。


すでに起動しているノードにQtCreatorからattach出来ない

メニューの「ビルド」→「起動」で起動したノードにメニューの「デバッグ」→「デバッグ開始」→「実行中のアプリケーションにアタッチ...」でノードにattachすることが出来ません。

従って既に起動してるノードに対してQtCreatorからはgdbによるデバッグが出来ないことになります。

この場合は新しくターミナルを開いてsudoでgdbを起動し、そこからattachしてデバッグをしてください。




inserted by FC2 system