Skip to content

rqt_consoleを使用したログの表示

目標: ログメッセージを内部検査するためのツール、rqt_consoleについて理解する。

チュートリアルレベル: 初心者

所要時間: 5分

背景

rqt_consoleは、ROS 2でログメッセージを内部検査するために使用されるGUIツールです。 通常、ログメッセージはターミナルに表示されます。 rqt_consoleを使用すると、これらのメッセージを時間をかけて収集し、より詳細でより整理された方法で表示し、フィルタリングし、保存し、さらには保存されたファイルをリロードして異なる時間に内部検査することができます。

ノードは、さまざまな方法でイベントとステータスに関するメッセージを出力するためにログを使用します。 その内容は通常、ユーザーのための情報提供を目的としています。

前提条件

rqt_consoleとturtlesimがインストールされている必要があります。

いつものように、新しいターミナルを開くたびにROS 2をソースすることを忘れないでください。

タスク

1 セットアップ

新しいターミナルで以下のコマンドを使用してrqt_consoleを起動します:

bash
ros2 run rqt_console rqt_console

rqt_consoleウィンドウが開きます:

rqt_consoleのウィンドウ

コンソールの最初のセクションは、システムからのログメッセージが表示される場所です。

中央部では、重要度レベルを除外してメッセージをフィルタリングするオプションがあります。 右側のプラス記号ボタンを使用して、より多くの除外フィルターを追加することもできます。

下部のセクションは、入力した文字列を含むメッセージをハイライトするためのものです。 このセクションにもより多くのフィルターを追加できます。

次に、新しいターミナルで以下のコマンドを使用してturtlesimを起動します:

bash
ros2 run turtlesim turtlesim_node

2 rqt_console上のメッセージ

rqt_consoleが表示するログメッセージを生成するために、タートルを壁に衝突させましょう。 新しいターミナルで、以下のros2 topic pubコマンド(トピックチュートリアルで詳しく説明)を入力します:

bash
ros2 topic pub -r 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}"

上記のコマンドは一定の頻度でトピックをパブリッシュしているため、タートルは継続的に壁に衝突しています。 rqt_consoleでは、以下のようにWarn重要度レベルの同じメッセージが何度も表示されます:

警告メッセージの表示

ros2 topic pubコマンドを実行したターミナルでCtrl+Cを押して、タートルの壁への衝突を停止します。

3 ロガーレベル

ROS 2のロガーレベルは重要度順に並んでいます:

  1. Fatal(致命的)
  2. Error(エラー)
  3. Warn(警告)
  4. Info(情報)
  5. Debug(デバッグ)

各レベルが何を示すかについての正確な標準はありませんが、以下のように想定することが安全です:

  • Fatalメッセージは、システムが損害から身を守るために終了しようとしていることを示します。

  • Errorメッセージは、必ずしもシステムに損害を与えないが、正常に機能することを妨げている重大な問題を示します。

  • Warnメッセージは、より深い問題を表す可能性があるが、機能に直接害を与えない予期しない活動や理想的でない結果を示します。

  • Infoメッセージは、システムが期待通りに動作していることの視覚的確認として機能するイベントとステータスの更新を示します。

  • Debugメッセージは、システム実行の詳細なステップバイステッププロセスを示します。

デフォルトレベルはInfoです。 デフォルトの重要度レベル以上の重要度のメッセージのみが表示されます。

通常、Debugメッセージのみが隠されます。なぜなら、これらはInfoより重要度が低い唯一のレベルだからです。 例えば、デフォルトレベルをWarnに設定した場合、重要度WarnError、およびFatalのメッセージのみが表示されます。

3.1 デフォルトロガーレベルの設定

リマッピングを使用して/turtlesimノードを最初に実行するときに、デフォルトのロガーレベルを設定できます。 ターミナルで以下のコマンドを入力します:

bash
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN

これで、前回turtlesimを起動したときにコンソールに表示された初期のInfoレベルメッセージは表示されなくなります。 これは、Infoメッセージが新しいデフォルト重要度Warnより低い優先度だからです。

まとめ

rqt_consoleは、システムからのログメッセージを詳しく調べる必要がある場合に非常に役立ちます。 通常、何かがうまくいかなかった場所とそれに至る一連のイベントを見つけるために、さまざまな理由でログメッセージを調べたい場合があります。

次のステップ

次のチュートリアルでは、ROS 2 Launchを使用して複数のノードを一度に起動することについて学習します。

Released under the MIT License.