roswtf
當(dāng)你運行一個ROS節(jié)點或者啟動roscore時,會不時的出現(xiàn)一些問題;這時你就可以使用roswtf這個工具來檢查ros中出現(xiàn)的一些錯誤或者警告
- 在開始本教程之前薄湿,請確保您的roscore沒有運行访诱。
ps -ef | grep -i rosmaster
輸出:
00:00:00 /usr/bin/python /opt/ros/kinetic/bin/rosmaster
在Linux上末患,您可以通過以下方式檢查roscore是否仍在運行(如果您看到這樣的行,其中包括rosmaster宿亡,它是roscore的一部分,則roscore正在運行):
-
檢查安裝
roswtf檢查您的系統(tǒng)以嘗試發(fā)現(xiàn)問題。讓我們嘗試一下:
roscd rosmaster
roswtf
輸出:
Package: rosmaster
================================================================================
Static checks summary:
No errors or warnings
================================================================================
ROS Master does not appear to be running.
Online graph checks will not be run.
ROS_MASTER_URI is [http://localhost:11311]
如果您的安裝運行正確彬呻,您應(yīng)該會看到與上面類似的輸出灵妨。輸出告訴您:
軟件包:rosmaster:
roswtf使用當(dāng)前目錄中的任何內(nèi)容來確定對其進行的檢查解阅。此輸出告訴我們您在rosmaster軟件包目錄中啟動了roswtf。
靜態(tài)檢查摘要:這是有關(guān)任何文件系統(tǒng)或任何非運行時(即無需運行roscore)問題的報告泌霍。告訴我們沒有錯誤货抄。 ROS Master似乎沒有在運行。:roscore沒有在運行朱转。 roswtf沒有進行任何在線檢查蟹地。
- 在線檢查
- 我們希望Master能夠啟動,因此繼續(xù)并在另一個終端中啟動roscore藤为。
終端一:
roscore
終端二:
roscd
roswtf
輸出:
No package or stack in context
======================================================
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會對您的圖形進行一些在線檢查。根據(jù)運行的ROS節(jié)點數(shù)凉蜂,這可能需要很長時間才能完成琼梆。如您所見性誉,這次它產(chǎn)生了警告:
roswtf向您警告rosout節(jié)點已訂閱沒有人發(fā)布的主題。在這種情況下茎杂,這是可以預(yù)期的错览,因為沒有其他東西在運行,因此我們可以忽略它煌往。
ERRORS
- roswtf會警告您一些看起來可疑但在您的系統(tǒng)中可能是正常的事情倾哺。它還可以針對已知錯誤的問題報告錯誤。
對于這一部分刽脖,我們將您的ROS_PACKAGE_PATH設(shè)置為錯誤的值羞海。我們還將停止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現(xiàn)在為我們提供了有關(guān)ROS_PACKAGE_PATH設(shè)置的錯誤却邓。 roswtf可以找到許多其他類型的問題。如果發(fā)現(xiàn)自己因構(gòu)建或通信問題而感到困惑院水,請嘗試運行它腊徙,看看它是否可以為您指明正確的方向。
至此, ROS的入門介紹結(jié)束了