ROS2學習之旅(9)——使用rqt_console
rqt_console
是一個GUI工具,用於在ROS2中檢視日誌訊息。通常,日誌訊息會顯示在終端中。使用rqt_console
,可以隨著時間的推移收集這些訊息,以更有組織的方式仔細檢視它們,過濾它們,儲存它們,甚至重新載入已儲存的檔案以在不同的時間進行檢視。
節點使用日誌以各種方式輸出有關事件和狀態的訊息。
1.準備
執行rqt_console
,在終端執行:
ros2 run rqt_console rqt_console
此時,會開啟rqt_console
:
控制檯的第一部分將顯示來自系統的日誌訊息。
中間部分可以通過排除嚴重級別來過濾訊息,還可以使用右邊的加號按鈕新增更多排除過濾器。
底部部分用於突出顯示包含輸入的字串的訊息,也可以在此部分新增更多的過濾器。
現在用下面的命令在新終端中啟動turturlesim
:
ros2 run turtlesim turtlesim_node
2.rqt_console中的訊息
讓海龜撞到牆,以此生成rqt_console
要顯示的日誌訊息。在一個新終端中,輸入下面的ros2 topic pub
命令:
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.日誌級別
ROS2的記錄器級別按嚴重程度排序:
Fatal
Error
Warn
Info
Debug
對於每個級別所代表的內容並沒有明確的標準,但可以這樣假設:
-
Fatal
訊息表明系統將終止以保護自身免受損害。 -
Error
訊息指出的重大問題不一定會損害系統,但會妨礙系統正常執行。 -
Warn
訊息表示可能代表更深層次問題的意外活動或非理想結果,但不會直接損害功能。 -
Info
訊息指示事件和狀態更新,這些更新可作為系統是否按預期執行的可視驗證。 -
Debug
訊息詳細說明了系統執行的整個步驟。
預設級別為Info
,所以將看到預設嚴重級別和更嚴重級別的訊息。
通常,只有Debug
訊息被隱藏,因為它們是唯一比Info
級別輕的級別。例如,如果將預設級別設定為Warn
,則只會看到嚴重性為Warn
、Error
和Fatal
的訊息。
3.1更改預設日誌級別
可以在第一次執行/turtlesim
節點時設定預設記錄器級別,在終端中輸入如下命令:
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
現在不會看到上次在控制檯啟動turtlesim
時出現的初始Info
級別警告,這是因為Info訊息的優先順序低於新的預設級別Warn
。
4.總結
如果需要仔細檢查來自系統的日誌訊息,rqt_consle
可能非常有用。出於各種原因,可能希望檢查日誌訊息,通常是為了找出哪裡出了問題以及導致該問題的一系列事件。
如果給您帶來幫助,希望能給點個關注,以後還會陸續更新有關機器人的內容,點個關注不迷路~歡迎大家一起交流學習。
都看到這了,點個推薦再走吧~
未經允許,禁止轉載。