ROS 2 公式文書(英語) 日本語訳シリーズです。
本ブログの日本語翻訳版のトップページは以下のリンクを参照下さい。
概要
RQt はプラグイン形式で様々なツールやインターフェースを実装できるGUI フレームワークです。 RQt 内では、既存の GUI ツールを連結表示できるウィンドウとして実行できます。これらのツールは従来のスタンドアロン方式でも実行できますが、RQt を使用すると種々のウィンドウ全てを単一の画面レイアウトで管理することも容易に実現できます。
次のようにすれば、あらゆる RQt ツール/プラグインも簡単に実行できます。
rqt
この GUI では、システム上で利用可能なプラグインを選択できます。スタンドアロンウィンドウでプラグインを実行することもできます。たとえば、RQt Python コンソールは次のようになります。
ros2 run rqt_py_console rqt_py_console
ユーザーはPython
またはC++
のいずれかを使用して RQt 用の独自のプラグインを作成できます。 20 以上のプラグインが ROS 1 で作成され、これらのプラグインは現在 ROS 2 に移植されています(2018年12月現在、詳細はこちら)。
システム設定
Debianからのインストール
sudo apt install ros-$ROS_DISTRO-rqt *
ソースからのビルド
ソースからの RQt のビルドを参照してください。
RQt コンポーネント構造
RQt は3つのメタパッケージで構成されています。
- rqt - コアインフラストラクチャモジュール。
- rqt_common_plugins - ツールを構築するためのバックエンドツール。
- TODO:2018年12月現在、このメタパッケージは ROS 2 では使用できません。まだ全てのプラグインが移植されていないためです。
- rqt_robot_plugins - ランタイム中にロボットと対話するためのツール。
- TODO:2018年12月現在、このメタパッケージは ROS 2 では使用できません。まだ全てのプラグインが移植されていないためです。
RQt フレームワークの利点
ゼロから独自の GUI を構築するのと比較して:
- GUI 用の標準化された共通手順(スタート - シャットダウンフック、過去状態の復元)。
- 複数ウィジェットを単一のウィンドウにドッキング可能。
- 既存の Qt ウィジェットを容易に RQt プラグインに変更可能。
- ROS Answers( ROS コミュニティの Web フォーラム)によるサポート。
システムアーキテクチャの観点からは:
- マルチプラットフォーム(基本的に QT と ROS が動く環境ならOK)とマルチ言語(
Python
、C++
)をサポート。 - 管理可能なライフサイクル:共通の API を使用した RQt プラグインにより、保守と再利用が容易になります。
参考文献
- ROS 2 Disourse: ROS 2 への移植。
- ROS 1 版 RQt のドキュメント。
- RQt の概要(Willow Garage インターンのブログ投稿から)。