使用rqt_console和roslaunch---ROS学习第7篇
文章目錄
- 1. 準備工作
- 2.使用rqt_console和rqt_logger_level
- 2.1 日志記錄器級別
- 2.2 使用roslaunch
- 2.3 launch文件
- 2.4 launch解析
- 2.5 使用roslaunch
本篇介紹在ROS中使用rqt_console和rqt_logger_level進行調試,以及使用roslaunch同時啟動多個節點
1. 準備工作
本篇會用到rqt和turtlesim這兩個軟件包,需要先安裝:
$ sudo apt-get install ros-noetic-rqt ros-noetic-rqt-common-plugins ros-noetic-turtlesim
這里是基于noetic版本。
2.使用rqt_console和rqt_logger_level
rqt_console連接到了ROS的日志框架,以顯示節點的輸出信息。rqt_logger_level允許我們在節點運行時改變輸出信息的詳細級別,包括Debug、Info、Warn和Error。
現在我們來看一下turtlesim在rqt_console中輸出的信息,同時在使用turtlesim時切換rqt_logger_level中的日志級別。在啟動turtlesim之前先在兩個新終端中運行rqt_console和rqt_logger_level:
$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level
現在在另一個新終端中啟動turtlesim
$ rosrun turtlesim turtlesim_node
默認的日志級別是Info,啟動turtlesim后沒有看到console中中有打印信息,我移動turtle碰墻后看到了Warn信息,如下:
可以通過在console中顯示不同level的信息,比如:
還可以通過LoggerLevel的設置來輸出不同level的信息
2.1 日志記錄器級別
日志級別的優先級按以下順序排列:
Fatal (致命)
Error (錯誤)
Warn (警告)
Info (信息)
Debug (調試)
Fatal是最高優先級,Debug是最低優先級。通過設置日志級別,你可以獲得所有優先級級別,或只是更高級別的消息。比如,將日志級別設為Warn時,你會得到Warn、Error和Fatal這三個等級的日志消息。
現在按Ctrl+C退出turtlesim節點。接下來我們將使用roslaunch來啟動多個turtlesim節點和一個模仿者節點,來讓一個烏龜模仿另一個烏龜。
2.2 使用roslaunch
roslaunch可以用來啟動定義在launch(啟動)文件中的節點。
用法:
$ roslaunch [package] [filename.launch]
先切換到我們之前創建和構建的study軟件包目錄下,對應目錄是~/catkin_ws/src/study,在此目錄下創建launch目錄下:
$ mkdir launch
$ cd launch
注意:存放launch文件的目錄不一定非要命名為launch,事實上都不用非得放在目錄中,roslaunch命令會自動查找經過的包并檢測可用的啟動文件。然而,這種推薦的標準做法被認為是“最佳實踐”。
2.3 launch文件
現在一起創建一個名為study.launch的launch文件并復制粘貼以下內容進去:
<launch><group ns="turtlesim1"><node pkg="turtlesim" name="sim" type="turtlesim_node"/></group><group ns="turtlesim2"><node pkg="turtlesim" name="sim" type="turtlesim_node"/></group><node pkg="turtlesim" name="mimic" type="mimic"><remap from="input" to="turtlesim1/turtle1"/><remap from="output" to="turtlesim2/turtle1"/></node></launch>2.4 launch解析
下面我們開始拆解launch XML文件
<launch>首先用launch標簽開頭,以標明這是一個launch文件
<group ns="turtlesim1"><node pkg="turtlesim" name="sim" type="turtlesim_node"/></group><group ns="turtlesim2"><node pkg="turtlesim" name="sim" type="turtlesim_node"/></group>此處創建了兩個分組,并以命名空間(namespace)標簽來區分,其中一個名為turtulesim1,另一個為turtlesim2,兩個分組中都有相同的名為simde turtlesim節點。這樣可以讓我們同時啟動兩個turtesim模擬器,而不會產生命名沖突。
<node pkg="turtlesim" name="mimic" type="mimic"><remap from="input" to="turtlesim1/turtle1"/><remap from="output" to="turtlesim2/turtle1"/></node>在這里啟動模仿節點,話題的輸入和輸出分別重命名為turtlesim
1和turtlesim2,這樣就可以讓turtlesim2模仿turtlesim1了。
這行使得launch文件的XML標簽閉合。
2.5 使用roslaunch
現在通過launch命令運行launch文件
$ roslaunch study study.launch
現在將會會有兩個turtlesim被啟動,然后我們一個新終端發送命令
我們還可以用rqt_graph來更好地理解launch文件所做的事情。運行rqt_graph
到此,我們已經學會了rqt_console和roslaunch命令的使用。
總結
以上是生活随笔為你收集整理的使用rqt_console和roslaunch---ROS学习第7篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 毫米波雷达传感器在机器人中的应用
- 下一篇: 基于firefly rk3399 And