1. 程式人生 > >ROS學習筆記22(roswtf入門)

ROS學習筆記22(roswtf入門)

1 安裝檢查

roswtf 可以檢查你的ROS系統並嘗試發現問題,我們來試看:

$ roscd
$ roswtf

你應該會看到(各種詳細的輸出資訊):

Stack: ros
================================================================================
Static checks summary:

No errors or warnings
================================================================================

Cannot communicate with master, ignoring graph checks

 

如果你的ROS安裝沒問題,你應該會看到類似上面的輸出資訊,它的含義是:

* "Stack: ros": roswtf根據你當前目錄來確定需要做的檢查,這裡表示你是在rosstack中啟動roswtf。

* "Static checks summary": 這是有關檔案系統問題的檢查報告,現在的檢查結果表示檔案系統沒問題。

* "Cannot communicate with master, ignoring graph checks(無法與master連線,忽略圖(graph)檢查)": roscore沒有執行,所以roswtf沒有做執行時檢查。

2 執行時檢查(在有ROS節點執行時)

在這一步中,我們需要讓Master執行起來,所以得先啟動roscore。

現在按照相同的順序再次執行以下命令:

$ roscd
$ roswtf

你應該會看到:

Stack: ros
================================================================================
Static checks summary:

No errors or warnings
================================================================================
Beginning tests of your ROS graph. These may take awhile...
analyzing graph...
... done analyzing graph
running graph rules...
... done running graph rules

Online checks summary:

Found 1 warning(s).
Warnings are things that may be just fine, but are sometimes at fault

WARNING The following node subscriptions are unconnected:
 * /rosout:
   * /rosout

 

既然roscore已經運行了所以roswtf做了一些執行時檢查。

檢查過程的長短取決於正在執行的ROS節點數量,可能會花費很長時間才能完成。正如你看到的,這一次出現了警告:

WARNING The following node subscriptions are unconnected:
 * /rosout:
   * /rosout

roswtf發出警告說rosout節點訂閱了一個沒有節點向其釋出的話題。在本例中,這正是所期望看到的,因為除了roscore沒有任何其它節點在執行,所以我們可以忽略這些警告。

3 錯誤報告

roswtf會對一些系統中看起來異常但可能是正常的執行情況發出警告。也會對確實有問題的情況報告錯誤。

接下來我們在ROS_PACKAGE_PATH 環境變數中設定一個 bad值,並退出roscore以簡化檢查輸出資訊。

$ roscd
$ ROS_PACKAGE_PATH=bad:$ROS_PACKAGE_PATH roswtf

這次我們會看到:

Stack: ros
================================================================================
Static checks summary:

Found 1 error(s).

ERROR Not all paths in ROS_PACKAGE_PATH [bad] point to an existing directory: 
 * bad

================================================================================

Cannot communicate with master, ignoring graph checks

正如你看到的,roswtf發現了一個有關ROS_PACKAGE_PATH設定的錯誤。

roswtf還可以發現很多其它型別的問題。如果你發現自己被一個編譯或者通訊之類的問題困擾的時候,可以嘗試執行roswtf看能否幫你解決。

現在你已經知道如何使用roswtf了, 接下來可以花點時間通過wiki導航瞭解一下wiki.ros.org網站是如何組織的。