今動いているノードの関係性を、図(GUI)で可視化してみる
ノードとトピックの関係を視覚的に見るには、rqt_graph というツールを使います。これを使うと、現在システムの中で「誰が誰にメッセージを送っているか」が地図のように一目でわかります。
rqt_graph を起動する
カメを動かしているノード(turtlesim_node と turtle_teleop_key)は起動したまま、新しいターミナルを開いて以下のコマンドを入力してください。
rqt_graph
カメを動かしていると以下のように、丸と矢印で構成された図が表示されます。

グラフを読み解く
表示された図を見てみてください。おそらく以下のような構成になっているはずです。
はい、バッチリです!大正解です。無事にノード間の通信がネットワーク図として可視化されましたね。
画像を見ると、2つのノード(プログラム)が起動し、お互いに通信している様子がはっきりとわかります。この図が何を表しているのか、簡単に読み解き方を解説します。
グラフの読み解き方
-
楕円(丸い枠): 現在裏で動いている**ノード(プログラム)**を表しています
-
/turtlesim:亀が表示されるシミュレーターのノードです -
/teleop_turtle:キーボードからの入力を受け取るノードです
-
-
矢印: データの通り道(トピックなど)を表し、矢印の向きが「データが流れる方向」です
- 一番下の
/turtle1/cmd_velという矢印は/teleop_turtleから/turtlesimに向かってデータが送られていることがわかります - これは「キーボードで入力した『速度(velocity)の指令(command)』が、シミュレーター上の亀に送られている」という関係性を視覚的に表しています
- 一番下の
今後、実際のロボット開発などでカメラやセンサー、モーターなど多数のノードを同時に動かすようになるとシステムが複雑になりますが、この rqt_graph を使えば「どのプログラムがどこにデータを送っているか」を一目でデバッグできます。
