はじめに
本記事は,下記記事のシリーズ記事です.
関連記事等気になる方は是非下記記事から飛んでください!
Rviz と Qt の簡単な仕組み
Rvizは Qt(キュートって読んでるんですがあってますかね...?) というクロスプラットフォームGUIライブラリを使って実装されています.
ゆえに,そのプラグインも Qt に沿ったものになります(というかそのものです).
QtでGUIを設計するにはQtの仕組みがわかっている必要があるのですが,下記がわかっていれば良いと思います.
理解間違いや,その理解では今後まずいことになるよ...!という場合は,是非コメントにて教えてくださいm(_ _)m
- Qt独自のスレッドがメインプログラム(ここではROSと繋がってるところ)とは別に回ってる.
- ROSとつながる方のプログラムが走ってるスレッドとQtのスレッド分けたりはライブラリが良きに設定してくれてる.
- Qtは
SIGNAL
->SLOT
という流れで処理を繋いでいる.
最後のやつだけもうちょっと詳しく説明します.
Qtは前述の通り,独自のスレッドが回っているのですが,その際何かしらの SIGNAL
,例えば「ボタンをクリック」が発生した場合,SLOT
例えば「TopicをPublish」する処理を実行します.
要は,
-
SIGNAL
で割り込みが発生 ->SLOT
がコールバック関数
というイメージです.
このイメージがあれば,なんとなく中で何をやっているのかわかった気になれると思います.
Rviz Plugin の種類
Rviz Plugin と一口に言っても,作る際に継承するクラスが下記のようにいくつかあります.
もちろんこれだけではないですが,本記事では下記3つを実装できるようになりたいので,ひとまずこれだけ紹介します.
-
rviz::Panel
:画面左上のPanels
から追加可能なプラグイン.Display
もパネルのひとつ.
-
rviz::Display
:RvizのDisplay部分のプラグイン.
-
rviz::Tool
:画面上のツールバーに追加できるようになるプラグイン.
というわけで,次回からrviz::Panel
を追加する方法を紹介しようと思います.
次記事 -> https://qiita.com/RyodoTanaka/items/4924af4f7b1e91f3a5b9