はじめに
今回は rqt を使って turtlesim のログを見る.
Using rqt_console to view logs — ROS 2 Documentation: Iron documentation
rqt console
いつもどおり turtlesim と teleop_turtle を起動.加えて rqt console を起動.さらに ros2 コマンドを使えるターミナルを用意.
$ ros2 run rqt_console rqt_console
次のコマンドでカメを壁にぶつけ続ける.このコマンドはひたすら壁にぶつかり続けるので,中断する場合は Ctrl+C でカメを止めること.
$ 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}}"
/turtlesim のターミナルでは壁にぶつかっているとの WARN レベルのメッセージが表示される.
[WARN] [turtlesim]: Oh no! I hit the wall! (Clamping from [x=11.120889, y=5.544445])
rqt でも同様にメッセージが表示される.
壁にぶつかった際のメッセージは WARN レベルのログとなっているが,他にも次のようなログレベルが利用できる.デフォルトのログレベルは Info となっており,Info 以上のメッセージが出力される(Debug レベルは表示されない).
Logger Levels | 説明 |
---|---|
Fatal | システムを保護するためにプログラムを終了することを示す. |
Error | 必ずしもシステムに損傷を与えるわけではないが,システムの正常動作を妨げる重大な問題が発生していることを示す. |
Warn | システムの正常動作に影響はないが,予期せぬアクティビティや,深刻な問題が発生している事を表す. |
Info | イベントやステータスの更新を示し,システムが期待通りに実行されていることを視覚的に表す. |
Debug | システム実行の詳細な状態を表す. |
ログレベルはノードの起動時に指定することができる.次のコマンドでは /turtlesim 起動時にログレベルを WARN に設定している(Info と Debug は表示されない).
$ ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
おわりに
今回は rqt を使ったログの見方を確認した.
ログレベルはシステムや実装者によって定義がまちまちなことが多々あるので,ある程度の方針が示されているのはありがたい.
コメント