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 doctorros2 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為主,

所有案例全部通用。