ROS 2工具-rqt, logger, bag, doctor-
- 2019 年 12 月 20 日
- 筆記
ROS 2工具
1. rqt:
掌握rqt可以在命令行不熟悉的情況下高效調試。
比如:service caller和console
在指定位置添加一個小烏龜:

左側可以看到,直接可以使用圖形化介面進行操作。
在右側,可以查閱消息。
2. logger:
級別:
Fatal Error Warn Info Debug
每個級別都沒有確切的標準,但是可以安全地做出如下假設:
-
Fatal
消息指示系統將終止以嘗試保護自身不受損害。 -
Error
消息表示重大問題,不一定會損壞系統,但會阻止其正常運行。 -
Warn
消息表示意料之外的活動或不理想的結果,可能表示更深層次的問題,但不會直接損害功能。 -
Info
消息指示事件和狀態更新,可作為視覺驗證系統是否按預期運行。 -
Debug
消息詳細說明了系統執行的整個分步過程。
默認級別為Info
。僅看到默認嚴重性級別和更高級別的消息。

默認情況下,debug消息是無法看到的!
修改顯示的logger級別:
ros2 run turtlesim turtlesim_node --ros-args --remap __log_level:=WARN
3. bag
3.1 記錄
標準命令格式:
ros2 bag record <topic_name>
如果需要記錄/turtle1/cmd_vel,使用如下命令:
ros2 bag record /turtle1/cmd_vel
顯示如下:

使用Ctrl+C終止記錄。

記錄多個主題保存為subset文件:
ros2 bag record -o subset /turtle1/cmd_vel /turtle1
如果不想系統崩潰,盡量不要選用參數-a,為啥???
There is another option you can add to the command,
-a
, which records all the topics on your system. However, this might cause a circular dependency and crash your system. It』s better to choose a subset of the topics that you need.
3.2 資訊
標準命令格式:
ros2 bag info <bag_file_name>

3.3 回放
標準命令格式:
ros2 bag play <bag_file_name>
此處使用:
ros2 bag play rosbag2_2019_12_11-20_47_57
顯示:
[INFO] [rosbag2_storage]: Opened database 'rosbag2_2019_12_11-20_47_57rosbag2_2019_12_11-20_47_57_0.db3' for READ_ONLY.

4. ros2doctor
先運行一下看看效果:
ros2 doctor

報錯很正常。
如果開啟更多的節點:

有些節點發布和訂閱沒有對應,會出現:
UserWarning
如果需要完成版本的報告:
ros2 doctor --report

ros2doctor
它是任何ROS 2發行版的標準安裝中隨附的ROS 2命令行介面工具之一。 ros2doctor
與ROS 1 的roswtf
類似。它將檢查ROS 2設置,例如發行版,平台,網路介面等,並在ROS 2運行的系統中查找潛在問題。
用法
- 運行
ros2 doctor
或ros2 wtf
(別名)進行檢查。 - 運行
ros2 doctor -h/--help
以列印所有可用的命令參數。 - 運行
ros2 doctor -r/--report
以查看所有選中項目的報告。 - 運行
ros2 doctor -rf/--report-fail
以僅查看失敗檢查的報告。 - 運行
ros2 doctor -iw/--include-warnings
以將警告包括為失敗的檢查。-iw
並且-rf
可以組合使用。
ros2 -h顯示命令全部功能如下:

其他ROS2命令不在過多介紹了,安裝好依據幫助文檔和官方資料,多實踐就能掌握。
之後內容將全部轉為程式碼編寫和講解。
不再涉及基礎知識的介紹。
教程適用於Windows/MacOS/Linux,考慮到通用性,以Win10和Ubuntu18.04為主,
所有案例全部通用。