天天看點

ROS機器人程式設計(原書第2版)3.2.3 為特定節點配置調試資訊級别

<b>3.2.3 為特定節點配置調試資訊級别</b>

預設情況下,系統會顯示info及更進階别的調試資訊,并使用ros預設級别來過濾特定節點輸出的資訊。要實作這一功能有很多方法。其中有些是在編譯時設定,而其他的可以在執行前使用配置檔案進行更改。另外,也可以動态地改變級别。下面将介紹使用rqt_console和rqt_logger_level來實作這一功能。

在編譯源代碼時可以設定日志級别,但不推薦這麼做,這需要我們修改源代碼定制日志級别,如果你想這樣做,請參考《ros機器人程式設計》(第1版)。

然而,在一些時候,我們需要删除低于設定級别的日志。這時,我們希望看到那些消息後,将它們删除而不是禁用。為此需要将rosconsole_min_severity設定為期望的最低嚴重級别或者避免任何消息(甚至是fatal)。宏如下:

rosconsole_min_severity宏在&lt;ros/console.h&gt;中預設定義為debug級别。于是可将它作為一個編譯參數(使用-d)傳遞或把它放在頭檔案前。例如,若想僅顯示error或更進階别的調試資訊,在源代碼中加入下面代碼:

或者,在cmakelists.txt中使用下面代碼設定包中所有節點的宏:

除此之外,還有一個更靈活的方法就是在配置檔案中設定最低日志級别。用檔案建立一個名為的config檔案夾和名為chapter3_tutorials.config的檔案,檔案内容如下(從它設定為debug級别開始編輯給定檔案):

然後,我們設定rosconsole_config_file環境變量指向我們的檔案。我們可以使用一個啟動(launch)檔案來替代配置環境變量,但這樣做會直接運作節點。是以,我們可以通過env(環境變量)字段擴充launch檔案,如下所示:

如上所述,環境變量會找到之前顯示的配置檔案,其中包含每個已命名日志的日志級别說明。在這個例子中是功能包名稱。

繼續閱讀